Neues in .NET FrameworkWhat's new in the .NET Framework

Dieser Artikel beschreibt wichtige Funktionen und Änderungen in den folgenden Versionen von .NET Framework:This article summarizes key new features and improvements in the following versions of the .NET Framework:

.NET Framework 4.7.1 .NET Framework 4.7.1
.NET Framework 4.7 .NET Framework 4.7
.NET Framework 4.6.2 .NET Framework 4.6.2
.NET Framework 4.6.1 .NET Framework 4.6.1
.NET 2015 und .NET Framework 4.6 .NET 2015 and .NET Framework 4.6
.NET Framework 4.5.2 .NET Framework 4.5.2
.NET Framework 4.5.1 .NET Framework 4.5.1
.NET Framework 4.5.NET Framework 4.5

Dieser Artikel enthält keine umfassenden Informationen zu jeder neuen Funktion und unterliegt möglichen Änderungen.This article does not provide comprehensive information about each new feature and is subject to change. Allgemeine Informationen zu .NET Framework finden Sie unter Erste Schritte.For general information about the .NET Framework, see Getting Started. Informationen zu unterstützten Plattformen finden Sie unter Systemanforderungen.For supported platforms, see System Requirements. Downloadlinks und Installationsanweisungen finden Sie im Installationshandbuch.For download links and installation instructions, see Installation Guide.

Hinweis

Das .NET Framework-Team veröffentlicht zusätzlich mit NuGet Funktionen außer der Reihe, um die Plattformunterstützung zu erweitern und neue Funktionen einzuführen, z. B. unveränderliche Auflistungen und SIMD-fähige Vektortypen.The .NET Framework team also releases features out of band with NuGet to expand platform support and to introduce new functionality, such as immutable collections and SIMD-enabled vector types. Weitere Informationen finden Sie unter Zusätzliche Klassenbibliotheken und APIs und .NET Framework und Out-of-Band-Releases.For more information, see Additional Class Libraries and APIs and The .NET Framework and Out-of-Band Releases. Lassen Sie eine vollständige Liste von NuGet-Paketen für .NET Framework anzeigen, oder abonnieren Sie unseren Feed.See a complete list of NuGet packages for the .NET Framework, or subscribe to our feed.

Vorstellung von .NET Framework 4.7.1Introducing the .NET Framework 4.7.1

.NET Framework 4.7.1 baut auf .NET Framework 4.6, 4.6.1, 4.6.2 und 4.7 auf und umfasst zahlreiche Fehlerkorrekturen und neue Funktionen in einem gewohnt stabilen Produkt.The .NET Framework 4.7.1 builds on the .NET Framework 4.6, 4.6.1, 4.6.2, and 4.7 by adding many new fixes and several new features while remaining a very stable product.

Herunterladen und Installieren von .NET Framework 4.7.1Downloading and installing the .NET Framework 4.7.1

Sie können .NET Framework 4.7.1 von den folgenden Speicherorten herunterladen:You can download the .NET Framework 4.7.1 from the following locations:

.NET Framework 4.7.1 kann unter Windows 10, Windows 8.1, Windows 7 SP1 und den entsprechenden Serverplattformen, beginnend mit Windows Server 2008 R2 SP1, installiert werden.The .NET Framework 4.7.1 can be installed on Windows 10, Windows 8.1, Windows 7 SP1, and the corresponding server platforms starting with Windows Server 2008 R2 SP1. Sie können .NET Framework 4.7.1 wahlweise mit dem Webinstaller oder Offlineinstaller installieren.You can install the .NET Framework 4.7.1 by using either the web installer or the offline installer. Die empfohlene Vorgehensweise für die meisten Benutzer ist die Verwendung des Webinstallers.The recommended way for most users is to use the web installer.

Sie können .NET Framework 4.7.1 in Visual Studio 2012 oder höheren Versionen als Ziel verwenden, indem Sie das .NET Framework 4.7.1-Entwicklerpaket installieren.You can target the .NET Framework 4.7.1 in Visual Studio 2012 or later by installing the .NET Framework 4.7.1 Developer Pack.

Neuerungen in .NET Framework 4.7.1What's new in the .NET Framework 4.7.1

.NET Framework 4.7.1 umfasst neue Features in den folgenden Bereichen:The .NET Framework 4.7.1 includes new features in the following areas:

Ein Hauptschwerpunkt von .NET Framework 4.7.1 ist außerdem die Verbesserung der Barrierefreiheit, die es einer Anwendung ermöglicht, Benutzern von Hilfstechnologie ein angemessenes Erlebnis zu bieten.In addition, a major focus in the .NET Framework 4.7.1 is improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology. Informationen zu Verbesserungen der Barrierefreiheit in .NET Framework 4.7.1 finden Sie unter Neuerungen in der Barrierefreiheit in .NET Framework.For information on accessibility improvements in the .NET Framework 4.7.1, see What's new in accessibility in the .NET Framework.

KernspeicherCore

Unterstützung für .NET Standard 2.0Support for .NET Standard 2.0

.NET Standard definiert einen Satz von APIs, die in jeder .NET Implementierung verfügbar sein müssen, die diese Version des Standards unterstützt..NET Standard defines a set of APIs that must be available on each .NET implementation that supports that version of the standard. .NET Framework 4.7.1 unterstützt den .NET Standard 2.0 vollständig und fügt etwa 200 APIs hinzu, die in .NET Standard 2.0 definiert sind und in .NET Framework 4.6.1, 4.6.2 und 4.7 fehlen.The .NET Framework 4.7.1 fully supports .NET Standard 2.0 and adds about 200 APIs that are defined in .NET Standard 2.0 and are missing from the .NET Framework 4.6.1, 4.6.2, and 4.7. (Beachten Sie, dass diese Versionen von .NET Framework .NET Standard 2.0 nur dann unterstützen, wenn zusätzliche .NET Standard-Unterstützungsdateien auch auf dem Zielsystem bereitgestellt werden.) Weitere Informationen finden Sie unter „BCL: Unterstützung für .NET 2.0 Standard“ im Blogbeitrag zu .NET Framework 4.7.1 Runtime und Compilerfeatures.(Note that these versions of the .NET Framework support .NET Standard 2.0 only if additional .NET Standard support files are also deployed on the target system.) For more information, see "BCL - .NET Standard 2.0 Support" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Unterstützung für KonfiguratiosgeneratorenSupport for configuration builders

Konfigurationsgeneratoren ermöglichen es Entwicklern, Konfigurationseinstellungen für Anwendungen dynamisch zur Laufzeit einzufügen und zu erstellen.Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. Benutzerdefinierte Konfigurationsgeneratoren können verwendet werden, um vorhandene Daten in einem Konfigurationsabschnitt zu ändern oder einen Konfigurationsabschnitt ganz neu zu erstellen.Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Ohne Konfigurationsgeneratoren sind CONFIG-Dateien statisch, und ihre Einstellungen werden einige Zeit vor dem Start einer Anwendung festgelegt.Without configuration builders, .config files are static, and their settings are defined some time before an application is launched.

Um einen benutzerdefinierten Konfigurationsgenerator zu erstellen, leiten Sie Ihren Generator von der abstrakten ConfigurationBuilder-Klasse ab und überschreiben seine ConfigurationBuilder.ProcessConfigurationSection- und ConfigurationBuilder.ProcessRawXml-Elemente.To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. Außerdem definieren Sie Ihre Generatoren in der CONFIG-Datei.You also define your builders in your .config file. Weitere Informationen finden Sie im Abschnitt „Konfigurationsgeneratoren“ im Blogbeitrag zu .NET Framework 4.7.1 ASP.NET und Konfigurationsfeatures.For more information, see the "Configuration Builders" section in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Featureerkennung zur LaufzeitRun-time feature detection

Die System.Runtime.CompilerServices.RuntimeFeature-Klasse stellt einen Mechanismus zur Verfügung, mit dem festgestellt werden kann, ob ein vordefiniertes Feature für eine bestimmte .NET-Implementierung zur Kompilierungszeit oder zur Laufzeit unterstützt wird.The System.Runtime.CompilerServices.RuntimeFeature class provides a mechanism for determine whether a predefined feature is supported on a given .NET implementation at compile time or run time. Zur Kompilierungszeit kann ein Compiler überprüfen, ob ein angegebenes Feld vorhanden ist, um festzustellen, ob das Merkmal unterstützt wird. Ist dies der Fall, kann er Code ausgeben, der dieses Merkmal nutzt.At compile time, a compiler can check whether a specified field exists to determine whether the feature is supported; if so, it can emit code that takes advantage of that feature. Zur Laufzeit kann eine Anwendung die Methode RuntimeFeature.IsSupported aufrufen, bevor zur Laufzeit Code ausgegeben wird.At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. Weitere Informationen finden Sie unter Hinzufügen einer Hilfsmethode, um Features zu beschreiben, die von der Laufzeit unterstützt werden.For more information, see Add helper method to describe features supported by the runtime.

Werttupeltypen sind serialisierbarValue tuple types are serializable

Ab .NET Framework 4.7.1 werden System.ValueTuple und die zugehörigen generischen Typen als serialisierbar markiert, was eine binäre Serialisierung ermöglicht.Starting with the .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. Dies sollte das Migrieren von Tupeltypen (z.B. Tuple<T1,T2,T3> und Tuple<T1,T2,T3,T4>) zu Werttupeltypen vereinfachen.This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier. Weitere Informationen finden Sie unter „Compiler: ValueTuple ist serialisierbar“ im Blogbeitrag zu .NET Framework 4.7.1 Runtime und Compilerfeatures.For more information, see "Compiler -- ValueTuple is Serializable" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Unterstützung für schreibgeschützte VerweiseSupport for read-only references

