Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | leonore-rauner |
View: | 106 times |
Download: | 0 times |
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
1
Architektur Moderner
Internet Applikationen
22.-24.4.2004 TU Wien/Ausseninstitut
Enterprise Computing – Java und .NET
DI Christian Donnercd (at) donners.com
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
2
Warum der Vergleich Java und .NET?Warum der Vergleich Java und .NET?
Beide Plattformen zusammen teilen sich grob geschätzt wohl 90% Marktanteil im High-End Bereich
Wer eine große Anwendung in Enterprise-Segment entwickeln muß, kommt an dieser Frage nicht vorbei.
Enterprise bedeutet: Multi-tier, verteilt, Legacy-Anbindung, serviceorientiertPHP, Delphi etc. eher im Low-End Bereich angesiedelt
Viele Publikationen zu diesem Thema sind durch Vorurteile oder radikale Positionen verfärbt und liefern wenig Information.
Wir wollen hier, ohne auf Implementierungsdetails einzugehen, einen objektiven und unvoreingenommenen Vergleich vornehmen.
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
3
AgendaAgenda
Überblick über beide Plattformen
Technische Unterschiede und Parallelen
Organisatorische und andere Aspekte
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
4
Was verstehen wir unter „Java“?Was verstehen wir unter „Java“?
Eine Entwicklungsplattformdie Infrastruktur unter der Anwendung
Eine kontrollierte LaufzeitumgebungSicherheitSkalierbarkeit
Ein Marktingbegriff
Eine wachsened Anzahl von Spezifikationen und StandardsJ2EE bezeichnet die Enterprise-Features
Eine Reihe von Softwareprodukten unterschiedlicher Hersteller
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
5
Was verstehen wir unter .NET?Was verstehen wir unter .NET?
Eine Entwicklungsplattformdie Infrastruktur unter der Anwendung
Eine kontrollierte LaufzeitumgebungSicherheit, Skalierbarkeit, Transaction Management, Persistenz
Ein Marktingbegriff
Eher weniger ein Standard oder MarktMono: Open Source Initiative für .Net unter Linux
Ein Softwareprodukt von Microsoft
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
6
Was ist .Net noch alles?Was ist .Net noch alles?
Microsoft Marketing verbindet .NET mit vielen anderen Themenz.B. .Net Servers
.NET = Neuer, besser, schöner („brand name“)
Hand in Hand mit .NET geht der Versuch, Web Services als das neue Paradigma für verteilte Anwendungen zu etablieren
Die nächste Version vieler Produkte wird .NET nicht mehr im Namen haben (siehe Windows Server 2003)
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
7
Was ist .NET für den Rest der Welt?Was ist .NET für den Rest der Welt?
Eine Entwicklungsplattform mit Klassenbibliotheken und Tools
Java sowohl konzeptuell als auch im Detail sehr ähnlich
Microsofts Version von Java, nur „anders“
Das Zukünftige Windows
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
8
Was ist .NET aus der Sicht des Java-Lagers?Was ist .NET aus der Sicht des Java-Lagers?
Microsoft nahm die besten Ansätze von Java und formte daraus .NET
Dahinter verbergen sich die selben Ideen und ähnliche Features, aber eine Menge unterschiedlicher Designentscheidungen im Detail
Manche Bereiche wurden verbessert
.NET ist von Haus aus vollständiger als Java und bedarf nicht der Installation unzähliger Zusatzpakete.
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
9
Java aus der Sicht des .Net LagersJava aus der Sicht des .Net Lagers
Eine schwer zu überblickende Sammlung von Standards, die ständig geändert und erweitert wird
Es ist schwer bis unmöglich, zeitgemäße Benutzeroberflächen in Java zu entwicklen
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
10
Unterschiedliche PhilosophienUnterschiedliche Philosophien
Java – ein Standard:Eine Sprache, läuft überall
.NET – ein Produkt:Viele Sprachen, läuft nur auf Microsoft Plattform
Der Java-Ansatz über Standardisierung ist in der Praxis nicht ganz so ideal, wie es klingt, denn verschiedene Hersteller interpretieren Standards unterschiedlich. Daher bindet man sich zu einem gewissen Grad an einen Hersteller und verliert dabei an Portabilität.
Sun, Oracle, IBM, BEA
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
11
Eine .Net Architektur mit Web ServicesEine .Net Architektur mit Web Services
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
12
Eine JavaEine Java//J2EE Architektur mit Web ServicesJ2EE Architektur mit Web Services
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
13
Verfügbare ProgrammiersprachenVerfügbare Programmiersprachen
Java Platform:JavaViele andere Sprachen sind verfügbar, aber kaum relevant
.NETVB.NET
Einfach und produktiv
C#.NETNeu, “besser” als Java und C++
J#.NETSchneller Einstieg in .Net für Javaprogrammierer, aber ähnlicher C# als Java
C++.NETAm meisten Kontrolle über die Plattform
Andere Sprachen Dritthersteller implementieren beliebige andere Sprachen (z.B. Cobol.NET)
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
14
Unterschiede Java/C#Unterschiede Java/C#
PropertiesJava kennt einen Mechanismus zum Laden von Steuervariablen aus Dateien
DelegatesC# erlaubt den transparenten Aufruf verschiedener Methoden in unterschiedlichen Objekten, sofern sie als „delegate“ angeprochen werden
Value Types (structs)Java kennt nicht die Übergabe von Objekten als Parameter „by value“
UnsignedJava erlaubt nicht die Verwendung des Vorzeichenbits von bytes, shorts, ints und longs
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
15
Unterschiede Java/C# (2)Unterschiede Java/C# (2)
Auto-BoxingJava unterstützt erst ab 1.5 die automatische Umwandlung von Primitives in ihre Wrapperklassen (z.B. int -> Integer)
Explicit InterfacesEine Klasse implementiert Methoden eines Interfaces, die aber nicht direkt, sondern nur über das Interface aufgerufen werden dürfen
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
16
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
17
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
18
PerformancePerformance
intmath
longmath
doublemath trig I/O TOTAL
Visual C++ 9.6 18.8 6.4 3.5 10.5 48.8
Visual C# 9.7 23.9 17.7 4.1 9.9 65.3
gcc C 9.8 28.8 9.5 14.9 10.0 73.0
Visual Basic 9.8 23.7 17.7 4.1 30.7 85.9
Visual J# 9.6 23.9 17.5 4.2 35.1 90.4
Java 1.3.1 14.5 29.6 19.0 22.1 12.3 97.6
Java 1.4.2 9.3 20.2 6.5 57.1 10.1 103.1
Python/Psyco 29.7 615.4 100.4 13.1 10.5 769.1
Python 322.4 891.9 405.7 47.1 11.9 1679.0Quelle: Christopher W. Cowell-Shah, Nine Language Performance Round-up (http://www.osnews.com)
03.02.2004 Internet Applikationen – Java und .NetCopyright ©2003, 2004 Christian Donner. Alle Rechte vorbehalten.
19
Vielen Dank für Ihre Aufmerksamkeit!