Neues in .NET Framework, Version 3.5

Aktualisiert: November 2007

Dieses Thema enthält Informationen über die neuen Features und Verbesserungen in .NET Framework Version 3.5.

NET Compact Framework

.NET Compact Framework Version 3.5 erweitert die Unterstützung für verteilte mobile Anwendungen durch Integration der Windows Communication Foundation (WCF)-Technologie. Außerdem bietet diese Version neue Sprachfeatures wie LINQ, neue APIs auf des Feedbacks der Community und ein verbessertes Debugging mit aktualisierten Diagnosetools und -features.

Weitere Informationen zu diesen neuen Features und Verbesserungen finden Sie unter Neues in .NET Compact Framework, Version 3.5

ASP.NET

.NET Framework 3.5 bietet Verbesserungen in bestimmten Bereichen und ASP.NET und Visual Web Developer. Die wichtigste Neuerung betrifft die verbesserte Unterstützung bei der Entwicklung AJAX-fähiger Websites. ASP.NET unterstützt die serverzentrierte AJAX-Entwicklung mit einem Satz neuer Serversteuerelemente und APIs. Sie können eine vorhandene ASP.NET 2.0-Seite für AJAX aktivieren, indem Sie ein ScriptManager-Steuerelement und ein UpdatePanel-Steuerelement hinzufügen, damit die Seite ohne Aktualisierung der gesamten Seite aktualisiert werden kann.

ASP.NET unterstützt auch die clientzentrierte AJAX-Entwicklung mit einer neuen Clientbibliothek namens Microsoft AJAX Library. Microsoft AJAX Library unterstützt die clientzentrierte, objektorientierte Entwicklung. Durch Verwenden der Bibliotheksklassen in Ihrem ECMAScript (JavaScript) können Sie umfangreiche UI-Aktionen ohne Roundtrips zum Server aktivieren. Sie können den Grad serverzentrierter und clientzentrierter Entwicklung mischen, um die Anforderungen der Anwendung zu erfüllen. Weiterhin bietet Visual Web Developer eine verbesserte IntelliSense-Unterstützung für JavaScript und Unterstützung für Microsoft AJAX Library.

ASP.NET und Visual Web Developer unterstützen nun das Erstellen von ASMX- und von WCF-basierten Webdiensten und die übergangslose Verwendung dieser Implementierungen von Webseiten, die Microsoft AJAX Library verwenden. Darüber hinaus sind serverseitige Anwendungsdienste, zu denen Formularauthentifizierung, Rollenverwaltung und Profile gehören, jetzt als Webdienste verfügbar, die in WCF-kompatiblen Anwendungen verwendet werden können, einschließlich Clientskript und Windows Forms-Clients. ASP.NET ermöglicht es allen webbasierten Anwendungen, diese allgemeinen Anwendungsdienste freizugeben.

Zu den weiteren Verbesserungen in ASP.NET gehören eine neue Datensteuerung, ListView, zur Anzeige von Daten, ein neues Datenquellensteuerelement, LinqDataSource, das LINQ-Funktionen (Language Integrated Query) für Webentwickler mithilfe der ASP.NET-Datenquellen-Steuerarchitektur bereitstellt, ein neues Tool, ASP.NET-Zusammenführungstool (Aspnet_merge.exe), für das Zusammenführen vorkompilierter Assemblys und eine enge Integration mit IIS 7.0. Das ListView-Steuerelement kann mithilfe von Vorlagen und Stilen umfassend angepasst werden und unterstützt auch Bearbeitungs-, Einfüge- und Löschvorgänge sowie das Sortieren und Paging. Die Pagingfunktionalität für ListView wird durch ein neues DataPager-Steuerelement bereitgestellt. Sie können das Zusammenführungstool zur Kombination von Assemblys verwenden, um eine Vielzahl von Szenarien für die Bereitstellung und Versionsverwaltung zu unterstützen. Die Integration von ASP.NET und IIS 7.0 beinhaltet auch die Fähigkeit, die ASP.NET-Dienste, beispielsweise Authentifizierung und Zwischenspeicherung, für alle Inhaltstypen zu verwenden. Enthalten ist ebenfalls die Möglichkeit, Serverpipelinemodule in verwaltetem ASP.NET-Code zu entwickeln und eine einheitliche Konfiguration von Modulen und Handlern zu unterstützen.

