Neues in .NET Framework, Version 2.0

Aktualisiert: November 2007

Die Version 2.0 von Microsoft .NET Framework erweitert .NET Framework, Version 1.1, durch neue Features, Verbesserungen an vorhandenen Features und Erweiterungen der Dokumentation. In diesem Abschnitt finden Sie Informationen zu einigen wichtigen Erweiterungen und Änderungen.

Weitere Informationen zu wichtigen Änderungen, die sich auf Ihre Anwendung auswirken können, finden Sie unter Breaking Changes in the .NET Framework.

Unterstützung für 64-Bit-Plattformen

Die neue Generation von 64-Bit-Computern ermöglicht das Erstellen von Anwendungen, die schneller ausgeführt werden können und mehr Speicher nutzen, als für 32-Bit-Anwendungen verfügbar ist. Die neue Unterstützung für 64-Bit-Anwendungen ermöglicht Benutzern das Erstellen verwalteter Codebibliotheken und das einfache Verwenden von nicht verwalteten Codebibliotheken auf 64-Bit-Computern. Weitere Informationen finden Sie unter 64-Bit-Anwendungen.

Unterstützung von Zugriffssteuerungslisten (Access Control Lists, ACL)

Mit einer Zugriffssteuerungsliste (Access Control List, ACL) wird die Zugriffsberechtigung für eine Ressource auf einem Computer erteilt oder verweigert. .NET Framework wurde durch neue Klassen erweitert, die das Erstellen und Ändern einer ACL durch verwalteten Code ermöglichen. Den E/A-, Registrierungs- und Threadingklassen wurden neue Member hinzugefügt, die eine ACL verwenden.

ADO.NET

Die neuen Features in ADO.NET umfassen die Unterstützung für benutzerdefinierte Typen (User-Defined Types, UDT), asynchrone Datenbankvorgänge, XML-Datentypen, umfassende Werttypen, Snapshotisolierung sowie neue Attribute, die für Anwendungen die Unterstützung von MARS (Multiple Active Result Sets) mit SQL Server 2005 ermöglichen. Weitere Informationen über diese und andere neue ADO.NET-Features finden Sie unter Neues in ADO.NET.

ASP.NET

Microsoft .NET Framework 2.0 beinhaltet in allen Bereichen erhebliche Verbesserungen an ASP.NET. Bei der Webseitenentwicklung vereinfachen neue Steuerelemente das Hinzufügen häufig verwendeter Funktionen zu dynamischen Webseiten. Mit den neuen Datensteuerelementen können Daten auf einer ASP.NET-Webseite angezeigt und bearbeitet werden, ohne dass Code geschrieben werden muss. Ein verbessertes Code-Behind-Modell vereinfacht die Entwicklung von ASP.NET-Seiten und verleiht ihr mehr Stabilität. Features zum Zwischenspeichern bieten eine Reihe neuer Möglichkeiten zum Zwischenspeichern von Seiten, einschließlich der Fähigkeit, Cacheabhängigkeit für Tabellen in einer SQL Server-Datenbank zu erstellen.

Sie können jetzt Websites und -seiten auf unterschiedliche Weise anpassen. Profileigenschaften ermöglichen das automatische Verfolgen von Eigenschaftenwerten für einzelne Benutzer in ASP.NET. Mithilfe von Webparts können Sie Seiten erstellen, die Benutzer im Browser anpassen können. Navigationsmenüs können mit einfachen Steuerelementen hinzugefügt werden.

Verbesserungen an Websitefeatures ermöglichen es Ihnen, professionelle Websites schneller und leichter zu erstellen. Mit Masterseiten können Sie ein konsistentes Layout für alle Seiten einer Site erstellen. Designs ermöglichen es Ihnen, ein konsistentes Aussehen für Steuerelemente und statischen Text zu definieren. Zum Schutz Ihrer Sites können Sie eine Website vorkompilieren, um ausführen Code aus Quelldateien (Codedateien und Markup in ASPX-Seiten) zu erstellen. Die erzeugte Ausgabe, die keine Quellinformationen einschließt, können Sie dann auf einem Produktionsserver bereitstellen. Zu den Verbesserungen an ASP.NET gehören auch neue Tools und Klassen, die die Websiteverwaltung für Websiteentwickler, Serveradministratoren und Hostinganbieter vereinfachen sollen.

ASP.NET ist für eine Vielzahl von Browsern und Geräten ausgelegt. Standardmäßig ist die von Steuerelementen gerenderte Ausgabe mit XHTML 1.1-Standards kompatibel. Sie können Gerätefilterung verwenden, um unterschiedliche Eigenschaftenwerte in demselben Steuerelement für unterschiedliche Browser anzugeben.

