18
Microsoft .Net vs. J2EE

Microsoft.Net vs. J2EE. J2EE – Enterprise Java J2EE: Java 2 Enterprise Edition Superset of Java 2 Standard Edition (J2SE) Adds enterprise features

Embed Size (px)

Citation preview

Page 1: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

Microsoft .Net vs. J2EE

Page 2: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 3: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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.

Page 4: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 5: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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");  }}

}

Page 6: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 7: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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)

Page 8: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 9: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

A typical .NET Enterprise Solution

SQLServer

IIS on W2k Server

.NET managed

componentASP.NET

WindowsClient

Browser

Page 10: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

A typical J2EE Enterprise Solution

DB Server

Java App Server

EJBServlet

JSP

Java Client

Browser

Page 11: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 12: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 13: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 14: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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 ?

Page 15: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 16: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

.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.

Page 17: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

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

Page 18: Microsoft.Net vs. J2EE. J2EE – Enterprise Java  J2EE: Java 2 Enterprise Edition  Superset of Java 2 Standard Edition (J2SE)  Adds enterprise features

Questions