Konzepte hinter Microsoft's.NET Ein Hauptseminarvortrag von Michael Voigt
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit 6.Java vs..net
1. Einleitung: Was ist.net? www.microsoft.com:.net is the Microsoft Web services strategy to connect information, people, systems, and devices through software
1. Einleitung: Was ist.net? www.microsoft.com:.net is the Microsoft Web services strategy to connect information, people, systems, and devices through software =>????
1. Einleitung: Was ist.net? www.microsoft.com:.net is the Microsoft Web services strategy to connect information, people, systems, and devices through software =>???? =>.NET = a) Markstrategie/Werbekampagne b) Technologie =>.NET Framework
1. Einleitung: Was ist.net? C# VB.NET....NET Framework C# Compiler VB Compiler... = Runtime Common Intermediate Language (CIL) führt aus Common Language Runtime (CLR) Plattformunabhängig Sprachübergreifend Betriebssystem
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Kommunikation mit der Außenwelt 5.Plattformunabhängigkeit 6.Java vs..net
2. Das.NET Framework Inhaltsübersicht 2.1. Commom Language Runtime (CLR) 2.2. Common Intermediate Language (CIL) 2.3. Common Type System (CTS) 2.4. Framework Class Libary (FLC) 2.5. Sprachen im.net Framework
2.1. Common Language Runtime (CLR) CLR = Sprachübergreifende Laufzeitumgebung C# VB.NET... C# Compiler VB Compiler... CLR leistet: Just In Time (JIT) Compilierung Garbage Collection Exception Handling gewährt Typsicherheit... Common Intermediate Language (CIL) führt aus Common Language Runtime (CLR) Betriebssystem
2.2. Common Intermediate Language (CIL) assemblernah C# VB.NET... nicht dumm => Metadaten: Typen Methoden Objekte... C# Compiler VB Compiler... Common Intermediate Language (CIL) führt aus Common Language Runtime (CLR) Betriebssystem
2.3. Common Type System (CTS) CTS = Typsystem der CIL => Vereinigung CTS CLS = Common Language Specification CLS CTS => Schnitt C# => sprachübergreifende Interoperabilität Fortran CLS J#
2.3. Common Type System (CTS) System.Object Werttypen Referenztypen selbstdef.: struct class vordef.: z.b. int z.b. String 9 18 14 'mensch' 'hund' 'dino' Stack Stack Heap
2.4. Framework Class Libary (FCL) Framework Class Libary System.Windows.Forms Threading Dateizugriff WebServices typische Algorithmen...
2.5. Sprachen im.net Framework 2.5.1. C# C# objektorientiert auf die CIL zugeschnitten keine eigene Klassenbibliothek FCL CIL CLR 2.5.2. Java bzw. J# J# voll kompatibel zu JDK 1.1.4 enthält vollständige Klassenbibliothek JDK FCL CIL CLR
2.5.3. Sprachen im.net Framework: Visual C++.NET = VC++ 7.0 Sonderstellung: Maschinencode C# J# C++ abwärtskompatibel zu VC++ 6.0 C# Compiler J# Compiler C++ Compiler gemischtes Modul managed extensions Common Intermediate Language Common Language Runtime (CLR) Maschinencode Betriebssystem
2.5.4. (unvollständige) Liste von weiteren.net Sprachen Ada APL AsmL CAML Cobol Delphi Forth Eiffel Fortran Haskell Lisp Lua Mercury Mixal ML Mondrian Nemerle Oberon Pascal Perl PHP Prolog Python RPG Ruby Ruby Scheme Smalltalk
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit 6.Java vs..net
3. Threading unter.net Inhaltsübersicht 3.1. Konzept 3.2. Implementierung unter Windows 2000/XP
3.1. Threading unter.net Konzept AppDomain AppDomain soft thread soft thread CLR BS Prozess 1 CLR BS Prozess 2 AppDomain ~ BS Prozess soft thread ~ BS Thread ( hard thread )
3.1. Threading unter.net Konzept AppDomain 1 soft thread 1.1 AppDomain 2 soft thread 2.3 soft thread 2.2 soft thread 2.1 AppDomain 3 soft thread 3.2 soft thread 3.1 CLR BS Prozess AppDomain ~ BS Prozess soft thread ~ BS Thread ( hard thread )
3.2. Threading unter.net Implementierung unter Windows 2000/XP AppDomain 1 AppDomain 2 AppDomain 3 BS Thread 3 soft thread 2.3 BS Thread 2 soft thread 2.2 soft thread 3.2 BS Thread 1 soft thread 1.1 soft thread 2.1 soft thread 3.1 CLR BS Prozess
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit 6.Java vs..net
4.1. ASP.NET 4.2. WebServices 4. Anwendungen
4.1. Anwendungen ASP.NET ASP.NET FCL dynamische Websites code behind HTML Browser ASP.NET.NET Programm Client HTML Server
4.2. Anwendungen WebServices SOAP Server Server XML entfernter Methodenaufruf via HTTP
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit 6.Java vs..net
5. Plattformunabhängigkeit Inhaltsübersicht 5.1. ECMA Standards 5.2. Mono
5.1. ECMA Standards C# C# Compiler ECMA 334 FCL Common Intermediate Language (CIL) führt aus Common Language Runtime (CLR) ECMA 335
5.2. Mono ECMA Standards + mehr Windows, Linux, Mac Gtk# Juni 2004: Mono 1.0 C# 1.0 Java WebServices IDE: Monodevelop Doch große Mängel: z.b. System.Windows.Forms Ziel: Q2 2006: Mono 2.0 komplettes.net Framework 2.0
5.2. Mono Völcker Informatik AG Matthias Bauer, Head of Development: We found Mono to be very stable and easy to learn. It s a commercial grade development platform that really works. Using Mono was the only way for us to leverage our existing software and give our customers what they need on Linux.
Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit 6.Java vs..net
6. Java vs..net Inhaltsübersicht 6.1. Gemeinsamkeiten 6.2. Unterschiede
6.1. Java vs..net Gemeinsamkeiten Java (JVM).NET virtueller Zwischencode/VM JA JA Objektorientierung JA JA Garbage Collection JA JA Typsicherheit JA JA WebServices JA JA Dynamische Webpages JSP ASP.NET
6.2. Java vs..net Unterschiede Java (JVM).NET Plattformunabhängigkeit Realität bedingt Sprachunabhängigkeit th. möglich Realität Performance < Bytecode/CIL Größe < Betriebssystemintegration schwach mittel unsicherer Code NEIN JA imperative Prog. Sprachen NEIN/schlecht JA Kompilierung Interpreter, JIT JIT
Quellen [1] Ralph Wesphal:.NET kompakt. Spektrum Akademischer Verlag, 2002 [2] Don Box with Chris Sells: Essential.NET. Volume 1. The Common Language Runtime. Addison Wesley, 2002 [3] Jeffrey Richter: Applied.NET Framework Programming, chapter 1. Microsoft Press, 2002 [4] Peter Drayton, Ben Albahri & Ted Neward: C# in a nutshell, Deutsche Übersetzung, insbes. Kapitel 1. O'Reilly Verlag GmbH & Co. KG, 2003 [5] Betrand Meyer:.NET Is Coming. In: Software Technologies, August 2001
Quellen [6] Jeremy Singer: JVM versus CLR: A Comperative Study. University of Cambrigde Computer Laboratory, 2003 [7] Chad Vawter and Ed Roman: J2EE vs. Microsoft.NET. A comparison of building XML based web services. Middleware Company, 2001 [8] White Paper: Microsoft.NET or Java Enterprise Edition: Is it just a question of platforms and languages? CGI Group Inc., 2004 [9] www.mono project.com [10] Kein Autor angegeben: Völcker Informatik AG. Succes Story. In: Zeitschrift von www.novell.com, 2004