Mit .NET Framework 4.7.1 wurde das System.Runtime.CompilerServices.IsReadOnlyAttribute hinzugefügt.The .NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. Dieses Attribut wird von Sprachcompilern verwendet, um Member mit schreibgeschützten ref-Rückgabetypen oder -Parametern zu kennzeichnen.This attribute is used by language compilers to mark members that have read-only ref return types or parameters. Weitere Informationen finden Sie unter „Compiler: Unterstützung für ReadOnlyReferences“ im Blogbeitrag zu .NET Framework 4.7.1 Runtime und Compilerfeatures.For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. Weitere Informationen zu ref-Rückgabewerten finden Sie unter Ref-Rückgabewerte und lokale ref-Variablen (C#-Leitfaden) und Ref-Rückgabewerte (Visual Basic).For information on ref return values, see Ref return values and ref locals (C# Guide) and Ref return values (Visual Basic).

Common Language Runtime (CLR)Common language runtime (CLR)

Leistungsverbesserungen für Garbage CollectionGarbage collection performance improvements

Änderungen an der Garbage Collection (GC) in .NET Framework 4.7.1 verbessern die Gesamtleistung, insbesondere bei LOH-Zuweisungen (Large Object Heap).Changes to garbage collection (GC) in the .NET Framework 4.7.1 improve overall performance, especially for Large Object Heap (LOH) allocations. In .NET Framework 4.7.1 werden separate Sperren für SOH- (Small Object Heap) und LOH-Zuweisungen verwendet, die es ermöglichen, dass LOH-Zuweisungen auftreten, wenn Garbage Collection im Hintergrund den SOH bereinigt.In the .NET Framework 4.7.1, separate locks are used for Small Object Heap (SOH) and LOH allocations, which allows LOH allocations to occur when Background GC (BGC) is sweeping the SOH. Folglich sollten Anwendungen, die eine große Anzahl von LOH-Zuweisungen vornehmen, eine Verringerung der Zuweisungssperrenkonflikte und eine verbesserte Leistung erfahren.As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance. Weitere Informationen finden Sie im Abschnitt „Runtime: Leistungsverbesserungen der Garbage Collection" im Blogbeitrag zu .NET Framework 4.7.1 Runtime und Compilerfeatures.For more information, see the "Runtime -- GC Performance Improvements" section in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Unterstützung für portable PDB-DateienSupport for portable PDBs

Ab Version 4.7.1 unterstützt .NET Framework portable PDB-Dateien.The .NET Framework starting with version 4.7.1 supports portable PDBs. Während PDB-Standarddateien nur für Windows geeignet sind, können portable PDB-Dateien auf allen Plattformen erstellt und gelesen werden.While standard PDB files are Windows-only, portable PDB files can be created and read on all platforms. In den meisten Fällen ist das Dateiformat für eine Anwendung transparent, die in einer bestimmten.NET-Implementierung ausgeführt wird.In most cases, the file format is transparent to an application running on a particular .NET implementation. Eine Ausnahme ist eine Anwendung, die dynamisch eine Assembly zur Laufzeit ausgibt. In diesem Fall kann die Fähigkeit, eine portable PDB-Datei auszugeben, eine Leistungssteigerung bieten und den Speicherbedarf der Anwendung verringern.An exception is an application that dynamically emits an assembly at run time; in this case, the ability to emit a portable PDB can offer a performance improvement and reduce the application's memory footprint.

Sie können zur Laufzeit feststellen, ob portable PDB-Dateien in der aktuellen.NET-Implementierung unterstützt werden, indem Sie die Zeichenfolge „PortablePdb“ an die RuntimeFeature.IsSupported(String)-Methode übergeben, bevor Sie die Assembly ausgeben.You can determine at run time whether portable PDBs are supported on the current .NET implementation by passing the string "PortablePdb" to the RuntimeFeature.IsSupported(String) method before emitting the assembly.

NetzwerkNetworking

SHA-2-Unterstützung für Message.HashAlgorithmSHA-2 support for Message.HashAlgorithm

In .NET Framework 4.7 und früheren Versionen unterstützte die Message.HashAlgorithm-Eigenschaft nur Werte von HashAlgorithm.Md5 und HashAlgorithm.Sha.In the .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. Ab .NET Framework 4.7.1 werden HashAlgorithm.Sha256, HashAlgorithm.Sha384, und HashAlgorithm.Sha512 ebenfalls unterstützt.Starting with the .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Ob dieser Wert tatsächlich verwendet wird, hängt von MSMQ ab, da die Message-Instanz selbst kein Hashing ausführt, sondern einfach Werte an MSMQ übergibt.Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ. Weitere Informationen finden Sie im Abschnitt „SHA-2-Unterstützung für Message.HashAlgorithm“ im Blogbeitrag zu .NET Framework 4.7.1 ASP.NET und Konfigurationsfeatures.For more information, see the "SHA-2 support for Message.HashAlgorithm" section in the .NET Framework 4.7.1 ASP.NET and Configuration features blog post.

ASP.NETASP.NET

Ausführungsschritte in ASP.NET-AnwendungenExecution steps in ASP.NET applications

ASP.NET verarbeitet Anforderungen in einer vordefinierten Pipeline, die 23 Ereignisse umfasst.ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET führt jeden Ereignishandler als einen Ausführungsschritt aus.ASP.NET executes each event handler as an execution step. In Versionen von ASP.NET bis zu .NET Framework 4.7 kann ASP.NET den Ausführungskontext aufgrund des Wechsels zwischen nativen und verwalteten Threads nicht durchlaufen.In versions of ASP.NET up to the .NET Framework 4.7, ASP.NET can't flow the execution context due to switching between native and managed threads. Stattdessen durchläuft ASP. NET selektiv nur den HttpContext.Instead, ASP.NET selectively flows only the HttpContext. Ab .NET Framework 4.7.1 ermöglicht die HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>)-Methode auch die Wiederherstellung von Umgebungsdaten durch Module.Starting with the .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. Dieses Feature richtet sich an Bibliotheken, die sich mit der Ablaufverfolgung, Profilerstellung, Diagnose oder Transaktionen befassen, die beispielsweise den Ausführungsablauf der Anwendung übernehmen.This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application. Weitere Informationen finden Sie unter „ASP.NET-Feature Ausführungsschritt“ im Blogbeitrag zu .NET Framework 4.7.1 ASP.NET und Konfigurationsfeatures.For more information, see the "ASP.NET Execution Step Feature" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

HttpCookie-Analyse von ASP.NETASP.NET HttpCookie parsing

.NET Framework 4.7.1 enthält eine neue Methode (HttpCookie.TryParse), die eine standardisierte Möglichkeit bietet, ein HttpCookie-Objekt aus einer Zeichenfolge zu erstellen und Cookiewerte wie das Ablaufdatum und den Pfad genau zuzuweisen.The .NET Framework 4.7.1 includes a new method, HttpCookie.TryParse, that provides a standardized way to create an HttpCookie object from a string and accurately assign cookie values such as expiration date and path. Weitere Informationen finden Sie unter „HttpCookie-Analyse von ASP.NET“ im Blogbeitrag zu .NET Framework 4.7.1 ASP.NET und Konfigurationsfeatures.For more information, see "ASP.NET HttpCookie parsing" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

SHA-2-Hashoptionen für Anmeldeinformationen für formularbasierte Authentifizierung von ASP.NETSHA-2 hash options for ASP.NET forms authentication credentials

In .NET Framework 4.7 und früheren Versionen erlaubte ASP.NET Entwicklern, Benutzeranmeldeinformationen mit Kennwörtern mit Hashes in Konfigurationsdateien unter Verwendung von MD5 oder SHA1 zu speichern.In the .NET Framework 4.7 and earlier versions, ASP.NET allowed developers to store user credentials with hashed passwords in configuration files using either MD5 or SHA1. Ab .NET Framework 4.7.1 unterstützt ASP.NET auch die neuen, sicheren SHA-2-Hashoptionen wie etwa SHA256, SHA384 und SHA512.Starting with the .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 bleibt die Standardeinstellung, und ein nicht standardmäßiger Hashalgorithmus kann in der Webkonfigurationsdatei definiert werden.SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file. Zum Beispiel:For example:

<system.web>
    <authentication mode="Forms">
        <forms loginUrl="~/login.aspx">
          <credentials passwordFormat="SHA512">
            <user name="jdoe" password="6D003E98EA1C7F04ABF8FCB375388907B7F3EE06F278DB966BE960E7CBBD103DF30CA6D61F7E7FD981B2E4E3A64D43C836A4BEDCA165C33B163E6BCDC538A664" />
          </credentials>
        </forms>
    </authentication>
</system.web>

Neuerungen in .NET Framework 4.7What's new in the .NET Framework 4.7

.NET Framework 4.7 umfasst neue Features in den folgenden Bereichen:The .NET Framework 4.7 includes new features in the following areas:

Eine Liste der neuen APIs, die .NET Framework 4.7 hinzugefügt wurden, finden Sie unter API-Änderungen für .NET Framework 4.7 auf GitHub.For a list of new APIs added to the .NET Framework 4.7, see .NET Framework 4.7 API Changes on GitHub. Eine Liste der Verbesserungen von Funktionen und Fehlerkorrekturen in .NET Framework 4.7 finden Sie unter Liste mit Änderungen für .NET Framework 4.7 auf GitHub.For a list of feature improvements and bug fixes in the .NET Framework 4.7, see .NET Framework 4.7 List of Changes on GitHub. Weitere Informationen finden Sie unter Ankündigung von .NET Framework 4.7 im .NET-Blog.For additional information, see Announcing the .NET Framework 4.7 in the .NET blog.

KernspeicherCore

.NET Framework-4.7 verbessert die Serialisierung durch die DataContractJsonSerializer:The .NET Framework 4.7 improves serialization by the DataContractJsonSerializer:

Verbesserte Funktionalität mit Elliptic Curve Cryptography (ECC)Enhanced functionality with Elliptic Curve Cryptography (ECC)**

In .NET Framework-4.7 wurden ImportParameters(ECParameters)-Methoden den Klassen ECDsa und ECDiffieHellman hinzugefügt, damit ein Objekt einen bereits eingerichteten Schlüssel darstellen kann.In the .NET Framework 4.7, ImportParameters(ECParameters) methods were added to the ECDsa and ECDiffieHellman classes to allow for an object to represent an already-established key. Eine ExportParameters(Boolean)-Methode wurde auch zum Exportieren des Schlüssels unter Verwendung expliziter Kurvenparameter hinzugefügt.An ExportParameters(Boolean) method was also added for exporting the key using explicit curve parameters.

.NET Framework 4.7 unterstützt nun auch zusätzliche Kurven (einschließlich der Brainpool-Kurvengruppe) und bietet vordefinierte Definitionen zur Erleichterung der Erstellung mithilfe der Factorymethoden Create und Create.The .NET Framework 4.7 also adds support for additional curves (including the Brainpool curve suite), and has added predefined definitions for ease-of-creation through the new Create and Create factory methods.

Auf GitHub finden Sie ein Beispiel der kryptografischen Verbesserungen in .NET Framework 4.7.You can see an example of .NET Framework 4.7 cryptography improvements on GitHub.

Bessere Unterstützung für Steuerzeichen durch DataContractJsonSerializerBetter support for control characters by the DataContractJsonSerializer

In .NET Framework 4.7 erfolgt die Serialisierung von Steuerzeichen durch DataContractJsonSerializer entsprechend dem Standard ECMAScript 6.In the .NET Framework 4.7, the DataContractJsonSerializer serializes control characters in conformity with the ECMAScript 6 standard. Dieses Verhalten wird standardmäßig für Anwendungen aktiviert, die auf .NET Framework 4.7 ausgerichtet sind, und ist ein optionales Feature für Anwendungen, die unter .NET Framework 4.7 ausgeführt werden, jedoch auf eine frühere Version von .NET Framework ausgerichtet sind.This behavior is enabled by default for applications that target the .NET Framework 4.7, and is an opt-in feature for applications that are running under the .NET Framework 4.7 but target a previous version of the .NET Framework. Weitere Informationen finden Sie unter Änderungen der Neuzuweisungen in .NET Framework 4.7.For more information, see Retargeting Changes in the .NET Framework 4.7.

NetzwerkNetworking

.NET Framework-4.7 bietet nun die folgenden netzwerkbezogenen Features:The .NET Framework 4.7 adds the following network-related feature:

Standardmäßig Betriebssystemunterstützung für TLS-ProtokolleDefault operating system support for TLS protocols**

Der TLS-Stapel, der von System.Net.Security.SslStream und vorgelagerten Komponenten im Stapel wie z.B. HTTP, FTP und SMTP verwendet wird, ermöglicht Entwicklern, die vom Betriebssystem unterstützten TLS-Standardprotokolle zu verwenden.The TLS stack, which is used by System.Net.Security.SslStream and up-stack components such as HTTP, FTP, and SMTP, allows developers to use the default TLS protocols supported by the operating system. Entwickler müssen eine TLS-Version nicht länger vordefinieren.Developers need no longer hard-code a TLS version.

ASP.NETASP.NET

In .NET Framework 4.7 bietet ASP.NET die folgenden neuen Features:In the .NET Framework 4.7, ASP.NET includes the following new features:

Erweiterbarkeit des ObjektcachesObject Cache Extensibility

Ab .NET Framework 4.7 bietet ASP.NET eine neue Gruppe von APIs, die es Entwicklern ermöglichen, die ASP.NET- Standardimplementierungen für das Zwischenspeichern von Objekten im Arbeitsspeicher und dessen Überwachung zu ersetzen.Starting with the .NET Framework 4.7, ASP.NET adds a new set of APIs that allow developers to replace the default ASP.NET implementations for in-memory object caching and memory monitoring. Entwickler können jetzt die drei folgenden Komponenten ersetzen, wenn die ASP.NET-Implementierung nicht geeignet ist:Developers can now replace any of the following three components if the ASP.NET implementation is not adequate:

  • Objektcachespeicher.Object Cache Store. Mithilfe des neuen Abschnitts für die Konfiguration von Cacheanbietern können Entwickler neue Implementierungen eines Objektcaches für eine ASP.NET-Anwendung einbinden, indem die neue ICacheStoreProvider-Schnittstelle verwendet wird.By using the new cache providers configuration section, developers can plug in new implementations of an object cache for an ASP.NET application by using the new ICacheStoreProvider interface.

  • Speicherüberwachung.Memory monitoring. Der Standardspeichermonitor in ASP.NET benachrichtigt Anwendungen, sobald sie sich dem für den Prozess konfigurierten Grenzwert für private Bytes nähern oder der insgesamt verfügbare physische Arbeitsspeicher knapp wird.The default memory monitor in ASP.NET notifies applications when they are running close to the configured private bytes limit for the process, or when the machine is low on total available physical RAM. Bei Annäherung an diese Grenzwerte werden Benachrichtigungen ausgelöst.When these limits are near, notifications are fired. Bei einigen Anwendungen werden Benachrichtigungen erst ausgelöst, sobald die konfigurierten Grenzwerte schon fast erreicht sind, sodass keine sinnvolle Reaktion möglich ist.For some applications, notifications are fired too close to the configured limits to allow for useful reactions. Entwickler können nun mithilfe der ApplicationMonitors.MemoryMonitor-Eigenschaft ihre eigene Arbeitsspeicherüberwachung schreiben, um die Standardeinstellung zu ersetzen.Developers can now write their own memory monitors to replace the default by using the ApplicationMonitors.MemoryMonitor property.

  • Reaktionen bei Erreichen des Speichergrenzwerts.Memory Limit Reactions. Standardmäßig versucht ASP.NET, den Objektcache zu trimmen und regelmäßig GC.Collect aufzurufen, wenn der Prozessgrenzwert für private Bereiche fast erreicht ist.By default, ASP.NET attempts to trim the object cache and periodically call GC.Collect when the private byte process limit is near. Für einige Anwendungen ist die Häufigkeit der Aufrufe von GC.Collect oder die Menge des Caches, der getrimmt wird, ineffizient.For some applications, the frequency of calls to GC.Collect or the amount of cache that is trimmed are inefficient. Entwickler können jetzt das Standardverhalten ersetzen oder ergänzen, indem für den Speichermonitor der Anwendung IObserver-Implementierungen abonniert werden.Developers can now replace or supplement the default behavior by subscribing IObserver implementations to the application's memory monitor.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

Windows Communication Foundation (WFC) bietet nun die folgenden Features und Änderungen:Windows Communication Foundation (WFC) adds the following features and changes:

Möglichkeit zum Konfigurieren der Standardsicherheitseinstellungen für Nachrichten für TLS1.1.1 und TLS1.1.2Ability to configure the default message security settings to TLS 1.1 or TLS 1.2

Ab .NET Framework 4.7 ermöglicht WCF das Konfigurieren von TSL 1.1 oder TLS 1.2 zusätzlich zu SSL 3.0 und TLS 1.0 als Standardprotokoll für die Sicherheit von Nachrichten.Starting with the .NET Framework 4.7, WCF allows you to configure TSL 1.1 or TLS 1.2 in addition to SSL 3.0 and TSL 1.0 as the default message security protocol. Diese Einstellung ist optional. Um sie zu aktivieren, müssen Sie der Anwendungskonfigurationsdatei den folgenden Eintrag hinzufügen:This is an opt-in setting; to enable it, you must add the following entry to your application configuration file:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.ServiceModel.DisableUsingServicePointManagerSecurityProtocols=false;Switch.System.Net.DontEnableSchUseStrongCrypto=false" /> 
</runtime>

Verbesserte Zuverlässigkeit von WCF-Anwendungen und WCF-SerialisierungImproved reliability of WCF applications and WCF serialization

WCF umfasst eine Reihe von Codeänderungen zum Vermeiden von Racebedingungen, wodurch Leistung und Zuverlässigkeit von Serialisierungsoptionen verbessert werden.WCF includes a number of code changes that eliminate race conditions, thereby improving performance and the reliability of serialization options. Dazu gehören:These include:

  • Bessere Unterstützung für das Kombinieren von asynchronem und synchronem Code in Aufrufen von SocketConnection.BeginRead und SocketConnection.Read.Better support for mixing asynchronous and synchronous code in calls to SocketConnection.BeginRead and SocketConnection.Read.
  • Verbesserte Zuverlässigkeit beim Abbrechen einer Verbindung mit SharedConnectionListener und DuplexChannelBinder.Improved reliability when aborting a connection with SharedConnectionListener and DuplexChannelBinder.
  • Verbesserte Zuverlässigkeit von Serialisierungsvorgängen beim Aufrufen der FormatterServices.GetSerializableMembers(Type)-Methode.Improved reliability of serialization operations when calling the FormatterServices.GetSerializableMembers(Type) method.
  • Verbesserte Zuverlässigkeit beim Entfernen eines Waiters durch Aufrufen der ChannelSynchronizer.RemoveWaiter-Methode.Improved reliability when removing a waiter by calling the ChannelSynchronizer.RemoveWaiter method.

Windows FormsWindows Forms

In .NET Framework 4.7 bietet Windows Forms eine bessere Unterstützung für Monitore mit hohem DPI-Wert.In the .NET Framework 4.7, Windows Forms improves support for high DPI monitors.

Unterstützung hoher DPI-WerteHigh DPI support

Beginnend mit auf .NET Framework 4.7 ausgerichteten Anwendungen unterstützt .NET Framework für Windows Forms-Anwendungen hohe und dynamische DPI-Werte.Starting with applications that target the .NET Framework 4.7, the .NET Framework features high DPI and dynamic DPI support for Windows Forms applications. Durch die Unterstützung hoher DPI-Werte werden das Layout und die Darstellung von Formularen und Steuerelementen auf Monitoren mit hohen DPI-Einstellungen verbessert.High DPI support improves the layout and appearance of forms and controls on high DPI monitors. Dynamische DPI-Werte ermöglichen das Ändern von Layout und Darstellung von Formularen und Steuerelementen, wenn der Benutzer die DPI-Einstellung oder den Skalierungsfaktor der Anzeige einer ausgeführten Anwendung ändert.Dynamic DPI changes the layout and appearance of forms and controls when the user changes the DPI or display scale factor of a running application.

Die Unterstützung hoher DPI-Werte ist ein optionales Feature, das Sie durch Festlegen des Abschnitts <System.Windows.Forms.ConfigurationSection> in der Anwendungskonfigurationsdatei konfigurieren können.High DPI support is an opt-in feature that you configure by defining a <System.Windows.Forms.ConfigurationSection> section in your application configuration file. Weitere Informationen zum Hinzufügen der Unterstützung hoher und dynamischer DPI-Werte zu Ihrer Windows Forms-Anwendung finden Sie unter Unterstützung hoher DPI-Werte in Windows Forms.For more information on adding high DPI support and dynamic DPI support to your Windows Forms application, see High DPI Support in Windows Forms.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In .NET Framework 4.7 gibt es für WPF die folgenden Verbesserungen:In the .NET Framework 4.7, WPF includes the following enhancements:

Unterstützung für Touch-/Tablettstiftstapel basierend auf Windows-WM_POINTER-NachrichtenSupport for a touch/stylus stack based on Windows WM_POINTER messages

Sie haben nun die Möglichkeit, einen auf -Windows-Nachrichten basierenden Touch-/Tablettstiftstapel anstelle der Windows Ink Services Plattform (WISP) zu verwenden.You now have the option of using a touch/stylus stack based on WM_POINTER messages instead of the Windows Ink Services Platform (WISP). Dies ist ein optionales Feature in .NET Framework.This is an opt-in feature in the .NET Framework. Weitere Informationen finden Sie unter Änderungen der Neuzuweisungen in .NET Framework 4.7.For more information, see Retargeting Changes in the .NET Framework 4.7.

Neue Implementierung für Druck-APIs von WPFNew implementation for WPF printing APIs

Die Druck-APIs von WPF in der System.Printing.PrintQueue-Klasse rufen die Windows-API PrintDocumentPackage anstelle der veralteten XPS-Druck-API auf.WPF's printing APIs in the System.Printing.PrintQueue class call the Windows Print Document Package API instead of the deprecated XPS Print API. Die Auswirkung dieser Änderung auf die Anwendungskompatibilität finden Sie unter Änderungen der Neuzuweisungen in .NET Framework 4.7.For the impact of this change on application compatibility, see Retargeting Changes in the .NET Framework 4.7.

Neuigkeiten in .NET Framework 4.6.2What's new in the .NET Framework 4.6.2

.NET Framework 4.6.2.NET Framework 4.6.2 enthält neue Features in den folgenden Bereichen:The .NET Framework 4.6.2.NET Framework 4.6.2 includes new features in the following areas:

Eine Liste der neuen APIs, die .NET Framework 4.6.2 hinzugefügt wurden, finden unter API-Änderungen für .NET Framework 4.6.2 auf GitHub.For a list of new APIs added to the .NET Framework 4.6.2, see .NET Framework 4.6.2 API Changes on GitHub. Eine Liste der Verbesserungen von Funktionen und Fehlerkorrekturen in .NET Framework 4.6.2 finden Sie unter Liste mit Änderungen für .NET Framework 4.6.2 auf GitHub.For a list of feature improvements and bug fixes in the .NET Framework 4.6.2, see .NET Framework 4.6.2 List of Changes on GitHub. Weitere Informationen finden Sie unter Ankündigung von .NET Framework 4.6.2 im .NET-Blog.For additional information, see Announcing .NET Framework 4.6.2 in the .NET blog.

ASP.NETASP.NET

In .NET Framework 4.6.2.NET Framework 4.6.2 umfasst ASP.NET die folgenden Verbesserungen:In the .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET includes the following enhancements:

Verbesserte Unterstützung lokalisierter Fehlermeldungen in Validierungssteuerelementen für Datenanmerkungen Mit Validierungssteuerelementen für Datenanmerkungen können Sie eine Überprüfung durchführen, indem Sie einer Klasseneigenschaft mindestens ein Attribut hinzufügen.Improved support for localized error messages in data annotation validators Data annotation validators enable you to perform validation by adding one or more attributes to a class property. Das Element ValidationAttribute.ErrorMessage des Attributs definiert den Text der Fehlermeldung, falls die Überprüfung fehlschlägt.The attribute's ValidationAttribute.ErrorMessage element defines the text of the error message if validation fails. Beginnend mit .NET Framework 4.6.2.NET Framework 4.6.2, ist es einfach, mit ASP.NET Fehlermeldungen zu lokalisieren.Starting with the .NET Framework 4.6.2.NET Framework 4.6.2, ASP.NET makes it easy to localize error messages. Fehlermeldungen werden lokalisiert, wenn:Error messages will be localized if:

  1. ValidationAttribute.ErrorMessage im Validierungsattribut vorhanden ist.The ValidationAttribute.ErrorMessage is provided in the validation attribute.

  2. die Ressourcendatei im Ordner „App_LocalResources“ gespeichert ist.The resource file is stored in the App_LocalResources folder.

  3. Der Name der lokalisierten Ressourcendatei ist folgendermaßen aufgebaut: DataAnnotation.Localization.{Name}.resx, wobei Name einen Kulturnamen im Format Sprachcode-Länder-/Regionscode oder Sprachcode darstellt.The name of the localized resources file has the form DataAnnotation.Localization.{name}.resx, where name is a culture name in the format languageCode-country/regionCode or languageCode.

  4. Der Schlüsselname der Ressource ist die Zeichenfolge, die dem Attribut ValidationAttribute.ErrorMessage zugewiesen ist, und deren Wert ist die lokalisierte Fehlermeldung.The key name of the resource is the string assigned to the ValidationAttribute.ErrorMessage attribute, and its value is the localized error message.

Das folgende Datenanmerkungsattribut definiert z. B. die Fehlermeldung der Standardkultur für eine ungültige Bewertung.For example, the following data annotation attribute defines the default culture's error message for an invalid rating.

public class RatingInfo
{
   [Required(ErrorMessage = "The rating must be between 1 and 10.")]
   [Display(Name = "Your Rating")]
   public int Rating { get; set; }
}
Public Class RatingInfo
   <Required(ErrorMessage = "The rating must be between 1 and 10.")>
   <Display(Name = "Your Rating")>
   Public Property Rating As Integer = 1
End Class

Sie können dann eine Ressourcendatei erstellen, DataAnnotation.Localization.fr.resx, deren Schlüssel die Zeichenfolge der Fehlermeldung und ihr Wert die lokalisierte Fehlermeldung ist.You can then create a resource file, DataAnnotation.Localization.fr.resx, whose key is the error message string and whose value is the localized error message. Die Datei muss sich im Ordner App.LocalResources befinden.The file must be found in the App.LocalResources folder. Das folgende Beispiel enthält den Schlüssel und seinen Wert in einer lokalisierten Fehlermeldung (Französisch, fr):For example, the following is the key and its value in a localized French (fr) language error message:

NameName WertValue
Die Bewertung muss zwischen 1 und 10 liegen.The rating must be between 1 and 10. La note doit être comprise entre 1 et 10.La note doit être comprise entre 1 et 10.

Diese Datei kann dannThis file can then

Darüber hinaus ist die Lokalisierung der Datenanmerkung erweiterbar.In addition, data annotation localization is extensible. Entwickler können ihren eigenen Anbieter für die zu lokalisierenden Zeichenfolgen in einer Ressourcendatei verwenden, indem Sie die IStringLocalizerProvider-Schnittstelle implementieren, um Lokalisierungszeichenfolgen an einem anderen Speicherort zu speichern, jedoch nicht in einer Ressourcendatei.Developers can plug in their own string localizer provider by implementing the IStringLocalizerProvider interface to store localization string somewhere other than in a resource file.

Async-Unterstützung für Sitzungszustands-Schlüsselspeicheranbieter ASP.NET erlaubt nun, dass Methoden, die eine Aufgabe zurückgeben, zusammen mit dem Anbieter für die Speicherung von Daten aus der Variable „Sitzungszustand“ verwendet werden können. Dadurch stehen ASP .NET-Apps die Vorteile zur Verfügung, die async in Sachen Skalierbarkeit bietet.Async support with session-state store providers ASP.NET now allows task-returning methods to be used with session-state store providers, thereby allowing ASP.NET apps to get the scalability benefits of async. Für die Unterstützung asynchroner Operationen bei Anbietern für die Speicherung von Daten aus der Variable „Sitzungszustand“, enthält ASP.NET eine neue Schnittstelle namens System.Web.SessionState.ISessionStateModule. Diese Schnittstelle erbt von IHttpModule und erlaubt Entwicklern, ihr eigenes Sitzungszustandsmodul und Anbieter für die Speicherung von async-Sitzungen zu implementieren.To supports asynchronous operations with session state store providers, ASP.NET includes a new interface, System.Web.SessionState.ISessionStateModule, which inherits from IHttpModule and allows developers to implement their own session-state module and async session store providers. Die Schnittstelle wird wie folgt definiert:The interface is defined as follows:

public interface ISessionStateModule : IHttpModule {
    void ReleaseSessionState(HttpContext context);
    Task ReleaseSessionStateAsync(HttpContext context);
}

Zusätzlich enthält die SessionStateUtility-Klasse zwei neue Methoden, IsSessionStateReadOnly und IsSessionStateRequired, die verwendet werden können, um asynchrone Vorgänge zu unterstützen.In addition, the SessionStateUtility class includes two new methods, IsSessionStateReadOnly and IsSessionStateRequired, that can be used to support asynchronous operations.

Async-Unterstützung für Ausgabecacheanbieter Ab .NET Framework 4.6.2.NET Framework 4.6.2 können Methoden, die Aufgaben zurückgeben, mit Ausgabecacheanbietern verwendet werden, um die Vorteile der Skalierbarkeit von Async bereitzustellen.Async support for output-cache providers Starting with the .NET Framework 4.6.2.NET Framework 4.6.2, task-returning methods can be used with output-cache providers to provide the scalability benefits of async. Anbieter, die diese Methoden bereitstellen, verringern die Anzahl blockierter Threads auf einem Webserver und verbessern die Skalierbarkeit eines ASP.NET-Diensts.Providers that implement these methods reduce thread-blocking on a web server and improve the scalability of an ASP.NET service.

Die folgenden APIs wurden hinzugefügt, um asynchrone Ausgabecacheanbieter zu unterstützen:The following APIs have been added to support asynchronous output-cache providers:

ZeichenkategorienCharacter categories

Zeichen im .NET Framework 4.6.2.NET Framework 4.6.2 werden basierend auf dem Unicode-Standard, Version 8.0.0 klassifiziert.Characters in the .NET Framework 4.6.2.NET Framework 4.6.2 are classified based on the Unicode Standard, Version 8.0.0. In .NET Framework 4.6.NET Framework 4.6 und .NET Framework 4.6.1.NET Framework 4.6.1, werden Zeichen basierend auf den Zeichenkategorien von Unicode 6.3 klassifiziert.In .NET Framework 4.6.NET Framework 4.6 and .NET Framework 4.6.1.NET Framework 4.6.1, characters were classified based on Unicode 6.3 character categories.

Die Unterstützung von Unicode 8.0 ist beschränkt auf die Klassifizierung von Zeichen durch die CharUnicodeInfo-Klasse und auf Typen und Methoden, die darauf basieren.Support for Unicode 8.0 is limited to the classification of characters by the CharUnicodeInfo class and to types and methods that rely on it. Dazu gehören die StringInfo-Klasse, die überladene Char.GetUnicodeCategory-Methode, und die Zeichenklassen, die vom .NET Framework-Modul für reguläre Ausdrücke erkannt werden.These include the StringInfo class, the overloaded Char.GetUnicodeCategory method, and the character classes recognized by the .NET Framework regular expression engine. Der Vergleich und die Sortierung von Zeichen und Zeichenfolgen sind von dieser Änderung nicht betroffen und beruhen weiterhin auf dem zugrunde liegenden Betriebssystem oder auf Windows 7-Systemen auf Zeichendaten, die vom .NET Framework bereitgestellt wurden.Character and string comparison and sorting is unaffected by this change and continues to rely on the underlying operating system or, on Windows 7 systems, on character data provided by the .NET Framework.

Änderungen in Zeichenkategorien von Unicode 6.0 bis 7.0 Unicode finden Sie unter Unicode Standard, Version 7.0.0 auf der Website des Unicode-Konsortiums.For changes in character categories from Unicode 6.0 to Unicode 7.0, see The Unicode Standard, Version 7.0.0 at The Unicode Consortium website. Änderungen von Unicode 7.0 bis 8.0 Unicode finden Sie unter Unicode Standard, Version 8.0.0 auf der Website des Unicode-Konsortiums.For changes from Unicode 7.0 to Unicode 8.0, see The Unicode Standard, Version 8.0.0 at The Unicode Consortium website.

KryptografieCryptography

Unterstützung von X 509-Zertifikaten, die FIPS 186-3 DSA enthalten Durch .NET Framework 4.6.2.NET Framework 4.6.2 werden DSA X509-Zertifikate (Digital Signature Algorithm) unterstützt, deren Schlüssel die FIPS 186-2 1024-Bit-Grenze überschreiten.Support for X509 certificates containing FIPS 186-3 DSA The .NET Framework 4.6.2.NET Framework 4.6.2 adds support for DSA (Digital Signature Algorithm) X509 certificates whose keys exceed the FIPS 186-2 1024-bit limit.

Zusätzlich zur Unterstützung der größeren Schlüsselgrößen von FIPS 186-3, erlaubt .NET Framework 4.6.2.NET Framework 4.6.2 die Berechnung von Signaturen mit der SHA-2-Familie der Hashalgorithmen (SHA256, SHA384 und SHA512).In addition to supporting the larger key sizes of FIPS 186-3, the .NET Framework 4.6.2.NET Framework 4.6.2 allows computing signatures with the SHA-2 family of hash algorithms (SHA256, SHA384, and SHA512). Die Unterstützung von FIPS 186-3 wird durch die neue System.Security.Cryptography.DSACng-Klasse bereitgestellt.FIPS 186-3 support is provided by the new System.Security.Cryptography.DSACng class.

Gemäß der aktuellen Änderungen an der RSA-Klasse im .NET Framework 4.6 und an der ECDsa-Klasse im .NET Framework 4.6.1, verfügt die abstrakte Basisklasse DSA in .NET Framework 4.6.2.NET Framework 4.6.2 über zusätzliche Methoden, um Aufrufern die Verwendung dieser Funktion ohne die Umwandlung zu erlauben.In keeping with recent changes to the RSA class in the .NET Framework 4.6 and the ECDsa class in the .NET Framework 4.6.1, the DSA abstract base class in .NET Framework 4.6.2.NET Framework 4.6.2 has additional methods to allow callers to use this functionality without casting. Sie können die Erweiterungsmethode DSACertificateExtensions.GetDSAPrivateKey verwenden, um Daten zu signieren, so wie in folgendem Beispiel dargestellt.You can call the DSACertificateExtensions.GetDSAPrivateKey extension method to sign data, as the following example shows.

public static byte[] SignDataDsaSha384(byte[] data, X509Certificate2 cert)
{
    using (DSA dsa = cert.GetDSAPrivateKey())
    {
        return dsa.SignData(data, HashAlgorithmName.SHA384);
    }
}
Public Shared Function SignDataDsaSha384(data As Byte(), cert As X509Certificate2) As Byte()
    Using DSA As DSA = cert.GetDSAPrivateKey()
        Return DSA.SignData(data, HashAlgorithmName.SHA384)
    End Using
End Function

Sie können auch die Erweiterungsmethode DSACertificateExtensions.GetDSAPublicKey aufrufen, um signierte Daten zu überprüfen, so wie in folgendem Beispiel dargestellt.And you can call the DSACertificateExtensions.GetDSAPublicKey extension method to verify signed data, as the following example shows.

public static bool VerifyDataDsaSha384(byte[] data, byte[] signature, X509Certificate2 cert)
{
    using (DSA dsa = cert.GetDSAPublicKey())
    {
        return dsa.VerifyData(data, signature, HashAlgorithmName.SHA384);
    }
}
 Public Shared Function VerifyDataDsaSha384(data As Byte(), signature As Byte(), cert As X509Certificate2) As Boolean
    Using dsa As DSA = cert.GetDSAPublicKey()
        Return dsa.VerifyData(data, signature, HashAlgorithmName.SHA384)
    End Using
End Function

Verbesserte Übersichtlichkeit für Eingaben in die Schlüsselableitungsfunktions-Routinen für den Diffie-Hellman-Schlüsselaustausch In.NET Framework 3.5 wurde die Unterstützung der Elliptic Curve Diffie-Hellman-Schlüsselübereinstimmung mit drei verschiedenen Schlüsselableitungsfunktions-Routinen (KDF) hinzugefügt.Increased clarity for inputs to ECDiffieHellman key derivation routines The .NET Framework 3.5 added support for Ellipic Curve Diffie-Hellman Key Agreement with three different Key Derivation Function (KDF) routines. Die Eingaben in die Routinen und auch die Routinen selbst wurden mithilfe von Eigenschaften auf dem ECDiffieHellmanCng-Objekt konfiguriert.The inputs to the routines, and the routines themselves, were configured via properties on the ECDiffieHellmanCng object. Da jedoch nicht jede Routine jede input-Eigenschaft liest,sorgte dies bisher bei Entwicklern für reichlich Verwirrungspotenzial.But since not every routine read every input property, there was ample room for confusion on the past of the developer.

Um darauf in .NET Framework 4.6.2.NET Framework 4.6.2 zu reagieren, wurden die folgenden drei Methoden zur ECDiffieHellman-Basisklasse hinzugefügt, um diese KDF-Routinen und deren Eingaben eindeutiger darzustellen:To address this in the .NET Framework 4.6.2.NET Framework 4.6.2, the following three methods have been added to the ECDiffieHellman base class to more clearly represent these KDF routines and their inputs:

Die ECDiffieHellman-MethodeECDiffieHellman method BeschreibungDescription
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[]) Leitet Schlüsselmaterial mithilfe der Formel abDerives key material using the formula

HASH(secretPrepend || x || secretAppend)HASH(secretPrepend || x || secretAppend)

HASH(secretPrepend OrElse x OrElse secretAppend)HASH(secretPrepend OrElse x OrElse secretAppend)

wobei x das berechnete Ergebnis des EC Diffie-Hellman-Algorithmus ist.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) Leitet Schlüsselmaterial mithilfe der Formel abDerives key material using the formula

HMAC(hmacKey, secretPrepend || x || secretAppend)HMAC(hmacKey, secretPrepend || x || secretAppend)

HMAC(hmacKey, secretPrepend OrElse x OrElse secretAppend)HMAC(hmacKey, secretPrepend OrElse x OrElse secretAppend)

wobei x das berechnete Ergebnis des EC Diffie-Hellman-Algorithmus ist.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) Leitet Schlüsselmaterial mit dem Ableitungsalgorithmus der TLS-Pseudozufallsfunktion (pseudo-random function; PRF) ab.Derives key material using the TLS pseudo-random function (PRF) derivation algorithm.