Authentifizierte Streams

Anwendungen können die neue NegotiateStream-Klasse und die neue SslStream-Klasse zur Authentifizierung und zum Sichern von Informationen verwenden, die zwischen einem Client und einem Server übertragen werden. Diese authentifizierten Streamklassen unterstützen die gegenseitige Authentifizierung, Datenverschlüsselung und Datensignierung. Die NegotiateStream-Klasse verwendet das Sicherheitsprotokoll Negotiate für die Authentifizierung. Die SslStream-Klasse verwendet das Secure Sockets Layer (SSL-)Sicherheitsprotokoll für die Authentifizierung.

Erweiterungen an COM-Interop-Diensten

An den Klassen und Tools, die die Interoperabilität mit COM unterstützen, wurden vier wichtige Erweiterungen vorgenommen:

  • Das Betriebssystem verwaltet eine begrenzte Anzahl von Handles, die zum Verweisen auf wichtige Betriebssystemressourcen verwendet werden. Die neue SafeHandle-Klasse und die neue CriticalHandle-Klasse sowie die zugehörigen spezialisierten abgeleiteten Klassen bieten eine sichere und zuverlässige Möglichkeit zum Ändern von Betriebssystemhandles.

  • Verbesserungen am Marshalling erleichtern die Zusammenarbeit mit systemeigenem Code. Zwei Verbesserungen am Interop-Marshaller entsprechen den beiden häufigsten Benutzeranforderungen: die Fähigkeit, systemeigene Funktionszeiger mit Delegaten zu umschließen, sowie die Möglichkeit, Strukturarrays mit fester Größe innerhalb von Strukturen zu marshallen.

  • Die Leistung bei Aufrufen zwischen Anwendungen in verschiedenen Anwendungsdomänen wurde für häufige Aufruftypen erheblich erhöht.

  • Aufgrund neuer Schalter im Type Library Importer-Tool (Tlbimp.exe) und im Type Library Exporter-Tool (Tlbexp.exe) ist zum Auflösen von Verweisen auf Typbibliotheken keine Abhängigkeit von der Registrierung mehr erforderlich. Diese Verbesserung ist wichtig für das Erstellen von stabilen Buildumgebungen.

Erweiterungen der Console-Klasse

Neue Member der Console-Klasse ermöglichen es Anwendungen, die Dimensionen des Konsolenfensters und des Bildschirmpuffers zu ändern sowie einen rechteckigen Bereich des Bildschirmpuffers zu verschieben, was für die Ausführung einer nahtlosen, einfachen Animation nützlich ist. Außerdem kann beim Lesen der Konsoleneingabe gewartet werden, bis eine Taste gedrückt wird. Weitere neue Klassenmember steuern die Vordergrund- und Hintergrundfarben von Text, die Sichtbarkeit und Größe des Cursors sowie die Frequenz und Dauer des akustischen Konsolensignals.

Data Protection API

Die neue Data Protection API (DPAPI) schließt vier Methoden ein, die es Anwendungen ermöglichen, Kennwörter, Schlüssel, Verbindungszeichenfolgen usw. ohne Plattformaufruf zu verschlüsseln. Sie können auch Speicherblöcke auf Computern verschlüsseln, auf denen Windows Server 2003 oder spätere Betriebssysteme ausgeführt werden.

Anzeigeattribute des Debuggers

Sie können jetzt steuern, wie eine Klasse oder ein Member in Visual Studio angezeigt wird, wenn eine Anwendung gedebuggt wird. Mit dem Feature für Anzeigeattribute des Debuggers können Sie die meisten nützlichen Informationen bezeichnen, die im Debugger angezeigt werden sollen.

Unterstützung von Bearbeiten und Fortfahren für Debugger

.NET Framework 2.0 enthält wieder das Feature Bearbeiten und Fortfahren, mit dem ein Benutzer, der eine Anwendung in Visual Studio debuggt, Änderungen am Quellcode während der Ausführung im Unterbrechungsmodus vornehmen kann. Nachdem die Änderungen am Quellcode übernommen wurden, kann der Benutzer die Codeausführung fortsetzen und die Auswirkungen beobachten. Weiterhin ist das Feature Bearbeiten und Fortfahren in jeder von Visual Studio unterstützten Programmiersprache verfügbar.

Erkennen von Änderungen bei Netzwerkverbindungen

