30
© namics Seite 1 Frankfurt, Hamburg, Konstanz, St.Gallen, Zug, Zürich team–based net solutions www.namics.com .NET vs. J2EE: In welche Plattform investieren? IEX 2003 | Seminar d-9 Donnerstag, 6. Februar 2003 Andreas Göldi, CEO, namics ag Jürg Stuker, CTO, namics ag Agenda » Einführung » Evaluationskriterien Kosten Architektur Plattformneutralität Plattformreife Skalierbarkeit Der „Sprachenstreit“ » Fazit und Ausblick

NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 1

Frankfurt, Hamburg, Konstanz, St.Gallen, Zug, Zürich

team–based net solutionswww.namics.com

.NET vs. J2EE: In welche Plattform investieren?IEX 2003 | Seminar d­9

Donnerstag, 6. Februar 2003

Andreas Göldi, CEO, namics agJürg Stuker, CTO, namics ag

Agenda

» Einführung

» Evaluationskriterien– Kosten– Architektur– Plattformneutralität– Plattformreife– Skalierbarkeit– Der „Sprachenstreit“

» Fazit und Ausblick

Page 2: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 2

Einführung

Die lange Geschichte der IT­Konflikte:z.B. Mainframe vs. Client/Server

vs.

Page 3: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 3

Die lange Geschichte der IT­Konflikte:z.B. OS/2 vs. Windows

vs.

Ist J2EE vs. .NET wirklich wieder so einewichtige Entscheidung?

» Ja, denn...– es geht um beträchtliche IT­Investitionen– es geht um den Kern jeder modernen IT­Strategie– diese beiden Plattformen beherrschen schon jetzt

85% der geplanten Applikationsinvestitionen– die Entscheidung wird jahrelange Konsequenzen

für jedes Unternehmen haben

Page 4: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 4

Keine Äpfel mit Birnen vergleichen!

» „Java“ist eine sehr umfassende Spezifikation.Implementiert wird diese durch alle namhaftenSoftwarehersteller (ausser Microsoft)

» „.NET“ist eine Basisframework und Produktfamiliedes einen Herstellers Microsoft

» Eigentlich „SUN ONE“vs „Microsoft .NET“, da J2EEnur eine Gruppe von Java Standards zusammenfasst­­> Im folgenden sind die Begriffe J2EE, Java undSUN ONE synonym genutzt.

– http://www.sun.com/software/sunone/– http://www.microsoft.com/net/

J2EE (Java 2 Enterprise Edition) ist nur einTeil von SUN ONE

HotSpot JVM KVM

Java Language

Java 2Enterprise

Edition(J2EE)

Java 2StandardEdition(J2SE)

Java 2 Micro Edition

Card VM

Page 5: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 5

.NET: Neuste Stufe derMicrosoft­Plattform­Evolution

MS­DOS

Windows

Windows DNA

.NET

Stand­alone

PC

Client/server

Internet

Webservices

19901994

19982000

2002

1988

Quelle: Gartner

.NET ist ein Framework und ein Schwallvon Serversoftware und SW­Produkten

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# JScript …

Page 6: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 6

Gemeinsamkeiten

» 3­Tier­Architektur

» Komponentenorientiert,optimiert für verteilte Architekturen

» Netzwerkorientierung:Internet als zentrale Infrastruktur

» Web­Browser als primäres User Interface;„Rich Clients“als sekundäres User Interface

Presentation Layer

Business Logic Layer

Data Layer

(Web Browser Client)

Sind die beiden überhaupt vergleichbar?

J2EE:Plattform­Spezifikation

.NET:Basis­Framework,

Gruppe von Produkten

Sprache:Java

Betriebssystem:fast alle

Komponentenmodell:(Enterprise) Java Beans

Toolhersteller:Sun, BEA, IBM, Oracle, Borland, ...

Sprachen:C#, VB, C++, ...

Betriebssystem:Windows

Komponentenmodell:.NET (Web) Services/COM+

Toolhersteller:Microsoft

ð Die Ansätze sind sehr verschieden, aber das grundsätzliche Ziel ist gleich:wichtigste Plattform für Applikationsentwicklung werden.

Page 7: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 7

Evaluationskriterien

Kriterien für die Evaluation

Kosten» Plattform­Investitionen» Ausbildungskosten» Entwicklungskosten» Pflegekosten für Applikationen