Unterstützung der symmetrischen Verschlüsselung persistenter Schlüssel Die Windows-Kryptografiebibliothek (Cryptography API: Next Generation; CNG) verfügt über Unterstützung für die Speicherung persistenter symmetrischer Schlüssel und für die Verwendung von in der Hardware gespeicherter symmetrischer Schlüssel. .NET Framework 4.6.2.NET Framework 4.6.2 ermöglicht Entwicklern, diese Funktion zu verwenden.Support for persisted-key symmetric encryption The Windows cryptography library (CNG) added support for storing persisted symmetric keys and using hardware-stored symmetric keys, and the .NET Framework 4.6.2.NET Framework 4.6.2 mades it possible for developers to make use of this feature. Da das Konzept des Schlüsselnamens und des Schlüsselanbieters implementierungsspezifisch ist, erfordert die Nutzung dieser Funktion die Verwendung des Konstruktors der konkreten Implementierungstypen anstatt der bevorzugten Herangehensweise des Unternehmens (z.B. durch aufrufen von Aes.Create).Since the notion of key names and key providers is implementation-specific, using this feature requires utilizing the constructor of the concrete implementation types instead of the preferred factory approach (such as calling Aes.Create).

Die Unterstützung der symmetrischen Verschlüsselung persistenter Schlüssel ist für die Algorithmen AES (AesCng) und 3DES (TripleDESCng) verfügbar.Persisted-key symmetric encryption support exists for the AES (AesCng) and 3DES (TripleDESCng) algorithms. Zum Beispiel:For example:

public static byte[] EncryptDataWithPersistedKey(byte[] data, byte[] iv)
{
    using (Aes aes = new AesCng("AesDemoKey", CngProvider.MicrosoftSoftwareKeyStorageProvider))
    {
        aes.IV = iv;

        // Using the zero-argument overload is required to make use of the persisted key
        using (ICryptoTransform encryptor = aes.CreateEncryptor())
        {
            if (!encryptor.CanTransformMultipleBlocks)
            {
                throw new InvalidOperationException("This is a sample, this case wasn’t handled...");
            }

            return encryptor.TransformFinalBlock(data, 0, data.Length);
        }
    }
}
Public Shared Function EncryptDataWithPersistedKey(data As Byte(), iv As Byte()) As Byte()
    Using Aes As Aes = New AesCng("AesDemoKey", CngProvider.MicrosoftSoftwareKeyStorageProvider)
        Aes.IV = iv

        ' Using the zero-argument overload Is required to make use of the persisted key
        Using encryptor As ICryptoTransform = Aes.CreateEncryptor()
            If Not encryptor.CanTransformMultipleBlocks Then
                Throw New InvalidOperationException("This is a sample, this case wasn’t handled...")
            End If
            Return encryptor.TransformFinalBlock(data, 0, data.Length)
        End Using
    End Using
End Function

SignedXml-Unterstützung des Hashings von SHA-2 Das .NET Framework 4.6.2.NET Framework 4.6.2 fügt Unterstützung für die SignedXml-Klasse für die Signaturmethoden RSA-SHA256, RSA-SHA384, RSA-SHA512 PKCS#1 und für die Referenzdigestalgorithmen SHA256, SHA384 sowie SHA512 hinzu.SignedXml support for SHA-2 hashing The .NET Framework 4.6.2.NET Framework 4.6.2 adds support to the SignedXml class for RSA-SHA256, RSA-SHA384, and RSA-SHA512 PKCS#1 signature methods, and SHA256, SHA384, and SHA512 reference digest algorithms.

Die URI-Konstanten werden alle für SignedXml verfügbar gemacht:The URI constants are all exposed on SignedXml:

SignedXml-FeldSignedXml field KonstanteConstant
XmlDsigSHA256Url "http://www.w3.org/2001/04/xmlenc#sha256""http://www.w3.org/2001/04/xmlenc#sha256"
XmlDsigRSASHA256Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256""http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"
XmlDsigSHA384Url "http://www.w3.org/2001/04/xmldsig-more#sha384""http://www.w3.org/2001/04/xmldsig-more#sha384"
XmlDsigRSASHA384Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha384""http://www.w3.org/2001/04/xmldsig-more#rsa-sha384"
XmlDsigSHA512Url "http://www.w3.org/2001/04/xmlenc#sha512""http://www.w3.org/2001/04/xmlenc#sha512"
XmlDsigRSASHA512Url "http://www.w3.org/2001/04/xmldsig-more#rsa-sha512""http://www.w3.org/2001/04/xmldsig-more#rsa-sha512"

Alle Programme, die einen benutzerdefinierten SignatureDescription-Handler in CryptoConfig registriert haben, um Unterstützung für diese Algorithmen hinzuzufügen, funktionieren weiterhin wie gewohnt. Da nun jedoch Plattformstandards existieren, ist die CryptoConfig-Registrierung nicht mehr notwendig.Any programs that have registered a custom SignatureDescription handler into CryptoConfig to add support for these algorithms will continue to function as they did in the past, but since there are now platform defaults, the CryptoConfig registration is no longer necessary.

SqlClientSqlClient

Der .NET Framework-Datenanbieter für SQL Server (System.Data.SqlClient) enthält die folgenden neuen Funktionen im .NET Framework 4.6.2.NET Framework 4.6.2:.NET Framework Data Provider for SQL Server (System.Data.SqlClient) includes the following new features in the .NET Framework 4.6.2.NET Framework 4.6.2:

Verbindungspooling und Timeouts mit Azure SQL-Datenbanken Wenn das Verbindungspooling aktiviert ist und ein Timeoutfehler oder ein anderer Anmeldefehler auftritt, wird eine Ausnahme zwischengespeichert, und die zwischengespeicherte Ausnahme wird für jeden nachfolgenden Verbindungsversuch für einen Zeitraum von fünf Sekunden bis zu einer Minute ausgelöst.Connection pooling and timeouts with Azure SQL databases When connection pooling is enabled and a timeout or other login error occurs, an exception is cached, and the cached exception is thrown on any subsequent connection attempt for the next 5 seconds to 1 minute. Weitere Informationen finden Sie unter SQL Server-Verbindungspooling (ADO.NET).For more details, see SQL Server Connection Pooling (ADO.NET).

Dieses Verhalten ist bei einer Verbindung zu Azure SQL-Datenbanken unerwünscht, da Verbindungsversuche mit flüchtigen Fehlern fehlschlagen können, die normalerweise schnell wiederhergestellt werden.This behavior is not desirable when connecting to Azure SQL Databases, since connection attempts can fail with transient errors that are typically recovered quickly. Das Sperrfristverhalten des Verbindungspools wird entfernt, wenn die Verbindungsversuche zu Azure SQL-Datenbanken fehlschlagen, damit erneute Verbindungsversuche leichter erfolgen können.To better optimize the connection retry experience, the connection pool blocking period behavior is removed when connections to Azure SQL Databases fail.

Mit dem Hinzufügen des neuen PoolBlockingPeriod-Schlüsselworts können Sie die Sperrfrist auswählen, die für Ihre App am besten geeignet ist.The addition of the new PoolBlockingPeriod keyword lets you to select the blocking period best suited for your app. Mögliche Werte:Values include:

Auto Die Sperrfrist des Verbindungspools für eine Anwendung, die eine Verbindung mit einer Azure SQL-Datenbank herstellt, ist deaktiviert, und die Sperrfrist des Verbindungspools für eine Anwendung, die eine Verbindung mit einer anderen SQL-Server-Instanz herstellt, ist aktiviert.Auto The connection pool blocking period for an application that connects to an Azure SQL Database is disabled, and the connection pool blocking period for an application that connects to any other SQL Server instance is enabled. Dies ist der Standardwert.This is the default value. Wenn der Serverendpunktname eine der folgenden Endungen besitzt, werden sie als Azure SQL-Datenbanken bezeichnet:If the Server endpoint name ends with any of the following, they are considered Azure SQL Databases:

  • .database.windows.net.database.windows.net

  • .database.chinacloudapi.cn.database.chinacloudapi.cn

  • .database.usgovcloudapi.net.database.usgovcloudapi.net

  • .database.cloudapi.de.database.cloudapi.de

AlwaysBlock Die Sperrfrist des Verbindungspools ist immer aktiviert.AlwaysBlock The connection pool blocking period is always enabled.

NeverBlock Die Sperrfrist des Verbindungspools ist immer deaktiviert.NeverBlock The connection pool blocking period is always disabled.

Verbesserungen für Always Encrypted SQLClient führt zwei Verbesserungen für Always Encrypted ein:Enhancements for Always Encrypted SQLClient introduces two enhancements for Always Encrypted:

  • Verschlüsselungsmetadaten für Abfrageparameter werden nun zwischengespeichert, um die Leistung von parametrisierten Abfragen von verschlüsselten Datenbankspalten zu verbessert.To improve performance of parameterized queries against encrypted database columns, encryption metadata for query parameters is now cached. Wenn die Eigenschaft SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled auf true festgelegt ist (was der Standardeinstellung entspricht) und dieselbe Abfrage mehrmals ausgeführt wird, ruft der Client die Parametermetadaten nur einmal vom Server ab.With the SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled property set to true (which is the default value), if the same query is called multiple times, the client retrieves parameter metadata from the server only once.

  • Spaltenverschlüsselungsschlüssel-Einträge im Schlüsselcache werden nun nach einem konfigurierbaren Zeitintervall entfernt, das mithilfe der SqlConnection.ColumnEncryptionKeyCacheTtl-Eigenschaft festgelegt wird.Column encryption key entries in the key cache are now evicted after a configurable time interval, set using the SqlConnection.ColumnEncryptionKeyCacheTtl property.

Windows Communication FoundationWindows Communication Foundation

In .NET Framework 4.6.2.NET Framework 4.6.2 wurde die Windows Communication Foundation in den folgenden Bereichen erweitert:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Communication Foundation has been enhanced in the following areas:

Unterstützung der WCF-Transportsicherheit für Zertifikate, die mithilfe der CNG gespeichert wurden WCF-Transportsicherheit unterstützt Zertifikate, die mithilfe der Windows-Kryptographiebibliothek (CNG) gespeichert wurden.WCF transport security support for certificates stored using CNG WCF transport security supports certificates stored using the Windows cryptography library (CNG). Diese Unterstützung ist in .NET Framework 4.6.2.NET Framework 4.6.2 auf die Verwendung von Zertifikaten mit einem öffentlichen Schlüssel beschränkt, der über einen Exponent mit einer Länge von nicht mehr als 32 Bit verfügt.In the .NET Framework 4.6.2.NET Framework 4.6.2, this support is limited to using certificates with a public key that has an exponent no more than 32 bits in length. Wenn sich eine Anwendung auf den .NET Framework 4.6.2.NET Framework 4.6.2 bezieht, so ist diese Funktion standardmäßig aktiviert.When an application targets the .NET Framework 4.6.2.NET Framework 4.6.2, this feature is on by default.

Für Anwendungen, die auf .NET Framework 4.6.1.NET Framework 4.6.1 und früher abzielen, aber auf .NET Framework 4.6.2.NET Framework 4.6.2 ausgeführt werden, kann diese Funktion aktiviert werden, indem die folgende Zeile zum Abschnitt „<runtime>“ der Datei „app.config“ oder „web.config“ hinzugefügt wird.For applications that target the .NET Framework 4.6.1.NET Framework 4.6.1 and earlier but are running on the .NET Framework 4.6.2.NET Framework 4.6.2, this feature can be enabled by adding the following line to the <runtime> section of the app.config or web.config file.

<AppContextSwitchOverrides
    value="Switch.System.ServiceModel.DisableCngCertificates=false"
/>

Dies kann auch programmgesteuert mit dem Code durchgeführt werden, so wie in folgendem Beispiel gezeigt:This can also be done programmatically with code like the following:

private const string DisableCngCertificates = @"Switch.System.ServiceModel.DisableCngCertificates";
AppContext.SetSwitch(disableCngCertificates, false);
Const DisableCngCertificates As String = "Switch.System.ServiceModel.DisableCngCertificates"
AppContext.SetSwitch(disableCngCertificates, False)

Bessere Unterstützung mehrerer Anpassungsregeln für die Sommerzeit durch die DataContractJsonSerializer-Klasse Kunden können eine Anwendungskonfigurationseinstellung verwenden, um zu bestimmen, ob die DataContractJsonSerializer-Klasse mehrere Anpassungsregeln für eine Zeitzone unterstützt.Better support for multiple daylight saving time adjustment rules by the DataContractJsonSerializer class Customers can use an application configuration setting to determine whether the DataContractJsonSerializer class supports multiple adjustment rules for a single time zone. Dies ist ein Opt-in-Feature.This is an opt-in feature. Fügen Sie die folgende Einstellung der Datei app.config hinzu, um sie zu aktivieren:To enable it, add the following setting to your app.config file:

<runtime>
     <AppContextSwitchOverrides value="Switch.System.Runtime.Serialization.DoNotUseTimeZoneInfo=false" />
</runtime>

Wenn diese Funktion aktiviert ist, verwendet ein DataContractJsonSerializer-Objekt den TimeZoneInfo-Typ anstelle des TimeZone-Typs, um Datums-und Uhrzeitdaten zu deserialisieren.When this feature is enabled, a DataContractJsonSerializer object uses the TimeZoneInfo type instead of the TimeZone type to deserialize date and time data. TimeZoneInfo unterstützt mehrere Anpassungsregeln, die es ermöglichen, mit veralteten Zeitzonendaten. TimeZone unterstützt dies nicht.TimeZoneInfo supports multiple adjustment rules, which makes it possible to work with historic time zone data; TimeZone does not.

Weitere Informationen zur TimeZoneInfo-Struktur und zu Zeitzonenanpassungen finden Sie unter Übersicht über Zeitzonen.For more information on the TimeZoneInfo structure and time zone adjustments, see Time Zone Overview.

Beibehaltung einer UTC-Zeit bei der Serialisierung und Deserialisierung mit der XmlSerializer-Klasse Wenn die XmlSerializer-Klasse zum Serialisieren eines DateTime-UTC-Werts verwendet wird, erstellt sie normalerweise eine serialisierte Zeitzeichenfolge, die das Datum und die Uhrzeit beibehält, jedoch davon ausgeht, dass die Zeit die Ortszeit ist.Support for preserving a UTC time when serializing and deserializing with the XMLSerializer class Ordinarily, when the XmlSerializer class is used to serialize a UTC DateTime value, it creates a serialized time string that preserves the date and time but assumes the time is local. Wenn Sie beispielsweise ein UTC-Datum und eine UTC-Uhrzeit instanziieren, indem Sie den folgenden Code aufrufen:For example, if you instantiate a UTC date and time by calling the following code:

DateTime utc = new DateTime(2016, 11, 07, 3, 0, 0, DateTimeKind.Utc);
Dim utc As New Date(2016, 11, 07, 3, 0, 0, DateTimeKind.Utc)

ist das Ergebnis für ein System, das acht Stunden hinter der Zeitzone UTC liegt, die serialisierte Zeitzeichenfolge „03:00:00.0000000-08:00“.The result is the serialized time string "03:00:00.0000000-08:00" for a system eight hours behind UTC. Serialisierte Werte sind zudem immer als lokale Datums- und Uhrzeitwerte deserialisiert.And serialized values are always deserialized as local date and time values.

Sie können eine Anwendungskonfigurationseinstellung verwenden, um zu bestimmen, ob die XmlSerializer-Klasse die UTC-Zeitzoneninformation beibehält, wenn sie die DateTime-Werte serialisiert und deserialisiert:You can use an application configuration setting to determine whether the XmlSerializer preserves UTC time zone information when serializing and deserializing DateTime values:

<runtime>
     <AppContextSwitchOverrides 
          value="Switch.System.Runtime.Serialization.DisableSerializeUTCDateTimeToTimeAndDeserializeUTCTimeToUTCDateTime=false" />
</runtime>

Wenn diese Funktion aktiviert ist, verwendet ein DataContractJsonSerializer-Objekt den TimeZoneInfo-Typ anstelle des TimeZone-Typs, um Datums-und Uhrzeitdaten zu deserialisieren.When this feature is enabled, a DataContractJsonSerializer object uses the TimeZoneInfo type instead of the TimeZone type to deserialize date and time data. TimeZoneInfo unterstützt mehrere Anpassungsregeln, die es ermöglichen, mit veralteten Zeitzonendaten. TimeZone unterstützt dies nicht.TimeZoneInfo supports multiple adjustment rules, which makes it possible to work with historic time zone data; TimeZone does not.

Weitere Informationen zur TimeZoneInfo-Struktur und zu Zeitzonenanpassungen finden Sie unter Übersicht über Zeitzonen.For more information on the TimeZoneInfo structure and time zone adjustments, see Time Zone Overview.

Höchste Übereinstimmung von NetNamedPipeBinding WCF bietet eine neue App-Einstellung, die für Clientanwendungen festgelegt werden kann, um sicherzustellen, dass diese immer eine Verbindung zu dem Dienst herstellen, der an dem URI lauscht, der die höchste Übereinstimmung zu dem aufweist, den die Anwendungen anfordern.NetNamedPipeBinding best match WCF has a new app setting that can be set on client applications to ensure they always connect to the service listening on the URI that best matches the one that they request. Wenn diese App-Einstellung auf false (Standard) festgelegt ist, ist es für Clients möglich, NetNamedPipeBinding zu verwenden, um zu versuchen, eine Verbindung zu einem Dienst herzustellen, der an einen URI lauscht, der eine Teilzeichenfolge des angeforderten URI darstellt.With this app setting set to false (the default), it is possible for clients using NetNamedPipeBinding to attempt to connect to a service listening on a URI that is a substring of the requested URI.

Angenommen, ein Client versucht, eine Verbindung zu einem Dienst herzustellen, der an net.pipe://localhost/Service1 lauscht, aber ein anderer Dienst auf dem Computer, der mit Administratorrechten ausgeführt wird, lauscht an net.pipe://localhost.For example, a client tries to connect to a service listening at net.pipe://localhost/Service1, but a different service on that machine running with administrator privilege is listening at net.pipe://localhost. Der Client würde versuchen, mit dieser App-Einstellung, die auf false festgelegt ist, eine Verbindung zu dem falschen Dienst herzustellen.With this app setting set to false, the client would attempt to connect to the wrong service. Nach dem Festlegen der App-Einstellung auf true, wird der Client stets eine Verbindung zu den passendsten Dienst herstellen.After setting the app setting to true, the client will always connect to the best matching service.

Hinweis

Clients, die NetNamedPipeBinding verwenden, suchen Dienste, die auf der Basisadresse des Diensts basieren (soweit vorhanden) anstatt die vollständige Endpunktadresse.Clients using NetNamedPipeBinding find services based on the service's base address (if it exists) rather than the full endpoint address. Damit diese Einstellung immer funktioniert muss der Dienst eine eindeutige Basisadresse verwenden.To ensure this setting always works the service should use a unique base address.

Fügen Sie die folgende App-Einstellung der App.config- oder Web.config-Datei der Anwendung Ihres Clients hinzu, um die Änderung zu aktivieren:To enable this change, add the following app setting to your client application's App.config or Web.config file:

<configuration>
    <appSettings>
        <add key="wcf:useBestMatchNamedPipeUri" value="true" />
    </appSettings>
</configuration>

SSL 3.0 ist kein Standardprotokoll Bei der Verwendung von NetTcp im Transportsicherheitsmodus und der Einstellung „Zertifikat“ wird SSL 3.0 nicht länger als eines der Standardprotokolle für das Aushandeln einer sicheren Verbindung verwendet.SSL 3.0 is not a default protocol When using NetTcp with transport security and a credential type of certificate, SSL 3.0 is no longer a default protocol used for negotiating a secure connection. In den meisten Fällen sollte es keine Auswirkungen auf vorhandene Apps geben, da TLS 1.0 in der Protokollliste für NetTcp enthalten ist.In most cases, there should be no impact to existing apps, because TLS 1.0 is included in the protocol list for NetTcp. Alle vorhandenen Clients sollten in der Lage sein, eine Verbindung mit mindestens TLS 1.0 auszuhandeln.All existing clients should be able to negotiate a connection using at least TLS 1.0. Wenn Ssl3 erforderlich ist, verwenden Sie eine der folgenden Konfigurationsmechanismen, um es der Liste der ausgehandelten Protokolle hinzuzufügen.If Ssl3 is required, use one of the following configuration mechanisms to add it to the list of negotiated protocols.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In .NET Framework 4.6.2.NET Framework 4.6.2 wurde die Windows Presentation Foundation in den folgenden Bereichen erweitert:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Presentation Foundation has been enhanced in the following areas:

Gruppensortierung Eine Anwendung, die ein CollectionView-Objekt zum Gruppieren von Daten verwenden, kann nun explizit deklarieren, wie die Gruppen sortiert werden sollen.Group sorting An application that uses a CollectionView object to group data can now explicitly declare how to sort the groups. Das explizite Sortieren behebt das Problem der nicht-intuitiven Sortierung beim dynamischen Hinzufügen oder Entfernen von Gruppen und beim Ändern des Wert der beim Gruppieren beteiligten Elementeigenschaften durch eine App.Explicit sorting addresses the problem of non-intuitive ordering that occurs when an app dynamically adds or removes groups, or when it changes the value of item properties involved in grouping. Diese Vorgehensweise kann auch die Leistung des Gruppenerstellungsprozesses verbessern, indem Vergleiche der Gruppierungseigenschaften nicht bei der Sortierung der vollständigen Sammlung, sondern bei der Sortierung der Gruppen erfolgen/vorgenommen werden.It can also improve the performance of the group creation process by moving comparisons of the grouping properties from the sort of the full collection to the sort of the groups.

Zur Unterstützung der Gruppensortierung beschreiben die neuen GroupDescription.SortDescriptions- und GroupDescription.CustomSort-Eigenschaften wie die Sammlung der Gruppen sortiert wird, die vom GroupDescription-Objekt erstellt wurden.To support group sorting, the new GroupDescription.SortDescriptions and GroupDescription.CustomSort properties describe how to sort the collection of groups produced by the GroupDescription object. Dies ist vergleichbar mit der Art wie gleichnamigen ListCollectionView-Eigenschaften die Sortierung der Datenelemente beschreiben.This is analogous to the way the identically named ListCollectionView properties describe how to sort the data items.

In den häufigsten Fällen können zwei neue statistische Eigenschaften der PropertyGroupDescription-Klasse verwendet werden, nämlich CompareNameAscending und CompareNameDescending.Two new static properties of the PropertyGroupDescription class, CompareNameAscending and CompareNameDescending, can be used for the most common cases.

Zum Beispiel gruppiert der folgende XAML-Code Daten nach Alter, sortiert die Gruppen in aufsteigender Reihenfolge und gruppierten die Elemente in den einzelnen Gruppen anhand des Nachnamens.For example, the following XAML groups data by age, sort the age groups in ascending order, and group the items within each age group by last name.

<GroupDescriptions>
     <PropertyGroupDescription 
         PropertyName="Age" 
         CustomSort= 
              "{x:Static PropertyGroupDescription.CompareNamesAscending}"/>
     </PropertyGroupDescription>
</GroupDescriptions>

<SortDescriptions>
     <SortDescription PropertyName="LastName"/>
</SortDescriptions>

Unterstützung der Bildschirmtastatur Die Unterstützung der Bildschirmtastatur ermöglicht die fokussierte Verfolgung in WPF-Anwendungen, indem automatisch die neue Bildschirmtastatur in Windows 10 aufgerufen und geschlossen wird, wenn die Fingereingabe von einem Steuerelement empfangen wird, das Texteingabe nutzen kann.Soft keyboard support Soft Keyboard support enables focus tracking in a WPF applications by automatically invoking and dismissing the new Soft Keyboard in Windows 10 when the touch input is received by a control that can take textual input.