Die NetworkChange-Klasse ermöglicht Anwendungen das Empfangen von Benachrichtigungen, wenn sich eine IP (Internet Protocol)-Adresse einer Netzwerkschnittstelle, auch als Netzwerkkarte oder -adapter bezeichnet, ändert. Eine Schnittstellenadresse kann sich aus verschiedenen Gründen ändern. Dies kann z. B. ein getrenntes Netzwerkkabel sein, das Verlassen des Bereichs eines drahtlosen lokalen Netzwerks oder Hardwarefehler. Die NetworkChange-Klasse stellt Benachrichtigungen bei Adressenänderungen bereit, indem Ereignisse ausgelöst werden, wenn eine Änderung erkannt wird.

Verteilte Verarbeitung

Im System.Net-Namespace wurde Unterstützung für FTP-Clientanforderungen, Zwischenspeichern von HTTP-Ressourcen, automatische Proxysuche und das Abrufen von Netzwerkverkehrs- sowie statistischen Informationen hinzugefügt. Der Namespace enthält jetzt eine Webserverklasse (HttpListener), mit der Sie einen einfachen Webserver zum Antworten auf HTTP-Anforderungen erstellen können. Klassen, die Netzwerkverkehr generieren, wurden so instrumentiert, dass sie Ablaufverfolgungsinformationen für Anwendungsdebugging und Diagnosen ausgeben. Die System.Net.Sockets.Socket-Klasse und die der System.Uri-Klasse wurden um verbesserte Sicherheit und Leistung erweitert.

In den System.Web.Services-Namespaces wurde Unterstützung für SOAP 1.2 und auf NULL festlegbare Elemente hinzugefügt.

Die System.Runtime.Remoting.Channels-Namespaces wurden durch Features für Channelsicherheit erweitert. Der TCP-Channel unterstützt jetzt Authentifizierung und Verschlüsselung sowie eine Reihe neuer Features zur besseren Unterstützung des Lastenausgleichs.

Erweiterungen bei EventLog

Sie können jetzt benutzerdefinierte DLLs für EventLog-Meldungen, -Parameter und -Kategorien verwenden.

Erweiterte Zertifikatsverwaltung

.NET Framework unterstützt jetzt X.509-Zertifikatspeicher, Ketten und Erweiterungen. Außerdem können Sie mit X.509-Zertifikaten XML ohne die Verwendung von Plattformaufruf signieren und überprüfen. Des Weiteren werden PKCS7-Signaturen und -Verschlüsselung sowie CMS unterstützt (eine Obermenge des PKCS7-Standards, die unter Microsoft Windows 2000 und spätere Betriebssysteme verfügbar ist). PKCS7 ist das in Secure/Multipurpose Internet Mail Extensions (S/MIME) zum Signieren und Verschlüsseln von Daten verwendete zugrunde liegende Format. Weitere Informationen finden Sie unter dem Thema zur X509Certificate2-Klasse.

FTP-Unterstützung

Anwendungen können jetzt mit den Klassen WebRequest, WebResponse und WebClient auf FTP (File Transfer Protocol)-Ressourcen zugreifen.

Generika und generische Auflistungen

.NET Framework 2.0 führt Generika ein, um Ihnen das Erstellen von flexiblem, wiederverwendbarem Code zu ermöglichen. Im Allgemeinen als Generika bezeichnete Sprachfeatures fungieren als Vorlagen, mit denen Klassen, Strukturen, Schnittstellen, Methoden und Delegaten deklariert und mit nicht spezifizierten bzw. generischen Typparametern anstelle von bestimmten Typen definiert werden können. Die tatsächlichen Typen werden später bei Verwendung der generischen Typen angegeben. Mehrere Namespaces, z. B. der System-Namespace und System.Collections.Generic, stellen generische Klassen und Methoden bereit. Der neue System.Collections.Generic-Namespace unterstützt stark typisierte Auflistungen. Generika werden in drei Sprachen unterstützt: Visual Basic, C# und C++.

Die Reflektion wurde erweitert, um die Laufzeitprüfung und die Änderung von generischen Typen und Methoden zu ermöglichen. System.Type und System.Reflection.MethodInfo wurden neue Member hinzugefügt, einschließlich IsGenericType zum Identifizieren generischer Typen (z. B. class Gen<T,U> {...}), GetGenericArguments zum Abrufen von Typparameterlisten und MakeGenericType zum Erstellen bestimmter Typen (z. B. new Gen<int, long>()).

Globalisierung