Weitere Unterstützungen in Visual Web Developer sind die Unterstützung mehrerer Zielversionen, die Einbindung von Webanwendungsprojekten, eine neue Entwurfsansicht, neue CSS (Cascading Style Sheets)-Entwurftools und LINQ-Unterstützung für SQL-Datenbanken. Durch die Festlegung von Zielversionen können Sie Visual Web Developer verwenden, um die Entwicklung von Webanwendungen für bestimmte Versionen von .NET Framework festzulegen, einschließlich Version 2.0, 3.0 und 3.5.

Weitere Informationen finden Sie unter Neues in ASP.NET und Webentwicklung.

Add-Ins und Erweiterbarkeit

Die System.AddIn.dll-Assembly in .NET Framework 3.5 stellt eine leistungsstarke und flexible Unterstützung für Entwickler erweiterbarer Anwendungen bereit. Sie führt eine neue Architektur und ein neues Modell ein, das es Entwicklern mit der anfänglichen Arbeit ermöglicht, eine Anwendung erweiterbar zu machen und dabei sicherzustellen, dass die Erweiterungen auch dann weiter arbeiten, wenn sich die Hostanwendung ändert. Das Modell bietet die folgenden Features:

  • Ermittlung

    Mit der AddInStore-Klasse können Sie mühelos Sätze von Add-Ins an mehreren Speicherorten finden und verwalten. Sie können diese Klasse verwenden, um nach Informationen über Add-Ins auf der Grundlage ihrer Basistypen zu suchen, ohne diese laden zu müssen.

  • Aktivierung

    Nachdem eine Anwendung ein Add-In ausgewählt hat, können Sie dieses mit der AddInToken-Klasse leicht aktivieren. Wählen Sie einfach Isolations- und Sandboxgrad aus, und das System erledigt den Rest.

  • Isolation

    Die Unterstützung für Anwendungsdomänen und eine Prozessisolierung von Add-Ins sind integriert. Der Isolationsgrad für jedes Add-In wird durch den Host gesteuert. Das System ist zuständig für das Laden von Anwendungsdomänen und Prozessen und für das Herunterfahren von diesen, wenn deren Add-Ins nicht mehr ausgeführt werden.

  • Sandbox

    Sie können Add-Ins mit einer Standard- oder benutzerdefinierten Vertrauensebene leicht konfigurieren. Unterstützt werden unter anderem die Berechtigungssätze Internet, Intranet, FullTrust und Same-as-Host sowie Überladungen, bei denen der Host einen benutzerdefinierten Berechtigungssatz angeben kann.

  • Zusammensetzung der Benutzeroberfläche

    Das Add-In-Modell unterstützt die direkte Zusammensetzung von Windows Presentation Foundation (WPF)-Steuerelementen, die sich über Anwendungsdomänengrenzen hinweg erstrecken. Es kann mühelos zugelassen werden ,dass Add-Ins direkt zu der Benutzeroberfläche des Hosts beitragen, während die Vorteile von Isolation, Fähigkeit zum Entladen, Sandbox und Versionskontrolle erhalten bleiben.

  • Versionskontrolle

    Die Add-In-Architektur ermöglicht es, dass Hosts neue Versionen ihres Objektsmodells einführen, ohne vorhandene Add-Ins zu zerstören oder die Entwicklungsumgebung für neue Add-Ins zu beeinträchtigen.

Weitere Informationen finden Sie unter Add-Ins und Erweiterbarkeit.

Common Language Runtime

Auflistungen

HashSet<T> bietet leistungsstarke Mengenoperationen für .NET Framework. Eine Menge ist eine Auflistung ohne doppelte Elemente, in der die Elemente in keiner bestimmten Reihenfolge vorliegen. Weitere Informationen finden Sie unter HashSet-Auflistungstyp.

Diagnose

Die EventSchemaTraceListener-Klasse stellt die Ablaufverfolgung für schemakompatible End-to-End-Ereignisse bereit. Sie können die End-to-End-Ablaufverfolgung für ein System verwenden, das heterogene, Thread-, AppDomain-, Prozess- und Computergrenzen überschreitende Komponenten enthält. Es wurde ein standardisiertes Ereignisschema (siehe Event Representation for Event Consumers) definiert, um eine diese Grenzen überschreitende Ablaufverfolgung zu aktivieren. Dieses Schema wird von verschiedenen Ablaufverfolgungstechnologien gemeinsam verwendet, darunter den Windows Vista-Diagnosetools, z. B. Ereignisanzeige. Das Schema ermöglicht auch das Hinzufügen benutzerdefinierter, schemakompatibler Elemente.

