NetBeans
Author
Albert FloresNetBeans 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 Windows, Linux, macOS 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
Define $dx = 25 # shift text to right side of bar Define $dy = -3 # shift text to right side of bar
ImageSize = width:160 height:550 PlotArea = width:50 height:530 left:50 bottom:10
DateFormat = mm/dd/yyyy Define $start = 06/01/2003 Define $now = 12/31/2020 Period = from:$start till:$now TimeAxis = orientation:vertical ScaleMajor = unit:year increment:1 start:2004
PlotData= bar:Leaders color:blue width:25 mark:(line,white) align:left fontsize:S
from:$start till:$now
from:06/01/2003 till:06/01/2003 shift:($dx,$dy) fontsize:XS text:3. 5 from:04/01/2004 till:04/01/2004 shift:($dx,$dy) fontsize:XS text:3. +more6 from:12/01/2004 till:12/01/2004 shift:($dx,$dy) fontsize:XS text:4. 0 from:05/01/2005 till:05/01/2005 shift:($dx,$dy) fontsize:XS text:4. 1 from:01/01/2006 till:01/01/2006 shift:($dx,$dy) fontsize:XS text:5. 0 from:10/30/2006 till:10/30/2006 shift:($dx,$dy) fontsize:XS text:5. 5 from:05/24/2007 till:05/24/2007 shift:($dx,$dy) fontsize:XS text:5. 5. 1 from:12/03/2007 till:12/03/2007 shift:($dx,$dy) fontsize:XS text:6. 0 from:04/28/2008 till:04/28/2008 shift:($dx,$dy) fontsize:XS text:6. 1 from:11/20/2008 till:11/20/2008 shift:($dx,$dy) fontsize:XS text:6. 5 from:03/16/2009 till:03/16/2009 shift:($dx,$dy) fontsize:XS text:6. 5. 1 from:06/29/2009 till:06/29/2009 shift:($dx,-6) fontsize:XS text:6. 7 from:07/27/2009 till:07/27/2009 shift:($dx,0) fontsize:XS text:6. 7. 1 from:12/10/2009 till:12/10/2009 shift:($dx,$dy) fontsize:XS text:6. 8 from:06/15/2010 till:06/15/2010 shift:($dx,$dy) fontsize:XS text:6. 9 from:08/04/2010 till:08/04/2010 shift:($dx,$dy) fontsize:XS text:6. 9. 1 from:04/19/2011 till:04/19/2011 shift:($dx,$dy) fontsize:XS text:7. 0 from:08/01/2011 till:08/01/2011 shift:($dx,$dy) fontsize:XS text:7. 1 from:01/05/2012 till:01/05/2012 shift:($dx,$dy) fontsize:XS text:7. 1 from:02/29/2012 till:02/29/2012 shift:($dx,$dy) fontsize:XS text:7. 1. 1 from:04/24/2012 till:04/24/2012 shift:($dx,$dy) fontsize:XS text:7. 1. 2 from:07/17/2012 till:07/17/2012 shift:($dx,$dy) fontsize:XS text:7. 2 from:02/21/2013 till:02/21/2013 shift:($dx,$dy) fontsize:XS text:7. 3 from:06/12/2013 till:06/12/2013 shift:($dx,$dy) fontsize:XS text:7. 3. 1 from:10/15/2013 till:10/15/2013 shift:($dx,$dy) fontsize:XS text:7. 4 from:03/18/2014 till:03/18/2014 shift:($dx,$dy) fontsize:XS text:8. 0 from:09/09/2014 till:09/09/2014 shift:($dx,$dy) fontsize:XS text:8. 1 from:11/28/2014 till:11/28/2014 shift:($dx,$dy) fontsize:XS text:8. 2 from:11/04/2015 till:11/04/2015 shift:($dx,$dy) fontsize:XS text:8. 1 from:10/04/2016 till:10/04/2016 shift:($dx,$dy) fontsize:XS text:8. 2 from:07/29/2018 till:07/29/2018 shift:($dx,$dy) fontsize:XS text:9. 0 from:12/27/2018 till:12/27/2018 shift:($dx,$dy) fontsize:XS text:10. 0 from:04/04/2019 till:04/04/2019 shift:($dx,$dy) fontsize:XS text:11. 0 from:06/04/2020 till:06/04/2020 shift:($dx,$dy) fontsize:XS text:12.
Verze NetBeans IDE
Vydané | verze |
---|---|
3. 5 | červen 2003 |
3. +more6 | 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. 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. 1 | 9. září 2014 |
8. 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. * 1997 - Roman Staněk vstupuje do původního studentského projektu a podílí se na vytvoření jeho komerční verze. +more * 20. říjen 1999 - Společnost Sun Microsystems provádí akvizici NetBeans Česká republika a. s. * 7. leden 2010 - Akvizice Sun Microsystems společností Oracle corporations.
Podpora Jazyka Java
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. +more * 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
Nástroj pro tvorbu grafického uživatelského rozhraní je součástí balíčků pro Java Standard Edition a Java Enterprise Edition. Umožňuje metodou „táhni a pusť“ sestavit různé druhy aplikačních a dialogových oken. +more Podporovány jsou komponenty knihoven AWT a Swing.
Ostatní podporované technologie
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ů. +more 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í
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. +more Některé distribuce NetBeans mohou obsahovat části, které podléhají licencím třetích stran.
Vývojová platforma NetBeans
NetBeans je známé vývojové prostředí (IDE) určené pro vývoj Java aplikací. Jádro IDE je tzv. +more 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. +more 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
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. +more * 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
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. +more 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. +more 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
V této sekci si popíšeme, jak se vytváří moduly do NetBeans IDE.
Typy Modulů
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. +more 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í
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. +more 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
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
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. +more Poté se zde nachází několik modulů, které tuto specifikaci implementují.
Životní cyklus modulu
Ž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. +more 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
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é. +more 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
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é. +more 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.class); Lookup.Result foos = Lookup.getDefault.lookup(template); Collection c = foos.allInstances;
System Filesystems
Každý modul přidaný do aplikace má svůj XML Filesystem (soubor layer. xml). +more 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:
Odkazy
Reference
Související články
Eclipse * IntelliJ IDEA * BlueJ
Externí odkazy
[url=https://netbeans.org/]Domovská stránka projektu NetBeans[/url]
Kategorie:Svobodný aplikační software Kategorie:Software v Javě Kategorie:Vývojová prostředí pro Javu Kategorie:Software firmy Sun Microsystems