Möglichkeiten» Entwicklung von E­Business­

Anwendungen und „klassischer“Unternehmensanwendungen

» Neue Arten von Anwendungen,z.B. Web Services

Äusseres Umfeld» Reifegrad» Skalierbarkeit/ Ausbaufähigkeit» Verfügbarkeit von Entwicklern und Support» Auswahl an Produkten

Unternehmensinternes Umfeld» Bestehendes Know­How» Bisherige IT­Strategie

Page 8: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 8

Möglichkeiten: Kurz im Überblick

» Grundsätzlich:Beide gleichermassen geeignet für Entwicklunganspruchsvoller Applikationen

» Differenzierungsfaktoren:

J2EE» Herstellerunabhängigkeit» Plattformunabhängigkeit:

„Write once, run anywhere“

.NET» Alles aus einer Hand» Web Services voll eingebautà Integration über Internet

» Sprachunabhängigkeit

Die Kostensituation

Page 9: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 9

Typische Kostenaufteilung für grosseEntwicklungsprojekte

Quelle: Gartner, namics Research

Kapital­Investitionen:

Systeme,Software­lizenzen

15­20%

Entwicklungs­kosten

50­60% Pflege1. Jahr

20­35%

Pflege2. Jahr

20­35%

Pflege3. Jahr

20­35%

ð Die Initialinvestitionen machen nur einen relativ geringen Teil derGesamtkosten aus.

ð Wichtiger sind eine effiziente Entwicklung und Verringerung der Pflegekosten!

Kosten

Zeit

Kapitalinvestitionen

Visual Studio .NETverschiedensteTools

integriertVon versch.Herstellern, eherteuer

Application Server

Derzeit nurWindows

DiverseBetriebssystem

Intel­PCsDiverse, von Intel­PCs bis High­End­Unix­Servern

Hardware

.NETJ2EE

ð Kein eindeutiger Vorteil für eine der Plattformenð Möglicher Kostentreiber bei J2EE: Application Server­Lizenzen. Oft auch

anspruchsvollere Hardware erforderlich

Page 10: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 10

Entwicklungskosten

MittelHochKosten für externeDienstleister

Relativ gut, da auchmit VB etc.benutzbar.

Eher knappVerfügbarkeit vonEntwicklern

Von Anfang an rechthoch, steigt aberlangsamer

Anfangs ehergering, steigend

Entwickler­produktivität

Mittel; höher fürkomplexere .NET­Anwendungen

HochNötiger Skill­Levelder Entwickler(=Lohnkosten)

.NETJ2EE

ð J2EE verursacht in der Entwicklung tendenziell die höheren Kosten.ð Der Einstieg bei .NET ist leichter und billiger, für anspruchsvolle Projekte

steigen die Kosten aber in Java­Regionen.

Maintenance­Kosten

traditionell ehergering, sollte mit.NET steigen

hochErweiterungs­freundlichkeit

traditionell rechtgering, sollte mit.NET steigen

hochWiederverwertbar­keit von Code

oft „pragmatische“Architektur, daherschwierig

komplex, dahernicht immer optimal

Pflegefreundlichkeitder Applikationen

mässig bis mittelmittel bis hochSystem­Stabilität

.NETJ2EE

ð In Bezug auf Erweiterbarkeit und Wiederverwendbarkeit hat J2EE klare Vorteile;.NET ist den Beweis hier noch schuldig.

ð Systemstabilität: Bei Microsoft oft geringer durch vermiedenen Wartungsaufwand

Page 11: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 11

Kostensituation: Fazit

» J2EE:– Eher für grosse, langfristig angelegte Projekte

geeignet– Rentabilität wird langfristig durch niedrigere

Pflegekosten und bessere Wiederverwertbarkeiterreicht.

» Microsoft .NET– Eignet sich besser für Projekte mit kurzen

Payback­Zeiträumen– Dafür: langfristige Pflege eher aufwendiger– Tatsächliche Konsequenzen aller neuen

Elemente schwer vorhersagbar

Verfügbarkeit von Entwicklern

COBOL

Visual Basic

C++

Java1Mio

2Mio

3Mio

2000 2001 2002 2003 2004 2005

C# ?

AnzahlProgrammierer

weltweit

Quelle: Gartner

