Mittwoch, 23. Mai 2012


Artikel

Juli 2009 | Artikel

NetBeans 6.7 - Das NetBeans für den Connected Developer? Fortsetzung, Teil 3

Teil 1   Teil 2   Teil 3   

Maven

Eine der Hauptattraktionen des neuen Release ist sicherlich die Maven-Integration. Hier wurden erneut wesentliche Verbesserungen vorgenommen und endlich ist der Maven-Support Teil der Standarddistribution. Nachdem seit Version 6.5 in ANT-Projekten "Compile On Save" unterstützt wird, gibt es dieses Feature nun auch für Maven-Projekte. Wie gewohnt ist NetBeans in der Lage, Maven-Projekte zu erkennen und benötigt keine zusätzlichen Metadaten. Die Zusammenarbeit mit anderen IDEs im Team ist also unproblematisch. Der Project-Object-Model-(POM-)Editor verfügt nun über Editor Hints und Warnungen, zum Beispiel bei Verwendung der Werte RELEASE oder LATEST als Versionsnummer. Daneben wird das Editieren durch automatische Codevervollständigung und Codegeneratoren für Plug-ins, Dependencies und Profiles erleichtert (Abb. 5). Noch praktischer ist die Autovervollständigung beim Hinzufügen von Abhängigkeiten. Hier werden während der Eingabe automatisch alle eingebundenen Repositories durchsucht. Neben diesen Verbesserungen wurden auch neue Archetypen eingebunden. Unter vielen Anderen gibt es nun endlich auch einen einfacher zu konfigurierenden Archetypen für die Erzeugung von NetBeans-Plattformanwendungen. Schritt für Schritt gewinnt die Maven-Unterstützung auch in diesem Bereich immer mehr an Bedeutung.

Die Rich-Client-Plattform

Auch sonst gibt es für alle Entwickler, die NetBeans als Rich-Client-Plattform verwenden, viele Neuerungen. Vor allem das Window-System wurde noch einmal verbessert. Es lässt sich nun für jedes einzelne Fenster getrennt festlegen, ob es mini- oder maximierbar, schließbar ist, oder ob es verschoben werden kann. Dies lässt sich durch das Setzen von Properties bewerkstelligen. Auch das Persistieren von Formulardaten zwischen zwei Sitzungen an der Benutzeroberfläche ist einfacher geworden. Mithilfe der @convertAsProperties-Annotation und den Methoden readProperties und writeProperties werden die Daten in eine settings-Datei geschrieben, die auch die übrigen Zustandsdaten des Fensters in der Sitzung enthält.

Auch viele Einträge in die Registry-Datei (Layer.xml) wurden durch Annotationen überflüssig gemacht. Durch die @ServiceProvider-Annotation kann eine Klasse als Service exportiert werden.

Eine Riesenerleichterung ist die Möglichkeit, Projekte und sogar ganze Modul-Cluster zu importieren. Damit ist es deutlich leichter geworden, verschiedene Distributionen eines Projekts zu erzeugen und Module von Drittparteien wieder zu verwenden. Dies war bisher nur durch manuelle Anpassungen des Build-Prozesses möglich. Und auch sonst ist die Verwaltung von Abhängigkeiten komfortabler geworden. Fügt man dem Projekt ein neues Modul hinzu, so lassen sich auch transitive Abhängigkeiten mittels eines einzigen Knopfdrucks auflösen. Eine Arbeit, die zuvor eine Menge Zeit und Nerven gekostet hat. Daneben gibt es viele kleine Neuerungen, etwa Methoden zum einfachen lesen von Files. Mit FileObject.asText() gibt es nun eine API, die das Lesen eines Textfiles so einfach macht, wie java.io.File in Version 1.0 hätte sein sollen.

Etwas abseits vom Hauptprojekt bereitet sich im Hintergrund eine kleine Revolution vor. Mit dem Projekt netigso ist eine Variante der IDE verfügbar, die auch OSGi-Bundles als vollwertige Plug-ins behandelt. So lässt sich bereits jetzt Distributed OSGi unter NetBeans verwirklichen . Das Projekt ist noch in einem frühen Stadium, die wichtigsten technischen Hürden sind jedoch bereits genommen. Hinter dem Projekt steht kein geringerer als Jaroslav Tulach, einer der Gründer von NetBeans und Hauptarchitekt der Plattform.

Features on demand

Eine der wichtigsten Änderungen in diesem Release findet sich nicht in den Feature-Highlights der Webseite. Im Unterschied zu Eclipse, versucht NetBeans immer eine Komplettlösung auszuliefern, eben "The only IDE you need". In der Praxis hatte das den Effekt, dass nun nahezu alle Benutzer das Komplettpaket inklusive aller Server- Sprach- und Frameworkunterstützungen herunterladen. Die Startup-Zeit der kompletten IDE unterscheidet sich jedoch deutlich von der Basisversion. Auch auf die Performance im Betrieb hat die Anzahl der installierten Plug-ins deutliche Auswirkungen. Mit dem Anwachsen der Funktionalität hat sich das mittlerweile zu einem echten Problem entwickelt. Hier wurde mit Änderungen an der Infrastruktur Abhilfe geschaffen. Lädt man sich nun die Entwicklungsumgebung herunter, ist zunächst nur die Basisfunktionalität aktiviert. Erst wenn man ein weiterführendes Feature tatsächlich zum ersten Mal einsetzt, wird es installiert. Das führt in der Praxis zu einer deutlich reaktionsfreudigeren IDE. Gleichzeitig ist dies eine Investition in die Zukunft, die hoffentlich weiterhin viele neue Features bereithält.

Fazit

Das neue Release macht insgesamt einen guten Eindruck. Es gibt einige sehr positive Neuerungen. Die Maven-Unterstützung ist inzwischen hervorragend. Die Integration mit Hudson ist ein schönes Zusatzfeature, das es noch einfacher macht, mit Continuous Integration zu beginnen. Für RCP-Entwickler sind trotz anders lautender Ankündigungen eine Menge langerwarteter Verbesserungen im Paket. Die Kenai-Unterstützung ist vielleicht nicht für jeden so relevant, dass sie Bestandteil der Standarddistribution sein müssten. Für Kenai-Nutzer ist die Integration allerdings sehr praktisch. Auch die Integration mit JIRA und Bugzilla ist eine gute Idee. Hier sollte für die Zukunft eine Zusammenarbeit mit demProjekt Cube°n angestrebt werden. Mit den infrastrukturellen Änderungen der "Features on demand" wurde noch einmal an der Performance der Plattform geschraubt und die IDE ein Stück zukunftssicherer gemacht. Bleibt zu hoffen, dass sich diese Investitionen in die Zukunft der IDE auch nach der Oracle-Übernahme bezahlt machen und das NetBeans-Projekt weiterhin die verdiente Unterstützung erfährt.

Anton Epple arbeitet als freiberuflicher Java Consultant und Trainer in München. Seit mehr als sieben Jahren leitet er die Entwicklung von Java Desktop Applikationen. Als aktives Mitglied der Open Source Community wurde er 2007 Leiter der JavaTools Community auf java.net. Seit mehreren Jahren beschäftigt er sich spezialisiert intensiv mit der NetBeans Platform und wurde 2008 zum Mitglied des NetBeans Dream Teams ernannt.

Teil 1   Teil 2   Teil 3   

Kommentare