NetBeans 7.4 – Was ist neu in der Geburtstagsedition?

Anton Epple
Bild: Anton Epple

„I’m using NetBeans at least 10 hours per day…“ gestand James Gosling, der auf dem NetBeans Day der diesjährigen JavaOne die Geschichte der IDE und seine Rolle dabei rekapitulierte. Dieses Event war gleichzeitig die Feier zum 15. Geburtstag der IDE. Dazu passend gibt es nun auch das neue Release 7.4, mit dem sich endlich die neuen Java 8 Sprachfeatures mit der IDE verwenden lassen.

Besonders in den Bereichen HTML5, JavaScript und CSS gibt es eine Menge Neuerungen. Was in Version 7.3 als Project Easel begonnen hat, wird im neuen Release erweitert und ist jetzt auch in Java Web-Projekten verfügbar. Und Web-Anwendungen lassen sich nun auch auf mobilen Plattformen einfach testen und mittels Apache Cordova als native Apps ausliefern.

Project Easel – HTML5 in der Java IDE?

15 Jahre sind in Softwarezyklen gerechnet eine kleine Ewigkeit. In Menschenjahren steckt NetBeans jetzt mitten in der Pubertät. Vielleicht ist das der Grund, dass sich das Projekt immer wieder ein bisschen aus dem Korsett einer reinen Java-Entwicklungsumgebung befreien möchte. In NetBeans 7.3 wurden mit HTML5, CSS und JavaScript Web-Frontendtechnologien in den Vordergrund gerückt. Das fand ich persönlich zunächst ein wenig überraschend, weil diese Neuerungen nur in speziellen HTML5-Projekttypen zur Verfügung standen. Hatte Oracle nicht vorgegeben, dass der Fokus von NetBeans darauf liegen sollte, möglichst frühzeitig neue JSRs und Sprachfeatures zum Test verfügbar zu machen, um deren Verbreitung zu fördern?

In NetBeans 7.4 wird dieser Fokus sogar noch weiter ausgebaut mit der Unterstützung der CSS-Präprozessoren SASS und LESS. Trotzdem kehrt NetBeans mit diesem Release wieder stärker zu den Wurzeln zurück, denn es stellt diese Werkzeuge im Kontext von Java Web-Projekten zur Verfügung. Die Frontends von Java-EE-Projekten werden nun einmal immer mehr mit Hilfe von JavaScript-Bibliotheken wie Knockout, AngularJS oder ExtJS gestaltet. Nur durch die konsequente Unterstützung aktueller Anwendungsarchitekturen bleibt NetBeans der One-Stop-Shop für die Entwicklung von Webanwendungen.

Abb. 1: Unterstützung von CSS-Präprozessoren hier am Beispiel einer LESS-Datei  

Diese Neuerungen verbesseren den Workflow für den Entwickler einer Java-Webanwendung ganz erheblich. Während es bisher nur möglich war, den Java-Code auf dem Server zu debuggen und für die JavaScript-Anteile auf externe Tools wie Firebug oder die Chrome-Entwicklertools zurückgegriffen werden musste, lassen sich nun auch die Clientanteile komplett in NetBeans entwickeln, testen und debuggen. Der Entwickler muss die IDE praktisch nicht mehr verlassen.

Welchen Browser hätten’s denn gern?

In der Praxis funktioniert das so: Aus einer Dropdownliste lässt sich nun ganz einfach auswählen, welcher Browser gestartet werden soll, um das Projekt zu starten. So lässt sich einfach die Darstellung in verschiedenen Browsern überprüfen. Zugleich ist das auch der Eintrittspunkt in das visuelle CSS- und JavaScript-Debugging. Wählt man einen Browser mit NetBeans-Integration, wie den „Embedded WebKit Browser“ oder „Chrome with NetBeans Integration“, wird beim Start einerseits die Anwendung auf den Application Server deployed. Gleichzeitig verbindet sich NetBeans aber auch mit dem Browser.

Abb.2: Prominent platziert, der neue Browserauswahlbutton im Toolbar 

[ header = Seite 2: Live CSS Styling ]

Live CSS Styling

Nun können zum Beispiel mit dem Mauszeiger im Browser Elemente ausgewählt werden, NetBeans zeigt die korrespondierenden Elemente und die zugehörigen CSS-Styles automatisch in der IDE an. Umgekehrt kann auch im NetBeans-Navigator ein Element ausgewählt werden, das dann im Browser farbig hinterlegt wird. CSS kann live in der IDE editiert werden, der Effekt wird sofort im Browser sichtbar. Bei Chrome geht die Integration sogar noch weiter. Verwendet man die Chrome Entwicklertools, um zum Beispiel Anpassungen im CSS vorzunehmen, können die Änderungen direkt ins NetBeans-Projekt zurückgespeichert werden.

Abb.3: Live CSS-Styling funktioniert jetzt auch in Java EE-Projekten 

Polyglottes Debugging

Startet man den Server auch noch im Debug-Modus, kann man Client- und Servercode sogar gleichzeitig debuggen. Breakpoints  in JavaScript und im Java Code können gleichzeitig in der laufenden Anwendung analysiert werden. Das ist bei der gegenwärtigen Tendenz zu immer mehr JavaScript im Clientcode extrem praktisch.

