What exactly are J2EE and .Net?
J2EE is not a product per se, but a specification encompassing a range of technologies for developing and running enterprise Java applications.
A Java Virtual Machine (JVM) provides the run-time interpreter required to run compiled Java code. But applications using some of the enterprise features of J2EE, such as Enterprise Java Beans (EJBs), will require a J2EE-compliant application server.
These provide services such as load balancing, transaction processing, session management and messaging so that developers of enterprise applications do not need to re-code such components with every application they write.
Microsoft .Net is based on the J2EE concept, but is supplied as a component of the Windows operating system. It provides a programming model for building, deploying and running web-based applications and XML web services.
The .Net framework is split into two main parts. The first is the common language runtime (CLR), the software infrastructure that runs the applications. Second, .Net also includes a set of class libraries to help developers build componentised applications.
Finally, Visual Studio.Net tool suite is required to build the applications, but this can be done in a variety of languages, unlike with J2EE.
How they compare
According to Forrester Research analyst Ted Schadler, .Net and J2EE each have distinct advantages and disadvantages. J2EE, he says, is optimised for the data centre and offers the greatest flexibility and control, but at the expense of complexity and cost.
In contrast, Microsoft’s .Net framework is optimised for the needs of the developer. Tools such as Visual Basic.Net are considerably easier to use than Java and, as a result, Microsoft developers can be hired more easily and for less than Java developers.
Another crucial difference between the two – at least for the present – is that .Net is tied to the Windows operating system. In order for a .Net program to run, on either a server or a client, Windows must be present.
One of the most enticing features of J2EE for major enterprises with highly heterogeneous environments to support – and absent from .Net – is the relative ease with which legacy systems can be connected to J2EE applications using third party adapters, Sun’s Java connector architecture (JCA) and Java messaging service (JMS).
In contrast, Microsoft’s messaging environment for .Net is provided by web services in a combination of the SOAP protocol and XML. However, these cannot yet provide such features as transaction support required for high-end applications.