NetBeans

vývojové prostředí pro jazyk Java a další

NetBeans IDE je svobodné, zdarma distribuované integrované vývojové prostředí (IDE), které vlastní firma Oracle Corporation, které též sponzoruje jeho vývoj. V současné době je NetBeans v režii Apache Software Foundation. Technologický základ tvoří platforma NetBeans. Primárně je určeno pro vývoj v programovacím jazyce Java (Java SE, Java EE, Java ME), ale díky modulární softwarové architektuře umožňuje programování i v jiných programovacích jazycích (PHP, HTML5/CSS, JavaScript, C/C++, Groovy). Celé prostředí je naprogramováno v jazyce Java, a proto ho lze spustit na různých operačních systémech (Microsoft WindowsLinuxmacOS a Solaris).

NetBeans
Logo
Hlavní okno vývojového prostředí NetBeans.
Hlavní okno vývojového prostředí NetBeans.
VývojářApache Software Foundation, Oracle Corporation
Aktuální verze23 (19. září 2024)
Operační systémmultiplatformní
PlatformaJava Virtual Machine
Vyvíjeno vJava
Typ softwaruvývojové prostředí
LicenceOd 9.0 Apache Licence, před tím CDDL (odkaz) nebo GPL2
LokalizaceDo několika jazyků
Webnetbeans.apache.org
Některá data mohou pocházet z datové položky.

Vývojové prostředí NetBeans je částečně komunitně vyvíjený software. Kromě profesionálních vývojářů placených firmou Oracle je v současné době registrováno více než 800 000 přispěvatelů, jejichž přínos spočívá mimo jiné v tvorbě zásuvných modulů, které rozšiřují funkcionalitu programu, poskytování podpory pro vývoj za pomoci aplikačních frameworků, hlášení chyb, překladů do národních jazyků a podobně.

Historie NetBeans

editovat

Verze NetBeans IDE[1]

Vydané verze
3.5 červen 2003
3.6 duben 2004
4.0 prosinec 2004
4.1 květen 2005
5.0 leden 2006
5.5 30. října 2006
5.5.1 24. května 2007
6.0 3. prosince 2007
6.1 28. dubna 2008
6.5 20. listopadu 2008
6.5.1 16. března 2009
6.7 29. června 2009
6.7.1 27. července 2009
6.8 10. prosince 2009
6.9 15. června 2010
6.9.1 4. srpna 2010
7.0 19. dubna 2011
7.0.1 1. srpna 2011
7.1 5. ledna 2012
7.1.1 29. února 2012
7.1.2 24. dubna 2012
7.2 17. července 2012
7.3 21. února 2013
7.3.1 12. června 2013
7.4 15. října 2013
8.0 18. března 2014
8.0.1 9. září 2014
8.0.2 28. listopadu 2014
8.1 4. listopadu 2015
8.2 4. října 2016
9.0 29. července 2018
10.0 27. prosince 2018
11.0 4. dubna 2019
12.0 4. června 2020
15.0 7. září 2022
  • 1996 – Vznik českého studentského projektu pod názvem „Xelfi“, jehož cílem bylo vytvořit prostředí podobné Delphi.[2]
  • 1997 – Roman Staněk vstupuje do původního studentského projektu a podílí se na vytvoření jeho komerční verze.
  • 20. říjen 1999 – Společnost Sun Microsystems provádí akvizici NetBeans Česká republika a.s.[3]
  • 7. leden 2010 – Akvizice Sun Microsystems společností Oracle corporations.

Podpora Jazyka Java

editovat

NetBeans IDE může podporovat různé technologie spojené s jazykem Java pomocí komunitních rozšíření. Výčet obsahuje základní funkcionalitu.

Nástroj pro tvorbu GUI

editovat

Nástroj pro tvorbu grafického uživatelského rozhraní je součástí balíčků pro Java Standard EditionJava Enterprise Edition. Umožňuje metodou „táhni a pusť“ sestavit různé druhy aplikačních a dialogových oken. Podporovány jsou komponenty knihoven AWTSwing.

Ostatní podporované technologie

editovat

V základní verzi obsahuje prostředí podporu pro JavaFX, Java EE, Java ME, PHP, HTML5/CSS, JavaScript, C/C++, Groovy. Dále je možné rozšířit podporu pomocí přídavných modulů. NetBeans IDE dále zjednodušuje práci s frameworky jako je Struts nebo Ruby on Rails a umožňuje mimo jiné vývoj SOAP aplikací a webových služebwebových aplikací.

Licencování

editovat

