Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Microsoft.NET Eine neue Generation der Softwareentwicklung Klaus Rohe Strategy & Developer Group Microsoft GmbH

Similar presentations


Presentation on theme: "1 Microsoft.NET Eine neue Generation der Softwareentwicklung Klaus Rohe Strategy & Developer Group Microsoft GmbH"— Presentation transcript:

1 1 Microsoft.NET Eine neue Generation der Softwareentwicklung Klaus Rohe Strategy & Developer Group Microsoft GmbH

2 2Agenda Microsoft.NET Microsoft.NET Das Windows.NET Framework Das Windows.NET Framework  Common Language Runtime (CLR)  Assemblies, Security, Deployment  Windows.NET Framework Klassenbibliotheken  ADO.NET  Windows Forms  ASP.NET .NET Enterprise Services .NET Remoting XML Web-Services XML Web-Services Gegenüberstellung Microsoft.NET - J2EE Gegenüberstellung Microsoft.NET - J2EE Demo mit Visual Studio.NET Demo mit Visual Studio.NET

3 3 Microsoft.NET Software for connecting information, people, systems and devices Connected Development Quickly build solutions that interoperate across languages, platforms and devices Connected Systems Integrate new and existing systems across the organization, and externally with partners. Connected Business Agility to connect more deeply with customers, integrate with partners and empower employees Connected Experiences Information anytime, anywhere, any device Built on a foundation of XML Web services

4 4 Microsoft.NET Windows Betriebsystem.NET SDK.NET Framework CommonLanguageRuntime Applikation EnterpriseServer Windows 2000 Server SQL Server 2000 BizTalk Server 2002 More… Visual Studio.NET Visual C# Visual C++ Visual Basic.NET Tools

5 5 Windows.NET Framework C#C++VBPerl… Common Language Runtime Common Type System Base Class Library Transaktionen (COM+) IIS MSMQWMI Windows Betriebssystem ADO.NET (Daten und XML) ASP.NET Web Forms Web Services WindowsFormsEnterpriseServices

6 6 Common Type System (CTS) Value Types Byte Char Single Double Enum Int16UInt16 Int32UInt32 Int64UInt64 DecimalStructure BooleanOthers Object Reference Types Class Interface Array String Delegate Others Werden auf dem Heap abgelegt Werden auf dem Stack abgelegt

7 7 Windows.NET Framework Common Language Runtime (CLR) Thread SupportCOM Marshaller Type Checker Security Engine Exception Manager Debug Engine JIT Compiler Code Manager Garbage Collection Base Class Library Support

8 8 ECMA CLI & C# Standards, Interoperabilität & Multiplattform C# Extended Numerics Library Extended Array Library XML Library Network Library Reflection Library Runtime Infrastructure Library Base Class Library Standards ECMA-334, C# (C sharp) Language Specification, and ECMA-335, Common Language Infrastructure, approved by the ECMA General Assembly of 13th December HP, Intel & Microsoft Microsoft Expands Commitment to Open Standards and Interoperability. Teams With Corel to Develop Shared Source Implementation of ECMA Standards C# and CLI For FreeBSD and Windows. REDMOND, Wash. - June 27, Beta availability expected: H1 2002

9 9 Common Language Runtime Ausführungsmodell VB.NET Source code VC++.NETVC#.NET Operating System Services Common Language Runtime Native Code Managedcode UnmanagedComponent JIT Compiler Assembly IL Code Assembly Assembly CompilerCompilerCompiler

10 10 // File: simple.cs using System; class Simple { public static void Main() { for (int i = 1; i <= 5; i++) Console.WriteLine(i); } csc simple.cs ildasm simpl.exe Common Language Runtime MSIL Beispiel

11 11 Common Language Runtime Assemblies.NET Anwendungen bestehen aus Assemblies.NET Anwendungen bestehen aus Assemblies  Assembly = Komponente Ein Assembly ist ein Container für Module Ein Assembly ist ein Container für Module Sämtliche Sicherheits- und Versionsüberprüfungen durch die CLR erfolgen auf der Basis von Assemblies !!! Sämtliche Sicherheits- und Versionsüberprüfungen durch die CLR erfolgen auf der Basis von Assemblies !!!