Fünf neue Globalisierungsfeatures bieten bessere Unterstützung für die Entwicklung von Anwendungen für andere Sprachen und Kulturen.

  • Die Unterstützung für benutzerdefinierte Kulturen ermöglicht es Ihnen, kulturbezogene Informationen nach Bedarf zu definieren und bereitzustellen. Dieses Feature ist nützlich, um geringfügige Anpassungen an vorhandenen Kulturdefinitionen vorzunehmen und um Kulturdefinitionen zu erstellen, die noch nicht in .NET Framework enthalten sind. Weitere Informationen finden Sie unter der CultureAndRegionInfoBuilder-Klasse.

  • Bei Verschlüsselungs- und Entschlüsselungsvorgängen wird ein Unicode-Zeichen in oder aus einem Bytestream zugeordnet, der auf ein physisches Medium wie einen Datenträger oder eine Kommunikationsverbindung übertragen werden kann. Kann ein Zuordnungsvorgang nicht abgeschlossen werden, können Sie dies ausgleichen, indem Sie das Fallbackfeature für Verschlüsselung und Entschlüsselung verwenden, das von mehreren Klassen im System.Text-Namespace unterstützt wird.

  • Die Member in der UTF8Encoding-Klasse, die die UTF-8-Codierung implementiert, sind jetzt deutlich schneller als in vorherigen Versionen. UTF-8 ist die am häufigsten verwendete Codierung, um Unicode-Zeichen auf Computern in Bytes umzuwandeln.

  • .NET Framework unterstützt jetzt den neuesten vom Unicode Consortium definierten Normalisierungsstandard. Beim Normalisierungsprozess werden Zeichendarstellungen von Text in eine Standardform konvertiert, sodass die Darstellungen auf Äquivalenz verglichen werden können.

  • Die GetCultureInfo-Methodenüberladung stellt eine zwischengespeicherte Version eines schreibgeschützten CultureInfo-Objekts bereit. Verwenden Sie die zwischengespeicherte Version beim Erstellen eines neuen CultureInfo-Objekts, um die Systemleistung zu verbessern und die Speichernutzung zu verringern.

E/A-Verbesserungen

Die Benutzerfreundlichkeit und Funktionalität verschiedener E/A-Klassen wurden verbessert. Für Benutzer ist es jetzt leichter, Textdateien zu lesen und zu schreiben sowie Informationen über ein Laufwerk abzurufen.

Sie können jetzt die Klassen im System.IO.Compression-Namespace verwenden, um Daten mit dem Komprimierungs- und Dekomprimierungsstandard GZIP zu lesen und zu schreiben. Dieser Standard ist in den Spezifikationen IETF RFC 1951 und RFC 1952 erläutert, die auf der Suchseite IETF Request for Comments (RFC) verfügbar sind. Hinweis: Die Suche ist auf RFC-Nummern beschränkt.

Manifestbasierte Aktivierung

Dieses Feature unterstützt jetzt das Laden und Aktivieren von Anwendungen durch Verwendung eines Manifests. Die manifestbasierte Aktivierung ist entscheidend für die Unterstützung von ClickOnce-Anwendungen. Für gewöhnlich werden Anwendungen durch einen Verweis auf eine Assembly aktiviert, die den Einstiegspunkt der Anwendung enthält. Wird beispielsweise in Windows Shell auf die EXE-Datei einer Anwendung geklickt, führt dies dazu, dass die Shell die Common Language Runtime (CLR) lädt und einen bekannten Einstiegspunkt in der Assembly der betreffenden EXE-Datei aufruft.

Das manifestbasierte Aktivierungsmodell verwendet für die Aktivierung ein Anwendungsmanifest und keine Assembly. In einem Manifest werden die Anwendung, deren Abhängigkeiten, Sicherheitsanforderungen usw. ausführlich beschrieben. Das Manifestmodell weist gegenüber dem assemblybasierten Aktivierungsmodell einige Vorteile auf, insbesondere für Webanwendungen. Beispielsweise enthält das Manifest die Sicherheitsanforderungen der Anwendung, sodass der Benutzer entscheiden kann, ob die Anwendung vor dem Herunterladen des Codes ausgeführt werden darf. Das Manifest enthält auch Informationen über die Anwendungsabhängigkeiten.

Die manifestbasierte Aktivierung wird von einer Gruppe von APIs bereitgestellt, die es verwalteten Hosts ermöglicht, durch ein Manifest beschriebene Anwendungen und Add-Ins zu aktivieren. Diese APIs enthalten eine Mischung aus neuen Klassen und Erweiterungen von vorhandenen Klassen.

Dieses Aktivierungsmodell ruft auch eine Trust-Manager bezeichnete Entität auf, die die folgenden Aufgaben ausführt:

  1. Bestimmt, ob das Aktivieren einer Anwendung zulässig ist. Diese Entscheidung kann getroffen werden, indem der Benutzer zu einer Eingabe aufgefordert wird, Richtlinien abgefragt werden oder auf andere Weisen, die für einen bestimmten Trust-Manager geeignet erscheinen.

  2. Richtet den Sicherheitskontext ein, in dem eine Anwendung ausgeführt werden soll. Dieser Schritt umfasst zumeist das Einrichten einer CAS (Code Access Security, Codezugriffssicherheit)-Richtlinienstruktur für die Anwendungsdomäne, in der die Anwendung ausgeführt wird.