In früheren Versionen des .NET-Frameworks konnte für WPF-Anwendungen die Fokusverfolgung nur aktiviert werden, wenn in WPF die Unterstützung für Stifte und Touchgesten deaktiviert wurde.In previous versions of the .NET Framework, WPF applications cannot opt into the focus tracking without disabling WPF pen/touch gesture support. Die WPF-Anwendungen müssen daher zwischen der vollständiger WPF-Gestenunterstützung und der Windows-Mausheraufstufung wählen.As a result, WPF applications must choose between full WPF touch support or rely on Windows mouse promotion.

DPI pro Monitor Um die zunehmende Verbreitung von hohen DPI- und hybriden DPI-Umgebungen für WPF-Apps zu unterstützen, sorgt WPF dafür, dass monitorspezifische DPI-Werte in .NET Framework 4.6.2.NET Framework 4.6.2 erkannt werden.Per-monitor DPI To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in the .NET Framework 4.6.2.NET Framework 4.6.2 enables per-monitor awareness. Weitere Informationen dazu, wie Sie in Ihrer WPF-Anwendung dafür sorgen, dass Sie mit monitorspezifischen DPI-Werten kompatibel ist, finden Sie unter Samples and Developer Guide (Beispiele und Entwicklerhandbuch) auf GitHub.See the samples and developer guide on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.

In früheren Versionen von .NET Framework sind WPF-Apps kompatibel mit systemspezifischen DPI-Werten.In previous versions of the .NET Framework, WPF apps are system-DPI aware. Die Benutzeroberfläche der Anwendung wird anders gesagt ggf. mit dem Betriebssystem skaliert, abhängig von der DPI des Monitors, auf dem die App gerendert wird.In other words, the application's UI is scaled by the OS as appropriate, depending on the DPI of the monitor on which the app is rendered. ,,

Apps, die unter .NET Framework 4.6.2.NET Framework 4.6.2 ausgeführt werden, können Sie monitorspezifische DPI-Änderungen in WPF-Apps deaktivieren, indem Sie eine Konfigurationsanweisung zum Abschnitt <runtime> Ihrer Anwendungskonfigurationsdatei hinzufügen, so wie in folgendem Beispiel gezeigt:For apps running under the .NET Framework 4.6.2.NET Framework 4.6.2, you can disable per-monitor DPI changes in WPF apps by adding a configuration statement to the <runtime> section of your application configuration file, as follows:

<runtime>
   <AppContextSwitchOverrides value="Switch.System.Windows.DoNotScaleForDpiChanges=false"/>
</runtime>

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

In .NET Framework 4.6.2.NET Framework 4.6.2 wurde die Windows Workflow Foundation im folgenden Bereich erweitert:In the .NET Framework 4.6.2.NET Framework 4.6.2, Windows Workflow Foundation has been enhanced in the following area:

Unterstützung für C#-Ausdrücke und IntelliSense im neu gehosteten WF-Designer Ab .NET Framework 4.5.NET Framework 4.5 unterstützt WF C#-Ausdrücke sowohl im Visual Studio-Designer als auch in Codeworkflows.Support for C# expressions and IntelliSense in the Re-hosted WF Designer Starting with the .NET Framework 4.5.NET Framework 4.5, WF supports C# expressions in both the Visual Studio Designer and in code workflows. Der neu gehostete Workflow-Designer ist eine wichtige Funktion von WF, die zulässt, dass sich der Workflow-Designer in einer Anwendung außerhalb von Visual Studio befindet (z.B. in WPF).The Re-hosted Workflow Designer is a key feature of WF that allows for the Workflow Designer to be in an application outside Visual Studio (for example, in WPF). Windows Workflow Foundation bietet die Möglichkeit der Unterstützung von C#-Ausdrücken und IntelliSense im neu gehosteten Workflow-Designer.Windows Workflow Foundation provides the ability to support C# expressions and IntelliSense in the Re-hosted Workflow Designer. Weitere Informationen finden Sie im Windows Workflow Foundation-Blog.For more information, see the Windows Workflow Foundation blog.

Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio In Versionen von .NET Framework vor .NET Framework 4.6.2.NET Framework 4.6.2 wird IntelliSense im WF-Designer unterbrochen, wenn ein Kunde ein Workflowprojekt von Visual Studio neu erstellt.Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio In versions of the .NET Framework prior to the .NET Framework 4.6.2.NET Framework 4.6.2, WF Designer IntelliSense is broken when a customer rebuilds a workflow project from Visual Studio. Obwohl die Erstellung des Projekts erfolgreich war, können die Workflowtypen nicht im Designer gefunden werden und IntelliSense gibt Warnungen für die fehlenden Workflowtypen im Fenster Fehlerliste aus.While the project build is successful, the workflow types are not found on the designer, and warnings from IntelliSense for the missing workflow types appear in the Error List window. .NET Framework 4.6.2.NET Framework 4.6.2 behandelt dieses Problem und macht IntelliSense verfügbar.The .NET Framework 4.6.2.NET Framework 4.6.2 addresses this issue and makes IntelliSense available.

Workflow V1-Anwendungen mit aktivierter Workflowüberwachung werden im FIPS-Modus ausgeführt Computer mit aktiviertem FIPS-Kompatibilitätsmodus können jetzt erfolgreich eine Anwendung, die dem Stil der Workflowversion 1 entspricht, mit aktivierter Workflowüberwachung ausführen.Workflow V1 applications with Workflow Tracking on now run under FIPS-mode Machines with FIPS Compliance Mode enabled can now successfully run a workflow Version 1-style application with Workflow tracking on. Sie müssen die folgenden Änderungen in Ihrer app.config-Datei vornehmen, um dieses Szenario zu aktivieren:To enable this scenario, you must make the following change to your app.config file:

<add key="microsoft:WorkflowRuntime:FIPSRequired" value="true" />

Wenn dieses Szenario nicht aktiviert ist, führt das Ausführen der Anwendung weiterhin dazu, dass eine Ausnahme mit folgender Meldung ausgelöst wird: „Diese Implementation ist nicht Teil der Windows Platform FIPS-überprüften kryptografischen Algorithmen.“If this scenario is not enabled, running the application continues to generate an exception with the message, "This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms."

Verbesserungen des Workflows bei der Verwendung von dynamischen Updates mit dem Workflow-Designer von Visual Studio Der Workflow-Designer, der Flussdiagramm-Aktivitätsdesigner und andere Workflow-Aktivitäts-Designer laden nun erfolgreich Workflows, die nach dem Aufruf der DynamicUpdateServices.PrepareForUpdate-Methode gespeichert wurden, und zeigen diese an.Workflow Improvements when using Dynamic Update with Visual Studio Workflow Designer The Workflow Designer, FlowChart Activity Designer, and other Workflow Activity Designers now successfully load and display workflows that have been saved after calling the DynamicUpdateServices.PrepareForUpdate method. In Versionen von .NET Framework vor .NET Framework 4.6.2.NET Framework 4.6.2, kann das Laden einer XAML-File in Visual Studio für einen Workflow, der nach dem Aufruf von DynamicUpdateServices.PrepareForUpdate gespeichert wurde, zu folgenden Problemen führen:In versions of the .NET Framework before the .NET Framework 4.6.2.NET Framework 4.6.2, loading a XAML file in Visual Studio for a workflow that has been saved after calling DynamicUpdateServices.PrepareForUpdate can result in the following issues:

  • Der Workflow-Designer kann die XAML-Datei nicht ordnungsgemäß laden (wenn sich die ViewStateData.Id am Ende der Zeile befindet).The Workflow Designer can't load the XAML file correctly (when the ViewStateData.Id is at the end of the line).

  • Der Flussdiagramm-Aktivitätsdesigner oder andere Workflow-Aktivitätsdesigner können möglicherweise alle Objekte an ihrem Standardspeicherort anzeigen, im Gegensatz zu angefügten Eigenschaftswerten.Flowchart Activity Designer or other Workflow Activity Designers may display all objects in their default locations as opposed to attached property values.

ClickOnceClickOnce

ClickOnce wurde zur Unterstützung von TLS 1.1 und TLS 1.2 neben dem 1.0-Protokoll aktualisiert, das schon unterstützt wird.ClickOnce has been updated to support TLS 1.1 and TLS 1.2 in addition to the 1.0 protocol, which it already supports. ClickOnce erkennt automatisch, welches Protokoll erforderlich ist. Es sind keine zusätzlichen Schritte innerhalb der ClickOnce-Anwendung erforderlich, um die TLS 1.1 und 1.2-Unterstützung zu aktivieren.ClickOnce automatically detects which protocol is required; no extra steps within the ClickOnce application are required to enable TLS 1.1 and 1.2 support.

Konvertieren von Windows Forms und WPF-Apps in UWP-AppsConverting Windows Forms and WPF apps to UWP apps

Windows bietet nun Möglichkeiten, vorhandene Windows Desktop-Apps, einschließlich WPF- und Windows Forms-Apps, auf der Universal Windows Platform (UWP) bereitzustellen.Windows now offers capabilities to bring existing Windows desktop apps, including WPF and Windows Forms apps, to the Universal Windows Platform (UWP). Diese Technologie agiert als Brücke, indem sie Ihnen ermöglicht, Ihre vorhandene Codebasis nach und nach zu UWP zu migrieren und so Ihre App auf allen Windows 10-Geräten bereitzustellen.This technology acts as a bridge by enabling you to gradually migrate your existing code base to UWP, thereby bringing your app to all Windows 10 devices.

Konvertierte Desktop-Apps erlangen eine App-Identität ähnlich der App-Identität von UWP-Apps, wodurch UWP-APIs zugänglich gemacht werden, um Funktionen wie Live-Kacheln und Benachrichtigungen zu aktivieren.Converted desktop apps gain an app identity similar to the app identity of UWP apps, which makes UWP APIs accessible to enable features such as Live Tiles and notifications. Die App verhält sich weiterhin wie zuvor und wird als voll vertrauenswürdige App ausgeführt.The app continues to behave as before and runs as a full trust app. Sobald die App konvertiert ist, kann ein App-Container-Prozess zum vorhandenen voll vertrauenswürdigen Prozess hinzugefügt werden, um eine adaptive Benutzeroberfläche hinzuzufügen.Once the app is converted, an app container process can be added to the existing full trust process to add an adaptive user interface. Wenn alle Funktionen in den App-Container-Prozess verschoben werden, kann der vollständig vertrauenswürdige Prozess entfernt werden, und die neue UWP-App kann auf allen Windows 10-Geräten zur Verfügung gestellt werden.When all functionality is moved to the app container process, the full trust process can be removed and the new UWP app can be made available to all Windows 10 devices.

Verbesserungen beim DebuggingDebugging improvements

Die nicht verwaltete Debug-API wurde im .NET Framework 4.6.2.NET Framework 4.6.2 verbessert, um zusätzlichen Analysen durchzuführen, wenn eine NullReferenceException-Klasse ausgelöst wird, sodass es möglich ist, zu bestimmen, welche Variablen in einer einzelnen Zeile des Quellcodes null ist.The unmanaged debugging API has been enhanced in the .NET Framework 4.6.2.NET Framework 4.6.2 to perform additional analysis when a NullReferenceException is thrown so that it is possible to determine which variable in a single line of source code is null. Um dieses Szenario zu unterstützen, wurden die folgenden APIs der nicht verwalteten Debug-API hinzugefügt.To support this scenario, the following APIs have been added to the unmanaged debugging API.

Neuigkeiten in .NET Framework 4.6.1What's new in the .NET Framework 4.6.1

.NET Framework 4.6.1.NET Framework 4.6.1 enthält neue Features in den folgenden Bereichen:The .NET Framework 4.6.1.NET Framework 4.6.1 includes new features in the following areas:

Weitere Informationen zu .NET Framework 4.6.1.NET Framework 4.6.1 finden Sie unter den folgenden Themen:For more information on the .NET Framework 4.6.1.NET Framework 4.6.1, see the following topics:

Kryptografie: Unterstützung für X509-Zertifikate mit ECDSACryptography: Support for X509 certificates containing ECDSA

RSACng-Unterstützung für X509-Zertifikate in .NET Framework 4.6.The .NET Framework 4.6 added RSACng support for X509 certificates. .NET Framework 4.6.1.NET Framework 4.6.1 fügt Unterstützung für ECDSA (Elliptic Curve Digital Signature Algorithm) X509-Zertifikate hinzu.The .NET Framework 4.6.1.NET Framework 4.6.1 adds support for ECDSA (Elliptic Curve Digital Signature Algorithm) X509 certificates.

ECDSA bietet eine bessere Leistung und einen sichereren Kryptografiealgorithmus als RSA. Somit ist die Lösung eine hervorragende Wahl, wenn es um TLS (Transport Layer Security)-Leistung und Skalierbarkeit geht.ECDSA offers better performance and is a more secure cryptography algorithm than RSA, providing an excellent choice where Transport Layer Security (TLS) performance and scalability is a concern. Die .NET Framework-Implementierung schließt Aufrufe in die vorhandene Windows-Funktionalität ein.The .NET Framework implementation wraps calls into existing Windows functionality.

Im folgenden Codebeispiel wird gezeigt, wie einfach es ist, eine Signatur für einen Bytedatenstrom mit der neuen in .NET Framework 4.6.1.NET Framework 4.6.1 enthaltenen ECDSA-Unterstützung für X509-Zertifikate zu generieren.The following example code shows how easy it is to generate a signature for a byte stream by using the new support for ECDSA X509 certificates included in the .NET Framework 4.6.1.NET Framework 4.6.1.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class Net461Code
{
    public static byte[] SignECDsaSha512(byte[] data, X509Certificate2 cert)
    {
        using (ECDsa privateKey = cert.GetECDsaPrivateKey())
        {
            return privateKey.SignData(data, HashAlgorithmName.SHA512);
        }
    }

    public static byte[] SignECDsaSha512(byte[] data, ECDsa privateKey)
    {
        return privateKey.SignData(data, HashAlgorithmName.SHA512);
    }
}
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates

Public Class Net461Code
    Public Shared Function SignECDsaSha512(data As Byte(), cert As X509Certificate2) As Byte()
        Using privateKey As ECDsa = cert.GetECDsaPrivateKey()
            Return privateKey.SignData(data, HashAlgorithmName.SHA512)
        End Using
    End Function

    Public Shared Function SignECDsaSha512(data As Byte, privateKey As ECDsa) As Byte()
        Return privateKey.SignData(data, HashAlgorithmName.SHA512)
    End Function
End Class

Dies steht in deutlichem Gegensatz zu dem Code, der zum Generieren einer Signatur in .NET Framework 4.6 erforderlich war.This offers a marked contrast to the code needed to generate a signature in the .NET Framework 4.6.

using System;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;

public class Net46Code
{
    public static byte[] SignECDsaSha512(byte[] data, X509Certificate2 cert)
    {
        // This would require using cert.Handle and a series of p/invokes to get at the
        // underlying key, then passing that to a CngKey object, and passing that to
        // new ECDsa(CngKey).  It's a lot of work.
        throw new Exception("That's a lot of work...");
    }

    public static byte[] SignECDsaSha512(byte[] data, ECDsa privateKey)
    {
        // This way works, but SignData probably better matches what you want.
        using (SHA512 hasher = SHA512.Create())
        {
            byte[] signature1 = privateKey.SignHash(hasher.ComputeHash(data));
        }

        // This might not be the ECDsa you got!
        ECDsaCng ecDsaCng = (ECDsaCng)privateKey;
        ecDsaCng.HashAlgorithm = CngAlgorithm.Sha512;
        return ecDsaCng.SignData(data);
    }
}   
Imports System
Imports System.Security.Cryptography
Imports System.Security.Cryptography.X509Certificates

Public Class Net46Code
    Public Shared Function SignECDsaSha512(data As Byte(), cert As X509Certificate2) As Byte()
        ' This would require using cert.Handle and a series of p/invokes to get at the
        ' underlying key, then passing that to a CngKey object, and passing that to
        ' new ECDsa(CngKey).  It's a lot of work.
        Throw New Exception("That's a lot of work...")
    End Function

    Public Shared Function SignECDsaSha512(data As Byte(), privateKey As ECDsa) As Byte()
        ' This way works, but SignData probably better matches what you want.
        Using hasher As SHA512 = SHA512.Create()
            Dim signature1 As Byte() = privateKey.SignHash(hasher.ComputeHash(data))
        End Using

        ' This might not be the ECDsa you got!
        Dim ecDsaCng As ECDsaCng = CType(privateKey, ECDsaCng)
        ecDsaCng.HashAlgorithm = CngAlgorithm.Sha512
        Return ecDsaCng.SignData(data)
    End Function
End Class   

ADO.NETADO.NET

ADO.NET wurde um die folgenden Features erweitert:The following have been added to ADO.NET:

Always Encrypted-Unterstützung für hardwaregeschützte Schlüssel ADO.NET unterstützt jetzt die native Speicherung von Always Encrypted-Spaltenhauptschlüsseln in Hardwaresicherheitsmodulen (Hardware Security Modules, HSMs).Always Encrypted support for hardware protected keys ADO.NET now supports storing Always Encrypted column master keys natively in Hardware Security Modules (HSMs). Mit dieser Unterstützung profitieren Kunden von asymmetrischen, in HSMs gespeicherten Schlüsseln, ohne benutzerdefinierte Spaltenhauptschlüssel-Speicheranbieter zu schreiben und in Anwendungen registrieren zu müssen.With this support, customers can leverage asymmetric keys stored in HSMs without having to write custom column master key store providers and registering them in applications.

Kunden müssen die vom HSM-Anbieter bereitgestellten CSP-Anbieter oder CNG-Schlüsselspeicheranbieter auf den App-Servern oder Clientcomputern installieren, um über die in einem HSM gespeicherten Spaltenhauptschlüssel auf die mit "Always Encrypted" geschützten Daten zuzugreifen.Customers need to install the HSM vendor-provided CSP provider or CNG key store providers on the app servers or client computers in order to access Always Encrypted data protected with column master keys stored in a HSM.

Verbessern des MultiSubnetFailover-Verbindungsverhaltens für AlwaysOnSqlClient ermöglicht jetzt automatisch schnellere Verbindungen mit einer AlwaysOn-Verfügbarkeitsgruppe (Availability Group, AG).Improve MultiSubnetFailover connection behavior for AlwaysOn SqlClient now automatically provides faster connection to an AlwaysOn Availability Group (AG). Er erkennt auf transparente Weise, ob die Anwendung eine Verbindung mit einer AlwaysOn-Verfügbarkeitsgruppe in einem anderen Subnetz herstellt, ermittelt schnell den aktiven Server und stellt eine Verbindung mit dem Server her.It transparently detects whether your application is connecting to an AlwaysOn availability group (AG) on a different subnet and quickly discovers the current active server and provides a connection to the server. Vor dieser Version musste eine Anwendung "MultisubnetFailover=true" in die Verbindungszeichenfolge einschließen, um anzugeben, dass eine Verbindung mit einer AlwaysOn-Verfügbarkeitsgruppe hergestellt wurde.Prior to this release, an application had to set the connection string to include "MultisubnetFailover=true" to indicate that it was connecting to an AlwaysOn Availability Group. Wenn das Verbindungsschlüsselwort nicht auf true festgelegt wird, kann bei der Verbindung mit einer AlwaysOn-Verfügbarkeitsgruppe ein Anwendungstimeout auftreten.Without setting the connection keyword to true, an application might experience a timeout while connecting to an AlwaysOn Availability Group. Bei dieser Version muss eine Anwendung MultiSubnetFailover nicht mehr auf true festlegen.With this release, an application does not need to set MultiSubnetFailover to true anymore. Weitere Informationen zur SqlClient-Unterstützung für AlwaysOn-Verfügbarkeitsgruppen finden Sie unter SqlClient-Unterstützung für hohe Verfügbarkeit, Notfallwiederherstellung.For more information about SqlClient support for Always On Availability Groups, see SqlClient Support for High Availability, Disaster Recovery.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

Windows Presentation Foundation umfasst eine Reihe von Verbesserungen und Änderungen.Windows Presentation Foundation includes a number of improvements and changes.

Leistungssteigerung Die Verzögerung beim Auslösen von Berührungsereignissen wurde in .NET Framework 4.6.1.NET Framework 4.6.1 behoben.Improved performance The delay in firing touch events has been fixed in the .NET Framework 4.6.1.NET Framework 4.6.1. Wenn eine Eingabe in ein RichTextBox-Steuerelement erfolgt, wird außerdem der Renderthread während der schnellen Eingabe nicht mehr vollständig beansprucht.In addition, typing in a RichTextBox control no longer ties up the render thread during fast input.

Verbesserte Rechtschreibprüfung Die Rechtschreibprüfung in WPF wurde unter Windows 8.1 und höheren Versionen aktualisiert, um die Betriebssystemunterstützung für die Rechtschreibprüfung zusätzlicher Sprachen zu nutzen.Spell checking improvements The spell checker in WPF has been updated on Windows 8.1 and later versions to leverage operating system support for spell-checking additional languages. Bezüglich der Funktionalität in Windows-Versionen vor Windows 8.1 gibt es keine Änderung.There is no change in functionality on Windows versions prior to Windows 8.1.

Wie in früheren .NET Framework-Versionen wird die Sprache eines TextBox-Steuerelements oder RichTextBox-Blocks ermittelt, indem in der folgenden Reihenfolge nach Informationen gesucht wird:As in previous versions of the .NET Framework, the language for a TextBox control ora RichTextBox block is detected by looking for information in the following order:

  • xml:lang, falls vorhanden.xml:lang, if it is present.

  • Aktuelle EingabespracheCurrent input language.

  • Aktuelle ThreadkulturCurrent thread culture.

Weitere Informationen zur Sprachunterstützung in WPF finden Sie im WPF-Blogbeitrag zu .NET Framework 4.6.1-Features.For additional information on language support in WPF, see the WPF blog post on .NET Framework 4.6.1 features.

Zusätzliche Unterstützung für benutzerdefinierte Benutzerwörterbücher In .NET Framework 4.6.1.NET Framework 4.6.1 erkennt WPF Benutzerwörterbücher, die global registriert sind.Additional support for per-user custom dictionaries In .NET Framework 4.6.1.NET Framework 4.6.1, WPF recognizes custom dictionaries that are registered globally. Diese Funktion ist zusätzlich zur Registrierung der Wörterbücher pro Steuerelement verfügbar.This capability is available in addition to the ability to register them per-control.

In früheren WPF-Versionen wurden Listen ausgeschlossener Wörter und AutoKorrektur-Listen von benutzerdefinierten Wörterbüchern nicht erkannt.In previous versions of WPF, custom dictionaries did not recognize Excluded Words and AutoCorrect lists. Diese werden unter Windows 8.1 und Windows 10 mittels Dateien unterstützt, die im Verzeichnis %AppData%\Microsoft\Spelling\<language tag> abgelegt werden können.They are supported on Windows 8.1 and Windows 10 through the use of files that can be placed under the %AppData%\Microsoft\Spelling\<language tag> directory. Für diese Dateien gelten die folgenden Regeln:The following rules apply to these files:

  • Die Dateien sollten über die Erweiterungen ".dic" (hinzugefügte Wörter), ".exc" (ausgeschlossene Wörter) oder ".acl" (AutoKorrektur-Wörter) verfügen.The files should have extensions of .dic (for added words), .exc (for excluded words), or .acl (for AutoCorrect).

  • Außerdem sollten sie das UTF-16LE-Nur-Text-Format aufweisen, das mit der Bytereihenfolgenmarke (Byte Order Mark, BOM) beginnt.The files should be UTF-16 LE plaintext that starts with the Byte Order Mark (BOM).

  • Jede Zeile sollte aus einem Wort (aus der Liste hinzugefügter und ausgeschlossener Wörter) oder einem AutoKorrektur-Paar bestehen, bei dem die Wörter durch einen senkrechten Strich ("|") (in der AutoKorrektur-Wortliste) getrennt sind.Each line should consist of a word (in the added and excluded word lists), or an autocorrect pair with the words separated by a vertical bar ("|") (in the AutoCorrect word list).

  • Diese Dateien sind schreibgeschützt und werden vom System nicht geändert.These files are considered read-only and are not modified by the system.

Hinweis

Diese neuen Dateiformate werden von der WPF-Rechtschreibprüfungs-API nicht direkt unterstützt, sodass die benutzerdefinierten Wörterbücher, die in Anwendungen für WPF bereitgestellt werden, weiterhin LEX-Dateien verwenden sollten.These new file-formats are not directly supported by the WPF spell checking API’s, and the custom dictionaries supplied to WPF in applications should continue to use .lex files.