ð Die Verfügbarkeit von Entwicklern für die jeweiligen Kernsprachen istgrundsätzlich gut, mit Ausnahme von C#.

ð Externer Support ebenfalls bei beiden ausreichend vorhanden.

Page 12: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 12

Entwickler: Wie beschaffen und ausbilden?

» Lohnkosten:– Erfahrene Java­Entwickler kosten ca. 30­50% mehr als äquivalente

Entwickler im Microsoft­Umfeld.

» Fortbildungskosten (Schätzungen):

VB/ASP Java/J2EECa. 8 Monate, 35­50kCHFVB/ASP .NET mit C#Ca. 6 Monate, 30­40kCHFVB/ASP .NET mit VBCa. 4 Monate, 20­30kCHF

VorhandeneSkills ZielskillsDauer bis volle Produktivität, Schulungskosten

C++ Java/J2EECa. 4 Monate, 25­35kCHFC++ .NET mit C#Ca. 3 Monate, 20­30kCHF

Quelle: Gartner, namics Research

Die Architektur

Page 13: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 13

Datenbanksystem

Architekturübersicht J2EE

Fat Clients(Applets: Swing, AWT)Business Partners Light Client

(Webbrowser)Small Clients

Mobile, PDA etc.

F I R E W A L L

JVM

Servlet Java Server Pages (JSP)

Enterprise Javabeans (EJB)

Legacy Systeme Business Partners

SOAP,ebXML etc.

RMI overIIOP

HTTP HTTP

??? SOAP,ebXML etc.

SQL

Connector APIJDBC

„Dienste“ Datenhaltung

Architekturübersicht .NET

Fat Clients(win32, Win Forms)Business Partners Light Client

(Webbrowser)Small Clients

Mobile, PDA etc.

F I R E W A L L

CLR

ASP.NET

Legacy Systeme Business Partners

.NET Managed Components

SOAP,ebXML etc.

HTTP HTTP HTTP

??? SOAP,ebXML etc.

SQL,  OLE DBSOAP

Host IntegrationServer.NETADO.NET

Page 14: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 14

.NET Objekt A

.NET Objekt B managed(.NET)

Architekturdetail:Integration von Serviceobjekten

.NET Client

.NET

Komponente für A(COM+ in Wrapper)

unmanagedcom+

Komponente für B(COM+ in Wrapper)

EJB Session A

EJB Session A

managed

Java Client

J2EE

RM

I/IIOP

JTA/JTS

JMS

Java Mail

JND

I

JAAS

Die Basisklassen

Page 15: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 15

.NET Framework Namespace

System

System.Data System.Xml

System.Web

GlobalizationDiagnosticsConfigurationCollections

ResourcesReflectionNetIO

ThreadingTextServiceProcessSecurity

DesignADO

SQLTypesSQL

XPathXSLT

RuntimeInteropServicesRemotingSerialization

Serialization

Configuration SessionStateCaching Security

ServicesDescriptionDiscoveryProtocols

UIHtmlControlsWebControls

System.Drawing

ImagingDrawing2D

TextPrinting

System.WinForms

Design ComponentModel

Mögliche Entsprechungen bei J2EE für den.NET Framework Namespace

System

System.Data System.Xml

System.Web

GlobalizationDiagnosticsConfigurationCollections

ResourcesReflectionNetIO

ThreadingTextServiceProcessSecurity

DesignADO

SQLTypesSQL

XPathXSLT

RuntimeInteropServicesRemotingSerialization

Serialization

Configuration SessionStateCaching Security

ServicesDescriptionDiscoveryProtocols

UIHtmlControlsWebControls

System.Drawing

ImagingDrawing2D

TextPrinting

System.WinForms

Design ComponentModel

Servlet / JSP

JDBC JAXP

Java Core API

Applet / Swing / AWT

Java 2D

Page 16: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 16

Alles Klassen­APIs von J2EE

Demokratie bei JAVA: Der CommunityProcess (http://jcp.org/)

Page 17: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 17

Und der Entscheidungsprozess beiMicrosoft ;­)

Aber auch: http://research.microsoft.com/

Web Services

Page 18: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 18

Web Services: Übersicht

» Elemente– Aufruf von Softwarekomponenten auf entfernten

Servern: SOAP (XML plus HTTP[s])– Schnittstellen­ und Methodenbeschreibung:

WSDL– Verzeichnisdienst: UDDI

» Funktioniert im verteilten Umfeld:– Im Unternehmen (LAN/WAN)– Zwischen Unternehmen per Internet

» Definiert von Microsoft, basierend auf offenenW3C­Standards

ð Begriff wurde von Microsoft für .NET geprägt, Web Services basieren aber aufoffenen Standards und sind darum in beiden Welten verfügbar.

Der bekannteste Web Service:Microsoft Passport

» Zentrale Userverwaltungs­Infrastruktur für dezentraleAnwendungen

» Stark gestützt von Microsoft mitHotmail, Windows XP undanderen Produkten

» Integriert in alle MicrosoftEntwicklungsumgebungen undServer

» War zentraler Baustein der .NETMy Services (Hailstorm)­Strategie

» Microsoft begegnet Kritik mitVersuch einer Dezentralisierung

Page 19: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 19

Web Services: Bewertung

Vorteile:

» Vielversprechender Ansatz für dieVernetzung im und zwischenUnternehmen

» Denkbare neue Businessmodelle:Leistungen als kostenpflichtigeWeb Services anbieten

» Basiert auf offenen Standards,daher universell einsetzbar

Nachteile:

» Noch sehr unreife Technologie

» Viele Fragen offen: Performance,Sicherheit, Interoperabilität, ...

» Echter Nutzen entsteht erst, wennentsprechende Geschäftsprozessevorhanden sind

» Unklare Businessmodelle

ð Web Services dürften vor 2003/04 kaum eine echte Bedeutung fürmissionskritische Anwendungen erlangen. Experimente lohnen sich aber jetztschon.

ð Microsoft hat einen gewissen Vorsprung, der aber kaum lang anhalten dürfte.

Plattformneutralität

Page 20: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 20

.NET = Windows und J2EE = alles?

» Mit Rotor gibt es eine Betaversion der C# und JScript.NETCompilers und der CLI (Common Language Infrastructure) fürOpen BSD Unix von Microsoft als Shared Source.

– Get Your Rotor Running:http://research.oreilly.com/pub/a/dotnet/2002/03/27/gettingstarted.html

– Uncovering Rotor ­­ A Shared Source CLI:http://research.oreilly.com/pub/a/dotnet/2002/03/04/rotor.html

» http://www.go­mono.com/ versucht das gesamte .NETFramework als Open Source für Linux zu implementieren.

» Auch kommerzielle Anbieter implementieren das .NETFramework: http://www.stryon.com/products.asp

» Die Clientseite ist faktisch fast ausschliesslich Windows

Java WORA (write once run anywhere)?

» Die Java Virtual Machine stellt dieKompatibilität sicher...

» Aber: „Zusatzfunktionen“bei J2EE Serverreduzieren Portierbarkeit

– Clustering– Load Balancing mit Session Failover– Deployment­Mechanismen– etc.

» Softwareverteilung bei Java: Nicht immer soautomatisch wie versprochen...

Page 21: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 21

„Öffnung“von .NET?

» Standardisierung von zwei zentralen Elementen beiECMA gemeinsam mit HP und Intel

» C#– http://www.ecma.ch/ecma1/STAND/ecma­334.htm

» CLI (Common Language Infrastructure)– http://www.ecma.ch/ecma1/STAND/ecma­335.htm

