Netbeans est un IDE qui supporte une large variété de langages de programmation et d'outils de collaboration.
Environnement de base
L'environnement de base comprend les fonctions générales suivantes :
- configuration et gestion de l'interface graphique des utilisateurs,
- support de différents langages de programmation,
- traitement du code source (édition, navigation,formatage, inspection ..),
- fonctions d'import/export depuis et vers d'autres IDE, tels qu'Eclipse ou JBuilder,
- accès et gestion de bases de données, serveurs Web, ressources partagées,
- gestion de tâches (à faire, suivi ...),
- documentation intégrée.
Principaux langages supportés
L'éditeur intégré propose des fonctions de complétion, de contrôles syntaxiques et sémantiques, d'avertissements et de conseils, de reprise de codes ("refactoring": renommage, changement des méthodes, gestion des classes, ...), de sauvegarde et reprise.
Il supporte les principaux langages suivants :
- Java (Java SE , Java ME , JavaFX , Java EE ), Javadoc,
- Ruby et Ruby on Rails : Ruby 1.9, Ruby on Rails 3, JRuby 1.4,
- Groovy et Grails ,
- PHP (dont les environnements Zend et Symfony) ,
- JavaScript
- C, C++, Fortran . Netbeans ne requiert pas l'utilisation d'un compilateur particulier. A noter le support des bibliothèques Qt. Les plates formes supportées sont Microsoft Windows, Linux, Mac OS, Solaris 10 et OpenSolaris,
- Python,
- HTML, XHTML, RHTML,
- XML,
- DTD,
- CSS,
- JSP, JSF,
- ERB,
- ...
Gestion de projets
Netbeans supporte les principaux systèmes de gestion de versions cvs : CVS, Subversion, Mercurial, ClearCase. Il intègre par ailleurs des outils collaboratifs (Projet Kenai Team Server).
Il inter agit avec les logiciels de gestion de bugs: Jira, BugZilla.
Débogage et optimisation
Netbeans comprend un profileur Java (analyse des performances CPU, de la génération de charge, analyse de l'utilisation mémoire, ...).
Il intègre par ailleurs des outils de debogage Java. Il peut aussi inter agir avec des debogeurs PhP (Zend, Xdebug).
Bases de données
NetBeans comprend un explorateur de bases de données qui supporte toutes les bases relationnelles pour lesquelles un connecteur JDBC existe (selon les versions des gestionnaires de bases de données): JavaDB (Derby) MySQL, PostgreSQL, Oracle, Microsoft SQL, PointBase, jTDS, IBM Redistributable DB2, ...
L'explorateur comprend un éditeur de requêtes, un gestionnaire intégré de bases de données MySQL.
Outils de construction d'applications
applications sur serveurs (applications Web et JAVA EE)
NetBeans supporte une importante variété d'environnements pour l'exécution d'applications web et Java EE : Java Server Pages (JSP), Java Server Faces(JFS),Enterprise JavaBeans (EJB 2.1, EJB 3, EJB 3.1), Apache Struts, Spring Web MVC, Hibernate ... Il supporte les standards Java EE 6, Java EE 5, J2EE 1.4, Java Persistence API (JPA 2.0 ), Java Servlet API.
Il permet le déploiement d'applications Java et d'Applets via Java Web Start (JNLP).
Netbeans intègre les fonctions de Hudson (Maven et projets Java SE pour Ant) et de Maven (créer, exécuter, tester et deboguer des projets Maven Apache).
Applications sur poste de travail
Il supporte le développement d'applications postes de travail (Java SE) , en lien avec JDK 1.1, 1.2, 1.3, 1.4, JDK 5.0 et JDK 6. Il permet l'utilisation des tests JUnit 3 et 4.
NetBeans propose un environnement graphique exploitant Swing, désigné comme Java Swing GUI Builder (ancien projet Matisse) . Cet environnement comporte des palettes d'outils de composition d'interfaces (composantes Swing et AWT et composantes spécifiques développées pour les projets). Il est utilisé au travers d'une interface graphique simple (choisir et positionner) qui permet de dessiner des interfaces pour les utilisateurs et de les visualiser à la volée. Le construction d'interface graphique est conforme à JSR 296 (Swing Application Framework), et JSR 295 (technologie Beans Binding ).
NetBeans supporte par ailleurs Java FX .
Applications Java sur mobiles ou embarquées
Netbeans supporte le développement d'applications Java pour mobiles (Java ME) et systèmes embarqués.
Web Services
NetBeans propose différents outils pour l'exploitation de web services. Il supporte JAX-WS services, JAX-RS RESTful Web Services, standards JAX-RPC Web Service , SOAP et RESTful Web Services, JBI Java Business Integration, Java Architecture for XML Binding API (JAXB), Mobile Java ME Web services . Il permet l'utilisation des web services Google Maps, StrikeIron, Yahoo News Search. Il supporte par ailleurs l'intégration de services fournis par quelques acteurs clés (Google, Facebook, Yahoo, YouTube, ...).
Plate forme NetBeans
plate forme
NetBeans est aussi une plate forme générique pour le développement d'applications pour stations de travail (bibliothèque Swing (Java)).Elle fournit des ressources pour développer les éléments structurants de ces applications: gestion des menus, des fenêtres, configuration, gestion des fichiers, gestion des mises à jour... Des présentations détaillées sont fournies par le centre de documentation de NetBeans .
L'IDE NetBeans comprend toutes les ressources utiles mais il est aussi possible d'installer la plate forme séparément.
Le développement d'applications sur la base de la plate forme Netbeans consiste en la réalisation de "modules" qui s'insèrent dans la plate forme et en étendent dynamiquement les fonctions.
Un module est un groupe de classes Java classes, de portée variée: elle peut consister en un simple classe Java réalisant des fonctions simples (exemple: ajouter une action dans un menu pour éditer le contenu du presse papier) comme elle peut intégrer une application externe complète (exemple: Java profiling suite). Un module peut s'appliquer à l'IDE NetBeans lui-même.
La réalisation des modules s'appuie sur une API normalisée .
Un espace de partage entre développeurs est mis en place.
OSGi
La plate forme NetBeans se conforme au framework d'OSGiNetBeans IDE 6.9 permet de créer des paquetagesOSGi pour des applications Java et pour des applications développées depuis NetBeans .
plugins
L'IDE NetBeans s'enrichit au travers d'une logique de plugins .