Table 2.2 shows a comparison of features and functions in .NET and J2EE. However, differences in the background makeup of each platform make direct comparisons between .NET and J2EE not always applicable. For example, MSMQ is a product whereas JMS is an API. Therefore you cannot simply rip out one component and replace it with the equivalent from the other platform.
Feature or Service | Microsoft .NET Element | J2EE Element | Comments |
---|---|---|---|
Technology Type | Product | Standard | |
Middleware Vendors | Microsoft and partners | 50+ vendors | |
Client Side GUI | Windows Forms Environment | AWT/SWING | SWING/AWT are part of J2SE |
Web GUI | ASP.NET | JSP | |
Web Scripting | ISAPI HttpHandler HttpModule | Servlet Filter | |
Web Application Hosting | Internet Information Server | Multiple (depends on vendor implementation) | J2EE examples include Apache Tomcat |
Interpreter | CLR | JRE | |
Server Side Business Logic Component | .NET Class or Serviced Component (COM+) | EJB Session Beans | |
Server Side Data Components 1 | Serviced Component with DB Logic | EJB with Bean Managed Persistence | |
Server Side Data Components 2 | ADO.NET Data Set | EJB with Container Managed Persistence | Only an approximate equivalence |
Directory Access | Active Directory Services Interface (ADSI) through LDAP | Java Naming and Directory Service (JNDI) through LDAP | LDAP compatibility makes switching between directory services very easy. |
Remote Invocation | .NET Remoting | RMI-IIOP | |
Data Access | ADO.NET | JDBC, SQL/J, JDO | |
Messaging | Microsoft Message Queuing | JMS | Microsoft Message Queuing is a product. JMS is a specification, and therefore requires an underlying implementation. |
Transactional Support | COM+/Distributed Transaction Controller (DTC) | JTA |