Whitepaper zur Übersicht über .NET (Engl. Originaltitel: .NET Overview White Paper) Veröffentlicht: Januar 2002 Mit dem Microsoft® .NET-Programmiermodell müssen sich Unternehmensentwickler weniger auf die Frage konzentrieren, wo und wie eine Anwendung ausgeführt wird, sondern können sich der Frage zuwenden, welche Aufgaben eine Anwendung erfüllen soll. Dieses Dokument untersucht, welche Bedeutung .NET für IT-Experten in Unternehmen hat. Zudem werden die damit verbundenen Vorteile und Technologieanforderungen erläutert. Kurzzusammenfassung Dieses Whitepaper richtet sich an CIOs (Chief Information Officers) und Enterprise Architects. Es bietet einen technologischen Überblick über Elemente der Microsoft .NET-Plattform und erläutert deren Vorteile sowie die Anforderungen für deren Einsatz. Produkte & Technologien Common Language Runtime .NET Framework-Klassen ASP.NET Programmiersprachen (C#, Microsoft Visual Basic® .NET, Microsoft JScript® .NET) XML-Webdienste .NET Remoting Windows Forms (Windows-Formulare) Microsoft Visual Studio® .NET Microsoft Windows Server System (früher .NET Enterprise Server) Vorteile Eine freigegebene, integrierte Entwicklungsumgebung (Integrated Development Environment oder IDE). IT-Abteilungen können ein gemeinsames Standardtool verwenden, das mehr als 20 Sprachen unterstützt, so dass Entwickler ihre bereits gewonnenen, individuellen Fähigkeiten nutzen können. Eröffnet neue Unternehmensmöglichkeiten und ermöglicht die plattformunabhängige Integration von Systemen. Somit können IT-Organisationen bestehende Anwendungen erweitern, um Unternehmenspartner zu integrieren. Verbesserte Anwendungsleistung und -sicherheit sowie eine einfachere Bereitstellung. Neben der Kostenreduzierung gewinnt innerhalb der IT-Branche zunehmend auch die Einkunfts- und Gewinnsteigerung eine tragende Rolle. Dies bedeutet eine Fokussierung auf schnelle, kosteneffektive Integration von Lieferanten, Partnern und Kunden außerhalb des lokalen Unternehmensnetzwerks (LAN) und der Unternehmensfirewall. Kurz gesagt: Mehr Leistung bei gleichzeitig geringerem Aufwand. Das .NET Framework bietet z. B. Tools für Entwickler, um Lösungen einmalig zu programmieren und diese dann auf mehreren Geräten, wie Smartphones und mit Windows betriebenen Pocket PCs, auszuführen. Dieses Whitepaper stellt die wichtigen Elemente der Microsoft .NET-Plattform für die Entwicklung von Unternehmensanwendungen vor und erläutert deren Vorteile und technologischen Anforderungen aus Sicht von Unternehmensplanern, Entwicklern, IT-Experten und des CIO. Das Whitepaper soll ITExperten beim Planen der Infrastruktur und der Entwicklungsumgebungen für Anwendungen helfen. .NET Framework-Elemente Das .NET Framework ist das Programmiermodell der .NET-Plattform zum Erstellen, Bereitstellen und Ausführen von XML-Webdiensten und -Anwendungen. Es verwaltet viele Reparaturaufgaben und ermöglicht Entwicklern, sich auf das Programmieren von Unternehmenslogik für Anwendungen zu konzentrieren. Im Folgenden sind die Hauptelemente des .NET Frameworks aufgeführt: Common Language Runtime .NET Framework-Klassen ASP.NET XML-Webdienste .NET Remoting Windows Forms Common Language Runtime Die Common Language Runtime ist das Ausführungsmodul für .NET Framework-Anwendungen. Es bietet eine Reihe von Diensten, einschließlich der folgenden: Codeverwaltung (Laden und Ausführen). Isolation des Anwendungsarbeitsspeichers. Überprüfung von Typensicherheit. Konvertierung von Zwischensprache zu Computersprache. Zugriff auf Metadaten (erweiterte Typinformationen). Arbeitsspeicherverwaltung für verwaltete Objekte. Erzwingen von Codezugriffssicherheit. Ausnahmebehandlung, einschließlich sprachübergreifender Ausnahmen. Interoperabilität zwischen verwaltetem Code (Code zum Zuordnen von Common Language Runtime-Diensten), Component Object Model-Objekten (COM) sowie nicht verwaltetem Code und nicht verwalteten Daten (bereits bestehende DLLs (Dynamic Link Library). Automatisierung des Objektlayouts. Unterstützung von Entwicklerdiensten (z. B. Profilerstellung und Testen). Die Common Language Runtime ist für Laufzeitdienste wie Sprachintegration, Einhaltung der Sicherheitsrichtlinien sowie Arbeitsspeicher-, Prozess- und Threadverwaltung verantwortlich. Zusätzlich spielt die Common Language Runtime während der Entwicklungszeit eine Rolle, wo Features wie Gültigkeitsdauerverwaltung, Benennung der stärksten Verschlüsselungsebene, sprachübergreifende Ausnahmebehandlung und dynamische Bindungen die Codemenge reduzieren, die ein Entwickler erstellen muss, um Unternehmenslogik als wieder verwendbare Komponente zu gestalten. Die Elemente der Common Language Runtime zeigt Abbildung 1. Abbildung 1: Elemente der Common Language Runtime Die Common Language Runtime unterstützt mehr als 20 Sprachen. Die Sprachen werden durch einen Compiler zu Zwischensprachen kompiliert. Dieser intermediäre Sprachcode wird durch einen an das jeweilige System angepassten JIT-Compiler (Just-In-Time) in Computersprache kompiliert. Dieser verwaltete Code wird dann in der Common Language Runtime auf dem Clientgerät ausgeführt. Vorteile Die Common Language Runtime bietet eine solide Grundlage für Entwickler zum Erstellen verschiedener Anwendungstypen. Die Common Language Runtime bietet die folgenden Vorteile, unabhängig davon, ob ein Entwickler eine ASP.NET-Anwendung, eine Windows Forms-Anwendung, einen XML-Webdienst, eine mobile Codeanwendung, eine verteilte Anwendung oder eine Anwendung, die mehrere dieser Anwendungsmodelle vereint, erstellt: Vereinfachte Entwicklung. Integration von Code in verschiedenen Sprachen. Sicherheit mit Codeidentität. Bereitstellung ohne DLL-Versionsprobleme (auch als „DLL-Hölle“ bezeichnet). Versionsverwaltung von wieder verwendbaren Komponenten. Wiederverwendung durch Implementierungsvererbung. Verwaltung der Objektgültigkeitsdauer. Objektbeschreibungen. Die Common Language Runtime vereinfacht das Entwerfen von Komponenten und Anwendungen, deren Objekte sprachübergreifend interagieren. Objekte, die in unterschiedlichen Sprachen erstellt wurden, können miteinander kommunizieren und ihr Verhalten kann umfassend integriert werden. Ein Entwickler kann z. B. eine Klasse definieren und dann eine andere Sprache verwenden, um eine Klasse von der ursprünglichen Klasse abzuleiten, oder eine Methode aus der ursprünglichen Klasse aufzurufen. Entwickler können außerdem eine Instanz einer Klasse an eine Methode einer Klasse übergeben, die in einer anderen Sprache erstellt wurde. Diese sprachübergreifende Integration ist möglich, weil Sprachcompiler und Tools, die die Laufzeit zuordnen, ein gemeinsames, durch die Laufzeit definiertes Typsystem verwenden und die Regeln der Laufzeit zum Definieren, Erstellen, Verwenden, Speichern und Binden neuer Typen befolgen. „Ich vertraue auf .NET” Rick Devenuti Vice President Chief Information Officer Microsoft Corporation Die Common Language Runtime kann von beliebigen Programmen verwendet werden, die in einer beliebigen Umgebung von NOTEPAD.EXE bis zu erweiterten IDEs (Integrated Development Environments) wie Visual Studio.NET. entwickelt wurden. Technologische Anforderungen Die Common Language Runtime muss für jeden .NET-Code installiert sein, der auf dem Server (oder bei Windows Forms-Anwendungen auf dem Clientcomputer) ausgeführt werden soll. Zur Zeit der Veröffentlichung des vorliegenden Dokuments ist die Common Language Runtime als Teil des SDKs von .NET Framework installiert und wird in die Microsoft Windows Server™ 2003-Produktfamilie eingeschlossen. .NET Framework-Klassen Das .NET Framework enthält Klassen, Schnittstellen und Werttypen, die den Entwicklungsprozess beschleunigen und optimieren, sowie Zugriff auf die Systemfunktionalität bieten. Um sprachübergreifende Interoperabilität zu ermöglichen, entsprechen die .NET Framework-Typen der Common Language Specification (CLS) und können daher von jeder Programmiersprache mit einem unterstützten Compiler verwendet werden. Dies ermöglicht IT-Abteilungen in Unternehmen, das bereits bewährte Entwicklerteam beizubehalten und zu erweitern. Darüber hinaus kann unverzüglich mit der Entwicklung neuer .NET-Anwendungen oder .NET-Erweiterungen zu bestehenden Anwendungen mit vollständiger Interoperabilität begonnen werden. Dies verringert Markteinführungszeiten bei gleichzeitig gesteigerter Wiederverwendbarkeit durch sprachübergreifende Vererbung. Die .NET Frameworktypen bilden die Grundlage auf der .NET-Anwendungen, Komponenten und Steuerelemente erstellt werden. Das .NET Framework enthält Typen, die die folgenden Funktionen ausführen: Darstellen von Basisdatentyp und Ausnahmen. Verkapseln von Datenstrukturen. Ausführen von Eingabe/Ausgabe (E/A). Zugreifen auf Informationen zu geladenen Typen. Aufrufen von .NET Famework-Sicherheitsüberprüfungen. Bereitstellen von Datenzugriff. Bereitstellen einer umfassenden, clientseitigen grafischen Benutzeroberfläche (Graphical User Interface oder GUI) und einer servergesteuerten, clientseitigen GUI. Das .NET Framework bietet eine umfassende Gruppe von Schnittstellen, sowie abstrakte und konkrete (nicht-abstrakte) Klassen. Entwickler können die konkreten Klassen direkt verwenden, oder benutzerdefinierte Klassen daraus ableiten. Um die Funktionalität einer Schnittstelle zu verwenden, können Entwickler entweder eine Klasse erstellen, die die Schnittstelle implementiert, oder eine Klasse aus einer der .NET Framework-Klassen ableiten, die die Schnittstelle implementieren. Vorteile Schnellere Markteinführungszeiten. Anwendungsfeatures, die gewöhnlich nur schwer zu implementieren waren oder eine Drittanbieterkomponente erforderten, können jetzt mit Hilfe des .NET Frameworks durch nur wenige Codezeilen hinzugefügt werden. Das .NET Framework bietet über 4500 Klassen, die umfassende Funktionalität enthalten. Hierzu zählen u. a. XML, Datenzugriff, Dateiübertragung, reguläre Ausdrücke, Bilderstellung, Leistungsüberwachung und -protokollierung, Transaktionen, Message Queuing und SMTP-Mail. Release Services Manager (RSM) 2.0, eine intern entwickelte Unternehmensanwendung, stellt Microsoft Echtzeitzugriff zu Produkt- und Veröffentlichungsdaten bereit und unterstützt die elektronische Lieferung von Produktinformationen an Händler und Unternehmenspartner. Der Entwurf von RSM 2.0 basiert auf einer n-stufigen Architektur, wobei die mittlere Stufe aus mehreren XMLWebdiensten besteht, die mit Hilfe eines mittelstufigen Frameworks von Klassen mit der Datenbank kommunizieren. Durch das Erstellen einer Smartclient-Anwendung wurde durch Windows Forms eine umfangreiche Benutzeroberfläche für RSM 2.0 entwickelt. Diese Entwicklung erforderte weniger Aufwand als die Bearbeitung der webbasierten Benutzeroberfläche aus der vorherigen Version von RSM. Mehrere .NET Framework-Klassen wurden verwendet, um Dateien auf dem Clientcomputer zu bearbeiten. Hintergrundverarbeitung und Multithreading minimierten die Auswirkungen auf die Leistung. Technologische Anforderungen Die .NET Common Language Runtime muss auf Clients und Servern installiert werden, die .NETAnwendungen ausführen. Die Frameworkbibliothek und Common Language Runtime werden gemeinsam als ein Installationspaket von ungefähr 21 MB verteilt. Zur Zeit der Veröffentlichung dieses Dokuments kann dieses Paket über das .NET Framework-SDK installiert werden. ASP.NET ASP.NET ist eine neuartige, leistungsstarke Programmierumgebung, die die schnelle Entwicklung leistungsstarker Webanwendungen und -dienste ermöglicht. Es bietet eine einfache und höchst skalierbare Möglichkeit zum Erstellen, Einsetzen und Ausführen von Webanwendungen für beliebige Browser und Geräte. Vorteile Im Folgenden werden die wesentlichen Vorteile von ASP.NET aufgeführt: Einfaches Programmiermodell. ASP.NET stellt eine wesentliche Erleichterung für das Erstellen reeller Webanwendungen dar. ASP.NET-Serversteuerelemente ermöglichen einen HTMLähnlichen, deklarativen Programmierstil mit dem Entwickler effektive Seiten mit wesentlich weniger Code erstellen können, als dies bisher mit Active Server Pages (ASP) möglich war. Das Anzeigen von Daten, das Überprüfen von Benutzereingaben und das Übertragen von Dateien sind einfache Prozesse. ASP.NET-Seiten unterstützen alle Browser einschließlich Netscape, Opera, AOL und Microsoft Internet Explorer. Flexible Sprachoptionen. Mit Hilfe von ASP.NET können Entwickler ihre bisherigen Programmiersprachenkenntnisse nutzen. Im Gegensatz zum klassischen ASP, das nur interpretiertes VBScript (Microsoft Visual Basic Scripting Edition) und JScript unterstützt, unterstützt ASP.NET jetzt mehr als 25 .NET-basierte Sprachen, einschließlich integrierter Unterstützung für Visual Basic .NET, C# und JScript .NET. Dies bietet Entwicklern große Flexibilität in der Wahl der Programmiersprache. Erweiterte Entwicklungsumgebung. Entwickler können die Leistung von ASP.NET mit einem beliebigen Texteditor vollständig nutzen; dies gilt sogar für Notepad. Visual Studio .NET fügt jedoch zusätzlich die Produktivität der Visual Basic-Formatentwicklung für das Web hinzu. Entwickler können ASP.NET-Web Forms (Webformulare) jetzt visuell mit Hilfe bekannter Drag & Drop- und Doppelklicktechniken entwerfen. Zudem steht Entwicklern die vollständige Codeunterstützung einschließlich Anweisungsvervollständigung und Farbcodierung zur Verfügung. Visual Studio .NET bietet außerdem integrierte Unterstützung für das Testen und Bereitstellen von ASP.NET-Webanwendungen. Verbesserte Leistung. Die Trennung von Code und Inhalt ermöglicht die dynamische Kompilierung von ASP.NET-Seiten in verwaltete Klassen für eine hohe Verarbeitungsgeschwindigkeit. Jede eingehende HTTP-Anforderung wird an eine neue Seiteninstanz geliefert, so dass Entwickler sich bei der Programmierung keine Gedanken über die Threadsicherheit machen müssen. Einfachere, schnellere Bereitstellung. ASP.NET verwendet das Microsoft .NET FrameworkBereitstellungsmodell, das auf Assemblys basiert. Hierdurch können die Vorteile von Features wie XCOPY-Bereitstellung, parallele Bereitstellungen von Assemblys und XML-basierte Konfiguration genutzt werden. ASP.NET unterstützt außerdem die Bereitstellung einer vollständig kompilierten Anwendung. Der Vorteil hiervon ist, dass für den Administrator des Webservers kein Quellcode sichtbar ist. Dies kann eine wichtige Rolle spielen, wenn die Anwendung durch ein anderes Unternehmen gehostet wird. ASP.NET verwendet ein sehr einfaches Bereitstellungsmodell. Um eine Anwendung bereitzustellen, werden einfach alle Dateien der Anwendung in das entsprechende Verzeichnis kopiert. Es ist keine Registrierung von Objekten und kein Neustart der Anwendung erforderlich. Alle Teile einer ASP.NET-Anwendung können auf diese Weise bereitgestellt werden. Hierzu zählen Seiten, XML-Webdienste, kompilierte Komponenten (innerhalb von DLLs) und sogar Konfigurationsdaten. Beispielsweise verwendeten die Entwickler der Information Technology Group (ITG) von Microsoft ASP.NET, um die Benutzeroberfläche für MS Contract zu erstellen. Dabei handelt es sich um eine Anwendung, die Unterstützung bei der Verwaltung und Koordinierung der komplexen Verwaltung von Verträgen bei Microsoft bietet. ASP.NET ermöglichte den Entwicklern von MS Contract, bereinigten und strukturierten Code zu schreiben. Da neue Codeversionen vierteljährlich veröffentlicht werden und an einem Projekt häufig unterschiedliche ITG-Entwickler arbeiten, ist die Entwicklung von übersichtlichem Code unerlässlich für die Effizienz und Wartung. Für Aufgaben wie das Auffüllen eines Listenfeldes nach einer Rücksendung, wurden MS Contract-Datenbanktreffer auf 30 % beschränkt. Diese Funktion konnte fast ohne Programmieraufwand realisiert werden. Unternehmensversionen von Visual Studio .NET bieten Features für eine schnelle Entwicklung von Webanwendungen, um Organisationen beim Planen, Analysieren, Entwerfen, Erstellen, Testen sowie Koordinieren von Entwicklerteams für ASP.NET Webanwendungen zu unterstützen. Zu diesen Features zählen Unified Modeling Language-Klassenmodellierung (UML) (konzeptuelle, logische und physikalische Modelle), Testtools (Funktionen, Leistung und Skalierbarkeit), sowie Frameworks und Vorlagen für Unternehmen. Diese Features sind alle in der integrierten Visual Studio .NET-Umgebung verfügbar. ASP.NET verschiebt das Konzept herkömmlicher ASP-Anwendungsprogrammierung auf die nächste Ebene. Eine Website oder Webanwendung innerhalb einer Website kann sowohl ASP.NET-Seiten, als auch ASP-Seiten enthalten. Da auf ASP- und ASP.NET-Seiten vom selben Webserver aus zugegriffen werden kann, müssen bestehende ASP-Seiten nicht an ASP.NET-kompatible Seiten angeschlossen werden. Von Microsoft durchgeführte Tests haben jedoch ergeben, dass ASP.NETAnwendungen Anforderungen zwei- bis dreimal schneller verarbeiten können als herkömmliche ASPAnwendungen. Neue Features wie Serversteuerelemente und Ereignisbehandlung in ASP.NET unterstützen Entwickler darin, Anwendungen schneller und mit weniger Programmieraufwand zu erstellen. Es ist außerdem wesentlich einfacher als bisher, Code von HTML-Inhalt zu trennen. Technologische Anforderungen Das ASP.NET-Modell setzt eine statusfreie Dienstarchitektur voraus. Statusfreie Architekturen sind allgemein besser skalierbar als statusbehaftete Architekturen. XML-Webdienste können die ASP.NETStatusverwaltungsdienste verwenden, wenn der Status anforderungsübergreifend beibehalten werden muss. XML-Webdienste basierend auf ASP.NET sind verwaltete Anwendungen, die von der Common Language Runtime ausgeführt werden, und daher alle oben beschriebenen Features der Common Language Runtime und des .NET Frameworks nutzen können. Alternativ hierzu können Sie .NETverwalteten Code verwenden, der in der Common Language Runtime ohne Verwendung von ASP.NET ausgeführt wird. C# (C Sharp) C# (gesprochen „C Sharp”) ist eine einfache, moderne, objektorientierte und typensichere Sprache, die Programmierern das schnelle und einfache Erstellen von Lösungen für die .NET-Plattform ermöglicht. Vorteile Wiederverwendung von Code. Komponenten, die mit Hilfe von C# entworfen wurden, können auf einfache Weise zu XML-Webdiensten konvertiert werden, die internetweit unter Verwendung einer beliebigen Sprache, die auf einem beliebigen Betriebssystem ausgeführt wird, aufgerufen werden können. Erweiterte Leistung. Garbage Collection (Sammlung der veralteten Objekte); keine manuelle Arbeitsspeicherverwaltung. Erweiterte Zuverlässigkeit. Variablen werden automatisch initialisiert und sind typensicher. Gesteigerte Entwicklerproduktivität. Unterstützung von Versionserstellung und Skalierbarkeit. Schnellere Markteinführungszeiten. Bessere Zuordnung zwischen Unternehmensprozess und Implementierung. Entwickler können domänenspezifische Attribute definieren und diese zu beliebigen Sprachelementklassen, Schnittstellen etc. zuordnen. Die definierten Attribute aller Elemente können programmatisch untersucht werden. Umfassende Interoperabilität. Native Unterstützung für COM und Windows-API. C# hat wesentlich zum Erfolg von Consensus 3.0 beigetragen. Consensus 3.0 ist eine webbasierte Anwendung, mit der Microsoft-Benutzer oder -Gruppen auf einfache Weise elektronische Umfragen erstellen, verteilen und verwalten können, um wertvolles Feedback zu erhalten. Das Team, das diese Anwendung entwickelt hat, verwendete das .NET Framework und die Sprache C#, um einen Multithread-Mailservice zu einzurichten. Durch die Verwendung von C# konnte die Entwicklungs- und Testdauer unter Beibehaltung des objektorientierten Ansatzes reduziert werden, ohne diesen aufzugeben. Für dieses Projekt war C# als Sprache für den Anwendungsentwurf optimal geeignet. Durch die Unterstützung des .NET Frameworks bei den grundlegenden Programmieraufgaben bewertete das Team die Verwendung von C# im Vergleich zu Visual Basic sogar als einfacher. Technologische Anforderungen Für die Entwicklung erfordert C# die Common Language Runtime und die .NET FrameworkKlassenbibliotheken. VisualBasic.NET (VB.NET) Visual Basic .NET ist die nächste Version von Visual Basic zum Entwickeln verteilter Anwendungen, wie z.B. n-stufiger Unternehmens- und Websysteme. Vorteile Erweiterte, objektorientierte Unterstützung, z. B. Vererbung. Strukturierte Ausnahmebehandlung. Neue Threadoptionen. Garbage Collection. Einfaches Erstellen von Web Forms, wie das Erstellen von Windows Forms. Schnelles Erstellen von XML-Webdiensten. Neue Version von ActiveX® Data Objects (ADO) zum Zugreifen auf unverbundene Datenquellen. Unterstützung von sprachübergreifender Vererbung. (Klassen, die in Visual Basic .NETVB.NET entwickelt wurden, können von in anderen Sprachen erstellten Klassen erben.) Vollständige Integration von Visual Basic .NET in andere Visual Studio .NET-Sprachen. Schnelles Entwickeln skalierbarer Websites mit Hilfe von Web Forms und Microsoft ADO.NET. Einfaches Bereitstellen der Anwendung durch Kopieren ausführbarer Dateien und Komponenten von Verzeichnis zu Verzeichnis. Testen von mehrsprachigen Anwendungen mit dem vereinheitlichten Debugger. Die Vorteile beim Debuggen mit Hilfe von Visual Basic .NET wurden bei der Entwicklung von Consensus 3.0 deutlich. Bei diesem Projekt reduzierte das nahtlose Testen im .NET Framework die herkömmliche Testdauer um ungefähr 50 %. Dieses herausragende Ergebnis führte dazu, dass die Entwickler von Consensus auch in Zukunft nicht mehr auf die alte Testumgebung zurückgreifen werden. Technologische Anforderungen Für die Entwicklung erfordert Visual Basic .NET die Common Language Runtime, die .NET Framework-Klassenbibliotheken und die Visual Studio .NET IDE. Anwendungen basierend auf Microsoft Visual Basic, Version 6.0, können auf Visual Basic .NET mit Hilfe des Aktualisierungs-Assistenten und Befehlszeilentools in Visual Basic .NET aktualisiert werden. JScript .NET JScript .NET, die nächste Generation der JScript-Sprache, ist eine objektorientierte Skriptsprache für die Entwicklung client- und serverseitiger Skripte für ASP.NET-Webanwendungen. Vorteile Leistungsverbesserung (es handelt sich um eine „echt“ kompilierte Sprache). Die Eingabe in JScript .NET wird durch explizite Typdeklaration und implizite Typinferenz (Typenvariablen und typenlose Variablen) eingeführt. Vollständige Unterstützung von klassenbasierten Objekten (mit Vererbung, Funktionsüberlastung, Eigenschaftszugriff etc.). Sprachübergreifende Unterstützung und Zugriff auf das .NET Framework. Technologische Anforderungen Für die Entwicklung erfordert JScript.NET die Common Language Runtime und .NET FrameworkKlassenbibliotheken. XML-Webdienste Ein XML-Webdienst ist eine Gruppe von Funktionen, als Einheit gepackt und veröffentlicht, um Daten und Dienste für andere Anwendungen bereitzustellen. Anwendungen greifen auf XML-Webdienste über Standardwebprotokolle und -datenformate wie HTTP, XML und SOAP (Simple Object Access Protocol) zu. Hierbei kann die Implementierung des jeweiligen Webdienstes außer Acht gelassen werden. XML-Webdienste bilden Blöcke zum Erstellen offener verteilter Systeme. Vorteile XML-Webdienste bieten die folgenden Vorteile: Interoperabilität. Jeder Webdienst kann mit jedem anderen beliebigen Webdienst über SOAP kommunizieren. Stetige Erreichbarkeit. XML-Webdienste kommunizieren mit Hilfe von HTTP und XML. Jedes Gerät, das diese Technologien unterstützt, kann daher XML-Webdienste sowohl hosten, als auch darauf zugreifen. Geringe Startbarrieren. Die Konzepte von XML-Webdiensten sind leicht verständlich, und kostenlose Toolkits ermöglichen Entwicklern das schnelle Erstellen und Bereitstellen von XMLWebdiensten. Zudem ermöglichen einige dieser Toolkits, dass bereits bestehende Komponenten auf einfache Weise als XML-Webdienste dargestellt werden. Industrieunterstützung. Die meisten führenden Softwareunternehmen unterstützen SOAP und die dazu gehörende XML-Webdiensttechnologie. Die .NET-Plattform basiert z. B. auf XMLWebdiensten. Hierdurch wird es wesentlich leichter, in Visual Basic erstellte Komponenten als XML-Webdienste bereitzustellen, die dann von XML-Webdiensten, die z. B. in IBM VisualAge erstellt wurden, verwendet werden können. Abbildung 2 zeigt, wie XML-Webdienste verbunden werden können, um eine verteilte Anwendung zu erstellen. Abbildung 2: Anwendungsmodell für XML-Webdienste Ein Beispiel für eine Anwendung, die einen XML-Webdienst verwendet, ist Account Explorer. Dies ist eine webbasierte Anwendung, mit der Microsoft-Angestellte anhand einer Benutzeroberfläche Kundendaten anzeigen können, die in vielen unterschiedlichen Datenbanken gespeichert sind. Benutzer greifen auf den SQL Server™ 2000-Datenbankserver über XML-Webdienste zu. XMLWebdienste bieten außerdem die Überprüfung von Benutzeranmeldeinformationen, um Sicherheitsanforderungen zu erfüllen. Das zugrunde gelegte Design von Account Explorer ermöglichte dem Entwicklungsteam, bekannte Industriestands wie SOAP (Simple Object Access Protocol) und XML zu verwenden, um die Vorteile von XML-Webdiensten vollständig zu nutzen. Microsoft entdeckte einen weiteren wertvollen Verwendungszweck für XML-Webdienste: das Optimieren der Suchfunktion auf der Hauptwebsite von Microsoft. Ein XML-Webdienst, der Antworten zu den häufigsten Fragen enthält, die an Microsoft über das Web gesendet werden, ist jetzt in die Suchergebnisse (als Best Bets) und die URLs (als “Smart 404s”) integriert worden, die normalerweise bei der Eingabe in einen Browser HTTP 404-Fehler erzeugen würden. Da es sich bei der Suchfunktion jetzt um einen XML-Webdienst und nicht mehr um eine einzelne Funktion handelt, kann die Suche auf einer beliebigen Plattform, in einer beliebigen Sprache, innerhalb von Microsoft.com oder auf beliebigen Websites im Internet verwendet und implementiert werden. .NET Remoting Kommunikation ist der Schlüssel zu Objekten, die auf anderen Netzwerken oder Anwendungsdomänen gespeichert sind. Diese Objekte werden auch als Remoteobjekte bezeichnet. .NET Remoting bietet eine äußerst leistungsstarke Methode, um die domänenübergreifende Kommunikation zwischen Objekten zu ermöglichen. Die Kommunikation zwischen der .NET-basierten Anwendung und den Anwendungsdomänen wird über Channels ausgeführt, die für den Transport von Nachrichten zwischen den Remoteobjekten verantwortlich sind. Eine Nachricht wird durch ein Formatierungsprogramm (auch „Formatter“ genannt) formatiert (kodiert und dekodiert), bevor sie über die Channels transportiert wird. Das .NET Framework stellt zusätzlich zu SOAP und binären Formatierungen, auch HTTP- und Transmission Control Protocol-Channels (TCP) zur Verfügung. Der HTTP-Channel verwendet zum Übertragen von Nachrichten die SOAP-Formatter, während der TCP-Channel binäre Formatierungsprogramme verwendet. Beide Channels können für die Verwendung entsprechender Formatierungsprogramme angepasst werden. Zudem sind Channels von Drittanbietern verfügbar. Der HTTP-Channel verwendet SOAP zum Übertragen von Nachrichten, während der TCP-Channel binäre Formatierungsprogramme verwendet. Beide Channels können für die Verwendung entsprechender Formatierungsprogramme angepasst werden. Zudem sind Channels von Drittanbietern verfügbar. Vorteile .NET Remoting bietet die folgenden Vorteile: Einfache Verwendung mit dem Netzwerk oder dem Internet. Transparente Objektinteraktion aufgrund des einfachen Programmiermodells und der Laufzeitunterstützung. Clients können mit den Remoteobjekten mit Hilfe eines beliebigen registrierten Channels kommunizieren (Channels müssen vor den Objekten registriert werden). Windows Forms Windows Forms versetzen die herkömmliche, umfassende Desktopanwendung in Windows und die Entwicklung unter Verwendung von Visual Studio-Formularen in die Welt des verwalteten Codes und der Common Language Runtime. Vorteile Einfache Bereitstellung. Windows Forms-Anwendungen können herkömmlich über eine SETUP.EXE/MSI-Datei oder dynamisch mit HTTP über einen Webbrowser verteilt werden. Dies ähnelt der Verteilung von ActiveX-Steuerelementen. Windows-Formulare bieten jedoch die Möglichkeit, nur die zur jeweiligen Zeit erforderlichen Teile zu downloaden. Dies stellt eine wesentliche Erleichterung für die Bereitstellung in Unternehmen im Vergleich zur herkömmlichen, monolithischen Bereitstellung von AcitveX-Komponenten dar. Mehr Sicherheit. Windows Forms werden unter Verwendung der Common Language Runtime ausgeführt und für die Anwendung werden Sicherheitsrichtlinien für den Codezugriff verwendet. Für die interne Microsoft-Anwendung Release Services Manager (RSM) verwendeten Entwickler Windows Forms, um eine stabile Smartclient-Version (2.0) mit der Skalierbarkeit und Verfügbarkeit einer webbasierten Anwendung zu erstellen. Bei der vorherigen Version von RSM mussten die Benutzer pro Datei dreimal klicken und durch drei Bildschirme navigieren. Mit Windows Forms klicken Benutzer nur zweimal, um alle Dateien für eine Komponente zu verarbeiten. Ein Navigieren durch mehrere Bildschirme ist hierbei nicht erforderlich. Aufgrund der Flexibilität von Windows Forms besteht die gesamte Anwendung nicht aus einer ausführbaren Datei, sondern aus mehreren DLLs. Diese können bei Bedarf vom Webserver heruntergeladen werden. Dies erleichtert das Hinzufügen neuer Bildschirme und neuer Funktionalität, da hierzu die bestehende Anwendung nicht bearbeitet oder erneut kompiliert werden muss. Technologische Anforderungen Um Windows Forms-Anwendungen auf einem Desktopcomputer auszuführen, muss das .NET Framework auf dem Hostcomputer installiert sein. Die Verwendung von Windows Forms erfordert die Common Language Runtime, die .NET Framework-Klassenbibliotheken und für eine einfache Entwicklung die Visual Studio .NET-IDE. Windows Forms-Anwendungen erfordern für die Installation auf dem Client-PC die .NET Common Language Runtime, unabhängig davon, ob die Anwendung, wie herkömmlich, über eine SETUP.EXEDatei installiert, oder ob sie auf dem PC mit Hilfe eines Webbrowsers durch Streaming installiert wird. Visual Studio .NET Visual Studio .NET ist die primär integrierte Entwicklungsumgebung (Integrated Development Environment oder IDE) für die Erstellung von .NET-Anwendungen, die in verwaltetem Code unter Verwendung der .NET Common Language Runtime und .NET Framework-Klassen ausgeführt werden. Diese Version setzt außerdem die Visual Studio-Tradition fort und ermöglicht Entwicklern, herkömmliche, nicht verwaltete C++- oder C#-Anwendungen zu kompilieren. Vorteile Visual Studio .NET ermöglicht eine schnelle Anwendungsentwicklung (Rapid Application Development oder RAD) mit äußerst produktiven Entwicklungstools. Eine stark integrierte und vereinheitlichte visuelle Umgebung vereinfacht den Entwicklungsprozess von Webanwendungen und reduziert Einarbeitungsphasen. Freigegebene HTML-, XML- und Stylesheet-Editoren erleichtern die Entwicklung von Webanwendungen mit Hilfe einer beliebigen Visual Studio-Sprache, einschließlich der neuen Programmiersprache C#. Das gut strukturierte und einfache Programmiermodell in Visual Studio .NET eignete sich für Microsoft Press® optimal zum Überarbeiten der Microsoft Press Connections-Website. Das Entwicklungsteam stellte fest, dass C# verkapselter und besser zu warten war als die Vorgängersprachen. Das Team konnte auf einfache Weise die für das Projekt wichtigen, dynamischen Seiten erstellen. Zudem konnten mehrere Konsolenanwendungen in C# entwickelt werden, die in Stapelverarbeitung ausgeführt werden können. Visual Studio .NET stellte die erforderliche Rahmenumgebung zur Verfügung, um die einfache Entwicklung und das Testen von Aktualisierungsfunktionen für Stapelverarbeitungsdaten zu ermöglichen. Auf ähnliche Weise wurde die intern entwickelte Anwendung für Kundenfeedback, MS Contract, für die Veröffentlichung der Version MS Contract 2.0 an Visual Studio .NET angeschlossen. Nach dem Wechsel zu Visual Studio .NET konnte das Entwicklungsteam alle Entwicklungsarbeiten, die nicht datenbankbezogen waren, in Visual Studio .NET ausführen, statt wie bisher eine Kombination aus Microsoft Visual InterDev®, Visual Basic und Microsoft Visual C++® zu verwenden. Da die gesamte Kompilierungsarbeit für MS Contract 2.0 in einer Umgebung ausgeführt werden konnte, entfiel der ständige Wechsel zwischen unterschiedlichen Tools. Hierdurch konnten die Entwickler bei der Bearbeitung der unterschiedlichen Codeebenen Zeit einsparen. Das Consensus-Entwicklungsteam reagierte begeistert auf die Erfahrungen mit Visual Studio .NET, wie der Chief Technology Officer (CTO) von LeadByte berichtete: „Für diese beeindruckende Produktivitätssteigerung war nicht allein die intuitive IDE, der großartige Debugger oder die automatische Generierung von systeminternem SOAP verantwortlich. Eine wichtige Rolle spielte auch die Art und Weise, wie der gesamte Entwicklungsprozess integriert war, um die Entwickler beim Erstellen der Anwendungen für das .NET Framework zu unterstützen.” Im Verlauf dieses Projekts wurden die Entwickler effizienter im Erstellen gemeinsamer Komponenten, sowie freigegebenem, verwaltetem Code. Visual Studio .NET ermöglicht Entwicklern das schnelle Erstellen neuer Anwendungen mit verwaltetem Code, die die umfassende Funktionalität und die Klassenbibliotheken des .NET Frameworks nutzen. Mit Hilfe von Visual Studio .NET können Entwickler außerdem herkömmliche Anwendungen mit nicht verwaltetem Code in C++, wie z. B. Microsoft Word oder Microsoft Excel, mit neuen optimierten Compilern erstellen. Die Verwendung von Visual Studio .NET bietet Entwicklern die folgenden Möglichkeiten: Schnelles Entwerfen von umfassenden Webanwendungen. Mit Hilfe von Web Forms können Entwickler plattform- und browserübergreifende, programmierbare Webanwendungen erstellen, indem sie bekannte Techniken verwenden, die ihnen durch die Entwicklung formularbasierter Desktopanwendungen vertraut sind. Web Forms werden auf dem Webserver ausgeführt. Sie bieten eine schnelle Laufzeitgeschwindigkeit und erzeugen HTML 3.2-kompatible Dokumente, die in einem beliebigen Browser ausgeführt werden können. Einfache Verwendung von XML-Webdiensten, um verteiltes Computing zu vereinfachen. Mit Hilfe von XML-Webdiensten können Entwickler Unternehmenslogik remote anhand von standardmäßigen Internetprotokollen aufrufen. XML-Webdienste verwenden HTTP (Hypertext Transfer Protocol) als zugrunde liegendes Übertragungsprotokoll, das Funktionsanforderungen zum Passieren durch Unternehmensfirewalls ermöglicht. XML wird zum Formatieren der Eingabeund Ausgabeparameter der Anforderung verwendet, so dass die Anforderung nicht an eine bestimmte Komponententechnologie oder objektaufrufende Konventionen gebunden ist. XMLWebdienste sind daher unter Verwendung einer beliebigen Sprache und eines beliebigen Komponentenmodells verfügbar und können auf jedem beliebigen Betriebssystem ausgeführt werden. Schnelles Erstellen mittelstufiger Unternehmenskomponenten. Ein wichtiges Ziel von Visual Studio ist die Bereitstellung von RAD-Tools für serverbasierte Entwicklung. Die neue Produktivitätsebene, die Visual Studio .NET zum Erstellen mittelstufiger Unternehmenslogik bietet, ist vergleichbar mit der Bedeutung von Visual Basic für die formularbasierte Entwicklung. Erstellen skalierbarer, verfügbarer Lösungen. Visual Studio .NET erleichtert das Erstellen zuverlässiger Anwendungen und Komponenten, die standardmäßig skalierbar sind. Wenn ein Entwickler z. B. eine Webanwendung mit Microsoft Visual C++® erstellt, bietet der neue Active Template Library-Server (ATL) eine bedeutende Leistungsverbesserung. Windows Server System Das Windows Server System (früher .NET Enterprise Server) bildet die Microsoft-Reihe für XMLfähige Unternehmensprodukte: Microsoft SQL Server™ 2000, Microsoft Exchange 2000, Microsoft BizTalk™ Server 2000, Microsoft Application Center 2000, Microsoft Commerce Server, Microsoft Content Management Server, Microsoft Host Integration Server 2000, Microsoft Internet Security and Authorization Server, Microsoft Mobile Information 2001 Server, Microsoft SharePoint™ und die Windows Server 2003-Produktfamilie. Vorteile Diese Produkte ermöglichen einen problemlosen XML-Zugriff auf Daten und Funktionalität. Dies erleichtert die Integration dieser Produkte in das .NET Framework, da durch XML innerhalb verteilter .NET-Anwendungen die Datenbearbeitung wesentlich verbessert wird und die Zugriffsprobleme erheblich reduziert werden. Die Vorteile des Windows Server System werden in der Supportinitiative von Microsoft offensichtlich. Hierdurch wurde die Infrastruktur geschaffen, um Kunden den Kontakt zu Microsoft Support Services über die für beide Seiten kostengünstigste und schnellste Möglichkeit zu bieten: das Internet. Die Verwendung von XML bietet Flexibilität im elektronischen Austausch von Informationen zwischen Kunden und Microsoft Support Services, sowie zwischen Microsoft-internen Supportsites. Einige Transaktionen akzeptieren wohl geformte XML-Elemente als Eingabeparameter und verwenden SQL Server 2000-XML-Funktionen für einen extrem flexiblen und erweiterbaren Entwurf. (Neue Werte können ohne erneute Kompilierung von Stufe 2-Komponenten weitergeleitet und zurückgegeben werden.) SQL Server 2000 erweist sich mit zunehmender Verwendung der .NET-Plattform als besonders vorteilhaft. SQL Server 2000 wird z. B. als Datenbankserver für die Microsoft-interne Anwendung Account Explorer verwendet. Microsoft vertraut auf ein SQL Server 2000-basiertes, verteiltes Datawarehouse, das fast 1 Terabyte an kundenbezogenen Daten und 150 Millionen SQLTransaktionsdatensätze speichert, um Kundenbeziehungen effektiv zu verwalten. Schlussfolgerung: Verwalteter Code und Daten Um Dienste der Common Language Runtime zu nutzen, muss verwalteter Code eine minimale Informationsebene (Metadaten) für die Laufzeit bereitstellen. Jeder C#-, Visual Basic .NET- und JScript .NET-Code wird standardmäßig verwaltet. Visual Studio .NET C++-Code wird nicht standardmäßig verwaltet. Der Compiler kann jedoch verwalteten Code erzeugen, indem eine Befehlszeilenoption angegeben wird (/CLR). Verwalteter Code ist eng verbunden mit verwalteten Daten. Hierbei handelt es sich um Daten, die durch die Sammlung verwalteter Objekte in der Common Language Runtime zugeordnet werden, bzw. deren Zuordnung aufgehoben wird. Alle C#-, Visual Basic- und JScript .NET-Daten werden standardmäßig verwaltet. C#-Daten können jedoch unter Verwendung bestimmter Schlüsselwörter als nicht verwaltet gekennzeichnet werden. Visual Studio .NET C++-Daten werden standardmäßig nicht verwaltet (auch bei Verwendung der /CLR-Befehlszeilenoption). Eine Klasse kann jedoch mit Hilfe des Schlüsselwortes __gc in den verwalteten Erweiterungen für C++ als verwaltet markiert werden. Wie der Name des Schlüsselwortes andeutet, wird das Speichern für Instanzen der Klasse durch die Sammlung verwalteter Objekte verwaltet. Die Klasse wird außerdem zu einem vollständig teilnehmenden Mitglied der .NET Framework-Gemeinschaft, mit allen Vorteilen und Einschränkungen, die diese Mitgliedschaft beinhaltet. Ein Vorteil ist z. B. die Interoperabilität mit Klassen, die in einer anderen Sprache erstellt wurden (eine verwaltete C++-Klasse kann beispielsweise von einer Visual Basic-Klasse erben). Eine Einschränkung ist z. B., dass eine verwaltete Klasse nur von einer Basisklasse erben kann. Anwendungen und Steuerelemente für das .NET Framework erfordern die Installation von .NET Framework auf dem Computer, auf dem die Anwendung oder das Steuerelement ausgeführt wird. Version 1.0 von .NET Framework bietet einen verteilbaren Installer, der die Common Language Runtime- und .NET Framework-Komponenten enthält, die zum Ausführen von .NET FrameworkAnwendungen erforderlich sind. Die weitervertreibbare .NET Framework-Version ist als eigenständige ausführbare Datei, DOTNETFX.EXE, verfügbar. Sie können DOTNETFX.EXE manuell auf einem Computer starten und installieren, oder als Teil des Installationsprogramms für eine .NET FrameworkAnwendung installieren. Für Unternehmen, die .NET Framework-Anwendungen bereitstellen, ist die einmalige Installation des .NET Framework auf allen Benutzercomputern wahrscheinlich einfacher, als es in jede Anwendung, die dies erfordert, einzuschließen, da die Installation von DOTNETFX.EXE Administratorrechte erfordert. Verschiedene elektronische Verteilungstools stehen für die Bereitstellung von DOTNETFX.EXE und (falls erforderlich) von MDAC 2.6 oder höher über ein sicheres Netzwerk zur Verfügung. Systems Management Server (SMS) ermöglicht es Ihnen, Software mit Administratorrechten in einem Netzwerk bereitzustellen. Informationen zu den spezifischen Prozeduren, um mit SMS das Windows Installer-Paket für DOTNETFX.EXE in einem Netzwerk bereitzustellen, finden Sie im .NET Framework Deployment Guide. Hierzu zählt außerdem ein Whitepaper, das spezifische Bereitstellungsszenarien für Visual Studio .NET-Benutzer erläutert. Szenarien zum Bereitstellen von DOTNETFX.EXE werden anhand eines elektronischen Softwareverteilungstools zur Verfügung gestellt, das manuell von einem Downloadspeicherort über ein freigegebenes Netzwerkverzeichnis, ein Intranet oder die MicrosoftWebsite installiert wird. Außerdem kann unter Verwendung der Bootstrapper-Beispieldatei SETUP.EXE ein einzelnes Installationsprojekt entwickelt werden, um DOTNETFX.EXE und eine .NET Framework-Anwendung zu installieren. Weitere Informationen Um weitere Informationen zu Microsoft-Produkten oder -Diensten zu erhalten, wenden Sie sich an die entsprechende Microsoft-Geschäftskundenbetreuung (http://www.microsoft.com/germany/ms/consultingsupport/kontakt/default.htm) oder die Privatkundenbetreuung (0180/525 1199). Darüber hinaus finden Sie weiterführende Informationen im Internet unter folgenden Adressen: http://www.microsoft.com/germany/ http://www.microsoft.com/technet/itsolutions/msit/default.asp (englischsprachig) © 2002 Microsoft Corporation. Alle Rechte vorbehalten. Dieses Dokument dient nur zu Informationszwecken. MICROSOFT SCHLIESST FÜR DIESES DOKUMENT JEDE GEWÄHRLEISTUNG AUS, SEI SIE AUSDRÜCKLICH ODER KONKLUDENT. Microsoft, Active Directory, SharePoint und Windows sind entweder eingetragene Warenzeichen oder Warenzeichen der Microsoft Corporation in den USA und/oder anderen Ländern. Die in diesem Dokument aufgeführten Namen bestehender Firmen und Produkte sind möglicherweise Marken der jeweiligen Eigentümer.