Microsoft .NET Überblick Matthias Nübling Gliederung Was ist Microsoft .NET ? Überblick wichtiger .NET-Technologien Common Language Runtime .NET Framework ADO.NET Windows Forms Web Forms mit ASP.NET Web Services Visual Studio .NET Was ist Microsoft .NET ? Eine Vision der Weiterentwicklung von Informationstechnologien Eine Software-Plattform, welche die Vision aus technischer Sicht unterstützt Ein Geschäftsmodell mit dem Ziel, Software als Services bereitzustellen .NET Vision Web-Services als Programmiermodell für verteilte, internetbasierte Anwendungen „Software as a service“ Vielfältige intelligente Endgeräte, die den PC ergänzen Individualisierbare, adaptive Benutzerschnittstellen Vereinfachung der Softwareentwicklung .NET Plattform .NET Plattform .NET Tools Visual Studio .NET Inhalt dieser Vorlesung .NET Framework Common Language Runtime Einheitliche Klassenbibliothek .NET Enterprise Server Microsoft Server Produkte (Windows Server, Biztalk Server, Commerce Server, SQL Server, ...) .NET Building Block Services Verteilte, ständig verfügbare WebServices (Authentication, Notification, Messaging, Search, Calendar,...) .NET Devices Software für intelligente Endgeräte Web Service Web Service Verzeichnis von Web Services entsprechend der “Gelben Seiten” Web Services sind gemäß ihrer Methoden und deren Parameter definiert Web Services Benutzer können XML Nachrichten senden und empfangen Nutzt offene Internet Protokolle Eine programmierbare Anwendungseinheit auf die über standardisierte Webprotokolle zugegriffen wird. UDDI Universal Description, Discovery, and Integration WSDL Web Services Description Language SOAP XML & HTTP Evolution der Internet-Applikationen HTML, XML HTML HTML HTML, XML 1. Generation Statische Seiten 2. Generation Dynamische Seiten 3. Generation Web Services .NET Ziele Vereinfachung der Entwicklung Web Services Web-Applikationen Anwendungen für mobile Endgeräte Desktop-Anwendungen Unterstützung von Web Standards z = object.method(x,y) http://service/method?x&y <xml> returnvalue </xml> Client Web Service ! .NET Ziele Einheitliches Programmiermodell für unterschiedliche Programmiersprachen C#, VB.NET, C++, J#, ... für unterschiedliche Anwendungstypen Desktop Anwendungen Web Applikationen Web Services Anwendungen für mobile Endgeräte " Einheitliches Programmiermodell Konsistentes sprachunabhängiges API .NET Framework VB Forms MFC/ATL ASP Windows API "" .NET Ziele Robuste und sichere Laufzeitumgebung Vereinfachung der Installation Interoperabilität Plattformunabhängigkeit Komponentenkonzept " .NET Framework und Tools ! " # ASP.NET und XML Web Services $# % Windows User Interface ADO.NET: Data und XML ! & '( ) .NET Framework Base Class Library Common Language Runtime " Common Language Runtime (CLR) Einheitliche Laufzeitumgebung Stellt Dienste zur Verfügung für Entwicklung Interoperabilität von Programmiersprachen Erhöhte Produktivität Auslieferung Einfaches, zuverlässiges Deployment Weniger Versionierungsprobleme Betrieb DLL Hell Performance Zuverlässigkeit Skalierbarkeit Sicherheit " CLR: Aufgaben Codemanagement Generierung von nativen Code aus MSIL Laden und Ausführen von Managed Code Erzeugung und Verwaltung von Metadaten Verifikation der Typsicherheit Versionsprüfungen Sicherheitsprüfungen Speicherverwaltung Garbage Collection Fehlerbehandlung (Exception Handling) Interoperation von .NET Framework Objekten und COM Objekten sowie Win32 DLLs Unterstützung von Entwicklerservices (Profiling, Debugging, etc.) " CLR: Architektur Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine IL to Native Compilers Code Manager Garbage Collector Class Loader " CLR: Übersetzung und Ausführung QuellCode MSIL Ngen MaschinenCode VB.NET C# C++ Compiler Compiler Compiler Assembly Assembly Assembly Common Language Runtime JIT Compiler Managed Code CLR Services Managed CLR Code Managed Code Unmanaged Code Operating System Services " CLR: Übersetzung und Ausführung Übersetzung Quellcode SprachCompiler MaschinenCode Ausführung JITCompiler MSIL-Code MSIL Vor der Installation oder vor dem ersten Aufruf einer Methode " Assembly Logische Einheit für Auslieferung Kapselung Versionierung Sicherheit Zusammensetzung: XYZ.DLL Manifest Metadaten MSIL Resourcen "! Assembly Manifest Beschreibung der Bestandteile eines Assemblies (Version, exportierte Typen, Abhängigkeiten etc.) Metadaten Beschreibung aller Typen des Assemblies Microsoft Intermediate Language (MSIL, IL) Alle .NET Sprachen werden in IL übersetzt (Managed Code) IL wird vor der Ausführung immer in Maschinencode übersetzt Resourcen Weitere Dateien, z.B. .bmp, .jpg CLR: Sprach-Interoperabilität Common Type System (CTS) Die Menge aller möglichen Datentypen, die von einer .NET-Programmiersprache verwendet werden kann Common Language Specification (CLS) Die Untermenge des CTS, die von jeder Sprache unterstützt werden muß. Sie garantiert die Interoperabilität von unterschiedlichen Sprachen .NET-Programmiersprachen Microsoft: VB.NET, C#, C++, J#, JScript Third-Party: Cobol, Eiffel, Smalltalk, Scheme, Oberon, Haskell, Java, Python, Perl, … " CLR: Sprach-Interoperabilität Die MSIL unterstützt Konzepte wie Komplexe Datentypen und Objekte Vererbung und Polymorphie Sprachen werden gleichwertig, da alle Compiler MSIL-Code erzeugen Sprachen werden interoperabel, da sie das gleiche Typsystem (CLS) benutzen Aufrufe, Implementierungsvererbungen und Exception Management zwischen unterschiedlichen Sprachen möglich .NET Framework Integriert alle derzeitigen WindowsTechnologien Alles ist in einer Bibliothek – für alle Sprachen Windows Forms, GDI+, Drucken Web Forms, Web Services, Networking Datenbank-Schnittstellen Unterstützung von Active Directory, WMI, MSMQ, COM+ Services .NET Framework Sprach-Interoperabilität Die gleichen Framework-Klassen und -Interfaces sind verfügbar für alle .NET Programmiersprachen Vereinfacht Entwicklung mit unterschiedlichen Sprachen Konsistentes, einheitliches Programmiermodell Ersetzt viele COM-Libraries Objektorientierte und erweiterbare Klassenbibliothek Vererbung, Polymorphismus und Überladen von Methoden Abstrakte Basisklassen und Interfaces Unterteilung in Namensräumen .NET Framework Namensraum ASP.NET Windows ADO.NET XML Base Class Library .NET Framework Namensraum System.Web Services System.WinForms UI Description Discovery Protocols Caching Configuration Design HtmlControls WebControls Security SessionState System.Drawing Drawing2D Imaging System.Data ADO Design SQL SQLTypes ComponentModel Printing Text System.Xml XSLT XPath Serialization System Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization ADO.NET Ähnlich zu ADO Sprachneutraler Datenzugriff Zwei Zugriffsarten: Verbindungsloser Zugriff über die Klasse DataSet Verbindungsorientierter Zugriff Unterstützt Verbindung von Datenquellen mit Steuerelementen Zugriff auf Daten relational (Tabellen) oder hierarchisch (XML) ADO.NET Komponenten Windows Forms Für die Entwicklung von Desktop-Anwendungen mit grafischen Oberflächen (“smart clients”) Rapid Application Development (RAD) Ereignisgesteuertes Programmiermodell Viele Steuerelemente (Controls) vorhanden Benutzerdefinierte Steuerelemente möglich Visuelle Vererbung Einfache Integration von Web Services ActiveX Support Gute Grafik-Unterstützung (GDI+) ! Web Forms mit ASP.NET Für die Entwicklung dynamischer Web-Seiten Baut auf ASP auf Neues Programmiermodell Serverseitige Steuerelemente (Web Controls) Ereignissteuerung Generierung von Browser-spezifischen Code Verbindung von Steuerelementen mit Datenquellen Viele Steuerelemente vorhanden (z.B. Data Grid) Benutzerdefinierte Steuerelemente möglich Web Forms mit ASP.NET Objektorientierung Trennung von Layout und Anwendungslogik Verwendung von .NETProgrammiersprachen Compilation statt Interpretation Client-seitiges Scripting weiterhin möglich XCOPY/FTP Deployment Bessere Verwaltung des Seitenzustands Einfache XML-basierte Konfiguration Tracing Unterstützung " Web Services mit ASP.NET Ähnlich wie Web Forms, aber Dateiendung mit Enthält nur Code, keine Benutzerschnittstelle "Drag and Drop" Web Services Entwicklung Virtuelles Verzeichnis notwendig (IIS) ASP.NET unterstützt einfache Tests ASP.NET generiert WSDL automatisch Verwendung der .NET Framework Klassen sowie selbstentwickelter Klassen möglich .NET Sprachunterstützung Die Laufzeitumgebung ist sprachneutral Alle .NET Sprachen haben den gleichen Stellenwert Auswahl ist mehr eine Frage des Geschmacks “Common Language Specification” Jede .NET Sprache kann das .NET Framework verwenden Sprachen sind interoperabel Microsoft bietet: VB.NET, C++, C#, J#, JScript™ Dritthersteller bieten: APL, COBOL, Pascal, Eiffel, Haskell, ML, Oberon, Perl, Python, Scheme, Smalltalk, Objective CAML, … Visual Studio.NET Leistungsstarke Design-Werkzeuge Windows Forms, Web Forms XML und Komponenten-Designer Visuelle Designer für HTML, XML, Daten, serverseitigen Code Einheitliche Entwicklungsumgebung Vereinfacht “mixed-language” Entwicklung Zugriff auf Features von jeder Sprache aus End-To-End Debugging Über Projekte, Prozesse, gespeicherte Prozeduren, Sprachen Fragen ? Uff...