Microsoft .Net vs.
J2EE
Suresh Ramachandran Duke Energy
J2EE Enterprise Java
J2EE: Java 2 Enterprise Edition
Superset of Java 2 Standard Edition (J2SE) Adds enterprise features to Java Libraries
Defined through the Java Community Process (JCP) Wholly owned property of Sun Microsystems
J2EE Solutions vs Microsoft .Net Solutions
Similarities
Both multi-tiered, similar computing technologies Both support standards Both offer different tools & ways to achieve the same goal. A lot of parallelism can be seen. Very difficult to compare and qualify the comparison because each has its own advantages & disadvantages.
Microsoft .Net vs. J2EE Comparison Language
C# and Java both derive from C and C++.
MS says: C# combines the power of VC++ with the ease of usage of VB
Significant features include garbage collection, hierarchical namespaces) are present in both. Different Syntax but same result. Java runs on any platform with a Java VM. C# only runs in Windows for the foreseeable future. C# is implicitly tied into the CLR and is compiled entirely into native code. Java code runs as Java Virtual Machine and executes byte code
Microsoft .Net vs. J2EE Comparison Java vs. C#
// This is a comment in Java code class HelloWorld{ public static void main(String[] args){ for(int i= 1; i<= 100; i++) System.out.println("Hello!"); } } // This is a comment in C# using System; class HelloWorld{ static void Main(){ for(int i=1; i<=100; i++) Console.WriteLine("Hello"); } } }
Microsoft .Net vs. J2EE Comparison Presentation Layer
ASP(+) vs. JSP ASP(+) can use Visual Basic, C#, and possibly other languages for code snippets. JSPs use Java code (snippets, or JavaBean references), compiled into Java Win Forms/Web Forms Vs Swing/Java Server Faces
Microsoft .Net vs. J2EE - A technical Comparison Common Elements
Concepts Presentation Business Logic Language Platform DB Connectivity Web Services Messaging Runtime Transaction Distributed computing XML Parser
J2EE JSP/Servlets EJB/Servlets Java Any JDBC JWSDP JMS JRE JTA/JTS, XA RMI, CORBA, SOAP JAXP, Others
.NET ASP.NET Code Behind, Remoted Classes C#, VB.NET Windows ADO.NET (OLE-DB, ODBC) Web Services MTS CLR Com+, DTC SOAP, DCOM Built-in (System.XML)
Microsoft .Net vs. J2EE Scorecard
Criteria Ease Of Use (Development Environment) Scalability Single Language Multiple Platforms Multiple Languages Single Platform Reliability Performance Speed of development J2EE .NET Comments
** *** **** * ** *** *
**** ** * **** **** *** ***
VB.net and C# are easier to use than J2EE Execute Java Code on Mainframe Java Can run on many platforms through the JVM VB,C#,J# all run in the same run-time environment VB/Com developmen in 1993 Equal Performance VB code easiar to learn Deploy saame code on multiple platforms and multiple projects Java, JVM are open standards
Reuse Open Standards
**** *****
** *
Overall
56%
51%
A typical .NET Enterprise Solution
IIS on W2k Server Browser ASP .NET .NET managed component SQL Server
Windows Client
A typical J2EE Enterprise Solution
Browser
Java App Server Servlet EJB JSP Java Client
DB Server
RMI Client IIOP Client HTTP Client
HTTP Engine
EJB Container JMS EJB Container JSP Servlet Servlet Container J2EE Server
RDBMS Message Queue CORBA Server Other Resource
.NET App SOAP Client HTTP Client
IIS
HTTP Engine
Component Component Component CLR Host Component Component Component Comp. Services CLR Host ASMX Controls ASPX ASP.NET CLR Platform
RDBMS Message queue Other Server Other Resource
Porting Java Pet Store (Example) to .NET
15500 14000 14,273
Lines of Code Required
.NET Petshop
11500
Java Pet Store
9000
7500 4,410 5000 2,865 2500
5,891
5,404
2,566 710 761 412 74
Total Lines of Code
User Interface
Middle Tier
Data Tier Configuration
Microsoft .Net vs. J2EE Comparison CLR vs JVM
C#
VB Managed Lots of other .Net C/C++ Languages
Java Byte Codes JRE (JVM) GC Security Runtime Services
Mac
MSIL CLR CTS GC Security Runtime Services
Windows OS
Win Unix Linux
Both are middle layers between an intermediate language & the underlying OS
Microsoft .Net vs. J2EE Comparison JVM vs. CLR at a glance
JVM Managed execution environment X CLR X
Garbage Collection
Metadata and Bytecode
Platform-abstraction class library
Runtime-level security
Runs across hardware platforms
Microsoft .Net vs. J2EE Comparison In J2EE, not in .Net
Entity Beans Utility APIs like logging, preferences Public profiling APIs like JVMPI, JPDA
In .Net, not in J2EE
Server side control Serialization to XML Compilation to native code
.Net Disadvantages
Security
.NET better than prior frameworks (DNA, DCOM, ActiveX, etc.), but still based on Windows
Immaturity
Version 1.0 issues, likely to change in future Language changes for developers new to .NET
Application migration to .NET costly Not enough real world use yet to evaluate Vendor lock-in Future direction determined by Microsoft.
Choosing between Java/J2EE and .Net
The ultimate choice usually depends not on technical superiority, but on:
Cultural/religious/political preferences Customer preference Vendor relations Cost Platform Dependency Skill set of your developers
Questions