.NET Framework Remoting

.NET Framework Remoting unterstützt jetzt IPv6-Adressen und den Austausch von generischen Typen. Die Klassen im System.Runtime.Remoting.Channels.Tcp-Namespace unterstützen Authentifizierung und Verschlüsselung mit der SSPI (Security Support Provider Interface). Die Klassen im neuen System.Runtime.Remoting.Channels.Ipc-Namespace ermöglichen Anwendungen auf demselben Computer die schnelle Kommunikation ohne Verwendung des Netzwerks. Schließlich können Sie jetzt das Timeout für Verbindungscaches und die Anzahl von Methodenwiederholungen konfigurieren, wodurch die Leistung von Remoteclustern mit Netzwerklastenausgleich verbessert werden kann.

Abrufen von Informationen über die Netzwerkkonfiguration des lokalen Computers sowie die Verwendung

Mithilfe der Klassen im System.Net.NetworkInformation-Namespace können Anwendungen auf Statistiken zum IP-, IPv4-, IPv6-, TCP- und UDP-Netzwerkverkehr zugreifen. Anwendungen können auch Adress- und Konfigurationsinformationen für die Netzwerkkarten des lokalen Computers anzeigen. Diese Informationen ähneln den Informationen, die vom Befehlszeilentool Ipconfig.exe zurückgegeben werden.

Ping

Die Ping-Klasse ermöglicht es einer Anwendung, zu bestimmen, ob über das Netzwerk auf einen Remotecomputer zugegriffen werden kann. Diese Klasse stellt ähnliche Funktionen wie das Befehlszeilentool Ping.exe bereit und unterstützt synchrone und asynchrone Aufrufe.

Verarbeiten von HTTP-Anforderungen innerhalb von Anwendungen

Sie können die HttpListener-Klasse verwenden, um einen einfachen Webserver zu erstellen, der auf HTTP-Anforderungen reagiert. Der Webserver ist während der Lebensdauer des HttpListener-Objekts aktiv und wird in der Anwendung mit den Berechtigungen der Anwendung ausgeführt. Diese Klasse ist nur auf Computern verfügbar, auf denen die Betriebssysteme Windows XP Service Pack 2 oder Windows Server 2003 ausgeführt werden.

Programmgesteuerte Steuerung des Zwischenspeicherns

Mit den Klassen im System.Net.Cache-Namespace können Anwendungen das Zwischenspeichern von Ressourcen steuern, die mit den Klassen WebRequest, WebResponse und WebClient abgerufen wurden. Sie können die von .NET Framework bereitgestellten vordefinierten Cacherichtlinien verwenden oder eine benutzerdefinierte Cacherichtlinie angeben. Sie können für jede Anforderung eine Cacherichtlinie angeben, und für Anforderungen, die keine Cacherichtlinie angeben, können Sie eine Standardcacherichtlinie definieren.

Programmiersprachen

Vier Programmiersprachen von Microsoft sind explizit für .NET Framework ausgelegt: Visual C#, Microsoft C/C++, Visual J# und Visual Basic.

Visual Basic-Compiler und -Programmiersprache

Die Sprachverbesserungen von Visual Basic vereinfachen den Quellcode und ermöglichen die Interaktion mit Komponenten, die erweiterte Features verwenden.

Compiler

Visual Basic führt eine neue bedingte Kompilierungskonstante für alle Projekte ein, VBC_VER. Diese Version hat den Wert VBC_VER 8.0.

Der Befehlszeilencompiler von Visual Basic speichert jetzt die standardmäßigen Befehlszeilenoptionen in der Datei Vbc.rsp in demselben Verzeichnis wie der Befehlszeilencompiler (Vbc.exe). Sie können Vbc.rsp bearbeiten, um die standardmäßigen Befehlszeilenoptionen neu zu konfigurieren.

Es gibt vier neue Optionen des Befehlszeilencompilers:

  • Mit der /doc-Option wird eine XML-Dokumentationsdatei auf der Grundlage von Kommentaren im Code generiert.

  • Die /noconfig-Option bewirkt, dass der Compiler die Datei Vbc.rsp ignoriert.

  • Mit der /codepage-Option wird die beim Öffnen von Quelldateien zu verwendende Codepage angegeben.

  • Mit der /filealign-Option wird die Größe von Abschnitten in der Ausgabedatei angegeben.

  • Die /nostdlib (Visual Basic)-Option bewirkt, dass der Compiler nicht auf die Standardbibliotheken verweist.