12 12 Managed Code Kompilieren Compiler (C#, VB.NET, etc.) Assembly (DLL or EXE) MSIL Code for Class X Metadata for Classes X, Y and Z MSIL Code for Class Y MSIL Code for Class Z Class X { … } Class Y { … } Class Z { … }

13 13 Private Assembly Private Assembly  Assembly kann nur von genau einer Anwendung benutzt werden Shared Assembly Shared Assembly  Assembly kann global von allen Anwendungen benutzt werden Dynamic Assemblies Dynamic Assemblies  Zur Laufzeit erzeugte Assemblies Assemblies Kategorien

14 14 Identifikation anhand eines einfachen Namens, z.B. “MyAssembly” Identifikation anhand eines einfachen Namens, z.B. “MyAssembly” Keine Versionsüberprüfung durch die CLR, Versionierung durch den Entwickler Keine Versionsüberprüfung durch die CLR, Versionierung durch den Entwickler Installation per File copy Installation per File copy  Standardmäßig befinden sich Assembly und Anwendung im gleichen Verzeichnis  Verzeichnis kann per config-Datei definiert werden Assemblies Private Assembly

15 15 Identifikation über einen Strong Name Identifikation über einen Strong Name Versionsüberprüfung durch die Runtime Versionsüberprüfung durch die Runtime Installation im Global Assembly Cache Installation im Global Assembly Cache  Systemweiter “Speicherbereich” für.NET Assemblies  Windows.NET Framework Assemblies  keine Registry-Einträge für die Assemblies Assemblies Shared Assembly

16 16 Werden mit dem API im System.Reflection.Emit Namespace zur Laufzeit erzeugt Werden mit dem API im System.Reflection.Emit Namespace zur Laufzeit erzeugt Dynamic Assemblies Dynamic Assemblies  Können auf als File im Dateisystem gespeichert werden  Können direkt ausgeführt werden Beispiel: Beispiel:  Kompilieren von regular Expressions Assemblies Dynamic Assembly

17 17.NET Sicherheitsmodell Role-Based Security Enforced by application on itself Code Access Security Enforced by the common language runtime on the assembly Windows User Security Enforced by the OS on all the code Role-Based Security Role-Based Security  Role based security erlaubt es dem Code Sicherheitsentscheidungen zu treffen, welche auf der Rolle des Users basieren, der den Code ausführt. Code Access Security Code Access Security  Code access security trifft Sicherheitsentscheidungen für den Code auf der Basis seiner Herkunft.

18 18 Deployment von.NET Applikationen Beim ersten Start der Windows Forms Applikation werden die benötigten Assemblies vom Server geladen und lokal gecached. Beim ersten Start der Windows Forms Applikation werden die benötigten Assemblies vom Server geladen und lokal gecached. Beim erneuten Start der Applikation wird geprüft, ob sich die Assemblies auf dem Server geändert haben. Nur dann werden sie vom Server geladen. Beim erneuten Start der Applikation wird geprüft, ob sich die Assemblies auf dem Server geändert haben. Nur dann werden sie vom Server geladen. Betrieb, Pflege und Wartung genauso einfach, wie bei Web-Applikationen. Betrieb, Pflege und Wartung genauso einfach, wie bei Web-Applikationen. Windows Forms Applikation Assembly1 Assembly2 Assembly3 Windows Server Windows Forms Applikation, lädt Assemblies zur Laufzeit vom Server. Zentraler Punkt zur Administration der Applikation

19 19 Windows.NET Framework Namensräume System Int16,String,…WebDataWindowsEnterpriseServicesXML… UIServices …… Connection, DataSet, … Forms … ServicedComponent, … XmlDocument, …

20 20 System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.WinForms DesignComponentModelKlassenbibliotheken

21 21 ADO.NET (1) Datenbankzugriff, XML Warum eine neue Schnittstelle für den Datenzugriff? Warum eine neue Schnittstelle für den Datenzugriff?  Web Applikationen benötigen andere Architektur  Lose Kopplung zwischen Applikation und Datenbank  Komfortabele Unterstützung von XML  entwickelt sich zum universellen Datenformat Problem mit bestehenden APIs Problem mit bestehenden APIs  ADO, OLE DB und ODBC: wurden für enge Kopplung und dauerhafte Verbindung zwischen Client und Datenbank konzipiert ADO.NET unterstützt explizit enge und lose Kopplung zwischen Client und Datenbank ADO.NET unterstützt explizit enge und lose Kopplung zwischen Client und Datenbank

22 22 ADO.NET (2) Managed Code.NET Data Provider DBMS Client DataSet Rows Connection Command DataReader DataAdapter Enge Kopplung Lose Kopplung

23 23 Windows Forms (1) Was ist Windows Forms? Eine Klassenbibliothek innerhalb des Windows.NET Frameworks zur Entwicklung von GUI-Applikationen Eine Klassenbibliothek innerhalb des Windows.NET Frameworks zur Entwicklung von GUI-Applikationen  Namespace: System.Windows.Forms Ersetzt die Microsoft Foundation Classes (MFC) Ersetzt die Microsoft Foundation Classes (MFC) GUI Entwurf mit Windows Forms ist in Visual Studio.NET eingebaut GUI Entwurf mit Windows Forms ist in Visual Studio.NET eingebaut MFC kann aber weiterhin genutzt werden MFC kann aber weiterhin genutzt werden

24 24 Windows Forms (2) Ausschnitt aus der Klassenhierachie System.Object System.MarshallByRefObject System.ComponentModel.Component Control ButtonBase Button TextBoxBase TextBox ContainerControll Form

25 25.NET Enterprise Services API zur Entwicklung und Nutzung von COM+ Komponenten mit Microsoft.NET: API zur Entwicklung und Nutzung von COM+ Komponenten mit Microsoft.NET:  Distributed Transactions  Security  Object Pooling  Just in time activation  Queued Components  Events

26 26 ASP.NET Saubere Trennung von Programmlogik und Layout (code-behind) Saubere Trennung von Programmlogik und Layout (code-behind) Kompilierte Programme statt Scripting Kompilierte Programme statt Scripting  Erheblich verbesserte Ausführungsgeschwindigkeit Deployment während des laufenden Serverbetriebes Deployment während des laufenden Serverbetriebes Unterstützung verschiedenster, mobiler Endgeräte Unterstützung verschiedenster, mobiler Endgeräte Gute Tool-Unterstützung (VS.NET) Gute Tool-Unterstützung (VS.NET) Modulare, einfach erweiterbare Struktur Modulare, einfach erweiterbare Struktur  Servererweiterungen ohne ISAPI WebForms, WebControls, Statemanagement WebForms, WebControls, Statemanagement XML Web Services XML Web Services

27 27 ASP.NET Architektur ASP.NET Web Controls XML Web-Service Web Clients / Web Service Client Windows Operating System IIS(Web-Server) HTTP / SOAP ASP.NETapplications.NETFramework

28 28 Das.NET Compact Framework.NET Framework für “Smart Devices”.NET Framework für “Smart Devices”  Ziel: Software als Service für Geräte  “Lightweight” Runtime-Architektur  Kompatible Teilmenge der Desktop Plattform Verfügbar für: Verfügbar für:  Windows CE  Unterschiedliche Formfaktoren

29 29.NET Remoting Remoting ist der Zugriff auf Objekte über Grenzen hinweg. Remoting ist der Zugriff auf Objekte über Grenzen hinweg.  Grenzen können unterschiedliche Maschinen, Prozesse oder Application Domains sein. Die CLR abstrahiert OS-Prozesse und arbeitet mit „virtuellen Prozessen“ den so genannten Application Domains (Appdomains). Die CLR abstrahiert OS-Prozesse und arbeitet mit „virtuellen Prozessen“ den so genannten Application Domains (Appdomains).

30 30 Appdomains und Remoting Eine Appdomain existiert in genau einem Prozess Eine Appdomain existiert in genau einem Prozess Ein Prozess kann mehrere AppDomains beinhalten Ein Prozess kann mehrere AppDomains beinhalten Aufrufe über AppDomain-Grenzen hinweg erfordern Remoting Aufrufe über AppDomain-Grenzen hinweg erfordern Remoting Marshal-By-Value Objects und Marshal-By-Reference Objects Marshal-By-Value Objects und Marshal-By-Reference Objects Prozess 1 Prozess 2 AppDomain 1AppDomain 3AppDomain 2 Objekt Marshaling

31 31 Remoting, vereinfachte Darstellung Client App Domain 1 Proxy for O Channel Object O App Domain 2 Channel

32 32 Remoting: Aktivierungsmöglichkeiten Appdomain 1Appdomain 2 Object Single-call Singleton Client-activated Object Client Object Client

33 33 Web Services mit Windows.NET Framework Web Services mit ASP.NET Web Services mit ASP.NET  Die Web Services werden vom IIS gehostet  Dies ist die Bevorzugte Art mit Microsoft.NET Web Services zu implementieren  Komplette Infrastruktur, welche IIS bietet, wird automatisch genutzt Web Services mit Remoting Web Services mit Remoting  Serverprozess, welche die Web Services hostet, muss vom Programmierer implementiert werden.

34 34 Support von Web Service durch Visual Studio.NET Eigene Projektart für Web Services, die unter ASP.NET entwickelt werden Eigene Projektart für Web Services, die unter ASP.NET entwickelt werden Automatische Generierung von Code-Frames für Web-Services. Automatische Generierung von Code-Frames für Web-Services. Automatische Generierung von Proxies aus WSDL-Beschreibungen Automatische Generierung von Proxies aus WSDL-Beschreibungen Integrierter UDDI-Browser Integrierter UDDI-Browser Erzeugt automatisch Test-Clients für Web Services Erzeugt automatisch Test-Clients für Web Services

35 35 Global XML Web Services Architecture (GXA) “Secure, Reliable, Transacted services” SOAP (Logical Messaging) Transports Messaging WSDL, UDDI, Inspection Quality of Service Transactions Business Processes BPEL4WS Transport XML, Encoding Other protocols Other services Coordination Security WS-Security Reliable Messaging Description

36 36 Unterstützung von GXA durch das Windows.NET Framework Microsoft stellt Web Services Enhancements for Microsoft.NET (WSE) zur Verfügung Microsoft stellt Web Services Enhancements for Microsoft.NET (WSE) zur Verfügung WSE unterstützt folgende Spezifikationen: WSE unterstützt folgende Spezifikationen:  DIME (Direct Internet Message Encapsulation)  WS-Attachments  WS-Routing  WS-Security  Authentifizierung und Integrität Download: Download:  wse/default.aspx wse/default.aspx wse/default.aspx

37 37 Enterprise UDDI Services Optionaler Service, der mit Windows Server 2003 ausgeliefert wird Optionaler Service, der mit Windows Server 2003 ausgeliefert wird Einfach zu installieren und zu verwalten Einfach zu installieren und zu verwalten Entspricht der UDDI Spezifikation V1 & V2 API Entspricht der UDDI Spezifikation V1 & V2 API Sehr gut skalierbar, gleiche Code-Basis wie Sehr gut skalierbar, gleiche Code-Basis wie Entwickelt mit dem Windows.NET Framework 1.1, IIS 6.0 und SQL Server 2000 Entwickelt mit dem Windows.NET Framework 1.1, IIS 6.0 und SQL Server 2000

38 38 Leader in the Industry Web Services Effort *Source: Gartner Research, October, 2002 Completeness of Vision Microsoft IBM Hewlett-Packard Sun Microsystems Oracle 'Major Vendor Web Services Platform Influence Magic Quadrant' ChallengersLeaders Niche PlayersVisionaries BEA Systems As of October 2002 Ability to Execute

39 39 Windows als Applikationsserver Applikationsserver Web-ServerSOAP-Server Transaktionsmonitor(Transaktionsservice) Transaktionsorientiertes Message Queueing Directory Services Windows 2000 Server (Windows Server 2003) Microsoft IIS Microsoft COM+ (MTS) Microsoft Message Queue MSMQ Microsoft Active Directory Zusätzliche Lizenzkosten Teil des Betriebssystems

40 40 Gegenüberstellung Microsoft.NET – J2EE (1).NETJava Application Server.NET Framework IBM WebSphere, BEA WebLogic, others Runtime Environment Common Language Runtime (CLR) Java Virtual Machine (VM) Standard Libraries.NET Framework class library J2SE, J2EE GUIsWindows Forms Swing TransactionsEnterprise Services EJB

41 41.NETJava Web Scripting ASP.NETJSPs Data Access ADO.NETJDBC Development Tools Visual Studio.NETIBM Visual Age for Java, Borland JBuilder, others Web Services Support ASP.NET,.NET Services, others Some support from IBM and others, more planned Small Device Platform.NET Compact Framework J2ME Gegenüberstellung Microsoft.NET – J2EE (2)

42 42 Demo mit Visual Studio.NET 1. Implementierung eines XML Web-Service mit ASP.NET 2. Implementierung eines Windows Forms Clients, der einen mit Java implementierten XML Web-Service konsumiert  Der XML Web-Service wurde mit GLUE Standard Edition von The Mind Electric implementiert (JDK ). public interface IHugeIntMath { // Elementare mathematische Operationen auf // ganzen Zahlen, die als Strings dargestellt // sind. public String add(String xstr, String ystr); … // Berechnet 'x^y' public String power(String xstr, String ystr); … }

43 43 © 2001 Microsoft Corporation. All rights reserved. Danke für Ihre Aufmerksamkeit. Fragen ?

44 44 Weitere Informationen (1) Design Patterns in C# Design Patterns in C#   Komponenten Komponenten 

45 45 Weitere Informationen (2) Michael Stal, C#- und.NET Tutorial, Teil Michael Stal, C#- und.NET Tutorial, Teil IX Magazin für Professionelle Informationstechnik Teil 1: Heft 12, Dezember 2001, Seiten Teil 2: Heft 1, Januar 2002, Seiten Teil 3: Heft 2, Februar 2002, Seiten Holger Schwichtenberg, Nette Vielfalt, Sprachen und Entwicklungstools für das.NET Framework Holger Schwichtenberg, Nette Vielfalt, Sprachen und Entwicklungstools für das.NET Framework IX Magazin für Professionelle Informationstechnik, Heft 10, Oktober 2002, Seiten

46 46 David Chappell Understanding.NET A tutorial and Analysis ISBN Ralf Westphal.NET kompakt Spektrum Akademischer Verlag, 2002 ISBN Weitere Informationen (3)

47 47 Weitere Informationen (4) Don Box, Chris Sells Essential.NET (Development Series): The Common Language Runtime, Vol. 1 Pearson Education, Januar 2003 ISBN

48 48.NET programming: a practical guide using C# Prentice Hall PTR, July 2002 ISBN Weitere Informationen (5) Component Software Beyond Object-Oriented Programming Second Edition ADDISION-WESLEY, November 2002 ISBN Chapter 15, Chapter 21.2, Appendix A

49 49 © 2001 Microsoft Corporation. All rights reserved.


Download ppt "1 Microsoft.NET Eine neue Generation der Softwareentwicklung Klaus Rohe Strategy & Developer Group Microsoft GmbH"

Similar presentations


Ads by Google