NetBeans IDE umožňuje svému uživateli volbu licence, pod kterou bude program užívat. Na výběr je svobodná licence GNU GPL v2 a GNU nekompatibilní licence Common Development and Distribution License. Některé distribuce NetBeans mohou obsahovat části, které podléhají licencím třetích stran.

Vývojová platforma NetBeans

editovat

NetBeans je známé vývojové prostředí (IDE) určené pro vývoj Java aplikací. Jádro IDE je tzv. NetBeans platforma, modulární a rozšiřitelný aplikační framework. Modulární architektura NetBeans přináší tyto výhody:

  • zjednodušuje vytváření nových prvků aplikace,
  • vytváří jednoduché přidávání a mazání nových prvků aplikace pro uživatele,
  • zjednodušuje aktualizace již nainstalovaných prvků aplikace.

Platforma NetBeans se řadí mezi tzv. Rich Client Applications, tj. mezi aplikace, které pracují na straně klienta, kde nejenže data zobrazují, ale dochází i k jejich zpracování (logika se nenachází na straně serveru). RCA bývají rozšiřitelné pomocí pluginů a modulů.

Základní terminologie

editovat

Níže jsou uvedeny anglické termíny, které jsou důležité pro vývoj aplikací a jsou standardem ve všech publikacích o této problematice.

  • NetBeans Platform – Kostra aplikace, která poskytuje běžný základ pro swing aplikace.
  • NetBeans Platform application – Aplikace vytvořena s NetBeans Platform jako jejím počátečním stavem.
  • NetBeans Runtime Container – Slouží jako jádro NetBeans platform a přebírá na sebe všechnu zodpovědnost za běh aplikace. Nahrává všechny dostupné moduly, z kterých je potom vytvořen interní registr. Dovoluje dynamické instalování a odinstalování modulů, které jsou v tu chvíli dostupné. Kontejner výchozí aplikace se skládá z těchto modulů: Utilitis API, Module System API, FileSystems API, Bootstrap, Startup.
  • NetBeans System FileSystem – Hlavní registr konfigurace aplikačních dat. Sestavuje se z layer.xml souborů všech použitých modulů v aplikaci. Obsahuje například složení horního menu aplikace.

Začátek s NetBeans platformou

editovat

Vytvoření jednoduché aplikace (menu New Project → NetBeans Modules) nabízí ve vývojové platformě NetBeans několik možností:

  • Module – Vytváří zdrojovou strukturu jednoho bloku rich client application.
  • Module Suite – Vytváří zdrojovou strukturu rich client aplikace. Standardně všechny moduly, které jsou vytvořeny a zahrnuty do NetBeans IDE, jsou vytvořeny pomocí tohoto průvodce.
  • Library Wrapper Module – Vytváří modul, který obsahuje jeden nebo více knihoven, jako jsou knihovny Log4J a JDom. Knihovny jsou potřeba jedním nebo více moduly ve skupině. Například když máme library wrapper module pro knihovnu Log4J a verze knihovny Log4J se zvýší, my vytvoříme novou verzi našeho modulu a umístíme do modulu našich uživatelů, zatímco všechny ostatní moduly zůstanou nezměněny.

Vytvořit základní aplikační okno můžeme dvěma způsoby. První je klasický přes New Project → NetBeans Modules → NetBeans Platform Application. Druhý způsob je přes skriptovací jazyk Groovy – New Project → Samples → Groovy → NB Project Generators. Poté stačí jen najít složku, ve které se projekt vytvořil (složka se vypíše do standardního výstupu), a otevřít projekt. Aplikace vytvořená přes Groovy má oproti aplikaci vytvořené standardním způsobem jednu odlišnost, a to, že v záložce Tools má standardně vloženou záložku Plugins.

Modulární architektura

editovat

V této sekci si popíšeme, jak se vytváří moduly do NetBeans IDE.

Typy Modulů

editovat

Moduly mohou hrát odlišné role. Některé moduly přidávají nové elementy do uživatelského prostředí, jiné zase plní funkce knihoven důležitých funkcionalit. Každý modul má odlišné požadavky na jeho zařazení do aplikace. Protože sestavovač aplikace a skutečný výrobce modulu nemusí být jedna osoba. Dobrý kontejner pro uskutečnění modulárních aplikací poskytuje nějaké atributy, které dovolí modulu být anotován s popisem jeho požadavků, které musí být vyplněny, aby mohl být modul přidán do aplikace. V ideálním případě, tyto atributy nejsou použitelné jen pro člověka, který sestavuje aplikaci, ale i pro kontejner, který provádí realizaci. NetBeans runtime container poskytuje různé druhy užitečných atributů.

