220 likes | 610 Views
Microsoft .Net vs. J2EE. 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.
E N D
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 ComparisonLanguage • 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 ComparisonJava 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 ComparisonPresentation 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 J2EE .NET • Presentation JSP/Servlets ASP.NET • Business Logic EJB/Servlets Code Behind, Remoted Classes • Language Java C#, VB.NET • Platform Any Windows • DB Connectivity JDBC ADO.NET (OLE-DB, ODBC) • Web Services JWSDP Web Services • Messaging JMS MTS • Runtime JRE CLR • Transaction JTA/JTS, XA Com+, DTC • Distributed computing RMI, CORBA, SOAP SOAP, DCOM • XML Parser JAXP, Others Built-in (System.XML)
A typical.NET Enterprise Solution IIS on W2k Server SQL Server Browser .NET managed component ASP .NET Windows Client
A typical J2EE Enterprise Solution Java App Server DB Server Browser Servlet JSP EJB Java Client
System.Directory LDAP .NET App RMI Client RDBMS SQL Component Component RDBMS Component Component ADO.NET EJB Container Component Component JDBC IIS – HTTP Engine SOAP Client JMS Message queue Message Queue IIOP Client Comp. Services CLR Host EJB Container CLR Host CORBA Server IIOP Other Server SOAP ??? Other Resource ASMX HTTP Engine Controls HTTP Client HTTP Client JSP Servlet ASPX ??? ASP.NET Servlet Container Other Resource CLR Platform J2EE Server Architecture
Porting Java Pet Store (Example) to .NET 15500 Lines of Code Required 14,273 14000 .NET Petshop 11500 Java Pet Store 9000 7500 5,891 5,404 4,410 5000 2,865 2,566 2500 710 761 412 74 Total Lines of Code User Interface Middle Tier Data Tier Configuration
Microsoft .Net vs. J2EE ComparisonCLR vs JVM Java C# VB .Net Managed C/C++ Lots of other Languages Byte Codes MSIL CLR CTS GC Security Runtime Services JRE (JVM) GC Security Runtime Services WindowsOS Mac Win Unix Linux Both are ‘middle layers’ between an intermediate language & the underlying OS
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