» Baldige Übernahme durch ISO angestrebt– ISO/IEC 23270 (C#)– ISO/IEC 23271 (CLI)– ISO/IEC 23272 (CLI TR)

Autorisierte Lizenznehmer von J2EE(http://java.sun.com/j2ee/licensees.html)

» ATG» BEA Systems» Borland Corp.» BroadVision» Brokat» Cape Clear Software» Compaq» DataDirect Technologies» Fujitsu» Fujitsu Siemens

Computers» Hewlett­Packard» Hitachi» IBM» Interworld» IONA Technologies» Macromedia» MERANT

» NEC» Nokia» Oracle Corporation» Persistence Software, Inc.» Pramati» SAP» SAS Institute, Inc.» Secant» SilverStream» Sonic Software

Corporation» SpiritSoft» SUN» Sybase, Inc.» TIBCO Software Inc.» Tmax Soft» Trifork Technologies rot/bold =

zertifiziert fürVersion 1.3

Page 22: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 22

Die Plattformreife

Java gibt es seit 1995

Page 23: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 23

und Microsoft gibt es seit…

» Microsoft = COM (aus Präsentation von Don Box)– 1988: Seed work for COM began inside MS.

Influenced by prior work done in Smalltalk, C++, andOSF Distributed Computing Environment (DCE)

– 1993: First public release of COM as part of OLE 2.0SDK

» Wer war des erste? Ist kaum wichtig.

» Aber:– Wer kennt die Kundenbedürfnisse?– Wer agiert am geschicktesten?– Wer verkauft sich besser?– etc.

» Oder: Wer war der Erste mit einem gutenWebbrowser…

Skalierbarkeit

Page 24: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 24

Die Skalierbarkeits­Legende (1 von 2)» Gängiges Vorurteil:

Microsoft nicht geeignet für grosse e­Business­Systeme, Java schon.

ð J2EE­Hersteller stellen sich bisher keinem objektiven Benchmark!ð Auch noch keine Angaben für neue .NET­Plattform, erst „alte“MS­Technologie.

Die Skalierbarkeits­Legende (2 von 2)

» Diverse sehr grosse Installationen auch  auf MS­Plattformen:

ð Auf beiden Plattformen lassen sich hochskalierbare Anwendungen bauen,vergleichbaren Aufwand und Skill­Levels vorausgesetzt.

Page 25: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 25

Zwei Kinder streiten: Der Pet Store

» Pet Store ist eine Referenzanwendung vonSUN zum Einsatz der J2EE Technologie(http://developer.java.sun.com/developer/releases/petstore/)

» Die Anwendung war nie als Benchmark aberals Lernbeispiel für gedacht ­­ dennoch würdePet Store von Oracle für 9i aber dazuverwendet…

» Im November 2001 implementiert Microsofteinen funktional identischen PetStore in .NETTechnologie …

… und vergleicht gegen einen bestehendenTest mit Oracle9iAS (dann ging es weiter).

Quellen: http://www.gotdotnet.com/team/compare/ undhttp://www.middleware­company.com/j2eedotnetbench/

1500015000

75007500

10,00010,000

50005000

25002500

1750017500

1250012500

Implementing Sun’s Java Petstore with Microsoft .NETImplementing Sun’s Java Petstore with Microsoft .NET

J2EE Pet StoreJ2EE Pet Store

Lines of Code Required

UserUserInterface TierInterface Tier

3,4843,484

Data TierData TierMiddle TierMiddle Tier

1,8811,881

.NET Pet Shop.NET Pet Shop

14,27314,273

5,8915,891

ConfigConfigTotal LinesTotal Linesof Codeof Code

863863

5,4045,404

684684 412412 5656

2,5662,566

Response Time vs. User Load

0

0.2

0.4

0.6

0.8

1

1.2

0 500 1000 1500 2000 2500 3000 3500 4000

User Load

Per

 Pag

e  A

vg. R

espo

nse 

Tim

e (s

econ

ds)

.NET Response Timewith Output Caching

.NET Response Timewith no OutputCaching

J2EE Response Time

Der „Sprachenstreit“

Page 26: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 26

Der „Sprachenstreit“

» J2EE baut auf einer einzigen Sprache auf: Java

» .NET ist von Grund auf mehrsprachig konstruiert– C# als neue (wichtigste) Sprache als ECMA­33 Standard

anerkannt (http://www.ecma.ch/)– VB.NET (eigtl. Visual Basic 7), Managed C++, JScript.NET– weitere Sprachen von Microsoft oder von Drittanbietern:

J#, PERL, APL, COBOL, Eiffel, Fortran, Haskell etc.

» Die Herausforderung ist nicht der Bytecode Compiler (dagibt auch für JavaVM verschiedene Sprachen) sonderndie Interoperabilität auf Klassenebene während derLaufzeit (ohne Linking).

– Dazu haben alle .NET Sprachen das selbe Typensystemund nutzen die selbe Basisklassen

Hallo

// Ich bin C++#include <iostream.h>int main(){for(int ii = 1; ii <= 100; ii++)

cout <<"Hallo, " << ii << " mal. " << '\n';}

// Ich bin C#using System;class HelloWorld{static void Main(){for(int ii = 1; ii <= 100; ii++)

Console.WriteLine(" Hallo, {0} mal. ", ii);}

}

// Ich bin Javaclass HelloWorld{public static void main(String[] args){

for(int ii= 1; ii <= 100; ii++)System.out.println(" Hallo, " + ii  + " mal.");

}}