Die EventSchemaTraceListener-Klasse wird bei impliziter Unterstützung für die sperrenfreie Ablaufverfolgung für die Leistungsprotokollierung optimiert.

E/A und Pipes

Pipes stellen eine prozessübergreifende Kommunikation zwischen Prozessen bereit, die auf demselben Computer oder einem anderen Windows-Computer innerhalb eines Netzwerk laufen. .NET Framework stellt den Zugriff auf zwei Typen von Pipes bereit: anonyme Pipes und benannte Pipes. Weitere Informationen über Pipes finden Sie unter Pipes.

Garbage Collection

Die GCSettings-Klasse hat eine neue LatencyMode-Eigenschaft, die Sie verwenden können, um die Zeit anzupassen, für die der Garbage Collector in die Anwendung eingreift. Sie legen diese Eigenschaft auf einen der Werte der neuen GCLatencyMode-Enumeration fest.

Die GC-Klasse hat eine neue Collect(Int32, GCCollectionMode)-Methodenüberladung, die Sie verwenden können, um das Verhalten für eine erzwungene Garbage Collection anzupassen. Sie können beispielsweise diese Überladung verwenden, um anzugeben, dass der Garbage Collector bestimmen soll, ob der aktuelle Zeitpunkt zum Freigeben von Objekten optimal ist. Diese Überladung nimmt einen Wert aus der neuen GCCollectionMode-Enumeration.

Reflektion und Reflektionsausgabe bei teilweiser Vertrauenswürdigkeit

Assemblys, die mit teilweiser Vertrauenswürdigkeit ausgeführt werden, können jetzt Code ausgeben und ausführen. Für ausgegebenen Code, der nur öffentliche Typen und Methoden aufruft, werden nur die Berechtigungen benötigt, die durch die Typen und Methoden verlangt werden, auf die zugegriffen wird. Der neue DynamicMethod(String, Type, array<Type[])-Konstruktor macht die Ausgabe von solchem Code einfach.

Wenn der ausgegebene Code auf private Daten zugreifen muss, lässt der neue DynamicMethod(String, Type, array<Type[], Boolean)-Konstruktor einen eingeschränkten Zugriff zu. Der Host muss die ReflectionPermission mit dem neuen RestrictedMemberAccess-Flag gewähren, um dieses Feature zu aktivieren und dem ausgegebenen Code die Fähigkeit zum Zugriff auf private Daten nur für die Typen und Methoden in Assemblys mit der gleichen oder einer geringeren Vertrauensstufe zu geben. Siehe Exemplarische Vorgehensweise: Ausgeben von Code in Szenarios mit teilweiser Vertrauenswürdigkeit.

Bei der Reflektion ermöglicht das Gewähren von RestrictedMemberAccess durch den Host in ähnlicher Weise die eingeschränkte Verwendung von Methoden, die auf private Eigenschaften zugreifen, private Methoden aufrufen usw., jedoch nur für Ziel-Assemblys mit der gleichen oder einer geringeren Vertrauensstufe.

Threading

Bessere Lese-/Schreibsperre

Die neue ReaderWriterLockSlim-Klasse bietet eine deutlich bessere Leistung als ReaderWriterLock, vergleichbar mit der lock-Anweisung (SyncLock in Visual Basic). Die Übergänge in andere Sperrzustände wurden vereinfacht, um das Programmieren einfacher zu machen und die die Wahrscheinlichkeit von Deadlocks zu verringern. Die neue Klasse unterstützt die Rekursion, um die Migration von lock und von ReaderWriterLock zu vereinfachen.

Verbesserungen der ThreadPool-Leistung

Der Durchsatz beim Dispatch von Arbeitsaufgaben und E/E-Aufgaben im verwalteten Threadpool wurde deutlich gesteigert. Der Dispatch wird jetzt in verwaltetem Code behandelt, ohne Übergänge in nicht verwaltetem Code und mit weniger Sperren. Die Verwendung von ThreadPool wird gegenüber anwendungsspezifischen Threadpool-Implementierungen empfohlen.

Verbesserungen bei den Zeitzonen