Abb.4: Gleichzeitiges Java- und JavaScript-Debugging einer Anwendung im Chromebrowser 

[ header = Seite 3: Mobile Browser ]

Mobile Browser

Die Auswahl der Browser beinhaltet auch mobile Varianten. Diese laufen entweder im Emulator oder in echten Android- oder iOS-Geräten, die mit dem Rechner verbunden sind. Am besten wird dabei mobile Chrome auf Android unterstützt. Aber Features wie Live-Änderungen in CSS stehen auf allen Geräten zur Verfügung. Die Unterstützung für mobile Browser wird auch genutzt, wenn HTML5-Projekte mit Hilfe des Apache Cordova-Frameworks als native Applikationen verpackt werden. Für die Entwicklung von Web-Anwendungen hat sich damit im neuen Release eine Menge verbessert.

Abb. 5: Testen einer Anwendung auf dem mobilen Device, zum Beispiel mit dem iOS Simulator 

[ header = Seite 4: JDK 8 ]

JDK 8

Zu den Kernaufgaben von NetBeans zählt es auch, neue Sprachfeatures möglichst frühzeitig verfügbar zu machen. Deshalb enthält die Version 7.4 auch Unterstützung für die Entwicklung mit JDK 8. Das Wichtigste ist hierbei die Unterstützung für die neue Lambda-Syntax im Editor. Diese kann nun auch in NetBeans getestet werden. Für die Umstellung von bestehendem Code auf die Verwendung von Lambda-Ausdrücken stehen dabei spezielle Refactorings zur Verfügung. Diese können entweder als Quickfixes innerhalb des Editors genutzt werden, oder mit Hilfe der „Inspect & Transform“-Funktionalität auch auf kompletten Projekten, um den Sourcecode schnell und umfassend auf die Verwendung von Lambda-Ausdrücken umzustellen.

Abb. 6: „Inspect & Transform“ hilft Projekte einfach auf die Verwendung von Lambda Ausdrücken umzustellen 

Compact Profiles

Nachdem es ja mit Projekt Jigsaw in Java 8 nicht geklappt hat, steht wenigstens mit den Compact Profiles eine Möglichkeit zur Verfügung, den Footprint der JRE auf einigen Plattformen zu reduzieren. Im Embedded-Bereich ist so eine Reduzierung auf’s Wesentliche sehr willkommen. In NetBeans lassen sich die Profiles in den Projekteinstellungen auswählen. Im entsprechenden Profil fehlende Klassen werden dann sofort im Editor moniert.

Abb. 7: Der Editor zeigt verbotene Abhängigkeiten in Abhängigkeit vom gewählten Compact Profile 

[ header = Seite 5: Vermischtes ]

Vermischtes

Neben diesen Änderungen, welche die Hauptthemen dieses Releases sind, gibt es eine Reihe weiterer Verbesserungen an verschiedenen Ecken der IDE. Auf alle Änderungen im Detail einzugehen würde zu weit führen. Eine detaillierte Übersicht gibt es auf der „New and Noteworthy“-Seite [1]. Aber ein neues Feature soll hier trotzdem nicht unerwähnt bleiben. Der Profiler lässt sich jetzt auch zielgerichtet dafür verwenden, Anwendungen in ihrem Locking-Verhalten zu tunen. Dazu aktiviert man beim Starten des Profilers das Lock Contention Profiling. Im „Lock Contention“ Window ist dann zu sehen, welche Locks von einem Thread gehalten wurden und wie lange. Auf diese Weise lassen sich „Hot Locks“ identifizieren, die zu lange oder zu oft gehalten werden und zu Problemen wie Performanceeinbussen oder Deadlocks führen könnten.

Der Fokus des neuen Release liegt also eindeutig auf dem Web-Bereich. Mein Eindruck ist, dass das NetBeans Team hier wieder auf alte Stärken setzt. NetBeans User schätzen es, wenn alle Tools Out-of-the-Box und ohne Plug-in-Installationsorgien sinnvoll zusammenspielen, und das trifft für’s aktuelle Release voll zu. In Version 7.4 bietet NetBeans einen optimierten Workflow für die Entwicklung von Java-Webanwendungen, mit einem gut durchdachten und kompletten Satz an Tools, um Java Web-Projekte vom Server bis zum Frontend zu entwickeln, testen und debuggen. Features wie die Unterstützung mobiler Browser werden intelligent mit verschiedenen Projekttypen kombiniert.

Geschrieben von
Anton Epple
Anton Epple
Anton Epple hat mehr als zehn Jahre Erfahrung in der Leitung von Java-Projekten und veröffentlichte zahlreiche Artikel über das Thema. Er ist weltweit als Berater für eine Vielzahl von Unternehmen tätig, angefangen von Start-ups bis hin zu Fortune-500-Unternehmen, in vielen Bereichen einschließlich der Finanzinstitutionen und Aerospace. Sein derzeitiges Lieblingsthema ist die Entwicklung von Desktopanwendungen mit JavaFX. In seiner Freizeit ist Anton Community Leader für die Java Tools Community auf Java.net und ein Mitglied des NetBeans Dream Team and Governance Board. 2013 wurde er zum Java Champion ernannt.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.