Upload
alan-gilbert
View
219
Download
0
Embed Size (px)
Citation preview
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
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 codeclass 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)
Criteria J2EE .NET Comments
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
Overall 56% 51%
Microsoft .Net vs. J2EE Scorecard
A typical .NET Enterprise Solution
SQLServer
IIS on W2k Server
.NET managed
componentASP.NET
WindowsClient
Browser
A typical J2EE Enterprise Solution
DB Server
Java App Server
EJBServlet
JSP
Java Client
Browser
CLR Platform
OtherServer
SOAP
System.Directory
RDBMSADO.NET
Messagequeue
SOAPClient
HTTPClient Other
Resource???
Comp. Services
ComponentComponentComponent
ASMXASPX
ASP.NET
Controls
.NETApp
CLR Host
ComponentComponentComponent
CLR Host
IIS –
HTTP Engine
J2EE Server
CORBAServer
IIOP
LDAP
RDBMSSQL
MessageQueueJMS
EJB Container
RMIClient
EJB Container
IIOPClient
JSP ServletServlet Container
HTTPClient Other
Resource???
HTTP Engine
JDBC
1400014000
75007500
90009000
50005000
25002500
1550015500
1150011500Java Pet StoreJava Pet Store
Lines of Code RequiredLines of Code Required
User User InterfaceInterface
4,410
Data TierData TierMiddle TierMiddle Tier
2,865
.NET Petshop.NET Petshop
14,273
5,891
ConfigurationConfigurationTotal Lines Total Lines of Codeof Code
710
5,404
761 412 74
2,566
Porting Java Pet Store (Example) to .NET
Microsoft .Net vs. J2EE Comparison CLR vs JVM
C# ManagedC/C++
Lots of otherLanguages
VB.Net
CLRCTS GC Security Runtime Services
MSIL
Windows OS
Java
JRE (JVM)GC Security
Runtime Services
Byte Codes
Mac Unix LinuxWin
Both are ‘middle layers’ between an intermediate language & the underlying OS
Microsoft .Net vs. J2EE Comparison JVM vs. CLR at a glance
JVM CLR
Managed execution environment X X
Garbage Collection X X
Metadata and Bytecode X X
Platform-abstraction class library X X
Runtime-level security X X
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