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){ public static void main(String[] args){ for(int i= 1; i<= 100; i++) System.out.println("Hello!"); } 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(+) vs. JSP ASP(+) can use Visual Basic, C#, and possibly other languages for code snippets. ASP(+) can use Visual Basic, C#, and possibly other languages for code snippets. JSPs use Java code (snippets, or JavaBean references), compiled into Java JSPs use Java code (snippets, or JavaBean references), compiled into Java Win Forms/Web Forms Vs Swing/Java Server Faces Win Forms/Web Forms Vs Swing/Java Server Faces
Microsoft.Net vs. J2EE - A technical Comparison Common Elements Concepts J2EE.NET Presentation JSP/Servlets ASP.NET Presentation JSP/Servlets ASP.NET Business Logic EJB/Servlets Code Behind, Remoted Classes Business Logic EJB/Servlets Code Behind, Remoted Classes Language Java C#, VB.NET Language Java C#, VB.NET Platform Any Windows Platform Any Windows DB Connectivity JDBC ADO.NET (OLE-DB, ODBC) DB Connectivity JDBC ADO.NET (OLE-DB, ODBC) Web Services JWSDP Web Services Web Services JWSDP Web Services MessagingJMSMTS MessagingJMSMTS Runtime JRE CLR Runtime JRE CLR Transaction JTA/JTS, XA Com+, DTC Transaction JTA/JTS, XA Com+, DTC Distributed computing RMI, CORBA, SOAP SOAP, DCOM Distributed computing RMI, CORBA, SOAP SOAP, DCOM XML Parser JAXP, Others Built-in (System.XML) XML Parser JAXP, Others Built-in (System.XML)
CriteriaJ2EE.NETComments Ease Of Use (Development Environment)******VB.net and C# are easier to use than J2EE Scalability*****Execute Java Code on Mainframe Single Language Multiple Platforms*****Java Can run on many platforms through the JVM Multiple Languages Single Platform*****VB,C#,J# all run in the same run-time environment Reliability******VB/Com developmen in 1993 Performance*** Equal Performance Speed of development****VB code easiar to learn Reuse****** Deploy saame code on multiple platforms and multiple projects Open Standards******Java, JVM are open standards Overall56%51% Microsoft.Net vs. J2EE Scorecard
A typical.NET Enterprise Solution A typical.NET Enterprise Solution SQL Server IIS on W2k Server.NET managed component ASP.NET Windows Client Browser
A typical J2EE Enterprise Solution DB Server Java App Server EJB Servlet JSP Java Client Browser
CLR Platform Other Server SOAP System.Directory RDBMS ADO.NET Message queue SOAP Client HTTP Client Other Resource ??? Comp. Services Component ASMX ASPX ASP.NET Controls.NET App CLR Host Component CLR Host IIS – HTTP Engine J2EE Server CORBA Server IIOP LDAP RDBMS SQL Message Queue JMS EJB Container RMI Client EJB Container IIOP Client JSPServlet Servlet Container HTTP Client Other Resource ??? HTTP Engine JDBC
Java Pet Store Lines of Code Required User Interface 4,410 Data Tier Middle Tier 2,865.NET Petshop 14,273 5,891 Configuration Total Lines of Code 710 5, ,566 Porting Java Pet Store (Example) to.NET
Microsoft.Net vs. J2EE Comparison CLR vs JVM C# Managed C/C++ Lots of other Languages VB.Net CLR CTS GC Security Runtime Services MSIL Windows OS Java JRE (JVM) GC Security Runtime Services Byte Codes MacUnixLinux Win Both are ‘middle layers’ between an intermediate language & the underlying OS
Microsoft.Net vs. J2EE Comparison JVM vs. CLR at a glance JVMCLR Managed execution environment XX Garbage Collection XX Metadata and Bytecode XX Platform-abstraction class library XX Runtime-level security XX Runs across hardware platforms X?
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