Beispiele Auf MSDN finden sich eine Reihe von WPF-Beispielen.Samples There are a number of WPF Samples on MSDN. Mehr als 200 der bekanntesten Beispiele werden (basierend auf ihrer Verwendung) in ein Open Source-GitHub-Repository verschoben.More than 200 of the most popular samples (based on their usage) will be moved into an Open Source GitHub repository. Helfen Sie uns bei der Verbesserung unserer Beispiele, indem Sie uns einen Pull Request senden oder ein GitHub-Problem eröffnen.Help us improve our samples by sending us a pull-request or opening a GitHub issue.

DirectX-Erweiterungen WPF enthält ein NuGet-Paket mit neuen Implementierungen von D3DImage. Diese erleichtern die Interoperabilität mit Dx10- und DX11-Inhalten.DirectX extensions WPF includes a NuGet package that provides new implementations of D3DImage that make it easy for you to interoperate with DX10 and Dx11 content. Der Code für dieses Paket steht als Open Source-Code auf GitHub zur Verfügung.The code for this package has been open sourced and is available on GitHub.

Windows Workflow Foundation: TransaktionenWindows Workflow Foundation: Transactions

Von der Transaction.EnlistPromotableSinglePhase-Methode kann jetzt ein anderer Manager für verteilte Aktionen als MSDTC verwendet werden, um die Transaktion höherzustufen.The Transaction.EnlistPromotableSinglePhase method can now use a distributed transaction manager other than MSDTC to promote the transaction. Zu diesem Zweck geben Sie eine neue GUID-Transaktionspromoter-ID für die neue Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)-Überladung an.You do this by specifying a GUID transaction promoter identifier to the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload . Wenn dieser Vorgang erfolgreich ist, unterliegt die Transaktionsfunktionalität gewissen Einschränkungen.If this operation is successful, there are limitations placed on the capabilities of the transaction. Sobald ein Nicht-MSDTC-Transaktionspromoter eingetragen wird, lösen die folgenden Methoden eine TransactionPromotionException aus, da diese Methoden die Höherstufung auf MSDTC erfordern:Once a non-MSDTC transaction promoter is enlisted, the following methods throw a TransactionPromotionException because these methods require promotion to MSDTC:

Sobald ein Nicht-MSDTC-Transaktionspromoter eingetragen wird, muss er mit dauerhaften Eintragungen verwendet werden. Dabei werden die von ihm definierten Protokolle verwendet.Once a non-MSDTC transaction promoter is enlisted, it must be used for future durable enlistments by using protocols that it defines. Die Guid des Transaktionspromoters kann mithilfe der PromoterType-Eigenschaft abgerufen werden.The Guid of the transaction promoter can be obtained by using the PromoterType property. Bei der Höherstufung der Transaktion stellt der Transaktionspromoter ein Byte-Array bereit, das das höher gestufte Token darstellt.When the transaction promotes, the transaction promoter provides a Byte array that represents the promoted token. Eine Anwendung kann das höher gestufte Token für eine nicht von MSDTC höher gestufte Transaktion mit der GetPromotedToken-Methode abrufen.An application can obtain the promoted token for a non-MSDTC promoted transaction with the GetPromotedToken method.

Benutzer der neuen Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid)-Überladung müssen eine bestimmte Aufruffolge einhalten, damit die Höherstufung erfolgreich abgeschlossen wird.Users of the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload must follow a specific call sequence in order for the promotion operation to complete successfully. Diese Regeln werden in der Dokumentation der Methode beschrieben.These rules are documented in the method's documentation.

ProfilerstellungProfiling

Die nicht verwaltete Profilerstellungs-API wurde wie folgt erweitert:The unmanaged profiling API has been enhanced follows:

Bessere Unterstützung für den Zugriff auf die PDB-Dateien in der ICorProfilerInfo7-Schnittstelle In ASP.Net 5 werden Assemblys zunehmend im Arbeitsspeicher von Roslyn kompiliert.Better support for accessing PDBs in the ICorProfilerInfo7 interface In ASP.Net 5, it is becoming much more common for assemblies to be compiled in-memory by Roslyn. Für Entwickler von Profilertools bedeutet dies, dass PDB-Dateien, die früher auf Datenträgern serialisiert wurden, u. U. nicht mehr vorkommen.For developers making profiling tools, this means that PDBs that historically were serialized on disk may no longer be present. Profilertools verwenden PDB-Dateien häufig, um Codezeilen wieder den Quellzeilen zuzuordnen, beispielsweise für die Codeabdeckung oder zeilenweise Leistungsanalysen.Profiler tools often use PDBs to map code back to source lines for tasks such as code coverage or line-by-line performance analysis. Die ICorProfilerInfo7-Schnittstelle enthält jetzt zwei neue Methoden, ICorProfilerInfo7::GetInMemorySymbolsLength und ICorProfilerInfo7::ReadInMemorySymbols, um diesen Profilertools Zugriff auf die PDB-Daten im Arbeitsspeicher zu gewähren. Mithilfe der neuen APIs kann ein Profiler Inhalte einer im Arbeitsspeicher enthaltenen PDB-Datei als Bytearray abrufen und dieses anschließend verarbeiten oder auf den Datenträger serialisieren.The ICorProfilerInfo7 interface now includes two new methods, ICorProfilerInfo7::GetInMemorySymbolsLength and ICorProfilerInfo7::ReadInMemorySymbols, to provide these profiler tools with access to the in-memory PDB data, By using the new APIs, a profiler can obtain the contents of an in-memory PDB as a byte array and then process it or serialize it to disk.

Bessere Instrumentation mit den ICorProfiler-Schnittstellenprofilern, die die ReJit-Funktionalität der ICorProfiler-API für die dynamische Instrumentation verwenden, kann jetzt einige Metadaten ändern.Better instrumentation with the ICorProfiler interface Profilers that are using the ICorProfiler API’s ReJit functionality for dynamic instrumentation can now modify some metadata. Früher konnte IL durch diese Tools jederzeit instrumentiert werden, während Metadaten nur zur Ladezeit des Moduls geändert werden konnten.Previously such tools could instrument IL at any time, but metadata could only be modified at module load time. Da IL auf Metadaten verweist, sind die möglichen Instrumentationsarten eingeschränkt.Because IL refers to metadata, this limited the kinds of instrumentation that could be done. Wir haben einige dieser Beschränkungen durch Hinzufügen der ICorProfilerInfo7::ApplyMetaData-Methode aufgehoben. Dadurch werden einige Metadatenbearbeitungen nach dem Laden des Moduls ermöglicht, insbesondere das Hinzufügen neuer AssemblyRef-, TypeRef-, TypeSpec-, MemberRef-, MemberSpec- und UserString-Datensätze.We have lifted some of those limits by adding the ICorProfilerInfo7::ApplyMetaData method to support a subset of metadata edits after the module loads, in particular by adding new AssemblyRef, TypeRef, TypeSpec, MemberRef, MemberSpec, and UserString records. Diese Änderung erweitert die Möglichkeiten der dynamischen Instrumentation.This change makes a much broader range of on-the-fly instrumentation possible.

NGEN (Native Image Generator)-PDBsNative Image Generator (NGEN) PDBs

Die computerübergreifende Ereignisablaufverfolgung ermöglicht Kunden die Profilerstellung für ein Programm auf Computer A und die Anzeige der Profilerstellungsdaten per Quellzeilenzuordnung auf Computer B. Unter früheren .NET Framework-Versionen musste der Benutzer alle Module und systemeigenen Images vom Profilcomputer auf den Analysecomputer kopieren, der die IL PDB-Datei für die Zuordnung zwischen Quellzeilen und systemeigenen Images enthielt.Cross-machine event tracing allows customers to profile a program on Machine A and look at the profiling data with source line mapping on Machine B. Using previous versions of the .NET Framework, the user would copy all the modules and native images from the profiled machine to the analysis machine that contains the IL PDB to create the source-to-native mapping. Während dies bei kleineren Dateien wie Handy-Apps durchaus gut funktionieren kann, können Desktopsystemdateien ziemlich anwachsen und beträchtliche Zeit für das Kopieren erfordern.While this process may work well when the files are relatively small, such as for phone applications, the files can be very large on desktop systems and require significant time to copy.

Bei NGEN PDB-Dateien kann NGen eine PDB-Datei erstellen, die die Zuordnung zwischen IL und systemeigenen Images enthält, ohne dass eine Abhängigkeit von der IL PDB-Datei besteht.With Ngen PDBs, NGen can create a PDB that contains the IL-to-native mapping without a dependency on the IL PDB. In diesem Szenario für die computerübergreifende Ereignisablaufverfolgung muss lediglich die von Computer A generierte PDB-Datei für systemeigene Images auf Computer B kopiert werden, und die Debug Interface Access-APIs müssen verwendet werden, um die „Quellzeilen-zu-IL“-Zuordnung der IL PDB-Datei und die „IL-zu-systemeigene Images“-Zuordnung der PDB-Datei für systemeigene Images zu lesen.In our cross-machine event tracing scenario, all that is needed is to copy the native image PDB that is generated by Machine A to Machine B and to use Debug Interface Access APIs to read the IL PDB's source-to-IL mapping and the native image PDB's IL-to-native mapping. Durch die Kombination beider Zuordnungen entsteht eine Zuordnung zwischen Quellzeilen und systemeigenem Image.Combining both mappings provides a source-to-native mapping. Da die PDB-Datei für systemeigene Images viel kleiner als alle Module und systemeigenen Images ist, wird das Kopieren von Computer A auf Computer B deutlich beschleunigt.Since the native image PDB is much smaller than all the modules and native images, the process of copying from Machine A to Machine B is much faster.

Neuigkeiten in .NET 2015What's new in .NET 2015