Zwei neue Typen, DateTimeOffset und TimeZoneInfo, verbessern die Unterstützung von Zeitzonen und machen die Entwicklung von Anwendungen einfacher, die mit Datums- und Uhrzeitangaben in verschiedenen Zeitzonen arbeiten. Eine Diskussion der Typen, die in einer bestimmten Situationen verwendet werden sollten, finden Sie unter Auswählen zwischen "DateTime", "DateTimeOffset" und "TimeZoneInfo".

TimeZoneInfo

Die neue TimeZoneInfo-Klasse ersetzt großenteils die vorhandene TimeZone-Klasse. Sie können TimeZoneInfo verwenden, um jede in der Registrierung definierte Zeitzonen abzurufen, und nicht nur die lokale Zeitzone und die koordinierte Weltzeit (Coordinated Universal Time, UTC). Sie können diese Klasse auch verwenden, um benutzerdefinierte Zeitzonen zu definieren und benutzerdefinierte Zeitzonendaten zu deserialisieren, oder auch um Uhrzeiten zwischen Zeitzonen zu konvertieren. Weitere Informationen zum Entwickln von Anwendungen, die die TimeZoneInfo-Klasse verwenden, finden Sie unter Uhrzeiten und Zeitzonen.

DateTimeOffset

Die neue DateTimeOffset-Struktur erweitert die DateTime-Struktur, um das Arbeiten mit Zeiten über Zeitzonen hinweg zu vereinfachen. Die DateTimeOffset-Struktur speichert die Datums- und Uhrzeitangaben als Datum und Uhrzeit in der koordinierten Weltzeit (UTC), zusammen mit einem Offset-Wert, der die Abweichung dieses Werts von der koordinierten Weltzeit angibt.

Kryptografie

ClickOnce-Manifeste

Es gibt neue Kryptografieklassen für das Überprüfen und Abrufen von Informationen über Manifestsignaturen für ClickOnce-Anwendungen. Die ManifestSignatureInformation-Klasse ruft Informationen über eine Manifestsignatur ab, wenn Sie deren VerifySignature-Methodenüberladungen verwenden. Sie können die ManifestKinds-Enumeration verwenden, um die Manifeste anzugeben, die überprüft werden sollen. Das Ergebnis der Überprüfung ist einer der SignatureVerificationResult-Enumerationswerte. Die ManifestSignatureInformationCollection stellt eine schreibgeschützte Auflistung der ManifestSignatureInformation-Objekte der überprüften Signatur bereit. Außerdem stellen die folgenden Klassen bestimmte Signaturinformationen bereit:

Suite B-Unterstützung

.NET Framework 3.5 unterstützt den Suite B-Satz kryptografischer Algorithmen, die von der National Security Agency (NSA) veröffentlicht wurden. Die NSA-Dokumentation finden Sie unter www.nsa.gov/ia/industry/crypto_suite_b.cfm.

Dazu gehören die folgenden Algorithmen:

  • AES (Advanced Encryption Standard) mit Schlüsselgrößen von 128 und 256 Bit für die Verschlüsselung.

  • Sicherer Hashalgorithmus (SHA-256 und SHA-384) für Hashverfahren.

  • ECDSA (Elliptic Curve Digital Signature Algorithm) unter Verwendung von Kurven von 256-Bit- und 384-Bit-Primzahlenmodulen für das Signieren. Dieser Algorithmus wird von der ECDsaCng-Klasse bereitgestellt. Er ermöglicht das Signieren mit einem privaten Schlüssel und das Überprüfen mit einem öffentlichen Schlüssel.

  • ECDH (Elliptic Curve Diffie-Hellman) mit Kurven von 256- und 384-Bit-Primzahlenmodulen für Schlüsselaustausch/Geheimvertrag. Dieser Algorithmus wird von der ECDiffieHellmanCng-Klasse bereitgestellt.

Wrapper für verwalteten Code für die FIPS (Federal Information Processing Standard)-zertifizierten Implementierungen von AES, SHA-256 und SHA-384 sind in den neuen Klassen AesCryptoServiceProvider, SHA256CryptoServiceProvider und SHA384CryptoServiceProvider verfügbar.

