Sei sulla pagina 1di 61

The NetBeans Platform

In 1996, a group of students from the Faculty of Mathematics and Physics at Charles University in
Prague, Czech Republic started working on a project named Xelfi with the goal of creating the first
IDE for Java written in Java. At the very beginning, the project attracted enough interest for its
authors, once they had graduated, to decide to market their software as a commercial product while
continuing work on its development. In 1997, they were contacted by Roman Stank, an entrepreneur
who had already been involved in several startups in the Czech Republic and who was looking for a
good idea to invest in. A company was formed around the project shortly after. Jaroslav Tulach, the
author of IDEs basic architecture and the only founder still working on the project, came up with the
name NetBeans for the platform, which was to represent the basic concept of this software, since
the business plan made with R. Stank was to develop network-enabled JavaBeans components
(therefore, NetBeans stands for network JavaBeans). In March 1999, NetBeans DeveloperX2 was
released. Shortly after that, in the Fall of 1999, JDK (Java Development Kit) 1.3 was also released and
its performance improvements positioned NetBeans on the market as a viable choice for
development tools. During the Summer of 1999, the team re-architectured DeveloperX2 into the
more modular NetBeans, which forms the basis of the software today. At the Java One presentation
in 1998, Jonathan Schwartz (currently the CEO of Sun Microsystems) became interested in the
project and in the Fall of 1999 Sun acquired NetBeans a.s. NetBeans had become the flagship tool
set of the maker of Java, which was a dream come true for its founders. Less than six months later,
Sun decided to make NetBeans their first sponsored open sourced project. This decision had an
important influence on the direction of NetBeans further development. Many programmers started
stripping out components of the NetBeans IDE so that they could combine its core (Runtime
Container) with their own plug-ins while building new applications. These actions led to the creation
of a platform that could be used for building generic desktop applications suitable for any purpose.

During the year 2000 and 2001 a great deal of work went into this task and the result was the
NetBeans platform derived from the NetBeans IDE. This also encouraged Suns developers to make a
cleaner API design and a separation of concerns. 2.2 Architecture of the NetBeans Platform In the
client-server model, rich-client application term is used when raw data is sent from the servers side
and processed by an application on the clients side. Besides data processing, rich-client application
should also provide GUI (Graphical User Interface) for the user. Modularization becomes more
important as an applications complexity increases. Modular design of an application brings certain
benefits over the old and trusted programming methodologies. Some of these benefits are:
shortened development time, consistency of user interface, simplified actualization, platform-
independence, and possibility of reusing the code. The NetBeans platform is a modular-designed
framework for creating rich-client applications. Its core consists of Runtime Container providing
basic functionality and services on top of which new applications are built. Runtime Container can be
understood as an execution environment for the modules that define a NetBeans Platform
application. These five modules build the container: Bootstrap This module is activated before all
other modules. It calls all registered command line handlers and prepares boot classloader, which
initializes the Startup module. Startup Provides the main method of an application, starts the
application, initializes Module System API and File System API. Module System API This module is
responsible for managment of other modules, their configurations and lifecycles as well as
dependencies between them. File System API Provides platform-indipendent access to virtual
filesystem. Utilities API Includes many utility classes, for example the Lookup class, which is used
for communication between modules. All the other modules of an application, as well as these five,
need to have certain characteristics to provide the desired advantages promised by modular
application development.

It should be possible to make all resources required by a module available via a single deployment
package. For this purpose NetBeans uses specific NBM archive, which is similar to the standard JAR
archive for Java packages. A module should also have a unique identity; it must be able to specify its
version (both specification and implementation); it must declare which, if any, of the other modules
in the application are required for it to function; and it needs to have a publicly exposed interface,
via which module features can be accessed

Applications Developed in the NetBeans Platform

