.NET Technologie Vorlesung Systemarchitektur & Soystemnahe Software.NET.NET = Laufzeitumgebung Objektorientierte Klassenbibliothek GUI-Funktionen: Windows Forms und Web Forms Datenbankanschluss: ADO.NET Threading, Reflection, Ziel = Technologievereinheitlichung (Internet- und PC-Anwendungen, Eingebettete Systeme) Interoperabilitaet Technologie fuer Verteilte Systeme (XML-Webservices) Bereitstellung eines Werkzeugkasten 1
.NET Framework Anwendungen Klassenbibliotheken (Base Class Library) ASP.NET ADO.NET Web- Services Laufzeitumgebung (Common Language Runtime) Garbage Collection Sicherheit Just-in-time Compilation Windows Betriebssystem /.NET Framework Common Language Runtime (CLR) Laufzeitumgebung, unterstuetzt Sicherheit, Garbage Collection und Interoperabilitaet Virtuelle Maschine mit CIL (Common Intermediate Language) mit JIT-Kompilation CTS (Common Type System), ermoeglicht z.b. Ausnahmebehandlung in anderer Sprache CLS (Common Language Specification) = minimale Teilmenge von CTS, die von allen.net-kompatiblen Sprachen unterstuetzt wird 2
.NET Framework Komponentenorientierung durch Assemblies Code, Manifest, Metadaten Analyse mittels Reflection Versionierung (no DLL hell) Kein Eintrag ins Windows Registry Keine IDL-Beschreibung wie in COM Binaerkompatible Metadaten durch CTS Interoperabel mit COM-Komponenten.NET Framework Haussprache C# Stark angelehnt an Java, aber maechtiger und besser geeignet fuer numerische Anwendungen Gleich wie in Java: Objektorientierung, Typsicherheit, Garbage Collection, Namensraeume (Pakete), Threads, Reflection, Bibliotheken Einiges aus C++ uebernommen: Ueberladen von Operatoren, Zeigerarithmetik (in unsafe Klassen); einiges aus Visual Basic; 3
.NET Framework Haussprache C# Unterschied zu Java U.a. Objekte am Keller, Blockmatritzen, Enumeration, Goto, einheitliches Typsystem, Versionierung, Syntaktische Extras Properties und Events, Attribute Indexer, Delegates und Multicast-Delegates, Foreach-Schleife Generische Datencontainerstrukturen mit Boxing/Unboxing.NET Framework Base Class Library Ersetzt bisherige Windows APIs In Namensraeume gegliedert System.Collections System.IO System.Threading System.Net System.Reflection System.Windows.Forms (ersetzt MFC - Microsoft Foundation Classes) System.Xml 4
.NET Framework ADO.NET Oo, unterstuetzt relationales Datenmodell, Sperrmechanismen, Transaktionen Unterschiedliche Implementierungen werden durch gemeinsame Interfaces abstrahiert ASP.NET Oo, zur Programmierung dynamischer Webseiten (Seite und GUI sind Objekte) Ereignisgesteuertes Modell, Zustand in der Seite gespeichert Verschiedene Authentisierungsverfahren unterstuetzt, interaktive Gestaltung der GUIs mit Visual Studio (inkl. Spezifizierung von Methodenaufrufen).Web-Services Ausgangslage Derzeitiges Web unterstuetzt SW-orientierte Interaktion nur schlecht Web Services sind XML-Applikationen, die auf Programme, Objekte, DBs abgebildet sind Zweck Zum Transfer von XML-Dokumenten in und aus IT-Systemen Zur Integration von Programmier- und Webkonzepten Zur Integration von RPC und Dokumentenaustausch Unterstuetzunf fuer synchrone und asynchrone Kommunikation Sehr leichtgewichtiges Protokoll zur Bewerkstellung von globaler Interoperabilitaet Nutzung der vorhandenen XML-Technologie 5
.Web-Services Genutzte XML-Technologien WSDL (Web service Description Language) Zur Definition von Web Service Interfaces, Daten und Nachrichtentypen, Interaktionsmuster und Protokollabbildungen SOAP (Simple Object Access Protocol) Umschlag fuer Web-Service Kommunikation mit HTTP Binding plus Serialisierungsformat und RPC Konventionen Aufrufe von Web-Services und Parameteruebergabe meist mit SOAP (XML-Wrapper fuer RPCs) HTTP als Traegerprotokoll hilft Firewalls zu ueberwinden UDDI (Universal Description, Discovery, and Integration) Verzeichnisdienst Web-Services Web Service Inteface DBMS.NET XML Messages J2EE CORBA ERP Adapter Back-End System Broker 6
.NET-Framework Verkaufsargumente Robustheit und Sicherheit (Typenpruefung und Code-Verifikation, Garbage Collection, Versionierung von Assemblies, no DLL hell, rollen- und codebasierte Zugriffsrechte, PK-Signierung, ) Einfachere Installation und Deinstallation ( ) Interoperabilitaet Einheitlichere Software fuer Desktop und Web Standards Aehnlichkeiten und Unterschiede zu Java Nicht interpretiert Maechtiger In ASP.NET Sauberere Trennung von HTML und Programmcode als in JSP Staerkere Integration von Webservices ins System Unterschiedliche (entgegengesetzte) Zielsetzung Beides proprietaer, aehnliche Bibliotheken, Vergleich mit Java CLR Virtuelle Maschine Stackmaschine (LIFO) Source -> CIL-Programm -> Maschinenprogramm CIL-Nutzen Plattform- und Sprachunabhaengigkeit Kompaktheit Optimierter Code 7
Vergleich mit Java CLR vs. JVM Vielseitigkeit Strukturierte Datentypen auf dem Stack Referenzparameter (call by reference) Variable Argumente Blockmatritzen Ueberlaufpruefung Tail Calls Referenztypen Anpassbare Typengroesse Mehrsprachenfaehigkeit Boxing Kompilation Threading Klassen und Schnittstellen im Namensraum System.Thread Erzeugen von Threads, Zustandsabfragen (mit Properties), Gruppierung in Thread-Pools Zustaende (mehrere gleichzeitig moeglich) Aborted AbortRequested Background Running Stopped StopRequested Suspended SuspendRequested (bis safepoint) Unstarted WaitSleepJoin (Sleep durch Interrupt/Wartezeitablauf beendet) Synchronisation In C# mit Lock, Monitor und Wait/Pulse Anweisungen 8
Themen fuer Diplomarbeiten Ressourcenadaptive Protokolle IT-Architekturen fuer verteilte Systeme Patterns in/fuer verteilten Systemen Implementation von Web-Services Sicherheitsarchitekturen Credential-Systeme Ereignismanagement Innovative E-Government Loesungen Internet-Teaching (mit AI-Gruppe) Themen fuer Diplomarbeiten Aufwand (typischwerweise ) Einarbeiten & Informationssammlung (35%) Literaturstudium und Diskussion mit Experten Experimentieren mit Technologie Loesungsentwurf & Validierung (45%) Konzeptionelles Design Prototypische Implementation Analyse oekonomischer oder organisatorischer Persp. Verfassen der Arbeit (20%) 9