Die CNG (Cryptography Next Generation)-Klassen stellen eine verwaltete Implementierung der systemeigenen Crypto-API (CAPI) bereit. Zentrales Element dieser Gruppe ist die CngKey-Schlüsselcontainerklasse, die die Speicherung und Verwendung von CNG-Schlüsseln abstrahiert. Diese Klasse ermöglicht es, ein Schlüsselpaar oder einen öffentlichen Schlüssel sicher zu speichern und mittels eines einfachen Zeichenfolgennamens auf diesen zu verweisen. Die ECDsaCng-Klasse und die ECDiffieHellmanCng-Klasse verwenden CngKey-Objekte.

Die CngKey-Klasse wird für eine Vielzahl zusätzlicher Operationen verwendet, einschließlich dem Öffnen, Erstellen, Löschen und Exportieren von Schlüsseln. Sie stellt auch den Zugriff auf das zugrunde liegende Schlüsselhandle bereit, das für den direkten Aufruf systemeigener APIs verwendet wird.

Es gibt eine Vielzahl unterstützender CNG-Klassen, z. B. CngProvider, die einen Schlüsselspeicheranbieters verwaltet, CngAlgorithm, die einen CNG-Algorithmus verwaltet, und CngProperty, die häufig verwendete Schlüsseleigenschaften verwaltet.

Netzwerke

Peer-to-Peer-Netzwerke

Peer-to-Peer-Netzwerke stellen eine Netzwerktechnologie ohne Server dar, durch die mehrere Netzwerkgeräte Ressourcen gemeinsam nutzen und direkt miteinander kommunizieren können. Der System.Net.PeerToPeer-Namespace stellt eine Gruppe von Klassen bereit, die PNRP (Peer Name Resolution Protocol) unterstützen. Dieses Protokoll ermöglicht das Erkennen von Peerknoten über PeerName-Objekte, die innerhalb einer Peer-to-Peer-Wolke registriert sind. PNRP kann Peernamen in IPv6- oder IPv4-IP-Adressen auflösen.

Zusammenarbeit in Peer-to-Peer-Netzwerken

Der System.Net.PeerToPeer.Collaboration-Namespace stellt eine Gruppe von Klassen bereit, der die Zusammenarbeit unter Verwendung der Peer-to-Peer-Netzwerkinfrastruktur unterstützen. Durch diese Klassen werden folgenden Prozesse für Anwendungen vereinfacht:

  • Nachverfolgen der Peeranwesenheit ohne Server

  • Senden von Einladungen an Teilnehmer

  • Erkennen von Peers in demselben Teilnetz oder LAN

  • Verwalten von Kontakten

  • Interaktion mit Peers

Die Peer-to-Peer-Zusammenarbeitsinfrastruktur von Microsoft stellt eine auf Peer-to-Peer-Netzwerken basierende Plattform für Zusammenarbeitsaktivitäten ohne Server bereit. Durch die Verwendung dieser Plattform werden dezentralisierte Netzwerkanwendungen aktiviert, die die gemeinsame Leistung von Computern in einem Teilnetz oder über das Internet nutzen. Diese Anwendungstypen können für Aktivitäten wie die gemeinsame Planung, Kommunikation, Inhaltsverteilung oder sogar für Netzwerkspiele mit mehreren Spielern eingesetzt werden.

Verbesserungen der Socket-Leistung

Die Socket -Klasse wurde für die Verwendung durch Serveranwendungen erweitert, die mithilfe asynchroner Netzwerk-E/A die höchste Leistung erreichen. Eine Reihe neuer Klassen wurde im Rahmen einer Gruppe von Erweiterungen zum Socket-Namespace hinzugefügt. Diese Klassen stellen ein alternatives asynchrones Muster bereit, das von spezialisierten leistungsstarken Socketanwendungen verwendet werden kann. Diese Erweiterungen wurden speziell für Netzwerkserveranwendungen entwickelt, die eine hohe Leistung erfordern.

Windows Communication Foundation

WCF und WF Integration – Workflowdienste

.NET Framework 3.5 vereint die Frameworks von Windows Workflow Foundation (WF) und Windows Communication Foundation (WCF). Dadurch können Sie WF verwenden, um WCF-Dienste zu erstellen oder den vorhandenen WF-Workflow als Dienst verfügbar zu machen. Dies ermöglicht es, Dienste zu erstellen, die beibehalten werden können, die mühelos Daten in einen bzw. aus einem Workflow übertragen können und Protokolle auf Anwendungsebene durchsetzen können. Weitere Informationen finden Sie unter Erstellen von Workflowdiensten und permanenten Diensten. Codebeispiele finden Sie unter Workflowdienste-Beispiele.

Permanente Dienste