To demonstrate the full possibilities of the NetBeans platform, several interesting examples of
applications developed on top of this framework are presented in this section. NetBeans IDE is one
of them. Northrop Grumman Agile Client Agile Client is a NetBeans Platform application developed
by Northrop Grumman in partnership with the US Defense Information System Agency. It brings the
war fighter a 3-D common operational picture (COP) workstation designed for greater ef-ficiency and
mission effectiveness . Boeing Mass Properties Toolkit The MassTk is an engineering analysis
application by Boeing. It incorporates the functionality from several legacy mass properties analysis
applications that were originally written in Java, Fortran, C, and even Perl. MassTk is built on top of
the NetBeans Platform. It provides a rich GUI with custom editors for all business objects including
2D & 3D visualization . Vinland Software Suite Vinland, by Eriksfiord, is an application in the oil &
gas exploration business. Its mission is to make the daily life of geoscientists easier and to avoid
forcing them to become spreadsheet addicts, since typically thats what they need to be. The
decision to use the NetBeans Platform in this case was a combination of its OS independence, its
100% Java content, and the fact that it is fully Swing based .

NetBeans IDE

Architecture of IDE NetBeans IDE, like the NetBeans platform, is an open-source and free software
that runs on todays standard operating systems. As mentioned before, NetBeans IDE is set on top of
the NetBeans platform and its inner organization can be represented by the following schema
There are three functional layers on top of the JDK (Java Development Kit). The Net-

Beans platform is positioned on the lowest level which offers a modular infrastructure and

reusable components. The middle layer or the Base IDE provides the parts that are specifications to
NetBeans IDE. On the highest layer, external complements can extend NetBeans

IDE by means of plug-ins, because the modules on the lower layers expose APIs enabling

them to be extended thanks to the NetBeans platform's modular architecture .

IDE's version 7.0 is mostly aligned with the JDK 1.7. It

supports the development of all Java application types: Java SE including Java ME, web

applets, EJB and mobile applications. However, it can also be used when developing PHP

or C++ applications. All the functions of the IDE are provided by modules. Among

others, these are part of standard IDE distributions:

NetBeans Profiler { This module is a useful tool for monitoring the behavior of

Java applications. For example, it is used by developers to and memory leaks or to

optimize speed,

GUI design tool { This GUI builder was formerly known as project Matisse. It allows

developers to prototype and design Swing graphical user interfaces by dragging and
positioning GUI components, and

NetBeans JavaScript editor { This module provides extended support for Ajax, CSS

and JavaScript. The editor features code completion, syntax highlighting, refactoring,

the generation of class skeletons, the generation of Ajax callbacks from a

template and others.

Extending the Functionality of IDE

NetBeans IDE's functionality can be extended by adding new plug-ins. Plugin manager

(Tools -> Plugins) allows adding modules in two different ways: a module can be

downloaded directly from a trusted vendor's website using IDE's interface (list of trusted

vendors can be edited in this manager) and to make this process more simplified, the

Plugin manager offers search function over a database of modules; or it can be added to

IDE by selecting its distribution package from the filesystem.

The user can also modify IDE so that it fits his needs by creating new plug-ins suitable

to his demands. To do so, the user should first get familiar with what the NetBeans

platform offers and probably the best way to start understanding this platform and its

possibilities is to analyze in more details an example on how to create a functional plug-in.

Eclipse

Eclipse is an integrated development environment (IDE). It contains a base workspace and an


extensible plug-in system for customizing the environment. Written mostly in Java, Eclipse can be
used to develop applications. By means of various plug-ins, Eclipse may also be used to develop
applications in other programming languages: Ada, ABAP, C, C++, COBOL, Fortran, Haskell,
JavaScript, Lasso, Lua, Natural, Perl, PHP, Prolog, Python etc.

Plug-ins In computing, a plug-in (or add-in / addin, plugin, extension or add-on / addon) is a software
component that adds a specific feature to an existing software application. When an application
supports plug-ins, it enables customization.

Eclipse Plug-ins

Eclipse is an extensible platform for building IDEs. It provides a core of services for controlling a set
of tools working together to support programming tasks. Tool builders contribute to the Eclipse
platform by wrapping their tools in pluggable components, called Eclipse plug-ins, which conform to
Eclipse's plug-in contract.

Eclipse and NetBeans IDEs The basic versions of both Eclipse and NetBeans offer very similar
standard capabilities. You get the auto-complete options for Java code so you can select from a
menu rather than typing everything out. You get pointers on debugging and optimizing code as you
go along. GUI builders, version control and other IDE features are also included. IBM offer IDE
Eclipse was rolled out successfully to a much larger user population earlier than NetBeans. By 2003,
Eclipse already had a substantial following in the IBM community. Acceptance spiked even higher
when IBM released control of the IDE to the newly created Eclipse Foundation. IBM revamped its
own products during the same time period to rely heavily on the Eclipse platform. Today, Eclipse is
viewed as a well-proven platform that commercial vendors can build on to create their own set of
products and that enterprise users can rely on for internal application development. Eclipse System
Architecture The Eclipse SDK includes the Eclipse Java Development Tools, offering an IDE with a
built-in incremental Java compiler and a full model of the Java source files. This allows for advanced
refactoring techniques and code analysis. Eclipses widgets are implemented by a widget toolkit for
Java called SWT, unlike most Java applications, which use the Java standard Abstract Window Toolkit
(AWT) or Swing.

Eclipse Vs NetBeans

1) Platform Support

There is no difference between the both of them under this segment. Eclipse and NetBeans have
cross-platform support. You can have this application running on Windows, Mac, Linux, Solaris and
any other platform, as long as JVM (Java Virtual Machine) is installed.
2) Multiple Language Support

Both have a wide range of programming language support, which includes C/C++, Java, JavaScript
and PHP. But how do you get this support is an interesting part. Eclipse is a plugin based IDE. Large
part of its functionality comes from plugins. On the other hand NetBeans has many projects and is a
tool based IDE. It incorporates many platforms using tooling support. Thus making it less scattered.

3) Java Support

NetBeans has a strong support when you are developing MVC based application in Java. Servlet/JSP
development is fairly very simple compared to Eclipse, especially in the field of deployment and
debugging.

4) Database Support

NetBeans comes with in-built support for and SQL, MySQL and Oracle drivers plus it includes some
others too. So this definitely makes things easy for beginners. However Eclipse has JDBC driver
support but it takes some serious time to configure the connection.

Comparing Java IDEs: Eclipse Vs NetBeans

Eclipse

Eclipse has been in existence from the year 2001, ever since IBM released Eclipse as an open source
platform. Managed by the non-profit Eclipse Foundation, this is used in both open source and
commercial projects. Starting in a humble manner, this has now emerged as a major platform, which
is also used in several other languages. The greatest advantage of Eclipse is that it features a whole
plethora of plugins, which makes it versatile and highly customizable.

NetBeans

NetBeans was independently developed in the latter half of the 1990s. It emerged as an open source
platform after it was acquired by Sun in 1999. Now a part of Oracle, this IDE can be used to develop
software for all versions of Java ranging between Java ME, up to the Enterprise Edition. Like Eclipse,
NetBeans too features a variety of plugins you can work with. NetBeans offers you various different
bundles 2 C/C++ and PHP editions, a Java SE edition, the Java EE edition that offers everything you
will ever need for your project.

Difference between Eclipse and Netbeans

NetBeans and Eclipse are two of the most popular free and open source Java IDE, they have their
differences. Support for Maven is better in NetBeans. Because you can get GlassFish with Java EE
package for NetBeans, it is easier to use than in Eclipses (as you have to configure GlassFish
separately). NetBeans comes with build-in GUI builder for Swing, but you need to use a separate
plug-in in Eclipse. The general opinions within the Java community about these two IDE are fairly
similar
Software evolution

Potrebbero piacerti anche