Presentation is loading. Please wait.

Presentation is loading. Please wait.

Microsoft. NET Eine neue Generation der Softwareentwicklung Klaus Rohe

Similar presentations


Presentation on theme: "Microsoft. NET Eine neue Generation der Softwareentwicklung Klaus Rohe"— Presentation transcript:

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

2 Agenda Microsoft .NET Das Windows .NET Framework XML Web-Services
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 Gegenüberstellung Microsoft .NET - J2EE Demo mit Visual Studio .NET

3 Connected Experiences Connected Development
Microsoft .NET Software for connecting information, people, systems and devices Built on a foundation of XML Web services Connected Business Agility to connect more deeply with customers, integrate with partners and empower employees Connected Experiences Information anytime, anywhere, any device .NET ist eine Softwaretechnik, die Microsofts gesamtes Produktspektrum umfasst. Sie ermöglicht es unseren Kunden heterogene Informationssysteme und Endgeräte auf einfache Art und Weise zu integrieren, um so die Geschäftsprozesse und Anforderungen der Anwender optimal zu unterstützen. .NET baut auf industrielle Web-Service-Standards und nutzt die hohe Produktivität, Performance und wirtschaftlichen Vorteile der Windows Plattform voll aus. 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.

4 Windows Betriebsystem
Microsoft .NET Windows Betriebsystem .NET SDK .NET Framework Common Language Runtime Applikation Enterprise Server Windows 2000 Server SQL Server 2000 BizTalk Server 2002 More… Visual Studio.NET Visual C# Visual C++ Visual Basic .NET Tools

5 Common Language Runtime Windows Betriebssystem
Windows .NET Framework C# C++ VB Perl Common Language Runtime Common Type System Base Class Library Transaktionen (COM+) IIS MSMQ WMI Windows Betriebssystem ADO.NET (Daten und XML) ASP.NET Web Forms Web Services Windows Forms Enterprise Services Als erstes möchte ich mich mit dem zentralen Baustein von .NET beschäftigen, dem .NET Framework. Wir wollen uns das .NET Framework jetzt aus der Vogelperspektive anschauen. Das .Net Framework ist in Schichten aufgebaut. Die unterste Schicht des Frameworks ist die Common Language Runtime kurz CLR genannt. Sie ist die Laufzeitumgebung für .NET Applikationen. Darüber befindet sich die Base Class Library eine Sammelung von Klassen, welche man bei jedem Programmierprojekt benötigt. Als nächstes hat man dann die ADO.NET-Schicht, welche Klassen für die Programmierung von Datenbankapplikationen enthält. Darüber findet man eine zweigeteilte Schicht für die Entwicklung von Web basierten Applikationen, einschließlich Web-Services. Dieser Teil ist mit ASP.NET bezeichnet. Der zweite Teil der Schicht, Windows Forms, ist für die Entwicklung von Rich-Clients, also Windows-Appliaktionen. Das .NET Framework besitzt ein gemeinsames Typsystem, das Common Type System. Das Common Type System liegt allen .NET Programmiersprachen zugrunde. Die Programmiersprachen, welche von Microsoft mit Visual Studio.NET ausgeliefert werden sind C#, C++ und Visual Basic. Von anderen Herstellern kann man andere Programmiersprachen für .NET bekommen, wie z. B. Eiffel, COBOL usw.

6 Common Type System (CTS)
Value Types Byte Char Single Double Enum Int16 UInt16 Int32 UInt32 Int64 UInt64 Decimal Structure Boolean Others Object Reference Types Class Interface Array String Delegate Werden auf dem Heap abgelegt Werden auf dem Stack abgelegt

7 Windows .NET Framework Common Language Runtime (CLR)
Thread Support COM Marshaller Type Checker Security Engine Exception Manager Debug Engine JIT Compiler Code Manager Garbage Collection Base Class Library Support Die Common Language Runtime soll nun etwas detaillierter betrachtet werden. Sie ist die Laufzeitumgebung für .NET basierte Applikationen. Normal werden .NET Applikationen in eine Zwischensprache (Intermediate Language, IL) übersetzt. Die IL wird beim Start des Programms von einem Just-In-Time-Compiler übersetzt. Eine weitere Aufgabe der CLR ist die Speicherverwaltung zur Laufzeit der Applikation. Dies wird durch den Garbage Collector bewerkstelligt. Aus diesem Grund braucht sich der Programmierer beim Entwickeln seiner Applikation nicht um die Speicherverwaltung kümmern. Während der Laufzeit führt die CLR außerdem Security Checks und Typprüfungen durch.