.NET Framework 3.5 führt auch eine Unterstützung für WCF-Dienste ein, die das WCF-Beibehaltungsmodell verwenden, um die Zustandsinformationen des Diensts zu beizubehalten. Diese permanenten Dienste behalten ihre Zustandsinformationen auf der Anwendungsschicht bei. Wenn eine Sitzung abgebrochen und später neu erstellt wird, können die Zustandsinformationen für diesen Dienst dann aus dem Beibehaltungsspeicher erneut geladen werden. Weitere Informationen finden Sie unter Erstellen von Workflowdiensten und permanenten Diensten. Ein Codebeispiel finden Sie unter Beispiel zu permanenten Diensten.

WCF-Webprogrammiermodell

Das WCF-Webprogrammiermodell ermöglicht es Entwicklern, Webformat-Dienste mit WCF zu erstellen. Das Webprogrammiermodell umfasst umfangreiche URI-Verarbeitungsfunktionen, Unterstützung aller HTTP-Verben einschließlich GET sowie ein einfaches Programmiermodell für das Arbeiten mit vielen Meldungsformaten (einschließlich XML, JSON und nicht transparenten binären Streams). Weitere Informationen finden Sie unter Webprogrammiermodell. Codebeispiele finden Sie unter Beispiele zum Webprogrammiermodell.

WCF-Syndication

WCF umfasst nun ein Objektmodell mit starker Typisierung für die Verarbeitung von Syndication-Feeds, das sowohl das Format Atom 1.0 als auch das Format RSS 2.0 umfasst. Weitere Informationen finden Sie unter WCF Syndication. Codebeispiele finden Sie unter Syndication-Beispiele.

WCF und teilweise Vertrauenswürdigkeit

In .NET Framework 3.5 können Anwendungen, die mit niedrigeren Berechtigungen ausgeführt werden, eine begrenzte Teilmenge von WCF-Features verwenden. Serveranwendungen, die mit ASP.NET-Berechtigungen der mittleren Vertrauensebene ausgeführt werden, können das WCF-Dienstmodell zum Erstellen grundlegender HTTP-Dienste verwenden. Clientanwendungen, die mit Berechtigungen für die Internetzone ausgeführt werden (z. B. XAML-Browseranwendungen oder per ClickOnce bereitgestellte Anwendungen) können die WCF-Proxys für HTTP-Dienste verwenden. Außerdem sind die WCF-Programmiermodellfeatures (einschließlich AJAX und Syndication) zur Verwendung durch Anwendungen mit teilweiser Vertrauenswürdigkeit verfügbar. Weitere Informationen finden Sie unter Teilweise Vertrauenswürdigkeit. Codebeispiele finden Sie unter WCF-Beispiele zur teilweisen Vertrauenswürdigkeit.

Integration von WCF und ASP.NET AJAX

Durch die Integration von WCF und den AJAX (Asynchronous JavaScript and XML)-Funktionen in ASP.NET wird ein End-to-End-Programmiermodell für das Erstellen von Webanwendungen bereitgestellt, die WCF-Dienste verwenden können. In Webanwendungen im AJAX-Stil tauscht der Client (z. B. der Browser in einer Webanwendung) kleine Mengen von Daten mit dem Server unter Verwendung asynchroner Anforderungen aus. Die Integration von AJAX-Features in ASP.NET liefert eine einfache Möglichkeit zum Erstellen von WCF-Webdiensten, auf die über ein Client-JavaScript im Browser zugegriffen werden kann. Weitere Informationen finden Sie unter AJAX-Integration und JSON-Unterstützung. Codebeispiele finden Sie unter AJAX-Beispiele.

Interoperabilität der Webdienste

In .NET Framework 3.5 führt Microsoft sein Engagement in Bezug auf Interoperabilität und öffentlichen Standards fort, durch die Einführung der Unterstützung für die neuen sicheren, zuverlässigen und transaktiven Standards für Webdienste:

Die Implementierung dieser Protokolle wird unter Verwendung der neuen Standardbindungen <ws2007HttpBinding> und <ws2007FederationHttpBinding> verfügbar gemacht, die in Handbuch für die Interoperabilität von Webdienstprotokollen dokumentiert sind. Ein Codebeispiel finden Sie unter Beispiele zur WS-Bindung.

Windows Presentation Foundation