Weitere Informationen finden Sie unter Visual Basic Compiler-Optionen.

Sprache

Es gibt mehrere neue Elemente in dieser Version der Programmiersprache Visual Basic:

Sicherheitsausnahmen

Die System.Security.SecurityException-Klasse wurde erweitert, um zusätzliche Daten bereitzustellen, die die Untersuchung der Ursachen von Sicherheitsausnahmen erleichtern. Die neuen Eigenschaften stellen u. a. folgende Informationen bereit: die Methode, in der die Ausnahme aufgetreten ist, die erste fehlgeschlagene Berechtigung, die Zone oder die URL der Assembly, die fehlgeschlagene Sicherheitsaktion sowie die Sicherheitsaktion in der Aufrufliste, z. B. Deny oder PermitOnly, die die Ausnahme ausgelöst hat.

Serielle E/A-Geräteunterstützung

Die neue SerialPort-Klasse bietet Anwendungen die Möglichkeit, auf die seriellen Anschlüsse eines Computers zuzugreifen und mit seriellen E/A-Geräten zu kommunizieren.

Serialisierung

Die BinaryFormatter-Klasse und die SoapFormatter-Klasse unterstützen jetzt die versionstolerante Serialisierung, sodass ein in einer anderen Version serialisierter Typ deserialisiert werden kann. Weitere Informationen finden Sie unter Versionstolerante Serialisierung.

Die XML-Serialisierung unterstützt jetzt die Verwendung von Eigenschaften anstelle von Feldern, um Schemaelemente darzustellen, die Serialisierung von generischen Typen und die Verwendung der Nullable<T>-Struktur, um auf NULL festlegbare Elemente darzustellen. Die IXmlSerializable-Schnittstelle unterstützt die benutzerdefinierte Schemagenerierung. Die SchemaImporterExtension ermöglicht es Ihnen, die Proxycodegenerierung durch das Ändern von Schemas während des Schemaimports zu steuern. Beispielsweise können Sie den generierten Proxy bei Verwendung des Visual Studio-Features Webverweis hinzufügen oder bei Verwendung von Web Services Description Language-Tool (Wsdl.exe) ändern.

Der neue XML Serializer Generator-Tool (Sgen.exe) ermöglicht es Ihnen, den von Webdienstclients zum Serialisieren von übertragenen Informationen verwendeten Code vorzukompilieren, wodurch die Clientstartzeit erheblich verkürzt wird. Weitere Informationen finden Sie unter Einführung in die XML-Serialisierung.

SMTP-Unterstützung

Mit den Klassen im System.Net.Mail-Namespace und im System.Net.Mime-Namespace können Anwendungen E-Mail-Nachrichten an einen oder mehrere Empfänger senden. E-Mail-Nachrichten können mit alternativen Ansichten gesendet werden, und sie können Anlagen enthalten. Das Senden von Kopien (CC und BCC) wird auch unterstützt.

Unterstützung von stark typisierten Ressourcen

Der Resource File Generator (Resgen.exe) erstellt Ressourcendateien, die in ausführbare Dateien und Satellitenassemblys eingebettet werden. Resgen.exe erzeugt eine Wrapperklasse für jede Ressourcendatei, wodurch ein einfacher Zugriff auf Ressourcen ermöglicht wird und Rechtschreibfehler in Ressourcennamen vermieden werden.

Verbesserungen beim Threading

Sie können jetzt prozessübergreifende Kommunikationsereignisse benennen, die ausschließlich in verwaltetem Code erstellt werden. Die Semaphore-Klasse unterstützt auch die spezialisierte Ressourcenzählung.

Filterung von Ablaufverfolgungsdaten

.NET Framework 2.0 stellt Klassen bereit, die Systemereignisse verfolgen und protokollieren, die sich auf E/A, das Starten und Beenden von Anwendungen usw. beziehen. Das sehr große Volumen und die verschiedenen Typen von Ablaufverfolgungsinformationen erschweren es den Benutzern jedoch, diese Daten zu analysieren. Die neue Unterstützung für das Filtern von Ablaufverfolgungsdaten ermöglicht es Ihnen, den Typ der zu protokollierenden Informationen anzugeben.

Transaktionen