8 ECMA CLI & C# Standards, Interoperabilität & Multiplattform
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 Standards ECMA-334, C# (C sharp) Language Specification, and ECMA-335, Common Language Infrastructure, approved by the ECMA General Assembly of 13th December 2001. HP, Intel & Microsoft C# Extended Numerics Library Extended Array Library XML Library Network Reflection Runtime Infrastructure Base Class Library

9 Common Language Runtime Ausführungsmodell
VB.NET Source code VC++.NET VC#.NET Operating System Services Common Language Runtime Native Code Managed code Unmanaged Component JIT Compiler Assembly IL Code Compiler

10 Common Language Runtime MSIL Beispiel
// 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

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

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 for Class Y for Class Z Class X { … } Class Y { … } Class Z { … }

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

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

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

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

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 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 trifft Sicherheitsentscheidungen für den Code auf der Basis seiner Herkunft.

18 Deployment von .NET 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 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. Betrieb, Pflege und Wartung genauso einfach, wie bei Web-Applikationen.

19 Windows .NET Framework Namensräume
System Int16, String, Web Data Windows EnterpriseServices XML Forms UI Services XmlDocument, … ServicedComponent, … Connection, DataSet, …

20 Klassenbibliotheken System System.Data System.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 SessionState Caching Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Printing System.WinForms ComponentModel

21 ADO.NET (1) Datenbankzugriff, XML
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 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 ist eine Sammelung von .NET Framework Klassen, um in .NET Applikationen verschiedene Datenquellen zu integrieren. Eine solche Datenquelle ist z.B. der Microsoft SQLServer. Warum hat man nun eine neue Schnittstelle für den Datenzugriff entwickelt? Für Applikationen in einer verteilten Umgebung, wie es das Internet darstellt, ist eine lose Kopplung zwischen Datenquelle und Datenkonsument sehr vorteilhaft. In den letzten Jahren hat sich außerdem XML zum universellen Datenformat entwickelt, daher ist es vorteilhaft, wenn man einfache Mechanismen zur Verfügung hat, die Daten aus den unterschiedlichen Datenquellen in verschiedene XML-Formate zu transformieren. Dies alles leistet ADO.NET. APIs wie ADO, OLE DB und ODBC sind für enge Kopplung und dauerhafte Verbindungen zwischen Datenquelle und Datenkonsument ausgelegt und sind daher für die oben genannten Umgebungen nicht so gut geeignet.

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

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

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

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

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

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

28 Das .NET Compact Framework
.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: Windows CE Unterschiedliche Formfaktoren

29 .NET Remoting 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).

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

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

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

33 Web Services mit Windows .NET Framework
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 Serverprozess, welche die Web Services hostet, muss vom Programmierer implementiert werden.

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

35 SOAP (Logical Messaging)
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 Unterstützung von GXA durch das Windows .NET Framework
Microsoft stellt Web Services Enhancements for Microsoft .NET (WSE) zur Verfügung WSE unterstützt folgende Spezifikationen: DIME (Direct Internet Message Encapsulation) WS-Attachments WS-Routing WS-Security Authentifizierung und Integrität Download:

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

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

39 Windows als Applikationsserver
Zusätzliche Lizenzkosten Teil des Betriebssystems Applikationsserver Web-Server SOAP-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

40 Gegenüberstellung Microsoft .NET – J2EE (1)
Java 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 GUIs Windows Forms Swing Transactions Enterprise Services EJB

41 Gegenüberstellung Microsoft .NET – J2EE (2)
Java Web Scripting ASP.NET JSPs Data Access ADO.NET JDBC Development Tools Visual Studio.NET IBM 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

42 Demo mit Visual Studio .NET
Implementierung eines XML Web-Service mit ASP.NET 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 Danke für Ihre Aufmerksamkeit. Fragen ?
© 2001 Microsoft Corporation. All rights reserved.

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

45 Weitere Informationen (2)
Michael Stal, C#- und .NET Tutorial, Teil 1 - 3 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 IX Magazin für Professionelle Informationstechnik, Heft 10, Oktober 2002, Seiten

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

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

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

49 © 2001 Microsoft Corporation. All rights reserved.


Download ppt "Microsoft. NET Eine neue Generation der Softwareentwicklung Klaus Rohe"

Similar presentations


Ads by Google