NetBeans

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
NetBeans

Hlavní okno vývojového prostředí NetBeans.
Vývojář Oracle Corporation
Aktuální verze 8.1 (4. listopadu 2015)
Operační systém multiplatformní
Typ softwaru vývojové prostředí
Licence CDDL (odkaz) nebo GPL2
Lokalizace Do několika jazyků
Web netbeans.org

NetBeans IDE je svobodné, zdarma distribuované integrované vývojové prostředí (IDE), které vlastní firma Oracle Corporation, které též sponzoruje jeho vývoj. Technologický základ tvoří platforma NetBeans. Primárně je určeno pro vývoj v programovacím jazyce Java, ale díky modulární softwarové architektuře umožňuje programování i v jiných programovacích jazycích (JavaFX, Java EE, Java ME, 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 WindowsLinuxMac OS a Solaris).

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 | editovat zdroj]

Verze NetBeans IDE[1]

  • 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] V době akvizice byla hodnota NetBeans oceněna nabídkou firmy Sun Microsystems na sedm set milionů dolarů. [4]
  • 7. leden 2010 – Akvizice Sun Microsystems společností Oracle corporations.

Podpora Jazyka Java[editovat | editovat zdroj]

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

  • Grafický debugger.
  • Obsluha automatizačních nástrojů Ant, Maven, Gradle.
  • Syntaktická analýza zdrojového kódu a nápověda.
  • Zobrazení dokumentace JavaDoc.
  • Podpora vývoje na základě standardů definovaných Java Enterprise Edition.

Nástroj pro tvorbu GUI[editovat | editovat zdroj]

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 | editovat zdroj]

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žeb i webových aplikací.

Licencování[editovat | editovat zdroj]

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 | editovat zdroj]

NetBeans je známé známe vývojové prostředí (IDE) určeno 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 je hlavní výhodou této vývojové platformy, která 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 NetBean se řadí mezi tzv. Rich Client Applications. To jest 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 | editovat zdroj]

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 (viz vzájemné závislosti modulů na obrázku).
  • 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 | editovat zdroj]

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 Vaší 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, jak vytvořit základní okno aplikace, 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 aplikace vytvořené přes standardní způsob, jednu změnu a to, že v záložce Tools má standardně vloženou záložku Plugins.

Modulární architektura[editovat | editovat zdroj]

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

Typy Modulů[editovat | editovat zdroj]

Moduly můžou 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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

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 | editovat zdroj]

Ž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 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 | editovat zdroj]

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, tak dosáhneme toho, že moduly budou jednoduše použitelné. Tím se myslíme, že jejich instalování a odinstalování nebude závislé na ostatních modulech a budeme se tak moc vybudovat aplikaci, přesně podle svých představ. 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 | editovat zdroj]

Lookup je mapa, kde klíče jsou objekty typu Class (nejčastěji rozhraní) a hodnoty jsou instanci těch třídy. 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 | editovat zdroj]

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>

Související články[editovat | editovat zdroj]

Odkazy[editovat | editovat zdroj]

Literatura[editovat | editovat zdroj]

  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é online. (Angličtina) 
  3. Sun Microsystems Acquires NetBeans [online]. NetBeans.org, [cit. 2014-06-04]. Dostupné online. (Angličtina) 
  4. Sun buys Czech firm [online]. Cable News Network Money, 20.10.1999, [cit. 2014-06-08]. Dostupné online. (Angličtina) 

Externí odkazy[editovat | editovat zdroj]