Page 27: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 27

Java vs C#

» Java und alle (managed) .NET­Sprachen sind typen­ undpointersicher

» Java und C# sind objektorientiert

» Aus Java und alle .NET­Sprachen wird bei der Kompilation einplattformneutraler Zwischencode (Bytecode resp. MSIL)erzeugt

» Die virtuellen Maschine resp. der JIT unterscheiden sich stark:– Java

– war ursprünglich für clientseitige Applets gedacht und daher ist derZwischencode für die JVM auf Interpretation ausgelegt

– ist isolierter als die .NET­Sprachen von Betriebssystem als .NETbspw. Speicherzugriffe

– .NET Sprachen– werden durch die CLR ausschliesslich kompiliert (verschiedenen

Compiler JIT, EconoJIT und NGen und Übersetzungszeitpunkte)– http://students.infoiasi.ro/~microsoft/articole/download/

virtual_machines.pdf

Braucht es mehrere Sprachen?

» Programmierer­Religion oder in gewissen Anwendungsfälleneine optimale Auswahl (Technology Follows Function)

» .NET lässt das Zusammenspiel zwischen un­ und sicheremCode zu und ermöglich somit modulare Migrationen

class TestClass{static unsafe void PerformOperation (int* x){

*x = 99;}

public static unsafe void Main(){

int a = 1;System.Console.WriteLine("before a:"+a);PerformOperation (&a);System.Console.WriteLine("after a:"+a);

}}

Page 28: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 28

Fazit und Ausblick

Zusammenfassung

.NET

» Architektur– Alt und neu aber alles drin

» Basisklassen– Eher knapp dafür übersichtlich

» Plattformneutralität– Serverseite: Kommt evt.– Clientseite: Favorit

» Maturität– Jung, Schlau und Flink

» „Sprachenstreit“– Handlungsfreiraum

J2EE

– „Perfekt“, evt. zu sauber

– Sehr mächtig, hoher Lernaufwand

– Serverseite: Ja, bewiesen– Clientseite: Ohne Erfolg

– Bewährt mit viel Energie

– Eher eine Einschränkung

Page 29: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 29

Applikationsportfolio und Entwicklungs­technologien: die nächsten drei Jahre

Stabilitätder Technologie

Komplexität/Wichtigkeit des Systems

Innovationsprojekte

Missionskritische,stabilitätsorientierteEntwicklungsarbeit

Host undTrad. C/S

Javabisher

MicrosoftWeb­Techn.„klassisch“

J2EE.NET

Welche Plattform einsetzen?

» Fast alle grösseren Unternehmen werden inden nächsten Jahren beide Welten paralleleinsetzen.

– Desktop­Welt/PC­Server: Microsoft­zentriert– Enterprise­Applikationen: Immer mehr Java

» Integrationsfähigkeit wird zum Schlüssel– Grosse Hoffnung auf Web Services– Aber: Bisher wenig gute Antworten zur

Integration von Legacy Systems

» Langfristige Vision:Plattformunabhängige, serviceorientierteSoftwareinfrastrktur

Page 30: NET€vs.€J2EE:€In€welche Plattform investieren? · » „.NET“ist€eine€Basisframework€und€Produktfamilie des€einen€Herstellers€Microsoft » Eigentlich€„SUN€ONE“vs

© namics Seite 30

Wichtigste Aufgaben für IT­Management

» Entscheidend:Klare Definition der strategischen Hauptplattform,dort Hauptinvestitionen konzentrieren

» Typische Migrationspfade:– Microsoft VB / ASPà .NET– Unix, C++, CORBA, Javaà J2EE

» Kriterien für projektspezifische Technologiewahlaufstellen

– Taktische Ausnahmen zulassen, aber begründet

» Integrationsfähigkeit in jedem Projekt sicherstellen

Frankfurt, Hamburg, Konstanz, St.Gallen, Zug, Zürich

team–based net solutionswww.namics.com

Vielen Dank für Ihre Aufmerksamkeit!Seminarunterlagen: http://www.namics.com/knowledge

Besuchen Sie uns am Stand 145 in der Halle 5 und gewinnen Sie!

[email protected]@namics.com