Der neue System.Transactions-Namespace enthält Klassen, mit denen Anwendungen an Transaktionen teilnehmen können, die von Microsoft Distributed Transaction Coordinator (MSDTC) oder dem lokalen Transaktions-Manager verwaltet werden. Der System.Transactions-Namespace bietet sowohl ein explizites, auf der Transaction-Klasse basierendes Programmiermodell als auch ein implizites Programmiermodell, für das die TransactionScope-Klasse verwendet und Transaktionen automatisch durch die Infrastruktur verwaltet werden. Diese Transaktionsinfrastruktur kann mit der vorhandenen System.EnterpriseServices (COM+)- Transaktionsinfrastruktur einfach zusammenwirken. Der System.Transactions-Namespace stellt auch Klassen zum Implementieren eines Ressourcen-Managers bereit. Mit einem Ressourcen-Manager werden permanente oder flüchtige in einer Transaktion verwaltete Daten verwaltet. Zusammen mit dem Transaktions-Manager gewährleistet der Ressourcen-Manager Unteilbarkeit und Isolation für die Anwendung.

Webdienste

Webdienste unterstützen SOAP 1.2 und WS-I Basic Profile 1.0, das unter "Web Services Interoperability Organization - Basic Profile Version 1.0" dokumentiert ist.

Bei Verwendung von zwei oder mehr Webdiensten, die einen gemeinsamen Typ definieren, nutzen die für diese Webdienste generierten Clientproxys den entsprechenden Typ auf dem Client gemeinsam. Dies ermöglicht es Clients, Instanzen gemeinsamer Typen leicht zwischen Webdiensten zu übergeben.

Sie können jetzt Webmethoden asynchron mit einem ereignisbasierten Programmierungsmuster aufrufen.

Features für Windows Forms

ClickOnce-Bereitstellung

Die ClickOnce-Bereitstellung ermöglicht die Bereitstellung von Windows-Anwendungen, die automatisch aktualisiert werden, und die genauso einfach wie Webanwendungen installiert und ausgeführt werden können. Sie können Windows-Clientanwendungen und -Befehlszeilenanwendungen bereitstellen. In Visual Studio stehen in den Menüs Erstellen und Projekt neue Befehle für Projekt veröffentlichen zur Verfügung. Weitere Informationen finden Sie unter Übersicht über die ClickOnce-Bereitstellung.

Anwendungseinstellungen

Mit den Anwendungseinstellungen für Windows Forms wird das Erstellen, Speichern und Verwalten von benutzerdefinierten Einstellungen für Anwendungen und Benutzer auf dem Client erleichtert. Die Windows Forms-Einstellungen ermöglichen nicht nur das Speichern von Anwendungsdaten wie Datenbankverbindungszeichenfolgen, sondern auch das Speichern benutzerspezifischer Daten, z. B. Symbolleistenpositionen und zuletzt verwendete Listen. Weitere Informationen finden Sie unter Übersicht über Anwendungseinstellungen.

Neues Datenbindungsmodell

Die BindingSource-Komponente vereinfacht die Datenbindung, weil sie als Mittler zwischen dem gebundenen Steuerelement und der Zieldatenquelle fungiert. Sie verwaltet automatisch viele der komplexeren Bindungsaufgaben wie Währung, datenbezogene Ereignisse und Änderungen an Datenquellenzielen. Sie ist außerdem für die Zusammenarbeit mit anderen datenbezogenen Windows Forms-Steuerelementen konzipiert, insbesondere mit dem BindingNavigator-Steuerelement und dem DataGridView-Steuerelement. Weitere Informationen finden Sie unter BindingSource-Komponente. Die BindingSource-Komponente vereinfacht das Binden von Steuerelementen an eine zugrunde liegende Datenquelle. Sie fungiert sowohl als Kanal als auch als Datenquelle, an das andere Steuerelemente gebunden werden.

Neue Windows Forms-Steuerelemente

Das DataGridView-Steuerelement ist ein leistungsstarkes und flexibles Mittel zum Anzeigen von Daten in Tabellenform. Es kann verwendet werden, um kleine Datenmengen in einer schreibgeschützten Ansicht darzustellen, und es kann so skaliert werden, dass bearbeitbare Ansichten sehr großer Datensätze angezeigt werden. Die Daten können sich in einer externen Datenquelle befinden oder dem Steuerelement direkt hinzugefügt werden. Weitere Informationen hierzu finden Sie unter Übersicht über das DataGridView-Steuerelement (Windows Forms).

ToolStrip-Steuerelemente sind Symbolleisten, die Menüs, Steuerelemente und Benutzersteuerelemente in Windows Forms-Anwendungen enthalten können. Die ToolStrip-Klasse und deren zugeordnete Klassen ermöglichen Ihnen das Erstellen von Symbolleisten und anderen Elementen von Benutzeroberflächen in einem Format, das konsistent mit Microsoft Windows XP, Microsoft Office und Microsoft Internet Explorer ist. Sie können diese Klassen auch verwenden, um Symbolleisten und Elemente von Benutzeroberflächen anzupassen. Weitere Informationen hierzu finden Sie unter Übersicht über das ToolStrip-Steuerelement (Windows Forms).