In .NET Framework 3.5 enthält die Windows Presentation Foundation Änderungen und Verbesserungen in zahlreichen Bereichen, zu denen die Versionsverwaltung, das Anwendungsmodell, die Datenbindung, Steuerelemente, Dokumente, Anmerkungen und 3D-Benutzeroberflächenelemente gehören.

Weitere Informationen zu diesen neuen Features und Verbesserungen finden Sie unter Neues in Windows Presentation Foundation Version 3.5

Windows Workflow Foundation

WCF und WF Integration – Workflowdienste

.NET Framework 3.5 vereint die Frameworks von Windows Workflow Foundation (WF) und Windows Communication Foundation (WCF). Dadurch können Sie WF verwenden, um WCF-Dienste zu erstellen oder den vorhandenen WF-Workflow als Dienst verfügbar zu machen. Dies ermöglicht es, Dienste zu erstellen, die beibehalten werden können, die mühelos Daten in einen bzw. aus einem Workflow übertragen können und Protokolle auf Anwendungsebene durchsetzen können. Weitere Informationen finden Sie unter Erstellen von Workflowdiensten und permanenten Diensten. Codebeispiele finden Sie unter Beispiele von Workflowdiensten (WF).

Regeln

Das WF-Regelmodul unterstützt jetzt Erweiterungsmethoden, Operatorüberladung und die Verwendung des neuen Operators in Ihren Regeln. Weitere Informationen finden Sie unter Regeländerungen in .NET Framework 3.5. Codebeispiele finden Sie unter Beispiele für Regeln und Bedingungen.

Windows Forms

ClickOnce-Verbesserungen

Mehrere Verbesserungen wurden an ClickOnce vorgenommen. Diese Verbesserungen schließen die Bereitstellung von mehreren Speicherorten und Branding eines Drittanbieters ein. Weitere Informationen finden Sie unter Bereitstellen von ClickOnce-Anwendungen ohne erneutes Signieren und unter Erstellen von ClickOnce-Anwendungen für die Bereitstellung durch Dritte.

Das Tool Mage.exe, das manchmal zusammen mit ClickOnce verwendet wird, wurde für .NET Framework 3.5 aktualisiert. Weitere Informationen finden Sie unter Tool zum Generieren und Bearbeiten von Manifesten (Mage.exe).

Dienste für Authentifizierung, Rollen und Einstellungen

Clientanwendungsdienste sind neu in .NET Framework 3.5 und ermöglichen Windows-basierten Anwendungen (einschließlich Windows Forms und Windows Presentation Foundation-Anwendungen) den leichten Zugriff auf Dienste für ASP.NET-Anmeldung, -Rollen und -Profile. Über diese Dienste können Sie Benutzer authentifizieren sowie Benutzerrollen und Anwendungseinstellungen von einem freigegebenen Server abrufen.

Sie können Clientanwendungsdienste aktivieren, indem Sie Clientdienstanwender in der Anwendungskonfigurationsdatei oder im Visual Studio-Projekt-Designer angeben und konfigurieren. Diese Anbieter werden in das Weberweiterbarkeitsmodell eingebunden und ermöglichen über vorhandene APIs für .NET Framework-Anmeldung, -Rollen und -Einstellungen den Zugriff auf Webdienste. Clientanwendungsdienste unterstützen auch gelegentlich verbundene Anwendungen, indem Benutzerinformationen gespeichert und aus einem lokalen Datencache abgerufen werden, wenn die Anwendung offline ist.

Weitere Informationen finden Sie unter Clientanwendungsdienste.

Windows Vista-Unterstützung

Vorhandene Windows Forms-Anwendungen arbeiten nahtlos in Windows Vista zusammen und werden aktualisiert, sodass sie möglichst dasselbe Erscheinungsbild aufweisen wie Anwendungen, die speziell für Windows Vista geschrieben wurden. Allgemeine Dateidialogfelder werden automatisch auf die Windows Vista-Version aktualisiert. .NET Framework 3.5 unterstützt auch das Shield-Symbol der Benutzerkontensteuerung (UAC). Weitere Informationen finden Sie unter FileDialog-Klasse und unter Shield.

WPF-Unterstützung

Sie können Windows Forms zum Hosten von WPF (Windows Presentation Foundation)-Steuerelementen und Inhalten zusammen mit Windows Forms-Steuerelementen verwenden. Sie können auch WPF-Fenster von einem Windows Form aus öffnen. Weitere Informationen zum gemeinsamen Verwenden von Windows Forms und WPF finden Sie unter Migration und Interoperabilität.

