Sei sulla pagina 1di 18

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

Potrebbero piacerti anche