Modul uživatelského prostředí

editovat

Nejjednodušší typ modulu je modul, který přispívá funkcionalitou, jako je přidání menu položky, tlačítek nebo komponent. Tyto moduly neukazují žádnou jinou funkcionalitu, která by mohla být použita ostatními moduly. Takový modul bude nejspíše proto, aby napomáhal uživateli s ovládáním. Proto je uživateli dána možnost přes Module Manager vyřadit nebo naopak zařadit tento modul do uživatelského rozhraní. Uživatel tak dostává možnost přizpůsobovat si uživatelské rozhraní (menu, toolbary, ...) s tím, že po vypnutí aplikace se změny zapíší do souborů a při opětovném spuštění je použit již přizpůsobený vzhled aplikace.

Modul jako jednoduchá knihovna

editovat

Jednoduchá knihovna je běžný typ moduly široce používaný lidmi pro psaní open source nebo jinak znovupoužitelných knihoven, jako je například Apache Commons Collections. Ve skutečnosti se jedná o soubor typu JAR s několika balíčky, které obsahují použitelné třídy.

Modulární knihovna

editovat

Implementace v odlišných modulech a jejich separaci si doslova vynucuje. Vyskytuje se zde modul, který obsahuje specifikace, čímž se rozumí rozhraní, abstraktní třídy. Poté se zde nachází několik modulů, které tuto specifikaci implementují.

Životní cyklus modulu

editovat

Životním cyklem modulu se rozumí start, vypnutí, nahrávání a uvolňování modulu. Jedná se o třídu, která dědí od abstraktní třídy ModulInstall. Stačí, když překryjeme potřebnou metodu modulu.

public class Installer extends ModuleInstall {
    @Override
    public void restored() {
        System.out.println("HelloWorld !!");
    }
}

Rušení vazeb mezi moduly

editovat

Rušení vazeb mezi moduly je jedna z nejdůležitějších částí systému založených na modularitě. Tím, že zrušíme co nejvíce vazeb mezi moduly, dosáhneme toho, že moduly budou jednoduše použitelné. Tím je myšleno, že jejich instalování a odinstalování nebude závislé na ostatních modulech a bude tak moct být vybudována aplikace přesně podle představ jejího tvůrce. Jeden z nejvýznamnějších způsobů je Global Lookup. Je možnost si definovat své vlastní lookup nebo používat lookup například objektu TopComponent.

Globální Lookup

editovat

Lookup je mapa, kde klíče jsou objekty typu Class (nejčastěji rozhraní) a hodnoty jsou instancí těch tříd. Jedná se o způsob, jak snadno sdílet informace mezi moduly v jedné aplikaci, aniž by byly moduly mezi sebou závislé. Jeden modul přidá (pomocí vzoru Service provider) do objektu aplikace Lookup nějakou třídu a zcela jiný modul může z tohoto Lookup danou třídu vytáhnout.

Lookup.Template template = new Lookup.Template<Foo>(Foo.class);
Lookup.Result<Foo> foos = Lookup.getDefault().lookup(template);
Collection<? extends Foo> c = foos.allInstances();

System Filesystems

editovat

Každý modul přidaný do aplikace má svůj XML Filesystem (soubor layer.xml). Ve výsledku se sloučí tyto souborové systémy jednotlivých modulů a vytvoří tzv. MultiFileSystem. Jedná se o hlavní registr nakonfigurovaných dat deklarativně jednotlivými moduly. Tento souborový systém nám nakonec může například ukázat, jak má vypadat horní menu aplikace, ukáže se, jestli nějaké moduly nepřidaly, nebo naopak nezakázaly zobrazování některých položek. V kapitole Lookup jsme si ukazovali deklarativně registrační mechanismus, který je použitelný pro jednoduchou registraci objektů. System Filesystem se používá, když chceme zaregistrovat objekty navíc s určitými metadaty.

Následující kód způsobí zmizení položky Menu:

<filesystem>
   <folder name=”Menu”>
      <folder name=”Help_hidden”>
   </folder>
</filesystem>

Reference

editovat
  1. NetBeans Release Roadmap [online]. Netbeans.org, [cit. 2016-05-09]. Dostupné online. (Angličtina)
  2. A Brief History of NetBeans [online]. NetBeans.org [cit. 2014-06-08]. Dostupné v archivu pořízeném dne 2013-08-31. (Angličtina) 
  3. Sun Microsystems Acquires NetBeans [online]. NetBeans.org [cit. 2014-06-04]. Dostupné v archivu pořízeném dne 2014-07-14. (Angličtina) 

Související články

editovat

Externí odkazy

editovat