LINQ

Sprachintegrierte Abfrage (Language-Integrated Query, LINQ) ist ein neues Feature in Visual Studio 2008 und .NET Framework 3.5. LINQ erweitert die leistungsfähigen Abfragefunktionen mit der Sprachsyntax von C# und Visual Basic in Form standardmäßiger, einfach zu erlernender Abfragemuster. Diese Technologie kann so erweitert werden, dass potenziell jede Art von Datenspeicher unterstützt wird. .NET Framework 3.5 umfasst LINQ-Anbieterassemblys, die die Verwendung von LINQ für Abfragen von .NET Framework-Auflistungen, SQL Server-Datenbanken, ADO.NET-DataSets und XML-Dokumenten ermöglichen.

Folgende Komponenten von LINQ sind Teil von .NET Framework 3.5:

  • Der System.Linq-Namespace mit der Gruppe der Standardabfrageoperatoren, -typen und -schnittstellen, die in der Infrastruktur einer LINQ-Abfrage verwendet werden. Dieser Namespace befindet sich in der System.Core.dll-Assembly.

  • Der System.Data.Linq-Namespace mit Klassen, die die Interaktion mit relationalen Datenbanken in LINQ to SQL-Anwendungen unterstützen.

  • Der System.Data.Linq.Mapping-Namespace mit Klassen, die zum Generieren eines LINQ to SQL-Objektmodells verwendet werden, das die Struktur und den Inhalt einer relationalen Datenbank darstellt.

  • Der System.Xml.Linq-Namespace mit den Klassen für LINQ to XML. LINQ to XML ist eine speicherinterne XML-Programmierschnittstelle handelt, mit der XML-Dokumente effizient und auf einfache Weise geändert werden können. Unter Verwendung von LINQ to XML können Sie XML laden, XML serialisieren, neue XML-Strukturen erstelllen, speicherinterne XML-Strukturen bearbeiten und mit XSD überprüfen. Sie können auch eine Kombination dieser Features verwenden, um die Formen von XML-Strukturen zu transformieren.

  • Neue Typen im System.Web.UI.WebControls-Namespace und im System.Web.UI.Design.WebControls-Namespace. Diese neuen Typen, z. B. LinqDataSource, unterstützen die Verwendung von LINQ in ASP.NET-Webseiten über ein Datenquellensteuerelement.

  • Die Klassen DataRowComparer, DataRowExtensions und DataTableExtensions im System.Data-Namespace unterstützen LINQ-Abfragen von ADO.NET DataSet-Objekten.

In der Klassenbibliothek sind die LINQ-Erweiterungsmethoden, die für eine Klasse gelten, auf der Memberseite für die Klasse, im Fenster Inhalt und im Fenster Index aufgelistet.

Ausdrucksbaumstrukturen

Ausdrucksbaumstrukturen sind neu in .NET Framework 3.5 und ermöglichen es, Codeausdrücke auf Sprachebene in Form von Daten darzustellen. Der System.Linq.Expressions-Namespace enthält die Typen, die die Bausteine von Ausdrucksbaumstrukturen sind. Diese Typen können für die Darstellung verschiedener Typen von Codeausdrücken verwendet werden, z. B. einen Methodenaufruf oder einen Vergleich.

Ausdrucksbaumstrukturen werden häufig in LINQ-Abfragen von Remotedatenquellen verwendet, z. B. SQL-Datenbanken. Diese Abfragen werden als Ausdrucksbaumstrukturen darstellt. Diese Darstellung ermöglicht es Abfrageanbietern, sie zu untersuchen und in eine domänenspezifische Abfragesprache zu übersetzen.

Der System.Linq.Expressions-Namespace befindet sich in der System.Core.dll-Assembly.

Programmiersprachen

Drei Programmiersprachen von Microsoft sind explizit für .NET Framework ausgelegt. Weitere Informationen über neue und verbesserte Features in diesen Sprachen finden Sie in den folgenden Themen:

Neues bei Visual C#

Neues in Visual C++ 2008

Neues in der Visual Basic-Sprache

Siehe auch

Konzepte

Neues in ASP.NET und Webentwicklung

Neues in .NET Compact Framework, Version 3.5

Neues in Windows Presentation Foundation Version 3.5

Neues in Visual Studio 2008