In .NET 2015 werden .NET Framework 4.6.NET Framework 4.6 und .NET Core eingeführt..NET 2015 introduces the .NET Framework 4.6.NET Framework 4.6 and .NET Core. Einige neue Funktionen gelten für beide, während andere Funktionen für .NET Framework 4.6.NET Framework 4.6 bzw. .NET Core.NET Core spezifisch sind.Some new features apply to both, and other features are specific to .NET Framework 4.6.NET Framework 4.6 or .NET Core.NET Core.

  • ASP.NET 5ASP.NET 5

    .NET 2015 enthält ASP.NET 5, eine schlanke .NET-Implementierung zum Erstellen moderner, cloudbasierter Apps..NET 2015 includes ASP.NET 5, which is a lean .NET implementation for building modern cloud-based apps. ASP.NET 5 ist modular aufgebaut, sodass Sie nur die Funktionen aufnehmen können, die Sie in Ihrer Anwendung benötigen.ASP.NET 5 is modular so you can include only those features that are needed in your application. Sie kann auf IIS oder eigenständig in einem benutzerdefinierten Prozess gehostet werden, und Sie können Apps mit verschiedenen Versionen von .NET Framework auf demselben Server ausführen.It can be hosted on IIS or self-hosted in a custom process, and you can run apps with different versions of the .NET Framework on the same server. Sie umfasst ein neues Umgebungskonfigurationssystem, das für die Cloudbereitstellung entwickelt wurde.It includes a new environment configuration system that is designed for cloud deployment.

    MVC, Web-API und Webseiten sind in einem einzigen Framework namens MVC 6 vereint.MVC, Web API, and Web Pages are unified into a single framework called MVC 6. Sie erstellen ASP.NET 5-Apps mithilfe der neuen Tools in Visual Studio 2015.You build ASP.NET 5 apps through the new tools in Visual Studio 2015. Ihre vorhandenen Anwendungen funktionieren im neuen .NET Framework. Um jedoch eine App zu erstellen, die MVC 6 oder SignalR 3 verwendet, müssen Sie das Projektsystem in Visual Studio 2015 verwenden.Your existing applications will work on the new .NET Framework; however to build an app that uses MVC 6 or SignalR 3, you must use the project system in Visual Studio 2015.

    Weitere Informationen finden Sie unter ASP.NET 5.For information, see ASP.NET 5.

  • Updates für ASP.NETASP.NET Updates

    • Aufgabenbasierte API für die asynchrone AntwortleerungTask-based API for Asynchronous Response Flushing

      ASP.NET verfügt nun mit HttpResponse.FlushAsync über eine einfache aufgabenbasierte API für die asynchrone Antwortleerung. Hiermit wird mithilfe der async/await-Unterstützung für Ihre Sprache die asynchrone Leerung von Antworten ermöglicht.ASP.NET now provides a simple task-based API for asynchronous response flushing, HttpResponse.FlushAsync, that allows responses to be flushed asynchronously by using your language's async/await support.

    • Model binding supports task-returning methods

      In .NET Framework 4.5.NET Framework 4.5, ASP.NET wurde das Modellbindungsfeature hinzugefügt, das einen erweiterbaren, codeorientierten Ansatz für CRUD-basierte Datenvorgänge in Web Forms-Seiten und Benutzersteuerelementen ermöglicht.In the .NET Framework 4.5.NET Framework 4.5, ASP.NET added the Model Binding feature that enabled an extensible, code-focused approach to CRUD-based data operations in Web Forms pages and user controls. Das Modellbindungssystem unterstützt nun wiederkehrende Task-Modellbindungsmethoden.The Model Binding system now supports Task-returning model binding methods. Dadurch erhalten Web Forms-Entwickler die Vorteile hinsichtlich der Asynchronität und die Einfachheit des Datenbindungssystems beim Verwenden neuerer Versionen von ORMs, einschließlich des Entity Frameworks.This feature allows Web Forms developers to get the scalability benefits of async with the ease of the data-binding system when using newer versions of ORMs, including the Entity Framework.

      Die asynchrone Modellbindung wird durch die aspnet:EnableAsyncModelBinding-Konfigurationseinstellung gesteuert.Async model binding is controlled by the aspnet:EnableAsyncModelBinding configuration setting.

      <appSettings>
         <add key=" aspnet:EnableAsyncModelBinding" value="true|false" />
      </appSettings>
      

      Bei auf .NET Framework 4.6.NET Framework 4.6 abzielenden Apps wird der Standardwert auf true festgelegt.On apps the target the .NET Framework 4.6.NET Framework 4.6, it defaults to true. Bei Apps unter .NET Framework 4.6.NET Framework 4.6, die auf eine frühere Version von .NET Framework abzielen, ist false der Standard.On apps running on the .NET Framework 4.6.NET Framework 4.6 that target an earlier version of the .NET Framework, it is false by default. Dies kann aktiviert werden, indem die Konfigurationseinstellung auf true festgelegt wird.It can be enabled by setting the configuration setting to true.

    • HTTP/2-Unterstützung (Windows 10)HTTP/2 Support (Windows 10)

      HTTP/2 ist eine neue Version des HTTP-Protokolls, die eine wesentlich bessere Nutzung von Verbindungen ermöglicht (weniger Roundtrips zwischen Client und Server) und so die Latenz beim Laden von Webseiten für Benutzer verringert.HTTP/2 is a new version of the HTTP protocol that provides much better connection utilization (fewer round-trips between client and server), resulting in lower latency web page loading for users. Webseiten profitieren am meisten von HTTP/2 (im Gegensatz zu Services), da das Protokoll Anforderungen mehrerer Artefakte in einem Aufruf zusammenfasst und so optimiert.Web pages (as opposed to services) benefit the most from HTTP/2, since the protocol optimizes for multiple artifacts being requested as part of a single experience. Die HTTP/2-Unterstützung wurde zu ASP.NET in .NET Framework 4.6 hinzugefügt.HTTP/2 support has been added to ASP.NET in the .NET Framework 4.6. Da Netzwerkfunktionen auf mehreren Ebenen vorhanden sind, waren neue Funktionen in Windows, IIS und ASP.NET erforderlich, um HTTP/2 nutzen zu können.Because networking functionality exists at multiple layers, new features were required in Windows, in IIS, and in ASP.NET to enable HTTP/2. Sie müssen Windows 10 ausführen, um HTTP/2 mit ASP.NET nutzen zu können.You must be running on Windows 10 to use HTTP/2 with ASP.NET.

      HTTP/2 wird auch unterstützt und ist standardmäßig für Windows 10-UWP-Apps aktiviert, die die System.Net.Http.HttpClient-API verwenden.HTTP/2 is also supported and on by default for Windows 10 Universal Windows Platform (UWP) apps that use the System.Net.Http.HttpClient API.

      Zum Bereitstellen einer Möglichkeit für die Verwendung des Features PUSH_PROMISE in ASP.NET-Anwendungen wurde der HttpResponse-Klasse eine neue Methode mit zwei Überladungen (PushPromise(String) und PushPromise(String, String, NameValueCollection)) hinzugefügt.In order to provide a way to use the PUSH_PROMISE feature in ASP.NET applications, a new method with two overloads, PushPromise(String) and PushPromise(String, String, NameValueCollection), has been added to the HttpResponse class.

      Hinweis

      Während ASP.NET 5 Unterstützung für HTTP/2 enthält, wurde noch keine Unterstützung für das PUSH PROMISE-Feature hinzugefügt.While ASP.NET 5 supports HTTP/2, support for the PUSH PROMISE feature has not yet been added.

      Browser und Webserver (IIS unter Windows) erledigen die gesamte Arbeit.The browser and the web server (IIS on Windows) do all the work. Sie müssen keine umfangreichen Aufgaben für Ihre Benutzer ausführen.You don't have to do any heavy-lifting for your users.

      Die meisten gängigen Browser unterstützen HTTP/2, sodass Ihre Benutzer wahrscheinlich vom HTTP/2-Protokoll profitieren können, sofern Ihr Server dies unterstützt.Most of the major browsers support HTTP/2, so it's likely that your users will benefit from HTTP/2 support if your server supports it.

    • Unterstützung für das TokenbindungsprotokollSupport for the Token Binding Protocol

      Microsoft und Google haben gemeinsam einen neuen Ansatz für die Authentifizierung erarbeitet, das so genannte Tokenbindungsprotokoll.Microsoft and Google have been collaborating on a new approach to authentication, called the Token Binding Protocol. Die Prämisse: Authentifizierungstoken (im Browsercache) können von Internetkriminellen gestohlen und verwendet werden, um auf ansonsten sichere Ressourcen (z. B. Bankkonten) zuzugreifen, ohne Ihr Kennwort oder andere geschützte Informationen zu kennen.The premise is that authentication tokens (in your browser cache) can be stolen and used by criminals to access otherwise secure resources (e.g. your bank account) without requiring your password or any other privileged knowledge. Das neue Protokoll zielt darauf ab, dieses Problem zu minimieren.The new protocol aims to mitigate this problem.

      Das Tokenbindungsprotokoll wird in Windows 10 als Browserfunktion implementiert.The Token Binding Protocol will be implemented in Windows 10 as a browser feature. ASP.NET-Anwendungen werden in das Protokoll einbezogen, damit die Legitimität von Authentifizierungstoken überprüft werden kann.ASP.NET apps will participate in the protocol, so that authentication tokens are validated to be legitimate. Die Client- und Serverimplementierungen stellen den durch das Protokoll angegebenen umfassenden Schutz bereit.The client and the server implementations establish the end-to-end protection specified by the protocol.

    • Zufällige Zeichenfolgen-HashalgorithmenRandomized string hash algorithms

      Mit .NET Framework 4.5 wurde ein zufälliger Zeichenfolgen-Hashalgorithmus eingeführt.The .NET Framework 4.5 introduced a randomized string hash algorithm. Dieser wurde jedoch durch ASP.NET nicht unterstützt, da einige der ASP.NET von einem stabilen Hash abhängig sind.However, it was not supported by ASP.NET because of some ASP.NET features depended on a stable hash code. In .NET Framework 4.6.NET Framework 4.6 werden nun zufällige Zeichenfolgen-Hashalgorithmen unterstützt.In .NET Framework 4.6.NET Framework 4.6, randomized string hash algorithms are now supported. Verwenden Sie zum Aktivieren dieses Features die aspnet:UseRandomizedStringHashAlgorithm-Konfigurationseinstellung.To enable this feature, use the aspnet:UseRandomizedStringHashAlgorithm config setting.

      <appSettings>
         <add key="aspnet:UseRandomizedStringHashAlgorithm" value="true|false" />
      </appSettings>
      
  • ADO.NETADO.NET

    ADO .NET unterstützt jetzt das in SQL Server 2016 Community Technology Preview 2 (CTP2) verfügbare Feature zum grundsätzlichen Verschlüsseln.ADO .NET now supports the Always Encrypted feature available in SQL Server 2016 Community Technology Preview 2 (CTP2). Mit der grundsätzlichen Verschlüsselung kann SQL Server Operationen zu verschlüsselten Daten durchführen und das Beste ist, der Verschlüsselungsschlüssel ist bei der Anwendung in der vertrauenswürdigen Umgebung des Kunden abgelegt, nicht auf dem Server.With Always Encrypted, SQL Server can perform operations on encrypted data, and best of all the encryption key resides with the application inside the customer’s trusted environment and not on the server. Die grundsätzliche Verschlüsselung sichert Kundendaten so, dass DBAs keinen Zugriff auf Textdaten haben.Always Encrypted secures customer data so DBAs do not have access to plain text data. Die Verschlüsselung und Entschlüsselung von Daten erfolgt transparent auf Treiberebene, dadurch werden die an vorhandenen Anwendungen erforderlichen Änderungen auf ein Mindestmaß reduziert.Encryption and decryption of data happens transparently at the driver level, minimizing changes that have to be made to existing applications. Weitere Informationen finden Sie unter Always Encrypted (Datenbankmodul) und Always Encrypted (Cliententwicklung).For details, see Always Encrypted (Database Engine) and Always Encrypted (client development).

  • 64-Bit-JIT-Compiler für verwalteten Code64-bit JIT Compiler for managed code

    .NET Framework 4.6 umfasst eine neue Version des 64-Bit-JIT-Compilers (ursprünglicher Codename „RyuJIT“).The .NET Framework 4.6 features a new version of the 64-bit JIT compiler (originally code-named RyuJIT). Der neue 64-Bit-Compiler bietet erhebliche Leistungsverbesserungen im Vergleich zum älteren 64-Bit-JIT-Compiler.The new 64-bit compiler provides significant performance improvements over the older 64-bit JIT compiler. Der neue 64-Bit-Compiler wird für 64-Bit-Prozesse aktiviert, die zusätzlich zu .NET Framework 4.6 ausgeführt werden.The new 64-bit compiler is enabled for 64-bit processes running on top of the .NET Framework 4.6. Ihre App wird in einem 64-Bit-Prozess ausgeführt, wenn sie als 64 Bit oder AnyCPU kompiliert ist und auf einem 64-Bit-Betriebssystem ausgeführt wird.Your app will run in a 64-bit process if it is compiled as 64-bit or AnyCPU and is running on a 64-bit operating system. Obwohl der Übergang zum neuen Compiler so transparent wie möglich verlief, sind Änderungen im Verhalten möglich.While care has been taken to make the transition to the new compiler as transparent as possible, changes in behavior are possible. Wir möchten Sie bitten, uns direkt über Probleme zu informieren, die beim Verwenden des neuen JIT-Compilers auftreten.We would like to hear directly about any issues encountered when using the new JIT compiler. Kontaktieren Sie uns über Microsoft Connect, wenn Sie ein Problem feststellen, das möglicherweise mit dem neuen 64-Bit-JIT-Compiler zusammenhängt.Please contact us through Microsoft Connect if you encounter an issue that may be related to the new 64-bit JIT compiler.

    Der neue 64-Bit-Compiler umfasst zudem Hardware-SIMD-Beschleunigungsfeatures, wenn er mit SIMD-fähigen Typen im System.Numerics-Namespace gekoppelt wird, was zu Leistungsverbesserungen führen kann.The new 64-bit JIT compiler also includes hardware SIMD acceleration features when coupled with SIMD-enabled types in the System.Numerics namespace, which can yield good performance improvements.

  • Verbesserungen am AssemblyladeprogrammAssembly loader improvements

    Das Assemblyladeprogramm verwendet nun den Arbeitsspeicher effizienter, indem IL-Assemblys entladen werden, nachdem ein entsprechendes NGEN-Image geladen wurde.The assembly loader now uses memory more efficiently by unloading IL assemblies after a corresponding NGEN image is loaded. Durch diese Änderung wird der virtuelle Arbeitsspeicher verringert. Dies ist besonders bei großen 32-Bit-Apps (wie Visual Studio) hilfreich. Zudem wird dadurch physischer Arbeitsspeicher eingespart.This change decreases virtual memory, which is particularly beneficial for large 32-bit apps (such as Visual Studio), and also saves physical memory.

  • Änderungen an BasisklassenbibliothekenBase class library changes

    Viele neue APIs wurden im Umfeld von .NET Framework 4.6.NET Framework 4.6 hinzugefügt, um wichtige Szenarios zu ermöglichen.Many new APIs have been added around to .NET Framework 4.6.NET Framework 4.6 to enable key scenarios. Dazu zählen die folgenden Änderungen und Ergänzungen:These include the following changes and additions:

    • IReadOnlyCollection<T>-ImplementierungenIReadOnlyCollection<T> implementations

      Zusätzliche Auflistungen implementieren IReadOnlyCollection<T> wie z. B. Queue<T> und Stack<T>.Additional collections implement IReadOnlyCollection<T> such as Queue<T> and Stack<T>.

    • CultureInfo.CurrentCulture und CultureInfo.CurrentUICultureCultureInfo.CurrentCulture and CultureInfo.CurrentUICulture

      Die Eigenschaften CultureInfo.CurrentCulture und CultureInfo.CurrentUICulture sind jetzt schreib- und lesbar, statt schreibgeschützt.The CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture properties are now read-write rather than read-only. Wenn Sie diesen Eigenschaften ein neues CultureInfo-Objekt zuweisen, ändern sich ebenfalls die aktuelle Threadkultur, die durch die Eigenschaft Thread.CurrentThread.CurrentCulture definiert ist, sowie die aktuelle UI-Threadkultur, die durch die Eigenschaft Thread.CurrentThread.CurrentUICulture definiert ist.If you assign a new CultureInfo object to these properties, the current thread culture defined by the Thread.CurrentThread.CurrentCulture property and the current UI thread culture defined by the Thread.CurrentThread.CurrentUICulture properties also change.

    • Verbesserungen bei der Garbage Collection (GC)Enhancements to garbage collection (GC)

      Die GC-Klasse enthält nun die Methoden TryStartNoGCRegion und EndNoGCRegion, die es Ihnen ermöglichen, die Garbage Collection während der Ausführung eines kritischen Pfads zu unterbinden.The GC class now includes TryStartNoGCRegion and EndNoGCRegion methods that allow you to disallow garbage collection during the execution of a critical path.

      Eine neue Überladung der GC.Collect(Int32, GCCollectionMode, Boolean, Boolean)-Methode erlaubt Ihnen die Kontrolle, ob für den kleinen und großen Objektheap eine Komprimierung und ein Sweep ausgeführt werden, ober ob nur ein Sweep für sie ausgeführt wird.A new overload of the GC.Collect(Int32, GCCollectionMode, Boolean, Boolean) method allows you to control whether both the small object heap and the large object heap are swept and compacted or swept only.

    • SIMD-fähige TypenSIMD-enabled types

      Der System.Numerics-Namespace enthält nun eine Reihe von SIMD-fähigen Datentypen wie Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3 und Vector4.The System.Numerics namespace now includes a number of SIMD-enabled types, such as Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3, and Vector4.

      Da der neue 64-Bit-JIT-Compiler zudem Hardware-SIMD-Beschleunigungsfeatures enthält, liegen insbesondere erhebliche Leistungsverbesserungen beim Verwenden von SIMD-fähigen Typen mit dem neuen 64-Bit-JIT-Compiler vor.Because the new 64-bit JIT compiler also includes hardware SIMD acceleration features, there are especially significant performance improvements when using the SIMD-enabled types with the new 64-bit JIT compiler.

    • KryptografieupdatesCryptography updates

      Die System.Security.Cryptography-API wird aktualisiert, um die Kryptografie-APIs von Windows CNG zu unterstützen.The System.Security.Cryptography API is being updated to support the Windows CNG cryptography APIs. Frühere Versionen von .NET Framework basierten vollständig auf einer früheren Version der Kryptografie-APIs von Windows als Grundlage für die System.Security.Cryptography-Implementierung.Previous versions of the .NET Framework have relied entirely on an earlier version of the Windows Cryptography APIs as the basis for the System.Security.Cryptography implementation. Benutzer forderten die Unterstützung der CNG-API, da diese moderne Kryptografiealgorithmen unterstützt, die für bestimmte Kategorien von Apps wichtig sind.We have had requests to support the CNG API, since it supports modern cryptography algorithms, which are important for certain categories of apps.

      .NET Framework 4.6 umfasst die folgenden neuen Erweiterungen, um die Kryptografie-API von Windows CNG zu unterstützen:The .NET Framework 4.6 includes the following new enhancements to support the Windows CNG cryptography APIs:

      • Ein Satz von Erweiterungsmethoden für X509-Zertifikate, System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) und System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2), die nach Möglichkeit anstelle einer CAPI-basierten Implementierung eine CNG-basierte Implementierung zurückgeben.A set of extension methods for X509 Certificates, System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) and System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2), that return a CNG-based implementation rather than a CAPI-based implementation when possible. (Für einige Smartcards usw. ist weiterhin CAPI erforderlich, und die APIs verarbeiten den Fallback).(Some smartcards, etc., still require CAPI, and the APIs handle the fallback).

      • Die System.Security.Cryptography.RSACng-Klasse, die eine CNG-Implementierung des RSA-Algorithmus bereitstellt.The System.Security.Cryptography.RSACng class, which provides a CNG implementation of the RSA algorithm.

      • Erweiterungen an der RSA-API, damit für allgemeine Aktionen keine Umwandlung mehr erforderlich ist.Enhancements to the RSA API so that common actions no longer require casting. Beispielsweise war für das Verschlüsseln von Daten mithilfe eines X509Certificate2-Objekts Code wie der folgende in vorherigen Versionen von .NET Framework erforderlich.For example, encrypting data using an X509Certificate2 object requires code like the following in previous versions of the .NET Framework.

        RSACryptoServiceProvider rsa = (RSACryptoServiceProvider)cert.PrivateKey;
        byte[] oaepEncrypted = rsa.Encrypt(data, true);
        byte[] pkcs1Encrypted = rsa.Encrypt(data, false);
        
        Dim rsa As RSACryptoServiceProvider = CType(cert.PrivateKey, RSACryptoServiceProvider)
        Dim oaepEncrypted() As Byte = rsa.Encrypt(data, True)
        Dim pkcs1Encrypted() As Byte = rsa.Encrypt(data, False)
        

        Code, der die neuen Kryptografie-APIs in .NET Framework 4.6 verwendet, kann wie folgt umgeschrieben werden, um die Umwandlung zu vermeiden.Code that uses the new cryptography APIs in the .NET Framework 4.6 can be rewritten as follows to avoid the cast.

        RSA rsa = cert.GetRSAPrivateKey();
        if (rsa == null)
           throw new InvalidOperationException("An RSA certificate was expected");
        
        byte[] oaepEncrypted = rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA1);
        byte[] pkcs1Encrypted = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1);
        
        Dim rsa As RSA = cert.GetRSAPrivateKey()
        If rsa Is Nothing Then
           Throw New InvalidOperationException("An RSA certificate was expected")
         End If
        
        Dim oaepEncrypted() As Byte = rsa.Encrypt(data, RSAEncryptionPadding.OaepSHA1)
        Dim pkcs1Encrypted() As Byte = rsa.Encrypt(data, RSAEncryptionPadding.Pkcs1)
        
    • Unterstützung für das Konvertieren von Datumsangaben und Uhrzeiten zur oder aus der Unix-ZeitSupport for converting dates and times to or from Unix time

      Die folgenden neuen Methoden wurden zur DateTimeOffset-Struktur hinzugefügt, um das Konvertieren von Datums- und Uhrzeitangaben zur oder aus der Unix-Zeit zu unterstützen:The following new methods have been added to the DateTimeOffset structure to support converting date and time values to or from Unix time:

    • KompatibilitätsoptionenCompatibility switches

      Die neue AppContext-Klasse fügt eine neue Kompatibilitätsfunktion hinzu, die es Bibliotheksautoren ermöglicht, ihren Benutzern einen einheitlichen Abwahlmechanismus für neue Funktionalitäten bereitzustellen.The new AppContext class adds a new compatibility feature that enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Sie richtet einen lose gekoppelten Vertrag zwischen den Komponenten ein, um eine Anforderung zur Abwahl zu übermitteln.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Diese Möglichkeit ist in der Regel wichtig, wenn vorhandene Funktionalitäten verändert werden.This capability is typically important when a change is made to existing functionality. Im Gegensatz dazu existiert bereits eine implizite Auswahloption für neue Funktionalitäten.Conversely, there is already an implicit opt-in for new functionality.

      Mit AppContext definieren Bibliotheken Kompatibilitätsoptionen und machen diese verfügbar, während im Code, der von diesen Bibliotheken abhängig ist, diese Optionen festgelegt werden können, um das Verhalten der Bibliothek zu beeinflussen.With AppContext, libraries define and expose compatibility switches, while code that depends on them can set those switches to affect the library behavior. Standardmäßig stellen Bibliotheken die neue Funktionalität bereit. Nur wenn die Option festgelegt ist, stellen sie die vorherige Funktionalität bereit.By default, libraries provide the new functionality, and they only alter it (that is, they provide the previous functionality) if the switch is set.

      Eine Anwendung (oder eine Bibliothek) kann den Wert einer Option deklarieren (hierbei handelt es sich immer um einen Boolean-Wert), die von einer abhängige Bibliothek definiert wird.An application (or a library) can declare the value of a switch (which is always a Boolean value) that a dependent library defines. Die Option ist immer implizit false.The switch is always implicitly false. Durch Festlegen der Option auf true wird diese aktiviert.Setting the switch to true enables it. Durch explizites Festlegen der Option auf false wird das neue Verhalten aktiviert.Explicitly setting the switch to false provides the new behavior.

      AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
      

      Die Bibliothek muss überprüfen, ob ein Consumer den Wert der Option deklariert hat, und dann entsprechend reagieren.The library must check if a consumer has declared the value of the switch and then appropriately act on it.

      if (!AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", out shouldThrow)) 
      {
         // This is the case where the switch value was not set by the application. 
         // The library can choose to get the value of shouldThrow by other means. 
         // If no overrides nor default values are specified, the value should be 'false'. 
         // A false value implies the latest behavior.
      }
      
         // The library can use the value of shouldThrow to throw exceptions or not.
         if (shouldThrow) 
         {
            // old code
         }
         else {
            // new code
         }
      }
      

      Es empfiehlt sich, ein konsistentes Format für Optionen zu verwenden, da es sich hierbei um eine formellen Vertrag handelt, der von einer Bibliothek verfügbar gemacht wird.It's beneficial to use a consistent format for switches, since they are a formal contract exposed by a library. Das folgende Beispiel zeigt zwei offensichtliche Formate.The following are two obvious formats.

      • Switch.namespace.switchnameSwitch.namespace.switchname

      • Switch.library.switchnameSwitch.library.switchname

    • Änderungen am aufgabenbasierten asynchronen Entwurfsmuster (TAP)Changes to the task-based asynchronous pattern (TAP)

      Bei Apps, die auf .NET Framework 4.6.NET Framework 4.6 ausgerichtet sind, erben Task- und Task<TResult>-Objekte die Kultur und die UI-Kultur des aufrufenden Threads.For apps that target the .NET Framework 4.6.NET Framework 4.6, Task and Task<TResult> objects inherit the culture and UI culture of the calling thread. Das Verhalten von Apps, die mit früheren Versionen von .NET Framework arbeiten oder auf keine bestimmte Version von .NET Framework ausgelegt sind, ist davon nicht betroffen.The behavior of apps that target previous versions of the .NET Framework, or that do not target a specific version of the .NET Framework, is unaffected. Weitere Informationen finden Sie im Abschnitt "Kultur und aufgabenbasierte asynchrone Vorgänge" im Thema zur CultureInfo-Klasse.For more information, see the "Culture and task-based asynchronous operations" section of the CultureInfo class topic.

      Die System.Threading.AsyncLocal<T>-Klasse ermöglicht Ihnen das Darstellen von Umgebungsdaten, die für eine angegebene asynchrone Ablaufsteuerung wie eine async-Methode lokal sind.The System.Threading.AsyncLocal<T> class allows you to represent ambient data that is local to a given asynchronous control flow, such as an async method. Sie kann zum threadübergreifenden Beibehalten von Daten verwendet werden.It can be used to persist data across threads. Sie können zudem eine Rückrufmethode definieren, die benachrichtigt wird, sobald sich die Umgebungsdaten ändern, und zwar entweder aufgrund der expliziten Änderung der AsyncLocal<T>.Value-Eigenschaft oder weil der Thread einen Kontextübergang ermittelt hat.You can also define a callback method that is notified whenever the ambient data changes either because the AsyncLocal<T>.Value property was explicitly changed, or because the thread encountered a context transition.

      Dem aufgabenbasierten asynchronem Muster (Task-based Asynchronous Pattern, TAP) wurden die drei Hilfsmethoden Task.CompletedTask, Task.FromCanceled und Task.FromException hinzugefügt, um abgeschlossene Aufgaben in einem bestimmten Status zurückzugeben.Three convenience methods, Task.CompletedTask, Task.FromCanceled, and Task.FromException, have been added to the task-based asynchronous pattern (TAP) to return completed tasks in a particular state.

      Die NamedPipeClientStream-Klasse unterstützt nun die asynchrone Kommunikation mit der zugehörigen ConnectAsyncThe NamedPipeClientStream class now supports asynchronous communication with its new ConnectAsync. -Methode.method.

    • EventSource unterstützt jetzt das Schreiben in das EreignisprotokollEventSource now supports writing to the Event log

      Sie können nun die EventSource-Klasse verwenden, um Verwaltungs- oder betriebliche Nachrichten in das Ereignisprotokoll zu schreiben, und zwar zusätzlich zu vorhandenen auf dem Computer erstellten ETW-Sitzungen.You now can use the EventSource class to log administrative or operational messages to the event log, in addition to any existing ETW sessions created on the machine. Früher mussten Sie das „Microsoft.Diagnostics.Tracing.EventSource“-NuGet-Paket für diese Funktionalität verwenden.In the past, you had to use the Microsoft.Diagnostics.Tracing.EventSource NuGet package for this functionality. Diese Funktionalität ist nun in .NET Framework 4.6 integriert.This functionality is now built-into the .NET Framework 4.6.

      Sowohl das NuGet-Paket als auch .NET Framework 4.6 wurden mit den folgenden Features aktualisiert:Both the NuGet package and the .NET Framework 4.6 have been updated with the following features:

      • Dynamische EreignisseDynamic events

        Ermöglichen das „spontane“ Definieren von Ereignissen, und zwar ohne das Erstellen von Ereignismethoden.Allows events defined "on the fly" without creating event methods.

      • Umfangreiche NutzlastenRich payloads

        Ermöglicht, dass speziell attributierte Klassen und Arrays sowie primitive Typen als eine Nutzlast übergeben werden.Allows specially attributed classes and arrays as well as primitive types to be passed as a payload

      • AktivitätsnachverfolgungActivity tracking

        Löst Start- und Stoppereignisse aus, um Ereignisse zwischen ihnen mit einer ID zu kennzeichnen, die alle aktuell aktiven Aktivitäten darstellt.Causes Start and Stop events to tag events between them with an ID that represents all currently active activities.

      Zum Unterstützen dieses Features wurde der EventSource-Klasse die überladene Write-Methode hinzugefügt.To support these features, the overloaded Write method has been added to the EventSource class.

  • Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

    • HDPI-VerbesserungenHDPI improvements

      Die HDPI-Unterstützung in WPF ist nun besser in .NET Framework 4.6.NET Framework 4.6.HDPI support in WPF is now better in the .NET Framework 4.6.NET Framework 4.6. Es wurden Änderungen an der Layoutglättung vorgenommen, um die Instanzen von Clipping in Steuerelementen mit Begrenzungen zu reduzieren.Changes have been made to layout rounding to reduce instances of clipping in controls with borders. Standardmäßig wird dieses Feature nur aktiviert, wenn TargetFrameworkAttribute auf „.NET 4.6“ festgelegt ist.By default, this feature is enabled only if your TargetFrameworkAttribute is set to .NET 4.6. Anwendungen, die auf frühere Versionen des Frameworks abzielen, aber auf .NET Framework 4.6.NET Framework 4.6 ausgeführt werden, können das neue Verhalten übernehmen, indem die folgende Zeile zum Abschnitt „<runtime>“ der Datei „app.config“ hinzugefügt wird:Applications that target earlier versions of the framework but are running on the .NET Framework 4.6.NET Framework 4.6 can opt in to the new behavior by adding the following line to the <runtime> section of the app.config file:

      <AppContextSwitchOverrides
      value="Switch.MS.Internal.DoNotApplyLayoutRoundingToMarginsAndBorderThickness=false"
      />
      

      Sich auf mehrere Monitore erstreckende WPF-Fenster mit unterschiedlichen DPI-Einstellungen (Multi-DPI-Einrichtung) wurden nun vollständig gerendert, und zwar ohne verdunkelte Bereiche.WPF windows straddling multiple monitors with different DPI settings (Multi-DPI setup) are now completely rendered without blacked-out regions. Sie können dieses Verhalten deaktivieren, indem Sie die folgende Zeile zum <appSettings>-Abschnitt der Datei „app.config“ hinzufügen, um dieses neue Verhalten zu deaktivieren:You can opt out of this behavior by adding the following line to the <appSettings> section of the app.config file to disable this new behavior:

      <add key="EnableMultiMonitorDisplayClipping" value="true"/>
      

      Unterstützung für das automatische Lade des richtigen Cursors, und zwar abhängig davon, ob die DPI-Einstellung zu System.Windows.Input.Cursor hinzugefügt wurde.Support for automatically loading the right cursor based on DPI setting has been added to System.Windows.Input.Cursor.

    • Toucheingabe ist besserTouch is better

      Über Connect meldet der Kunde, dass das unvorhersehbare Verhalten der Toucheingabe in .NET Framework 4.6.NET Framework 4.6 behoben wurde.Customer reports on Connect that touch produces unpredictable behavior have been addressed in the .NET Framework 4.6.NET Framework 4.6. Der Schwellenwert für das Doppeltippen für Windows Store- und WPF-Anwendungen entspricht nun dem in Windows 8.1 und höher.The double tap threshold for Windows Store applications and WPF applications is now the same in Windows 8.1 and above.

    • Unterstützung für das transparente untergeordnete FensterTransparent child window support

      WPF in .NET Framework 4.6.NET Framework 4.6 unterstützte transparente untergeordnete Fenster in Windows 8.1 und höher.WPF in the .NET Framework 4.6.NET Framework 4.6 supports transparent child windows in Windows 8.1 and above. Dadurch können Sie untergeordnete Fenster, die weder viereckig noch transparent sind, in Ihren Fenstern auf oberster Ebene erstellen.This allows you to create non-rectangular and transparent child windows in your top-level windows. Sie können diese Funktion aktivieren, indem Sie die HwndSourceParameters.UsesPerPixelTransparency-Eigenschaft auf true festlegen.You can enable this feature by setting the HwndSourceParameters.UsesPerPixelTransparency property to true.

  • Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

    • SSL-UnterstützungSSL support

      WCF unterstützt nun SSL Version TLS 1.1 und TLS 1.2 neben SSL 3.0 und TLS 1.0 beim Verwenden von NetTcp mit Transportsicherheit und Clientauthentifizierung.WCF now supports SSL version TLS 1.1 and TLS 1.2, in addition to SSL 3.0 and TLS 1.0, when using NetTcp with transport security and client authentication. Es ist nun möglich, auszuwählen, welches Protokoll verwendet werden soll, oder ältere und zugleich unsicherere Protokolle zu deaktivieren.It is now possible to select which protocol to use, or to disable old lesser secure protocols. Dies kann durch das Einstellen der SslProtocols-Eigenschaft oder durch das Hinzufügen der folgenden Elemente zu einer Konfigurationsdatei erfolgen.This can be done either by setting the SslProtocols property or by adding the following to a configuration file.

      <netTcpBinding>
         <binding>
            <security mode= "None|Transport|Message|TransportWithMessageCredential" >
               <transport clientCredentialType="None|Windows|Certificate"
                          protectionLevel="None|Sign|EncryptAndSign"
                          sslProtocols="Ssl3|Tls1|Tls11|Tls12">
                  </transport>
            </security>
         </binding>
      </netTcpBinding>
      
    • Senden von Nachrichten mithilfe von unterschiedlichen HTTP-VerbindungenSending messages using different HTTP connections

      WCF ermöglicht Benutzern nun, sicherzustellen, dass bestimmte Nachrichten unter Verwendung von zugrunde liegenden HTTP-Verbindungen gesendet wurden.WCF now allows users to ensure certain messages are sent using different underlying HTTP connections. Hierfür gibt es zwei Möglichkeiten:There are two ways to do this:

      • Verwenden eines Verbindungsgruppen-NamenspräfixUsing a connection group name prefix

        Benutzer können eine Zeichenfolge angeben, die WCF als ein Präfix für den Verbindungsgruppennamen verwendet.Users can specify a string that WCF will use as a prefix achieve for the connection group name. Unter Verwendung von unterschiedlichen zugrunde liegenden HTTP-Verbindungen werden zwei Nachrichten mit unterschiedlichen Präfixen gesendet.Two messages with different prefixes are sent using different underlying HTTP connections. Sie legen das Präfix fest, indem Sie ein Schlüssel-/Wert-Paar zur Message.Properties-Eigenschaft der Nachricht hinzufügen.You set the prefix by adding a key/value pair to the message's Message.Properties property. Der Schlüssel ist „HttpTransportConnectionGroupNamePrefix“ und der Wert ist das gewünschte Präfix.The key is "HttpTransportConnectionGroupNamePrefix"; the value is the desired prefix.

      • Verwenden von unterschiedlichen KanalfaktorenUsing different channel factories

        Benutzer können zudem ein Feature aktivieren, das sicherstellt, dass die mithilfe von anhand unterschiedlicher Kanalfaktoren erstellten Kanälen gesendeten Nachrichten unterschiedliche zugrunde liegende HTTP-Verbindungen verwenden.Users can also enable a feature that ensures that messages sent using channels created by different channel factories will use different underlying HTTP connections. Zum Aktivieren dieses Features müssen die Benutzer die folgende appSetting auf true festlegen:To enable this feature, users must set the following appSetting to true:

        <appSettings>
           <add key="wcf:httpTransportBinding:useUniqueConnectionPoolPerFactory" value="true" />
        </appSettings>
        
  • Windows Workflow Foundation (WWF)Windows Workflow Foundation (WWF)

    Sie können nun die Anzahl der Sekunden angeben, die ein Workflowdienst an einer gestörten Vorgangsanforderung festhält, wenn ein ausstehendes Nicht-Protokoll-Lesezeichen vorliegt, bevor für die Anforderung ein Timeout ausgelöst wird.You can now specify the number of seconds a workflow service will hold on to an out-of-order operation request when there is an outstanding "non-protocol" bookmark before timing out the request. Ein "Nicht-Protokoll-Lesezeichen" ist ein Lesezeichen, das nicht mit ausstehenden Receive-Aktivitäten verknüpft ist.A "non-protocol" bookmark is a bookmark that is not related to outstanding Receive activities. Bei einigen Aktivitäten werden Nicht-Protokoll-Lesezeichen in ihrer Implementierung erstellt. Es ist daher ggf. nicht offensichtlich, ob ein Nicht-Protokoll-Lesezeichen vorhanden ist.Some activities create non-protocol bookmarks within their implementation, so it may not be obvious that a non-protocol bookmark exists. Dazu zählen der Status und die Auswahl.These include State and Pick. Wenn Sie über einen Workflowdienst verfügen, der mit einem Statuscomputer implementiert wurde oder eine Auswahlaktivität enthält, verfügen Sie sehr wahrscheinlich über Nicht-Protokoll-Lesezeichen.So if you have a workflow service implemented with a state machine or containing a Pick activity, you will most likely have non-protocol bookmarks. Sie geben das Intervall an, indem Sie eine Zeile wie die folgende zum appSettings-Abschnitt Ihrer „app.config“-Datei hinzufügen:You specify the interval by adding a line like the following to the appSettings section of your app.config file:

    <add key="microsoft:WorkflowServices:FilterResumeTimeoutInSeconds" value="60"/>
    

    Der Standardwert beträgt 60 Sekunden.The default value is 60 seconds. Wenn value auf „0“ festgelegt ist, werden gestörte Anforderungen sofort mit einem Fehlertext abgelehnt, der wie folgt aussieht:If value is set to 0, out-of-order requests are immediately rejected with a fault with text that looks like this:

    Operation 'Request3|{http://tempuri.org/}IService' on service instance with identifier '2b0667b6-09c8-4093-9d02-f6c67d534292' cannot be performed at this time. Please ensure that the operations are performed in the correct order and that the binding in use provides ordered delivery guarantees. 
    

    Hierbei handelt es sich um dieselbe Meldung, die Sie empfangen, wenn Sie eine Meldung in Bezug auf einen gestörten Vorgang empfangen und keine Nicht-Protokoll-Lesezeichen vorliegen.This is the same message that you receive if an out-of-order operation message is received and there are no non-protocol bookmarks.

    Wenn der Wert des FilterResumeTimeoutInSeconds-Elements nicht null entspricht, liegen keine Nicht-Protokoll-Lesezeichen vor, und das Timeoutintervall läuft ab, wobei beim Vorgang Fehler auftreten und eine Timeoutmeldung angezeigt wird.If the value of the FilterResumeTimeoutInSeconds element is non-zero, there are non-protocol bookmarks, and the timeout interval expires, the operation fails with a timeout message.

  • TransaktionenTransactions

    Sie können die ID für die verteilte Transaktion nun für die Transaktion einbeziehen, die eine Ausnahme verursacht hat, die von der auszulösenden TransactionException abgeleitet wurde.You can now include the distributed transaction identifier for the transaction that has caused an exception derived from TransactionException to be thrown. Hierzu müssen Sie den folgenden Schlüssel zum appSettings-Abschnitt Ihrer „app.config“-Datei hinzufügen.You do this by adding the following key to the appSettings section of your app.config file:

    <add key="Transactions:IncludeDistributedTransactionIdInExceptionMessage" value="true"/> 
    

    Der Standardwert ist false.The default value is false.

  • NetzwerkNetworking

    • Socket-WiederverwendungSocket reuse

      Windows 10 umfasst einen neuen hochskalierbaren Netzwerkalgorithmus, der eine bessere Verwendung von Computerressourcen ermöglicht, indem lokale Ports für ausgehende TCP-Verbindungen verwendet werden.Windows 10 includes a new high-scalability networking algorithm that makes better use of machine resources by reusing local ports for outbound TCP connections. .NET Framework 4.6 unterstützt den neuen Algorithmus, wodurch .NET-Apps von diesem neuen Verhalten profitieren können.The .NET Framework 4.6 supports the new algorithm, enabling .NET apps to take advantage of the new behavior. In früheren Windows-Versionen gab es einen Grenzwert für gleichzeitige, künstliche Verbindungen (für gewöhnlich 16.384, die Standardgröße des dynamischen Portbereichs), wodurch die Skalierbarkeit eines Diensts begrenzt werden konnte, indem unter Lastbedingungen eine Portauslastung verursacht werden konnte.In previous versions of Windows, there was an artificial concurrent connection limit (typically 16,384, the default size of the dynamic port range), which could limit the scalability of a service by causing port exhaustion when under load.

      In .NET Framework 4.6.NET Framework 4.6 wurden zwei neue APIs hinzugefügt, um die Portwiederverwendung zu aktivieren, wodurch die 64K-Begrenzung für gleichzeitige Verbindungen effektiv entfernt wurde:In the .NET Framework 4.6.NET Framework 4.6, two new APIs have been added to enable port reuse, which effectively removes the 64K limit on concurrent connections:

      Standardmäßig lautet die ServicePointManager.ReusePort-Eigenschaft false, sofern der HWRPortReuseOnSocketBind-Wert des HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319-Registrierungsschlüssels nicht auf „0x1“ festgelegt ist.By default, the ServicePointManager.ReusePort property is false unless the HWRPortReuseOnSocketBind value of the HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 registry key is set to 0x1. Legen Sie zum Aktivieren der lokalen Portwiederverwendung bei HTTP-Verbindungen die ServicePointManager.ReusePort-Eigenschaft auf true fest.To enable local port reuse on HTTP connections, set the ServicePointManager.ReusePort property to true. Dadurch verwenden alle ausgehenden TCP-Socketverbindungen von HttpClient und HttpWebRequest die neue Windows 10-Socketoption SO_REUSE_UNICASTPORT, die die lokale Portwiederverwendung ermöglicht.This causes all outgoing TCP socket connections from HttpClient and HttpWebRequest to use a new Windows 10 socket option, SO_REUSE_UNICASTPORT, that enables local port reuse.

      Entwickler, die Nur-Socketanwendungen schreiben, können die System.Net.Sockets.SocketOptionName-Option beim Aufrufen einer Methode wie Socket.SetSocketOption angeben, sodass die ausgehenden Sockets die lokale Ports während der Bindung erneut verwenden.Developers writing a sockets-only application can specify the System.Net.Sockets.SocketOptionName option when calling a method such as Socket.SetSocketOption so that outbound sockets reuse local ports during binding.

    • Unterstützung für internationale Domänennamen und PunyCodeSupport for international domain names and PunyCode

      Der Klasse Uri wurde die neue Eigenschaft IdnHost hinzugefügt, um internationale Domänennamen und PunyCode besser zu unterstützen.A new property, IdnHost, has been added to the Uri class to better support international domain names and PunyCode.

  • Größenänderungen in Windows Forms-SteuerelementenResizing in Windows Forms controls.

    Diese Funktion wurde in .NET Framework 4.6.NET Framework 4.6 so erweitert, dass sie jetzt die Typen DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn und ToolStripSplitButton beinhaltet sowie das durch die Bounds-Eigenschaft angegebene Rechteck, das beim Zeichnen eines UITypeEditor verwendet wird.This feature has been expanded in .NET Framework 4.6.NET Framework 4.6 to include the DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn and ToolStripSplitButton types and the rectangle specified by the Bounds property used when drawing a UITypeEditor.

    Dies ist ein Opt-in-Feature.This is an opt-in feature. Setzen Sie das EnableWindowsFormsHighDpiAutoResizing-Element in der Anwendungskonfigurationsdatei (app.config) auf true, um dieses Feature zu aktivieren:To enable it, set the EnableWindowsFormsHighDpiAutoResizing element to true in the application configuration (app.config) file:

    <appSettings>
       <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    
  • Unterstützung für CodepagecodierungenSupport for code page encodings

    [!INCLUDE[net_core](../../../includes/net-core-md.md)] primarily supports the Unicode encodings and by default provides limited support for code page encodings. You can add support for code page encodings available in the .NET Framework but unsupported in [!INCLUDE[net_core](../../../includes/net-core-md.md)] by registering code page encodings with the <xref:System.Text.Encoding.RegisterProvider%2A?displayProperty=nameWithType> method. For more information, see <xref:System.Text.CodePagesEncodingProvider?displayProperty=nameWithType>.
    
  • .NET Native.NET Native

    Windows-Apps für Windows 10, die auf .NET Core.NET Core ausgerichtet und in C# oder Visual Basic geschrieben sind, können eine neue Technologie nutzen, die Apps in systemeigenen Code kompiliert statt in IL.Windows apps for Windows 10 that target .NET Core.NET Core and are written in C# or Visual Basic can take advantage of a new technology that compiles apps to native code rather than IL. Sie erzeugen Apps, die sich durch kürzere Start- und Ausführungszeiten auszeichnen.They produce apps characterized by faster startup and execution times. Weitere Informationen finden Sie unter Kompilieren von Anwendungen mit .NET Native.For more information, see Compiling Apps with .NET Native. Eine Übersicht über .NET Native, in der untersucht wird, wie es sich sowohl von der JIT-Kompilierung als auch von NGEN unterscheidet und was dies für Ihren Code bedeutet, finden Sie unter .NET Native und Kompilierung.For an overview of .NET Native that examines how it differs from both JIT compilation and NGEN and what that means for your code, see .NET Native and Compilation.

    Ihre Apps werden beim Kompilieren mit Visual Studio 2015 standardmäßig in systemeigenen Code kompiliert.Your apps are compiled to native code by default when you compile them with Visual Studio 2015. Weitere Informationen finden Sie unter Erste Schritte mit .NET Native.For more information, see Getting Started with .NET Native.

    Um das Debuggen von .NET Native-Apps zu unterstützen, wurden der API für nicht verwaltetes Debugging eine Reihe neuer Schnittstellen und Enumerationen hinzugefügt.To support debugging .NET Native apps, a number of new interfaces and enumerations have been added to the unmanaged debugging API. Weitere Informationen finden Sie im Thema Debuggen (Referenz zur nicht verwalteten API).For more information, see the Debugging (Unmanaged API Reference) topic.

  • Open-Source-Pakete von .NET FrameworkOpen-source .NET Framework packages

    [!INCLUDE[net_core](../../../includes/net-core-md.md)] packages such as the immutable collections, [SIMD APIs](http://go.microsoft.com/fwlink/?LinkID=518639), and networking APIs such as those found in the <xref:System.Net.Http> namespace are now available as open source packages on [GitHub](https://github.com/). To access the code, see [NetFx on GitHub](http://go.microsoft.com/fwlink/?LinkID=518634). For more information and how to contribute to these packages, see [.NET Core and Open-Source](../../../docs/framework/get-started/net-core-and-open-source.md), [.NET Home Page on GitHub](http://go.microsoft.com/fwlink/?LinkID=518635).
    

Zurück nach obenBack to top

Neuigkeiten in .NET Framework 4.5.2What's new in the .NET Framework 4.5.2

Zurück zum AnfangBack to top

Neuigkeiten in .NET Framework 4.5.1What's new in the .NET Framework 4.5.1

Updates für April 2014:April 2014 updates:

  • Visual Studio 2013 Update 2 enthält Updates für die Vorlagen der portablen Klassenbibliothek, um die folgenden Szenarien zu unterstützen:Visual Studio 2013 Update 2 includes updates to the Portable Class Library templates to support these scenarios:

    • Sie können die Windows-Runtime APIs in portablen Bibliotheken einsetzen, die Windows 8.1, Windows Phone 8.1 und Windows Phone Silverlight 8.1 als Ziel verwenden.You can use Windows Runtime APIs in portable libraries that target Windows 8.1, Windows Phone 8.1, and Windows Phone Silverlight 8.1.

    • Sie können XAML (Windows.UI.XAML-Typen) in portablen Bibliotheken einsetzen, wenn Sie Windows 8.1 oder Windows Phone 8.1 als Ziel verwenden.You can include XAML (Windows.UI.XAML types) in portable libraries when you target Windows 8.1 or Windows Phone 8.1. Die folgenden XAML-Vorlagen werden unterstützt: Leere Seite, Ressourcenverzeichnis, Steuerelement mit Vorlagen und Benutzersteuerelement.The following XAML templates are supported: Blank Page, Resource Dictionary, Templated Control, and User Control.

    • Sie können eine portable Komponente für Windows-Runtime (.winmd-Datei) für den Einsatz in Store-Apps erstellen, die Windows 8.1 und Windows Phone 8.1 als Ziel verwenden.You can create a portable Windows Runtime component (.winmd file) for use in Store apps that target Windows 8.1 and Windows Phone 8.1.

    • Sie können eine Windows Store- oder Windows Phone Store-Klassenbibliothek wie eine portable Klassenbibliothek neu zuweisen.You can retarget a Windows Store or Windows Phone Store class library like a Portable Class Library.

    Weitere Informationen zu diesen Änderungen finden Sie unter Portable Klassenbibliothek.For more information about these changes, see Portable Class Library.

  • Der .NET Framework-Inhaltssatz enthält nun Dokumentation für .NET systemeigen.NET Native, eine Vorkompilierungstechnologie für die Erstellung und Bereitstellung von Windows-Apps.The .NET Framework content set now includes documentation for .NET systemeigen.NET Native, which is a precompilation technology for building and deploying Windows apps. .NET systemeigen.NET Native kompiliert Ihre Apps direkt in systemeigenen Code anstelle einer Intermediate Language (IL) und erzielt dadurch eine bessere Leistung. compiles your apps directly to native code, rather than to intermediate language (IL), for better performance. Details hierzu finden Sie unter Kompilieren von Anwendungen mit .NET Native.For details, see Compiling Apps with .NET Native.

  • Die .NET Framework-Verweisquelle bietet ein neues Browsererlebnis und erweiterte Funktionen.The .NET Framework Reference Source provides a new browsing experience and enhanced functionality. Sie können den Quellcode von .NET Framework online durchsuchen, die Referenz herunterladen, um diese offline anzuzeigen, und den Quellcode (inklusive Patches und Updates) beim Debuggen schrittweise durchlaufen.You can now browse through the .NET Framework source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging. Weitere Informationen finden Sie im Blogeintrag A new look for .NET Reference Source.For more information, see the blog entry A new look for .NET Reference Source.

.NET Framework 4.5.1 enthält die folgenden neuen Kernfunktionen und -optimierungen:Core new features and enhancements in the .NET Framework 4.5.1 include:

  • Automatische Bindungsumleitung für Assemblys.Automatic binding redirection for assemblies. Ab Visual Studio 2013Visual Studio 2013 können beim Kompilieren einer App, deren Ziel .NET Framework 4.5.1.NET Framework 4.5.1 ist, Bindungsumleitungen zur App-Konfigurationsdatei hinzugefügt werden, wenn die App oder ihre Komponenten sich auf mehrere Versionen derselben Assembly beziehen.Starting with Visual Studio 2013Visual Studio 2013, when you compile an app that targets the .NET Framework 4.5.1.NET Framework 4.5.1, binding redirects may be added to the app configuration file if your app or its components reference multiple versions of the same assembly. Sie können diese Funktion auch für Projekte aktivieren, die frühere Versionen von .NET Framework als Ziel haben.You can also enable this feature for projects that target older versions of the .NET Framework. Weitere Informationen finden Sie unter Gewusst wie: Aktivieren und Deaktivieren der Bindungsumleitung.For more information, see How to: Enable and Disable Automatic Binding Redirection.

  • Fähigkeit, Diagnoseninformationen zu erfassen, um Entwicklern zu helfen, die Leistung von Server- und Cloud-Anwendungen zu verbessern.Ability to collect diagnostics information to help developers improve the performance of server and cloud applications. Weitere Informationen finden Sie unter den WriteEventWithRelatedActivityId- und WriteEventWithRelatedActivityIdCore-Methoden in der EventSource-Klasse.For more information, see the WriteEventWithRelatedActivityId and WriteEventWithRelatedActivityIdCore methods in the EventSource class.

  • Fähigkeit, während einer Garbage Collection den großen Objektheap (Large Object Heap, LOH) explizit zu komprimieren.Ability to explicitly compact the large object heap (LOH) during garbage collection. Weitere Informationen finden Sie in den Ausführungen zur GCSettings.LargeObjectHeapCompactionMode-Eigenschaft.For more information, see the GCSettings.LargeObjectHeapCompactionMode property.

  • Zusätzliche Leistungsverbesserungen wie ASP.NET-App-Unterbrechung, Multikern-JIT-Verbesserungen und schnellere App-Starts nach einem .NET Framework-Update.Additional performance improvements such as ASP.NET app suspension, multi-core JIT improvements, and faster app startup after a .NET Framework update. Ausführliche Informationen finden Sie in der .NET Framework 4.5.1-Ankündigung und im Blogbeitrag ASP.NET App Suspend.For details, see the .NET Framework 4.5.1 announcement and the ASP.NET app suspend blog post.

Verbesserungen für Windows Forms-Anwendungen:Improvements to Windows Forms include:

  • Größenänderungen in Windows Forms-Steuerelementen.Resizing in Windows Forms controls. Sie können die systemeigene DPI-Einstellung verwenden, um die Größe von Komponenten von Steuerelementen anzupassen (z. B. die Symbole in einem Eigenschaftenraster), indem Sie diese Funktion über einen Eintrag in der Anwendungskonfigurationsdatei (app.config) für Ihre App aktivieren.You can use the system DPI setting to resize components of controls (for example, the icons that appear in a property grid) by opting in with an entry in the application configuration file (app.config) for your app. Dieses Feature wird zurzeit für die folgenden Windows Forms-Steuerelemente unterstützt:This feature is currently supported in the following Windows Forms controls:

    PropertyGrid TreeView Einige Aspekte von DataGridView (weitere unterstützte Steuerelemente finden Sie unter Neue Features in 4.5.2)PropertyGrid TreeView Some aspects of the DataGridView (see new features in 4.5.2 for additional controls supported)

    Fügen Sie ein neues <appSettings>-Element zur Konfigurationsdatei (app.config) hinzu und setzen Sie das EnableWindowsFormsHighDpiAutoResizing-Element auf true, um dieses Feature zu aktivieren:To enable this feature, add a new <appSettings> element to the configuration file (app.config) and set the EnableWindowsFormsHighDpiAutoResizing element to true:

    <appSettings>
       <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    

Zu Verbesserungen beim Debuggen Ihrer .NET Framework-Apps in Visual Studio 2013Visual Studio 2013 zählen:Improvements when debugging your .NET Framework apps in Visual Studio 2013Visual Studio 2013 include:

  • Rückgabewerte im Visual Studio-Debugger.Return values in the Visual Studio debugger. Wenn Sie eine verwaltete App in Visual Studio 2013Visual Studio 2013 debuggen, werden Rückgabetypen und -werte für Methoden im Fenster "Auto" angezeigt.When you debug a managed app in Visual Studio 2013Visual Studio 2013, the Autos window displays return types and values for methods. Diese Informationen sind für Desktop-, Windows Store- und Windows Phone-Apps verfügbar.This information is available for desktop, Windows Store, and Windows Phone apps. Weitere Informationen finden Sie unter Überprüfen von Rückgabewerten der Methodenaufrufe in der MSDN Library.For more information, see Examine return values of method calls in the MSDN Library.

  • "Bearbeiten und Fortfahren" für 64-Bit-Apps.Edit and Continue for 64-bit apps. Visual Studio 2013Visual Studio 2013 unterstützt die Funktion "Bearbeiten und Fortfahren" für verwaltete 64-Bit-Apps für Desktops, Windows Store und Windows Phone. supports the Edit and Continue feature for 64-bit managed apps for desktop, Windows Store, and Windows Phone. Die vorhandenen Einschränkungen bleiben für 32-Bit- und 64-Bit-Apps wirksam (siehe den letzten Abschnitt des Artikels Unterstützte Codeänderungen (C#)).The existing limitations remain in effect for both 32-bit and 64-bit apps (see the last section of the Supported Code Changes (C#) article).

  • Async-bewusstes Debuggen.Async-aware debugging. Um das Debuggen asynchroner Apps in Visual Studio 2013Visual Studio 2013 zu vereinfachen, wird der Infrastrukturcode, der von Compilern zur Unterstützung asynchronen Programmierens bereitgestellt wird, in der Aufrufliste ausgeblendet. Ebenfalls erfolgt dort eine Verkettung mit logisch übergeordneten Rahmen, sodass der logischen Programmausführung übersichtlicher gefolgt werden kann.To make it easier to debug asynchronous apps in Visual Studio 2013Visual Studio 2013, the call stack hides the infrastructure code provided by compilers to support asynchronous programming, and also chains in logical parent frames so you can follow logical program execution more clearly. Ein Aufgabenfenster ersetzt das Fenster "Parallele Aufgaben" und zeigt Aufgaben an, die sich auf einen bestimmten Haltepunkt beziehen. Außerdem werden alle anderen Aufgaben angezeigt, die momentan aktiv oder in der App geplant sind.A Tasks window replaces the Parallel Tasks window and displays tasks that relate to a particular breakpoint, and also displays any other tasks that are currently active or scheduled in the app. Informationen zu diesem Feature finden Sie im Abschnitt „Async-bewusstes Debuggen“ in der .NET Framework 4.5.1-Ankündigung.You can read about this feature in the "Async-aware debugging" section of the .NET Framework 4.5.1 announcement.

  • Bessere Ausnahmeunterstützung für Windows-Runtime-Komponenten.Better exception support for Windows Runtime components. In Windows 8.1Windows 8.1 behalten Ausnahmen, die sich aus Windows Store-Apps ergeben, Informationen zum Fehler, der die Ausnahme ausgelöst hat, sogar über Sprachgrenzen bei.In Windows 8.1Windows 8.1, exceptions that arise from Windows Store apps preserve information about the error that caused the exception, even across language boundaries. Informationen zu diesem Feature finden Sie im Abschnitt „Windows Store-App-Entwicklung“ in der .NET Framework 4.5.1-Ankündigung.You can read about this feature in the "Windows Store app development" section of the .NET Framework 4.5.1 announcement.

Ab Visual Studio 2013Visual Studio 2013 können Sie zusätzlich das Managed Profile Guided Optimization Tool (Mpgo.exe) verwenden, um sowohl Windows 8.x StoreWindows 8.x Store-Apps als auch Desktop-Apps zu optimieren.Starting with Visual Studio 2013Visual Studio 2013, you can use the Managed Profile Guided Optimization Tool (Mpgo.exe) to optimize Windows 8.x StoreWindows 8.x Store apps as well as desktop apps.

Informationen zu neuen Funktionen in ASP.NET 4.5.1 finden Sie unter ASP.NET 4.5.1 und Visual Studio 2013 auf der ASP.NET-Website.For new features in ASP.NET 4.5.1, see ASP.NET 4.5.1 and Visual Studio 2013 on the ASP.NET site.

Zurück zum AnfangBack to top

Neuigkeiten in .NET Framework 4.5What's new in the .NET Framework 4.5

Wichtige neue Features und VerbesserungenCore new features and improvements

  • Weniger Systemneustarts durch Erkennen und Schließen von .NET Framework 4-Anwendungen bei der Bereitstellung.Ability to reduce system restarts by detecting and closing .NET Framework 4 applications during deployment. Siehe Reduzieren von Systemneustarts bei .NET Framework 4.5-Installationen.See Reducing System Restarts During .NET Framework 4.5 Installations.

  • Unterstützung von mehr als 2 Gigabyte (GB) großen Arrays auf 64-Bit-Plattformen.Support for arrays that are larger than 2 gigabytes (GB) on 64-bit platforms. Sie können die Funktion in der Anwendungskonfiguration aktivieren.This feature can be enabled in the application configuration file. Siehe das <gcAllowVeryLargeObjects>-Element, das auch andere Einschränkungen zur Objekt- und Arraygröße auflistet.See the <gcAllowVeryLargeObjects> element, which also lists other restrictions on object size and array size.

  • Bessere Leistung durch Garbage Collection im Hintergrund für Server.Better performance through background garbage collection for servers. Wenn Sie die Garbage Collection auf dem Server in .NET Framework 4.5.NET Framework 4.5 verwenden, wird die Garbage Collection im Hintergrund automatisch aktiviert.When you use server garbage collection in the .NET Framework 4.5.NET Framework 4.5, background garbage collection is automatically enabled. Siehe im Abschnitt „Garbage Collection auf dem Server im Hintergrund“ des Themas Grundlagen der Garbage Collection.See the Background Server Garbage Collection section of the Fundamentals of Garbage Collection topic.

  • Just-In-Time (JIT)-Kompilierung im Hintergrund zur Verbesserung der Anwendungsleistung, die optional auf Mehrkernprozessoren verfügbar ist.Background just-in-time (JIT) compilation, which is optionally available on multi-core processors to improve application performance. Siehe ProfileOptimization.See ProfileOptimization.

  • Festlegen der Zeit, die das Modul für reguläre Ausdrücke zum Auflösen eines regulären Ausdrucks bis zum Timeout benötigen darf. Siehe Regex.MatchTimeout-Eigenschaft.Ability to limit how long the regular expression engine will attempt to resolve a regular expression before it times out. See the Regex.MatchTimeout property.

  • Definieren der Standardkultur für eine Anwendungsdomäne.Ability to define the default culture for an application domain. Weitere Informationen finden Sie unter der CultureInfo-Klasse.See the CultureInfo class.

  • Konsolenunterstützung für Unicode-Codierung (UTF-16).Console support for Unicode (UTF-16) encoding. Weitere Informationen finden Sie unter der Console-Klasse.See the Console class.

  • Unterstützung für die Versionierung kulturabhängiger Zeichenfolgenreihenfolgen und -vergleichsdaten.Support for versioning of cultural string ordering and comparison data. Weitere Informationen finden Sie unter der SortVersion-Klasse.See the SortVersion class.

  • Bessere Leistung beim Abrufen von Ressourcen.Better performance when retrieving resources. Siehe Verpacken und Bereitstellen von Ressourcen.See Packaging and Deploying Resources.

  • Verbesserte ZIP-Komprimierung zur Reduzierung der Größe einer komprimierten Datei.Zip compression improvements to reduce the size of a compressed file. Siehe System.IO.Compression-Namespace.See the System.IO.Compression namespace.

  • Anpassen von Reflektionskontext zum Überschreiben des Standardreflektionsverhaltens mit der CustomReflectionContext-Klasse.Ability to customize a reflection context to override default reflection behavior through the CustomReflectionContext class.

  • Unterstützung der Version 2008 des IDNA-Standards (Internationalized Domain Names in Applications) beim Verwenden der System.Globalization.IdnMapping-Klasse in Windows 8Windows 8.Support for the 2008 version of the Internationalized Domain Names in Applications (IDNA) standard when the System.Globalization.IdnMapping class is used on Windows 8Windows 8.

  • Delegieren des Zeichenfolgenvergleichs an das Betriebssystem, wobei Unicode 6.0 implementiert wird, wenn .NET Framework in Windows 8Windows 8 verwendet wird.Delegation of string comparison to the operating system, which implements Unicode 6.0, when the .NET Framework is used on Windows 8Windows 8. Bei Ausführung auf anderen Plattformen verwendet .NET Framework eigene Zeichenfolgenvergleichsdaten, wobei Unicode 5.x. implementiert wird.When running on other platforms, the .NET Framework includes its own string comparison data, which implements Unicode 5.x. Siehe String-Klasse und den Abschnitt "Hinweise" der SortVersion-Klasse.See the String class and the Remarks section of the SortVersion class.

  • Berechnen der Hashcodes für Zeichenfolgen pro Anwendungsdomäne.Ability to compute the hash codes for strings on a per application domain basis. Siehe <UseRandomizedStringHashAlgorithm>-Element.See <UseRandomizedStringHashAlgorithm> Element.

  • Typspiegelung unterstützt eine Teilung zwischen Type und TypeInfo-Klassen.Type reflection support split between Type and TypeInfo classes. Siehe Reflektion in .NET Framework für Windows Store-Apps.See Reflection in the .NET Framework for Windows Store Apps.

Managed Extensibility Framework (MEF)Managed Extensibility Framework (MEF)

In .NET Framework 4.5.NET Framework 4.5 bietet das Managed Extensibility Framework (MEF) folgende neue Funktionen:In the .NET Framework 4.5.NET Framework 4.5, the Managed Extensibility Framework (MEF) provides the following new features:

  • Unterstützung von generischen Typen.Support for generic types.

  • Konventionsbasiertes Programmiermodell zum Erstellen von Teilen auf Grundlage von Namenskonventionen anstelle von Attributen.Convention-based programming model that enables you to create parts based on naming conventions rather than attributes.

  • Mehrere Bereiche.Multiple scopes.

  • Eine Teilmenge von MEF, die Sie verwenden können, wenn Sie Apps im Windows 8.x StoreWindows 8.x Store erstellen.A subset of MEF that you can use when you create Windows 8.x StoreWindows 8.x Store apps. Diese Teilmenge steht als herunterladbares Paket in der NuGet Gallery zur Verfügung.This subset is available as a downloadable package from the NuGet Gallery. Öffnen Sie zum Installieren des Pakets das Projekt in Visual Studio, wählen Sie im Menü Projekt die Option NuGet-Pakete verwalten aus, und suchen Sie online nach dem Microsoft.Composition-Paket.To install the package, open your project in Visual Studio, choose Manage NuGet Packages from the Project menu, and search online for the Microsoft.Composition package.

Weitere Informationen finden Sie unter Übersicht über das Managed Extensibility Framework.For more information, see Managed Extensibility Framework (MEF).

Asynchrone DateivorgängeAsynchronous file operations

In .NET Framework 4.5.NET Framework 4.5 wurden neue asynchrone Funktionen zu den Programmiersprachen C# und Visual Basic hinzugefügt.In the .NET Framework 4.5.NET Framework 4.5, new asynchronous features were added to the C# and Visual Basic languages. Diese Funktionen ergänzen ein aufgabenbasiertes Modell zum Ausführen von asynchronen Vorgängen.These features add a task-based model for performing asynchronous operations. Verwenden Sie dieses neue Modell mithilfe der asynchronen Methoden in den E/A-Klassen.To use this new model, use the asynchronous methods in the I/O classes. Siehe Asynchrone Datei-E/A.See Asynchronous File I/O.

ToolsTools

In .NET Framework 4.5.NET Framework 4.5 können Sie mit dem Resource File Generator-Tool (Resgen.exe) aus einer RESOURCES-Datei, die in einer .NET Framework-Assembly eingebettet ist, eine RESW-Datei für Windows 8.x StoreWindows 8.x Store-Apps erstellen.In the .NET Framework 4.5.NET Framework 4.5, Resource File Generator (Resgen.exe) enables you to create a .resw file for use in Windows 8.x StoreWindows 8.x Store apps from a .resources file embedded in a .NET Framework assembly. Weitere Informationen finden Sie unter Resgen.exe (Resource File Generator).For more information, see Resgen.exe (Resource File Generator).

Mit Managed Profile Guided Optimization (Mpgo.exe) können Sie die Anwendungsstartzeit, die Arbeitsspeicherauslastung (Workingsetgröße) und den Durchsatz verbessern, indem Sie die Assemblys systemeigener Abbilder optimieren.Managed Profile Guided Optimization (Mpgo.exe) enables you to improve application startup time, memory utilization (working set size), and throughput by optimizing native image assemblies. Das Befehlszeilentool generiert Profildaten für Anwendungsassemblys systemeigener Abbilder.The command-line tool generates profile data for native image application assemblies. Siehe Mpgo.exe (verwaltetes, profilgesteuertes Optimierungstool).See Mpgo.exe (Managed Profile Guided Optimization Tool). Ab Visual Studio 2013Visual Studio 2013 können Sie Mpgo.exe verwenden, um Windows 8.x StoreWindows 8.x Store-Apps und Desktop-Apps zu optimieren.Starting with Visual Studio 2013Visual Studio 2013, you can use Mpgo.exe to optimize Windows 8.x StoreWindows 8.x Store apps as well as desktop apps.

Parallele ComputervorgängeParallel computing

.NET Framework 4.5.NET Framework 4.5 stellt mehrere neue Funktionen und Verbesserungen für parallele Berechnung bereit.The .NET Framework 4.5.NET Framework 4.5 provides several new features and improvements for parallel computing. Dazu gehören leistungsfähigere, erweiterte Steuerungsmöglichkeiten, verbesserte Unterstützung für asynchrone Programmierung, eine neue Datenflussbibliothek und verbesserte Unterstützung für paralleles Debuggen und Leistungsanalyse.These include improved performance, increased control, improved support for asynchronous programming, a new dataflow library, and improved support for parallel debugging and performance analysis. Siehe den Eintrag zu den Neuerungen hinsichtlich der Parallelität in .NET 4.5 im Blog zur parallelen Programmierung mit .NET.See the entry What’s New for Parallelism in .NET 4.5 in the Parallel Programming with .NET blog.

WebWeb

In ASP.NET 4.5 und 4.5.1 wurden die Modellbindung für Webformulare, WebSocket-Unterstützung, asynchrone Handler, Leistungserweiterungen und viele weitere Funktionen hinzugefügt.ASP.NET 4.5 and 4.5.1 add model binding for Web Forms, WebSocket support, asynchronous handlers, performance enhancements, and many other features. Weitere Informationen finden Sie in den folgenden Ressourcen:For more information, see the following resources:

NetzwerkNetworking

.NET Framework 4.5.NET Framework 4.5 stellt eine neue Programmierschnittstelle für HTTP-Anwendungen bereit.The .NET Framework 4.5.NET Framework 4.5 provides a new programming interface for HTTP applications. Weitere Informationen finden Sie in den neuen Namespaces System.Net.Http und System.Net.Http.Headers.For more information, see the new System.Net.Http and System.Net.Http.Headers namespaces.

Unterstützt wird jetzt auch eine neue Programmierschnittstelle, um eine WebSocket-Verbindung mithilfe der vorhandenen HttpListener-Klasse und verknüpften Klassen anzunehmen und mit dieser zu interagieren.Support is also included for a new programming interface for accepting and interacting with a WebSocket connection by using the existing HttpListener and related classes. Weitere Informationen finden Sie im neuen System.Net.WebSockets-Namespace und in der HttpListener-Klasse.For more information, see the new System.Net.WebSockets namespace and the HttpListener class.

Darüber hinaus enthält .NET Framework 4.5.NET Framework 4.5 folgende Netzwerkfunktionsverbesserungen:In addition, the .NET Framework 4.5.NET Framework 4.5 includes the following networking improvements:

  • RFC-kompatible URI-Unterstützung.RFC-compliant URI support. Weitere Informationen finden Sie in der Uri-Klasse und verknüpften Klassen.For more information, see Uri and related classes.

  • Unterstützung für IDN (Internationalized Domain Name)-Analysen.Support for Internationalized Domain Name (IDN) parsing. Weitere Informationen finden Sie in der Uri-Klasse und verknüpften Klassen.For more information, see Uri and related classes.

  • Unterstützung für E-Mail-Adressen-Internationalisierung (EAI).Support for Email Address Internationalization (EAI). Weitere Informationen finden Sie unter den Ausführungen zum System.Net.Mail-Namespace.For more information, see the System.Net.Mail namespace.

  • Verbesserte IPv6-Unterstützung.Improved IPv6 support. Weitere Informationen finden Sie unter den Ausführungen zum System.Net.NetworkInformation-Namespace.For more information, see the System.Net.NetworkInformation namespace.

  • Dual-Modus-Socket-Unterstützung.Dual-mode socket support. Weitere Informationen finden Sie in den Ausführungen zur Socket-Klasse und zur TcpListener-Klasse.For more information, see the Socket and TcpListener classes.

Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)

In der Version .NET Framework 4.5.NET Framework 4.5 wurde Windows Presentation Foundation (WPF) in vielen Bereichen überarbeitet und verbessert. Dazu gehören:In the .NET Framework 4.5.NET Framework 4.5, Windows Presentation Foundation (WPF) contains changes and improvements in the following areas:

  • Das neue Ribbon-Steuerelement, mit dem Sie eine Menüband-Benutzeroberfläche implementieren können, die eine Symbolleiste für den Schnellzugriff, ein Anwendungsmenü und Registerkarten hostet.The new Ribbon control, which enables you to implement a ribbon user interface that hosts a Quick Access Toolbar, Application Menu, and tabs.

  • Die neue INotifyDataErrorInfo-Schnittstelle, die synchrone und asynchrone Datenvalidierung unterstützt.The new INotifyDataErrorInfo interface, which supports synchronous and asynchronous data validation.

  • Neue Funktionen für die VirtualizingPanel- und Dispatcher-Klassen.New features for the VirtualizingPanel and Dispatcher classes.

  • Verbesserte Leistung beim Anzeigen großer Datengruppierungen sowie durch den Zugriff auf Auflistungen in Nicht-UI-Threads.Improved performance when displaying large sets of grouped data, and by accessing collections on non-UI threads.

  • Datenbindung an statische Eigenschaften, Datenbindung an benutzerdefinierte Typen, die die ICustomTypeProvider-Schnittstelle implementieren, und Abrufen von Datenbindungsinformationen von einem Bindungsausdruck.Data binding to static properties, data binding to custom types that implement the ICustomTypeProvider interface, and retrieval of data binding information from a binding expression.

  • Neupositionierung von Daten bei Wertänderung (Live-Strukturierung).Repositioning of data as the values change (live shaping).

  • Überprüfen einer möglicherweise getrennten Verbindung des Datenkontexts für einen Elementcontainer.Ability to check whether the data context for an item container is disconnected.

  • Festlegen der Zeit, die zwischen Eigenschaftenänderungen und Datenquellenupdates verstreichen soll.Ability to set the amount of time that should elapse between property changes and data source updates.

  • Verbesserte Unterstützung für das Implementieren schwacher Ereignismuster.Improved support for implementing weak event patterns. Zudem können Ereignisse jetzt Markuperweiterungen akzeptieren.Also, events can now accept markup extensions.

Windows Communication Foundation (WCF)Windows Communication Foundation (WCF)

Um das Schreiben und Verwalten von Windows Communication Foundation (WCF)-Anwendungen zu erleichtern, wurden in .NET Framework 4.5.NET Framework 4.5 folgende Funktionen hinzugefügt:In the .NET Framework 4.5.NET Framework 4.5, the following features have been added to make it simpler to write and maintain Windows Communication Foundation (WCF) applications:

  • Vereinfachung von generierten Konfigurationsdateien.Simplification of generated configuration files.

  • Unterstützung für Contract-First-Entwicklung.Support for contract-first development.

  • Leichteres Konfigurieren des ASP.NET-Kompatibilitätsmodus.Ability to configure ASP.NET compatibility mode more easily.

  • Änderungen in den standardmäßigen Transporteigenschaftswerten, um die Wahrscheinlichkeit zu reduzieren, dass Sie sie festlegen müssen.Changes in default transport property values to reduce the likelihood that you will have to set them.

  • Updates der XmlDictionaryReaderQuotas-Klasse, um die Wahrscheinlichkeit zu reduzieren, dass Sie Kontingente für XML-Wörterbuch-Reader manuell konfigurieren müssen.Updates to the XmlDictionaryReaderQuotas class to reduce the likelihood that you will have to manually configure quotas for XML dictionary readers.

  • Validierung von WCF-Konfigurationsdateien von Visual Studio als Teil des Buildprozesses, sodass Sie Konfigurationsfehler erkennen können, bevor Sie die Anwendung ausführen.Validation of WCF configuration files by Visual Studio as part of the build process, so you can detect configuration errors before you run your application.

  • Neue Unterstützung für asynchrones Streaming.New asynchronous streaming support.

  • Neue HTTPS-Protokollzuordnung zur leichteren Bereitstellung eines Endpunkts über HTTPS mit IIS (Internetinformationsdienste).New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS with Internet Information Services (IIS).

  • Generieren von Metadaten in einem einzelnen WSDL-Dokument durch Anfügen von ?singleWSDL an die Dienst-URL.Ability to generate metadata in a single WSDL document by appending ?singleWSDL to the service URL.

  • Websockets-Unterstützung für echte bidirektionale Kommunikation über die Ports 80 und 443 mit TCP-transportähnlichen Leistungsmerkmalen.Websockets support to enable true bidirectional communication over ports 80 and 443 with performance characteristics similar to the TCP transport.

  • Unterstützung für das Konfigurieren von Diensten im Code.Support for configuring services in code.

  • XML-Editor-QuickInfos.XML Editor tooltips.

  • Unterstützung von ChannelFactory-Cachediensten.ChannelFactory caching support.

  • Unterstützung für die Komprimierung binärer Encoder.Binary encoder compression support.

  • Unterstützung für einen UDP-Transport, mit dem Entwickler "Fire and Forget" (Auslösen und Vergessen)-Messaging-Dienste schreiben können.Support for a UDP transport that enables developers to write services that use "fire and forget" messaging. Ein Client sendet eine Nachricht an einen Dienst und erwartet von diesem keine Antwort.A client sends a message to a service and expects no response from the service.

  • Unterstützung mehrerer Authentifizierungsmodi auf einem einzelnen WCF-Endpunkt beim Verwenden von HTTP-Transport und -Transportsicherheit.Ability to support multiple authentication modes on a single WCF endpoint when using the HTTP transport and transport security.

  • Unterstützung für WCF-Dienste, die internationale Domänennamen (IDNs) verwenden.Support for WCF services that use internationalized domain names (IDNs).

Weitere Informationen finden Sie unter Neues in Windows Communication Foundation.For more information, see What's New in Windows Communication Foundation.

Windows Workflow Foundation (WF)Windows Workflow Foundation (WF)

In der Version .NET Framework 4.5.NET Framework 4.5 gibt es jetzt viele neue Funktionen in Windows Workflow Foundation (WF), darunter:In the .NET Framework 4.5.NET Framework 4.5, several new features were added to Windows Workflow Foundation (WF), including:

  • Zustandsautomatworkflows, die zunächst als Teil von .NET Framework 4.0.1 (.NET Framework 4 Platform-Update 1) eingeführt wurden.State machine workflows, which were first introduced as part of the .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1). Dieses Update umfasste mehrere neue Klassen und Aktivitäten, sodass Entwickler Zustandsautomatworkflows erstellen konnten.This update included several new classes and activities that enabled developers to create state machine workflows. Diese Klassen und Aktivitäten wurden für .NET Framework 4.5.NET Framework 4.5 aktualisiert und umfassen nun Folgendes:These classes and activities were updated for the .NET Framework 4.5.NET Framework 4.5 to include:

    • Festlegen von Haltepunkten für Zustände.The ability to set breakpoints on states.

    • Kopieren und Einfügen von Übergängen im Workflow Designer.The ability to copy and paste transitions in the workflow designer.

    • Designerunterstützung für das Erstellen von freigegebenen Triggerübergängen.Designer support for shared trigger transition creation.

    • Aktivitäten zum Erstellen von Zustandsautomatworkflows, einschließlich StateMachine, State und Transition.Activities for creating state machine workflows, including: StateMachine, State, and Transition.

  • Verbesserte Workflow Designer-Funktionen, z. B.:Enhanced Workflow Designer features such as the following:

    • Verbesserte Workflowsuchfunktionen in Visual Studio, einschließlich Schnellsuche und In Dateien suchen.Enhanced workflow search capabilities in Visual Studio, including Quick Find and Find in Files.

    • Automatisches Erstellen einer Sequenzaktivität, wenn eine zweite untergeordnete Aktivität zu einer Containeraktivität hinzugefügt wird, und Einschließen beider Aktivitäten in die Sequenzaktivität.Ability to automatically create a Sequence activity when a second child activity is added to a container activity, and to include both activities in the Sequence activity.

    • Schwenk-Unterstützung zur Änderung des sichtbaren Teils eines Workflows ohne die Verwendung von Bildlaufleisten.Panning support, which enables the visible portion of a workflow to be changed without using the scroll bars.

    • Die neue Ansicht Dokumentgliederung, die die Gliederungsansicht der Workflowkomponenten in einer Baumstruktur anzeigt und die Auswahl einer Komponente in der Ansicht Dokumentgliederung ermöglicht.A new Document Outline view that shows the components of a workflow in a tree-style outline view and lets you select a component in the Document Outline view.

    • Hinzufügen von Anmerkungen zu Aktivitäten.Ability to add annotations to activities.

    • Definieren und Verarbeiten von Aktivitätsdelegaten mit dem Workflow Designer.Ability to define and consume activity delegates by using the workflow designer.

    • Automatisches Verbinden und Einfügen für Aktivitäten und Übergänge in Zustandsautomaten- und Flussdiagrammworkflows.Auto-connect and auto-insert for activities and transitions in state machine and flowchart workflows.

  • Speichern der Ansichtszustandsinformationen für einen Workflow in einem einzelnen Element in der XAML-Datei, sodass Sie die Ansichtszustandsinformationen leicht finden und bearbeiten können.Storage of the view state information for a workflow in a single element in the XAML file, so you can easily locate and edit the view state information.

  • Eine NoPersistScope-Containeraktivität, damit untergeordnete Aktivitäten nicht beibehalten werden.A NoPersistScope container activity to prevent child activities from persisting.

  • Unterstützung von C#-Ausdrücken:Support for C# expressions:

    • Visual Basic-Workflowprojekte verwenden Visual Basic-Ausdrücke, und C#-Workflowprojekte verwenden C#-Ausdrücke.Workflow projects that use Visual Basic will use Visual Basic expressions, and C# workflow projects will use C# expressions.

    • C#-Workflowprojekte, die in Visual Studio 2010 erstellt wurden und Visual Basic-Ausdrücke verwenden, sind mit C#-Workflowprojekten, die C#-Ausdrücke verwenden, kompatibel.C# workflow projects that were created in Visual Studio 2010 and that have Visual Basic expressions are compatible with C# workflow projects that use C# expressions.

  • Versionsverwaltungserweiterungen:Versioning enhancements:

    • Die neue WorkflowIdentity-Klasse, die eine Zuordnung zwischen einer beibehaltenen Workflowinstanz und ihrer Workflowdefinition bietet.The new WorkflowIdentity class, which provides a mapping between a persisted workflow instance and its workflow definition.

    • Parallele Ausführung mehrerer Workflowversionen im selben Host, einschließlich WorkflowServiceHost.Side-by-side execution of multiple workflow versions in the same host, including WorkflowServiceHost.

    • Die Änderbarkeit der Definition einer beibehaltenen Workflowinstanz im Rahmen eines dynamischen Updates.In Dynamic Update, the ability to modify the definition of a persisted workflow instance.

  • Contract-First-Workflowdienstentwicklung, die das automatische Generieren von Aktivitäten zur Übereinstimmung mit einem vorhandenen Dienstvertrag unterstützt.Contract-first workflow service development, which provides support for automatically generating activities to match an existing service contract.

Weitere Informationen finden Sie unter Neues in Windows Workflow Foundation.For more information, see What's New in Windows Workflow Foundation.

.NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps

Windows 8.x StoreWindows 8.x Store-Apps werden für bestimmte Formularfaktoren entworfen und nutzen die Leistungsfähigkeit des Windows-Betriebssystems. apps are designed for specific form factors and leverage the power of the Windows operating system. Eine Teilmenge von .NET Framework 4.5.NET Framework 4.5 oder 4.5.1 kann mithilfe von C# oder Visual Basic zum Erstellen von Windows 8.x StoreWindows 8.x Store-Apps in Windows verwendet werden.A subset of the .NET Framework 4.5.NET Framework 4.5 or 4.5.1 is available for building Windows 8.x StoreWindows 8.x Store apps for Windows by using C# or Visual Basic. Diese Teilmenge wird .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps genannt und in einer Übersicht im Windows Developer Center erläutert.This subset is called .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps and is discussed in an overview in the Windows Dev Center.

Portable KlassenbibliothekenPortable Class Libraries

Mit dem Projekt "Portable Klassenbibliothek" in Visual Studio 2012Visual Studio 2012 (und Folgeversionen) können Sie verwaltete Assemblys, die auf mehreren .NET Framework-Plattformen ausgeführt werden können, schreiben und erstellen.The Portable Class Library project in Visual Studio 2012Visual Studio 2012 (and later versions) enables you to write and build managed assemblies that work on multiple .NET Framework platforms. Mit einem "Portable Klassenbibliothek"-Projekt wählen Sie die Zielplattformen (wie Windows Phone und .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps).Using a Portable Class Library project, you choose the platforms (such as Windows Phone and .NET für Windows 8.x Store-Apps.NET for Windows 8.x Store apps) to target. Die verfügbaren Typen und Member im Projekt werden automatisch auf die allgemeinen Typen und Member dieser Plattformen beschränkt.The available types and members in your project are automatically restricted to the common types and members across these platforms. Weitere Informationen finden Sie in der Dokumentation zur Portablen Klassenbibliothek.For more information, see Portable Class Library.

Siehe auchSee Also

.NET Framework und Out-of-Band-Releases The .NET Framework and Out-of-Band Releases
Neuerungen der Barrierefreiheit in .NET Framework What's new in accessibility in the .NET Framework
Neues in Visual Studio 2017 What's New in Visual Studio 2017
ASP.NET ASP.NET
Neues in Visual C++What’s New in Visual C++