Das MaskedTextBox-Steuerelement verwendet eine Maskendefinition, um zwischen gültigen und ungültigen Benutzereingaben zu unterscheiden. Weitere Informationen hierzu finden Sie unter MaskedTextBox-Steuerelement (Windows Forms).

Die SoundPlayer-Klasse von Windows Forms ermöglicht es Ihnen, Sounds problemlos in die Anwendungen zu integrieren. Die SoundPlayer-Klasse kann Sounddateien im WAV-Format von einer Ressource oder einem UNC (Universal Naming Conventions-) oder HTTP-Speicherort abspielen. Außerdem ermöglicht es Ihnen die SoundPlayer-Klasse, Sounds asynchron zu laden oder abzuspielen. Weitere Informationen hierzu finden Sie unter SoundPlayer-Klasse.

Das SplitContainer-Steuerelement in Windows Forms kann als zusammengesetztes Steuerelement betrachtet werden. Es setzt sich aus zwei Bereichen zusammen, die durch eine verschiebbare Leiste getrennt sind. Wenn sich der Mauszeiger über der Leiste befindet, verändert sich der Cursor, um anzuzeigen, dass die Leiste verschiebbar ist. Verwenden Sie dieses Steuerelement, um komplexe, in der Größe veränderbare Benutzeroberflächen zu erstellen, die für das Anzeigen und Durchsuchen von Informationen gut geeignet sind. Weitere Informationen finden Sie unter SplitContainer-Steuerelement.

Das ListView-Steuerelement unterstützt jetzt drei von Windows XP und der Windows Server 2003-Familie bereitgestellte Features: Tile-Ansicht, Gruppierung und Neuanordnen von Elementen mit Drag & Drop.

Die Steuerelemente ListView, TreeView und ToolTip unterstützen jetzt die Funktion des Ownerdrawings. Dies ähnelt der Unterstützung von Ownerdrawing für die Steuerelemente ComboBox, ListBox, MenuItem und TabControl in der vorherigen Version.

Mit dem WebBrowser-Steuerelement können Sie Webseiten in den Windows Forms-Anwendungen hosten. Sie können das WebBrowser-Steuerelement verwenden, um integrierte HTML-basierte Hilfe oder Funktionen zum Durchsuchen des Internets in der Anwendung bereitzustellen. Darüber hinaus können Sie mit dem WebBrowser-Steuerelement vorhandene Webanwendungen in Clientanwendungen konvertieren, die nahtlos Dynamic HTML (DHTML-)Code mit den Windows Forms-Funktionen für Benutzeroberflächen integrieren. Weitere Informationen finden Sie unter Übersicht über das WebBrowser-Steuerelement.

Der Inhalt des FlowLayoutPanel-Steuerelements wird in horizontaler oder vertikaler Flussrichtung angeordnet. Das TableLayoutPanel-Steuerelement ordnet seinen Inhalt in einem Raster an. Da das Layout sowohl zur Entwurfszeit als auch zur Laufzeit ausgeführt wird, kann es sich dynamisch ändern, wenn sich die Anwendungsumgebung ändert. Weitere Informationen finden Sie unter Übersicht über das FlowLayoutPanel-Steuerelement und unter Übersicht über das TableLayoutPanel-Steuerelement.

Die BackgroundWorker-Komponente ermöglicht es Ihnen, Vorgänge im Hintergrund auszuführen, die einige Zeit beanspruchen, z B. Herunterladen von Bildern und Datenbanktransaktionen. Weitere Informationen finden Sie unter Übersicht über die BackgroundWorker-Komponente.

Das asynchrone Muster für Komponenten ist ein ereignisgesteuertes Modell, das die Vorteile von Multithreadanwendungen bietet und gleichzeitig viele der komplexen Aspekte des Multithreadentwurfs umgeht. Weitere Informationen finden Sie unter Asynchrones Muster für Komponenten.

XML-Features

.NET Framework 2.0 bietet viele Verbesserungen, einschließlich eines neuen XSLT (XSL Transformation)-Prozessors, Typunterstützung in den Klassen XmlReader, XmlWriter und XPathNavigator sowie neue Bearbeitungsfunktionen in der XPathNavigator-Klasse. Außerdem sind ein neues Modell für das Erstellen des XmlReader-Objekts und des XmlWriter-Objekts sowie viele Leistungsverbesserungen enthalten. Weitere Informationen finden Sie unter Neues in System.Xml.

Siehe auch

Konzepte

Schnelle Technologieübersicht

Weitere Ressourcen

Übersicht über .NET Framework