Co je nového v .NET FrameworkWhat's new in .NET Framework

Poznámka

.NET Framework 4,8 je poslední verzí .NET Framework a nebudou zveřejněny žádné další verze..NET Framework 4.8 is the last version of .NET Framework, and no further versions will be released. .NET Framework se ale budou dál obsluhovat pomocí měsíčních oprav chyb zabezpečení a spolehlivosti.However, .NET Framework will continue to be serviced with monthly security and reliability bug fixes. Kromě toho bude i nadále součástí systému Windows, bez plánů k jeho odebrání.Additionally, it will continue to be included with Windows, with no plans to remove it. Nemusíte migrovat aplikace .NET Framework, ale pro nový vývoj použijte .net 5,0 nebo novější.You don't need to migrate your .NET Framework apps, but for new development, use .NET 5.0 or later.

Tento článek shrnuje klíčové nové funkce a vylepšení v následujících verzích .NET Framework:This article summarizes key new features and improvements in the following versions of .NET Framework:

Tento článek neposkytuje úplné informace o každé nové funkci a může se změnit.This article does not provide comprehensive information about each new feature and is subject to change. Obecné informace o .NET Framework najdete v tématu Začínáme.For general information about .NET Framework, see Getting Started. Podporované platformy najdete v tématu požadavky na systém.For supported platforms, see System Requirements. Odkazy na stažení a pokyny k instalaci najdete v Průvodci instalacínástroje.For download links and installation instructions, see Installation Guide.

Poznámka

.NET Framework tým také uvolní funkce mimo pásmo, pomocí NuGet, rozbalí podporu platforem a zavádí nové funkce, jako jsou neměnné kolekce a typy vektorů s podporou SIMD.The .NET Framework team also releases features out of band, using NuGet, to expand platform support and introduce new functionality, such as immutable collections and SIMD-enabled vector types. Další informace najdete v tématech Další knihovny tříd a rozhraní API a .NET Framework a vzdálené verze.For more information, see Additional Class Libraries and APIs and .NET Framework and Out-of-Band Releases. Podívejte se na úplný seznam balíčků NuGet pro .NET Framework.See a complete list of NuGet packages for .NET Framework.

Představujeme .NET Framework 4,8Introducing .NET Framework 4.8

.NET Framework 4,8 sestaví na předchozích verzích .NET Framework 4. x přidáním mnoha nových oprav a několika nových funkcí a zbývajícím produktem..NET Framework 4.8 builds on previous versions of .NET Framework 4.x by adding many new fixes and several new features while remaining a very stable product.

Stažení a instalace .NET Framework 4,8Download and install .NET Framework 4.8

.NET Framework 4,8 si můžete stáhnout z těchto umístění:You can download .NET Framework 4.8 from the following locations:

.NET Framework 4,8 lze nainstalovat do systému Windows 10, Windows 8.1, Windows 7 SP1 a odpovídajících serverových platforem od verze Windows Server 2008 R2 SP1..NET Framework 4.8 can be installed on Windows 10, Windows 8.1, Windows 7 SP1, and the corresponding server platforms starting with Windows Server 2008 R2 SP1. .NET Framework 4,8 můžete nainstalovat buď pomocí webové instalační služby, nebo v offline instalačním programu.You can install .NET Framework 4.8 by using either the web installer or the offline installer. Doporučeným způsobem pro většinu uživatelů je použití webové instalační služby.The recommended way for most users is to use the web installer.

Můžete cílit .NET Framework 4,8 v sadě Visual Studio 2012 nebo novější instalací sady .NET Framework 4,8 Developer Pack.You can target .NET Framework 4.8 in Visual Studio 2012 or later by installing the .NET Framework 4.8 Developer Pack.

Co je nového v .NET Framework 4,8What's new in .NET Framework 4.8

.NET Framework 4,8 zavádí nové funkce v následujících oblastech:.NET Framework 4.8 introduces new features in the following areas:

Vylepšené přístupnost, která aplikaci umožňuje zajistit vhodné prostředí pro uživatele technologie pro usnadnění práce, je nadále hlavním cílem .NET Framework 4,8.Improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology, continues to be a major focus of .NET Framework 4.8. Informace o vylepšeních usnadnění v .NET Framework 4,8 najdete v tématu co je nového v přístupnosti v .NET Framework.For information on accessibility improvements in .NET Framework 4.8, see What's new in accessibility in .NET Framework.

Základní třídyBase classes

Byl snížen dopad FIPS na kryptografii.Reduced FIPS impact on Cryptography. V předchozích verzích .NET Framework spravované třídy zprostředkovatele kryptografických služeb, jako je například SHA256Managed throw a, CryptographicException Pokud jsou systémové šifrovací knihovny nastaveny v režimu FIPS.In previous versions of .NET Framework, managed cryptographic provider classes such as SHA256Managed throw a CryptographicException when the system cryptographic libraries are configured in "FIPS mode". Tyto výjimky jsou vyvolány, protože spravované verze tříd zprostředkovatele kryptografických služeb, na rozdíl od systémových kryptografických knihoven, neprošly certifikací FIPS (Federal Information Processing Standards) 140-2.These exceptions are thrown because the managed versions of the cryptographic provider classes, unlike the system cryptographic libraries, have not undergone FIPS (Federal Information Processing Standards) 140-2 certification. Vzhledem k tomu, že někteří vývojáři mají své vývojové počítače v režimu FIPS, jsou výjimky obvykle vyvolány v produkčních systémech.Because few developers have their development machines in FIPS mode, the exceptions are commonly thrown in production systems.

Ve výchozím nastavení nejsou v aplikacích, které cílí na .NET Framework 4,8, následující spravované třídy kryptografie již CryptographicException v tomto případě vyvolávat:By default in applications that target .NET Framework 4.8, the following managed cryptography classes no longer throw a CryptographicException in this case:

Místo toho tyto třídy přesměrují kryptografické operace do systémové knihovny kryptografie.Instead, these classes redirect cryptographic operations to a system cryptography library. Tato změna efektivně odstraňuje potenciálně matoucí rozdíl mezi vývojářskými prostředími a provozními prostředími a zpřístupňuje nativní komponenty a spravované komponenty v rámci stejných kryptografických zásad.This change effectively removes a potentially confusing difference between developer environments and production environments and makes native components and managed components operate under the same cryptographic policy. Aplikace, které závisí na těchto výjimkách, mohou obnovit předchozí chování nastavením přepínače AppContext Switch.System.Security.Cryptography.UseLegacyFipsThrow na true .Applications that depend on these exceptions can restore the previous behavior by setting the AppContext switch Switch.System.Security.Cryptography.UseLegacyFipsThrow to true. Další informace najdete v tématu spravované kryptografické třídy nevyvolávají výjimku CryptographyException v režimu FIPS.For more information, see Managed cryptography classes do not throw a CryptographyException in FIPS mode.

Použití aktualizované verze ZLibUse of updated version of ZLib

Počínaje .NET Framework 4,5 clrcompression.dll sestavení používá ZLib, nativní externí knihovnu pro kompresi dat, aby bylo možné poskytnout implementaci pro algoritmus deflate.Starting with .NET Framework 4.5, the clrcompression.dll assembly uses ZLib, a native external library for data compression, in order to provide an implementation for the deflate algorithm. Verze clrcompression.dll .NET Framework 4,8 se aktualizuje tak, aby používala ZLib verze 1.2.11, která zahrnuje několik klíčových vylepšení a oprav.The .NET Framework 4.8 version of clrcompression.dll is updated to use ZLib Version 1.2.11, which includes several key improvements and fixes.

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

Úvod do ServiceHealthBehaviorIntroduction of ServiceHealthBehavior

Nástroje pro orchestraci využívají koncové body stavu ke správě služeb na základě jejich stavu.Health endpoints are widely used by orchestration tools to manage services based on their health status. Kontroly stavu lze také použít pomocí nástrojů pro monitorování ke sledování a poskytování oznámení o dostupnosti a výkonu služby.Health checks can also be used by monitoring tools to track and provide notifications about the availability and performance of a service.

ServiceHealthBehavior je chování služby WCF, které rozšiřuje IServiceBehavior .ServiceHealthBehavior is a WCF service behavior that extends IServiceBehavior. Při přidání do ServiceDescription.Behaviors kolekce provede chování služby následující akce:When added to the ServiceDescription.Behaviors collection, a service behavior does the following:

  • Vrátí stav služby s kódy odpovědí HTTP.Returns service health status with HTTP response codes. V řetězci dotazu můžete zadat stavový kód HTTP pro požadavek na test stavu HTTP/GET.You can specify in a query string the HTTP status code for a HTTP/GET health probe request.

  • Publikuje informace o stavu služby.Publishes information about service health. Podrobnosti konkrétní služby, včetně stavu služby, počtu omezení a kapacity, se dají zobrazit pomocí požadavku HTTP/GET s ?health řetězcem dotazu.Service-specific details, including service state, throttle counts, and capacity can be displayed by using an HTTP/GET request with the ?health query string. Usnadnění přístupu k těmto informacím je důležité při řešení potíží se službou WCF, která se nechová.Ease of access to such information is important when troubleshooting a misbehaving WCF service.

Existují dva způsoby, jak vystavit koncový bod stavu a publikovat informace o stavu služby WCF:There are two ways to expose the health endpoint and publish WCF service health information:

  • Prostřednictvím kódu.Through code. Například:For example:

    ServiceHost host = new ServiceHost(typeof(Service1),
                       new Uri("http://contoso:81/Service1"));
    ServiceHealthBehavior healthBehavior =
        host.Description.Behaviors.Find<ServiceHealthBehavior>();
    healthBehavior ??= new ServiceHealthBehavior();
    host.Description.Behaviors.Add(healthBehavior);
    
    Dim host As New ServiceHost(GetType(Service1),
                New Uri("http://contoso:81/Service1"))
    Dim healthBehavior As ServiceHealthBehavior =
       host.Description.Behaviors.Find(Of ServiceHealthBehavior)()
    If healthBehavior Is Nothing Then
       healthBehavior = New ServiceHealthBehavior()
    End If
    host.Description.Behaviors.Add(healthBehavior)
    
  • Pomocí konfiguračního souboru.By using a configuration file. Například:For example:

    <behaviors>
      <serviceBehaviors>
        <behavior name="DefaultBehavior">
          <serviceHealth httpsGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    

Na stav služby se dá zadat dotaz pomocí parametrů dotazu OnServiceFailure , jako jsou,, a OnDispatcherFailure OnListenerFailure OnThrottlePercentExceeded ), a pro každý parametr dotazu je možné zadat kód odpovědi HTTP.A service's health status can be queried by using query parameters such as OnServiceFailure, OnDispatcherFailure, OnListenerFailure, OnThrottlePercentExceeded), and an HTTP response code can be specified for each query parameter. Pokud je pro parametr dotazu vynechání kódu odpovědi HTTP, ve výchozím nastavení se používá kód odpovědi HTTP 503.If the HTTP response code is omitted for a query parameter, a 503 HTTP response code is used by default. Například:For example:

Parametry a příklady dotazů:Query parameters and examples:

  • OnDispatcherFailure: https://contoso:81/Service1?health&OnDispatcherFailure=455OnDispatcherFailure: https://contoso:81/Service1?health&OnDispatcherFailure=455

    Stavový kód odpovědi HTTP 455 se vrátí, pokud je stav některého z přeslaných kanálů větší než CommunicationState.Opened .A 455 HTTP response status code is returned when the state of any of the channel dispatchers is greater than CommunicationState.Opened.

  • OnListenerFailure: https://contoso:81/Service1?health&OnListenerFailure=465OnListenerFailure: https://contoso:81/Service1?health&OnListenerFailure=465

    Stavový kód odpovědi HTTP 465 se vrátí, pokud je stav jakéhokoli naslouchacího procesu kanálu větší než CommunicationState.Opened .A 465 HTTP response status code is returned when the state of any of the channel listeners is greater than CommunicationState.Opened.

  • OnThrottlePercentExceeded: https://contoso:81/Service1?health&OnThrottlePercentExceeded= 70:350,95:500OnThrottlePercentExceeded: https://contoso:81/Service1?health&OnThrottlePercentExceeded= 70:350,95:500

    Určuje procento {1 – 100}, které aktivuje odpověď a kód odpovědi HTTP {200 – 599}.Specifies the percentage {1 – 100} that triggers the response and its HTTP response code {200 – 599}. V tomto příkladu:In this example:

    • Pokud je procento větší než 95, vrátí se kód odpovědi HTTP 500.If the percentage is greater than 95, a 500 HTTP response code is returned.

    • Pokud je vráceno procento nebo mezi 70 a 95, 350.If the percentage or between 70 and 95, 350 is returned.

    • V opačném případě se vrátí 200.Otherwise, 200 is returned.

Stav služby se dá zobrazit v HTML zadáním řetězce dotazu, jako je https://contoso:81/Service1?health nebo v XML, zadáním řetězce dotazu, jako je https://contoso:81/Service1?health&Xml .The service health status can be displayed either in HTML by specifying a query string like https://contoso:81/Service1?health or in XML by specifying a query string like https://contoso:81/Service1?health&Xml. Řetězec dotazu jako https://contoso:81/Service1?health&NoContent vrátí prázdnou stránku HTML.A query string like https://contoso:81/Service1?health&NoContent returns an empty HTML page.

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

Vylepšení vysokého rozlišení DPIHigh DPI enhancements

V .NET Framework 4,8 WPF přidává podporu pro sledování DPI Per-Monitor v2 a Mixed-Mode škálování DPI.In .NET Framework 4.8, WPF adds support for Per-Monitor V2 DPI Awareness and Mixed-Mode DPI scaling. Další informace o vývoji vysokého rozlišení DPI najdete v tématu vývoj desktopových aplikací s vysokým rozlišením v systému Windows .See High DPI Desktop Application Development on Windows for additional information about high DPI development.

.NET Framework 4,8 vylepšuje podporu hostovaných HWND a model Windows Forms spolupráce v aplikacích WPF s vysokým rozlišením DPI na platformách, které podporují škálování Mixed-Mode DPI (od aktualizace Windows 10. dubna 2018)..NET Framework 4.8 improves support for hosted HWNDs and Windows Forms interoperation in High-DPI WPF applications on platforms that support Mixed-Mode DPI scaling (starting with Windows 10 April 2018 Update). Když jsou hostované ovládací prvky HWND nebo model Windows Forms vytvořené jako Mixed-Mode systému Windows s rozlišením DPI voláním SetThreadDpiHostingBehavior a SetThreadDpiAwarenessContext, můžou být hostované v aplikaci WPF v Per-Monitor v2 a správně škálovat a měnit jejich velikost.When hosted HWNDs or Windows Forms controls are created as Mixed-Mode DPI-scaled windows by calling SetThreadDpiHostingBehavior and SetThreadDpiAwarenessContext, they can be hosted in a Per-Monitor V2 WPF application and are sized and scaled appropriately. Takový hostovaný obsah se nevykresluje s nativním rozlišením DPI; operační systém místo toho škáluje hostovaný obsah na příslušnou velikost.Such hosted content is not rendered at the native DPI; instead, the operating system scales the hosted content to the appropriate size. Podpora režimu sledování DPI Per-Monitor v2 také umožňuje hostování ovládacích prvků WPF (tj. nadřazených) v nativním okně v aplikaci s vysokým rozlišením DPI.The support for Per-Monitor v2 DPI awareness mode also allows WPF controls to be hosted (i.e., parented) in a native window in a high-DPI application.

Pokud chcete povolit podporu Mixed-Mode škálování s vysokým rozlišením DPI, můžete nastavit následující AppContext přepínače konfiguračního souboru aplikace:To enable support for Mixed-Mode High DPI scaling, you can set the following AppContext switches the application configuration file:

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

Modul CLR (Common Language Runtime)Common language runtime

Modul runtime v .NET Framework 4,8 obsahuje následující změny a vylepšení:The runtime in .NET Framework 4.8 includes the following changes and improvements:

Vylepšení kompilátoru JIT.Improvements to the JIT compiler. Kompilátor JIT (just-in-time) v .NET Framework 4,8 je založen na kompilátoru JIT v rozhraní .NET Core 2,1.The Just-in-time (JIT) compiler in .NET Framework 4.8 is based on the JIT compiler in .NET Core 2.1. Mnohé z optimalizací a všechny opravy chyb provedené kompilátorem JIT .NET Core 2,1 jsou součástí kompilátoru .NET Framework 4,8 JIT.Many of the optimizations and all of the bug fixes made to the .NET Core 2.1 JIT compiler are included in the .NET Framework 4.8 JIT compiler.

Vylepšení Ngen.NGEN improvements. Modul runtime zlepšil správu paměti pro Image generátoru nativních imagí (NGen), takže data mapovaná z imagí Ngen nejsou rezidentní v paměti.The runtime has improved its memory management for Native Image Generator (NGEN) images so that data mapped from NGEN images are not memory-resident. Tím se snižuje plocha dostupná pro útoky, které se pokoušejí spustit libovolný kód úpravou paměti, která se spustí.This reduces the surface area available to attacks that attempt to execute arbitrary code by modifying memory that will be executed.

Kontrola antimalwaru pro všechna sestavení.Antimalware scanning for all assemblies. V předchozích verzích .NET Framework modul runtime prohledává všechna sestavení načtená z disku pomocí programu Windows Defender nebo antimalwarového softwaru jiného výrobce.In previous versions of .NET Framework, the runtime scans all assemblies loaded from disk using either Windows Defender or third-party antimalware software. Nicméně sestavení načtená z jiných zdrojů, například Assembly.Load(Byte[]) metodou, nejsou prohledávána a mohou potenciálně obsahovat nezjištěné malware.However, assemblies loaded from other sources, such as by the Assembly.Load(Byte[]) method, are not scanned and can potentially contain undetected malware. Počínaje .NET Framework 4,8 spuštěným v systému Windows 10 spustí modul runtime kontrolu pomocí antimalwarových řešení, která implementují rozhraní AMSI (antimalwarová kontrola).Starting with .NET Framework 4.8 running on Windows 10, the runtime triggers a scan by antimalware solutions that implement the Antimalware Scan Interface (AMSI).

Co je nového v .NET Framework 4.7.2What's new in .NET Framework 4.7.2

.NET Framework 4.7.2 zahrnuje nové funkce v následujících oblastech:.NET Framework 4.7.2 includes new features in the following areas:

Dalším cílem .NET Framework 4.7.2 je lepší přístupnost, která umožňuje aplikaci poskytovat vhodné prostředí pro uživatele technologie usnadnění.A continuing focus in .NET Framework 4.7.2 is improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology. Informace o vylepšeních usnadnění v .NET Framework 4.7.2 najdete v tématu co je nového v přístupnosti v .NET Framework.For information on accessibility improvements in .NET Framework 4.7.2, see What's new in accessibility in .NET Framework.

Základní třídyBase classes

.NET Framework 4.7.2 obsahuje velký počet kryptografických vylepšení, lepší podporu dekomprese pro archivy ZIP a další rozhraní API pro shromažďování dat..NET Framework 4.7.2 features a large number of cryptographic enhancements, better decompression support for ZIP archives, and additional collection APIs.

Nová přetížení RSA. Vytvořte a DSA. VytvořenyNew overloads of RSA.Create and DSA.Create

DSA.Create(DSAParameters)Metody a RSA.Create(RSAParameters) umožňují zadávat klíčové parametry při vytváření instance nového DSA nebo RSA klíče.The DSA.Create(DSAParameters) and RSA.Create(RSAParameters) methods let you supply key parameters when instantiating a new DSA or RSA key. Umožňují nahradit kód podobný následujícímu:They allow you to replace code like the following:

// Before .NET Framework 4.7.2
using (RSA rsa = RSA.Create())
{
   rsa.ImportParameters(rsaParameters);
   // Other code to execute using the RSA instance.
}
' Before .NET Framework 4.7.2
Using rsa = RSA.Create()
   rsa.ImportParameters(rsaParameters)
   ' Other code to execute using the rsa instance.
End Using

podobný kód:with code like this:

// Starting with .NET Framework 4.7.2
using (RSA rsa = RSA.Create(rsaParameters))
{
   // Other code to execute using the rsa instance.
}
' Starting with .NET Framework 4.7.2
Using rsa = RSA.Create(rsaParameters)
   ' Other code to execute using the rsa instance.
End Using

DSA.Create(Int32)Metody a RSA.Create(Int32) umožňují generovat nové klíče DSA nebo RSA klíče s určitou velikostí klíče.The DSA.Create(Int32) and RSA.Create(Int32) methods let you generate new DSA or RSA keys with a specific key size. Například:For example:

using (DSA dsa = DSA.Create(2048))
{
   // Other code to execute using the dsa instance.
}
Using dsa = DSA.Create(2048)
   ' Other code to execute using the dsa instance.
End Using

Konstruktory Rfc2898DeriveBytes přijímají název algoritmu hash.Rfc2898DeriveBytes constructors accept a hash algorithm name

Rfc2898DeriveBytesTřída má tři nové konstruktory s HashAlgorithmName parametrem, který IDENTIFIKUJE algoritmus HMAC, který má být použit při odvozování klíčů.The Rfc2898DeriveBytes class has three new constructors with a HashAlgorithmName parameter that identifies the HMAC algorithm to use when deriving keys. Místo použití algoritmu SHA-1 by vývojáři měli používat HMAC založené na SHA-2, jako je SHA-256, jak je znázorněno v následujícím příkladu:Instead of using SHA-1, developers should use a SHA-2-based HMAC like SHA-256, as shown in the following example:

private static byte[] DeriveKey(string password, out int iterations, out byte[] salt,
                                out HashAlgorithmName algorithm)
{
   iterations = 100000;
   algorithm = HashAlgorithmName.SHA256;

   const int SaltSize = 32;
   const int DerivedValueSize = 32;

   using (Rfc2898DeriveBytes pbkdf2 = new Rfc2898DeriveBytes(password, SaltSize,
                                                             iterations, algorithm))
   {
      salt = pbkdf2.Salt;
      return pbkdf2.GetBytes(DerivedValueSize);
   }
}
Private Shared Function DeriveKey(password As String, ByRef iterations As Integer,
                                  ByRef salt AS Byte(), ByRef algorithm As HashAlgorithmName) As Byte()
   iterations = 100000
   algorithm = HashAlgorithmName.SHA256

   Const SaltSize As Integer = 32
   Const  DerivedValueSize As Integer = 32

   Using pbkdf2 = New Rfc2898DeriveBytes(password, SaltSize, iterations, algorithm)
      salt = pbkdf2.Salt
      Return pbkdf2.GetBytes(DerivedValueSize)
   End Using
End Function

Podpora dočasných klíčůSupport for ephemeral keys

Import PFX může volitelně načíst soukromé klíče přímo z paměti a obejít pevný disk.PFX import can optionally load private keys directly from memory, bypassing the hard drive. Když je nový X509KeyStorageFlags.EphemeralKeySet příznak zadán v X509Certificate2 konstruktoru nebo v jednom z přetížení X509Certificate2.Import metody, privátní klíče budou načteny jako dočasné klíče.When the new X509KeyStorageFlags.EphemeralKeySet flag is specified in an X509Certificate2 constructor or one of the overloads of the X509Certificate2.Import method, the private keys will be loaded as ephemeral keys. To brání tomu, aby se klíče na disku zobrazily.This prevents the keys from being visible on the disk. NaopakHowever:

  • Vzhledem k tomu, že klíče nejsou trvale uložené na disku, certifikáty načtené pomocí tohoto příznaku nejsou vhodnými kandidáty k přidání do X509Store.Since the keys are not persisted to disk, certificates loaded with this flag are not good candidates to add to an X509Store.

  • Klíče načtené tímto způsobem jsou téměř vždy načítány prostřednictvím služby Windows CNG.Keys loaded in this manner are almost always loaded via Windows CNG. Proto volající musí získat přístup k privátnímu klíči voláním metod rozšíření, jako je například CERT. GetRSAPrivateKey ().Therefore, callers must access the private key by calling extension methods, such as cert.GetRSAPrivateKey(). Vlastnost nefunguje X509Certificate2.PrivateKey .The X509Certificate2.PrivateKey property does not function.

  • Vzhledem k tomu X509Certificate2.PrivateKey , že vlastnost starší verze nefunguje s certifikáty, vývojáři by měli před přechodem na dočasné klíče provádět přísné testy.Since the legacy X509Certificate2.PrivateKey property does not work with certificates, developers should perform rigorous testing before switching to ephemeral keys.

Programové vytváření žádostí o podepsání certifikátu PKCS # 10 a certifikátů veřejných klíčů X. 509Programmatic creation of PKCS#10 certification signing requests and X.509 public key certificates

Počínaje .NET Framework 4.7.2 můžou úlohy generovat žádosti o podepsání certifikátu (oddělení IT), které umožňují, aby se generování žádosti o certifikát připravilo na stávající nástroje.Starting with .NET Framework 4.7.2, workloads can generate certificate signing requests (CSRs), which allows certificate request generation to be staged into existing tooling. To je často užitečné v testovacích scénářích.This is frequently useful in test scenarios.

Další informace a příklady kódu naleznete v tématu "programové vytváření žádostí o podepsání certifikátu PKCS # 10 a" certifikátů veřejných klíčů X. 509 "na blogu .NET.For more information and code examples, see "Programmatic creation of PKCS#10 certification signing requests and X.509 public key certificates" in the .NET Blog.

Noví členové SignerInfoNew SignerInfo members

Počínaje .NET Framework 4.7.2 SignerInfo Třída zveřejňuje Další informace o podpisu.Starting with .NET Framework 4.7.2, the SignerInfo class exposes more information about the signature. Můžete načíst hodnotu System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm vlastnosti a určit tak algoritmus podpisu, který používá podepisující osoba.You can retrieve the value of the System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm property to determine the signature algorithm used by the signer. SignerInfo.GetSignature dá se zavolat, aby se získala kopie kryptografického podpisu pro tohoto podepsaného.SignerInfo.GetSignature can be called to get a copy of the cryptographic signature for this signer.

Otevření zabaleného datového proudu po odstranění CryptoStreamLeaving a wrapped stream open after CryptoStream is disposed

Počínaje .NET Framework 4.7.2 CryptoStream má třída další konstruktor, který umožňuje Dispose Zavřít zabalený datový proud.Starting with .NET Framework 4.7.2, the CryptoStream class has an additional constructor that allows Dispose to not close the wrapped stream. Chcete-li nechat zabalený datový proud otevřený po CryptoStream uvolnění instance, zavolejte nový CryptoStream konstruktor následujícím způsobem:To leave the wrapped stream open after the CryptoStream instance is disposed, call the new CryptoStream constructor as follows:

var cStream = new CryptoStream(stream, transform, mode, leaveOpen: true);
Dim cStream = New CryptoStream(stream, transform, mode, leaveOpen:=true)

Dekomprese změn v DeflateStreamDecompression changes in DeflateStream

Počínaje .NET Framework 4.7.2 se implementace operací dekomprese ve DeflateStream třídě změnila tak, aby ve výchozím nastavení používala nativní rozhraní API systému Windows.Starting with .NET Framework 4.7.2, the implementation of decompression operations in the DeflateStream class has changed to use native Windows APIs by default. Obvykle to vede k výraznému zlepšení výkonu.Typically, this results in a substantial performance improvement.

Podpora dekomprese pomocí rozhraní Windows API je ve výchozím nastavení povolená pro aplikace, které cílí na .NET Framework 4.7.2.Support for decompression by using Windows APIs is enabled by default for applications that target .NET Framework 4.7.2. Aplikace, které jsou cíleny na starší verze .NET Framework, ale jsou spuštěny v rámci .NET Framework 4.7.2, se můžou na toto chování vyjádřit přidáním následujícího přepínače AppContext do konfiguračního souboru aplikace:Applications that target earlier versions of .NET Framework but are running under .NET Framework 4.7.2 can opt into this behavior by adding the following AppContext switch to the application configuration file:

<AppContextSwitchOverrides value="Switch.System.IO.Compression.DoNotUseNativeZipLibraryForDecompression=false" />

Další rozhraní API pro shromažďováníAdditional collection APIs

.NET Framework 4.7.2 přidá mnoho nových rozhraní API k SortedSet<T> HashSet<T> typům a..NET Framework 4.7.2 adds a number of new APIs to the SortedSet<T> and HashSet<T> types. Mezi ně patří:These include:

ConcurrentDictionary<TKey,TValue>Třída obsahuje nová přetížení AddOrUpdate GetOrAdd metod a k načtení hodnoty ze slovníku nebo k jejímu přidání, pokud nebyla nalezena, a pro přidání hodnoty do slovníku nebo její aktualizaci, pokud již existuje.The ConcurrentDictionary<TKey,TValue> class includes new overloads of the AddOrUpdate and GetOrAdd methods to retrieve a value from the dictionary or to add it if it is not found, and to add a value to the dictionary or to update it if it already exists.

public TValue AddOrUpdate<TArg>(TKey key, Func<TKey, TArg, TValue> addValueFactory, Func<TKey, TValue, TArg, TValue> updateValueFactory, TArg factoryArgument)

public TValue GetOrAdd<TArg>(TKey key, Func<TKey, TArg, TValue> valueFactory, TArg factoryArgument)
Public AddOrUpdate(Of TArg)(key As TKey, addValueFactory As Func(Of TKey, TArg, TValue), updateValueFactory As Func(Of TKey, TValue, TArg, TValue), factoryArgument As TArg) As TValue

Public GetOrAdd(Of TArg)(key As TKey, valueFactory As Func(Of TKey, TArg, TValue), factoryArgument As TArg) As TValue

ASP.NETASP.NET

Podpora pro vkládání závislostí ve webových formuláříchSupport for dependency injection in Web Forms

Vkládání závislostí (di) odděluje objekty a jejich závislosti tak, že kód objektu již není nutné změnit pouze proto, že došlo ke změně závislosti.Dependency injection (DI) decouples objects and their dependencies so that an object's code no longer needs to be changed just because a dependency has changed. Při vývoji aplikací ASP.NET, které cílí na .NET Framework 4.7.2, můžete:When developing ASP.NET applications that target .NET Framework 4.7.2, you can:

Podpora souborů cookie stejného webuSupport for same-site cookies

SameSite zabraňuje prohlížeči v posílání souborů cookie spolu s žádostí mezi weby.SameSite prevents a browser from sending a cookie along with a cross-site request. .NET Framework 4.7.2 přidá HttpCookie.SameSite vlastnost, jejíž hodnota je System.Web.SameSiteMode člen výčtu..NET Framework 4.7.2 adds a HttpCookie.SameSite property whose value is a System.Web.SameSiteMode enumeration member. Pokud je jeho hodnota SameSiteMode.Strict nebo SameSiteMode.Lax , ASP.NET přidá SameSite atribut do hlavičky Set-cookie.If its value is SameSiteMode.Strict or SameSiteMode.Lax, ASP.NET adds the SameSite attribute to the set-cookie header. Podpora SameSite se vztahuje na HttpCookie objekty i na FormsAuthentication System.Web.SessionState soubory cookie a.SameSite support applies to HttpCookie objects, as well as to FormsAuthentication and System.Web.SessionState cookies.

SameSite pro objekt můžete nastavit takto HttpCookie :You can set SameSite for an HttpCookie object as follows:

var c = new HttpCookie("secureCookie", "same origin");
c.SameSite = SameSiteMode.Lax;
Dim c As New HttpCookie("secureCookie", "same origin")
c.SameSite = SameSiteMode.Lax

Soubory cookie SameSite můžete na úrovni aplikace nakonfigurovat také úpravou souboru web.config:You can also configure SameSite cookies at the application level by modifying the web.config file:

<system.web>
   <httpCookies sameSite="Strict" />
</system.web>

SameSite pro FormsAuthentication a System.Web.SessionState soubory cookie můžete přidat úpravou konfiguračního souboru Web:You can add SameSite for FormsAuthentication and System.Web.SessionState cookies by modifying the web config file:

<system.web>
   <authentication mode="Forms">
      <forms cookieSameSite="Lax">
         <!-- ...   -->
      </forms>
   </authentication>
   <sessionState cookieSameSite="Lax"></sessionState>
</system.web>

SítěNetworking

Implementace vlastností HttpClientHandlerImplementation of HttpClientHandler properties

.NET Framework 4.7.1 přidal do třídy osm vlastností System.Net.Http.HttpClientHandler ..NET Framework 4.7.1 added eight properties to the System.Net.Http.HttpClientHandler class. Nicméně dvě vyvolaly výjimku PlatformNotSupportedException .However, two threw a PlatformNotSupportedException. .NET Framework 4.7.2 nyní poskytuje implementaci těchto vlastností..NET Framework 4.7.2 now provides an implementation for these properties. Mezi vlastnosti patří:The properties are:

SQLClientSQLClient

Podpora Azure Active Directory univerzálního ověřování a Multi-Factor AuthenticationSupport for Azure Active Directory Universal Authentication and Multi-Factor authentication

Rostoucí požadavky na dodržování předpisů a požadavky na zabezpečení vyžadují, aby spousta zákazníků používala vícefaktorové ověřování (MFA).Growing compliance and security demands require that many customers use multi-factor authentication (MFA). Kromě toho aktuální osvědčené postupy zabrání zahrnutí uživatelských hesel přímo v připojovacích řetězcích.In addition, current best practices discourage including user passwords directly in connection strings. Pro podporu těchto změn .NET Framework 4.7.2 rozšiřuje připojovací řetězce SqlClient přidáním nové hodnoty "Active Directory Interactive" pro stávající klíčové slovo "ověřování" pro podporu MFA a ověřování Azure AD.To support these changes, .NET Framework 4.7.2 extends SQLClient connection strings by adding a new value, "Active Directory Interactive", for the existing "Authentication" keyword to support MFA and Azure AD Authentication. Nová interaktivní metoda podporuje uživatele v rámci nativních a federovaných uživatelů Azure AD i uživatele typu Host služby Azure AD.The new interactive method supports native and federated Azure AD users as well as Azure AD guest users. Při použití této metody se pro databáze SQL podporuje ověřování MFA, které ukládá služba Azure AD.When this method is used, the MFA authentication imposed by Azure AD is supported for SQL databases. Kromě toho proces ověřování požaduje heslo uživatele, aby dodržoval osvědčené postupy zabezpečení.In addition, the authentication process requests a user password to adhere to security best practices.

V předchozích verzích .NET Framework připojení SQL podporovalo pouze SqlAuthenticationMethod.ActiveDirectoryPassword SqlAuthenticationMethod.ActiveDirectoryIntegrated Možnosti a.In previous versions of .NET Framework, SQL connectivity supported only the SqlAuthenticationMethod.ActiveDirectoryPassword and SqlAuthenticationMethod.ActiveDirectoryIntegrated options. Obě tyto součásti jsou součástí neinteraktivního protokolu ADAL, který nepodporuje vícefaktorové ověřování.Both of these are part of the non-interactive ADAL protocol, which does not support MFA. Díky nové SqlAuthenticationMethod.ActiveDirectoryInteractive Možnosti připojení SQL podporuje vícefaktorové ověřování a taky existující metody ověřování (heslo a integrované ověřování), které uživatelům umožňují zadat uživatelská hesla interaktivně, aniž by museli uchovávat hesla v připojovacím řetězci.With the new SqlAuthenticationMethod.ActiveDirectoryInteractive option, SQL connectivity supports MFA as well as existing authentication methods (password and integrated authentication), which allows users to enter user passwords interactively without persisting passwords in the connection string.

Další informace a příklad najdete v tématu Podpora SQL--Azure AD Universal a Multi-Factor Authentication na blogu .NET.For more information and an example, see "SQL -- Azure AD Universal and Multi-factor Authentication Support" in the .NET Blog.

Podpora pro Always Encrypted verze 2Support for Always Encrypted version 2

NET Framework 4.7.2 přidává podporu pro Always Encrypted založenou na enklávy.NET Framework 4.7.2 adds supports for enclave-based Always Encrypted. Původní verze Always Encrypted je technologie šifrování na straně klienta, ve které šifrovací klíče nikdy nenechávají klienta.The original version of Always Encrypted is a client-side encryption technology in which encryption keys never leave the client. V Always Encrypted založeném na enklávy může klient volitelně odesílat šifrovací klíče na zabezpečený enklávy, což je zabezpečená výpočetní entita, kterou je možné považovat za součást SQL Server, ale SQL Server kód nemůže manipulovat.In enclave-based Always Encrypted, the client can optionally send the encryption keys to a secure enclave, which is a secure computational entity that can be considered part of SQL Server but that SQL Server code cannot tamper with. Pro podporu Always Encrypted založeného na enklávy, .NET Framework 4.7.2 přidá následující typy a členy do System.Data.SqlClient oboru názvů:To support enclave-based Always Encrypted, .NET Framework 4.7.2 adds the following types and members to the System.Data.SqlClient namespace:

Konfigurační soubor aplikace pak určí konkrétní implementaci abstraktní System.Data.SqlClient.SqlColumnEncryptionEnclaveProvider třídy, která poskytuje funkce pro poskytovatele enklávy.The application configuration file then specifies a concrete implementation of the abstract System.Data.SqlClient.SqlColumnEncryptionEnclaveProvider class that provides the functionality for the enclave provider. Například:For example:

<configuration>
  <configSections>
    <section name="SqlColumnEncryptionEnclaveProviders" type="System.Data.SqlClient.SqlColumnEncryptionEnclaveProviderConfigurationSection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
  </configSections>
  <SqlColumnEncryptionEnclaveProviders>
    <providers>
      <add name="Azure" type="Microsoft.SqlServer.Management.AlwaysEncrypted.AzureEnclaveProvider,MyApp"/>
      <add name="HGS" type="Microsoft.SqlServer.Management.AlwaysEncrypted.HGSEnclaveProvider,MyApp" />
    </providers>
  </SqlColumnEncryptionEnclaveProviders >
</configuration>

Základní tok Always Encrypted založeného na enklávy:The basic flow of enclave-based Always Encrypted is:

  1. Uživatel vytvoří připojení AlwaysEncrypted k SQL Server, která podporuje Always Encrypted založenou na enklávy.The user creates an AlwaysEncrypted connection to SQL Server that supported enclave-based Always Encrypted. Ovladač kontaktuje službu ověření identity, aby zajistil, že se připojí k pravé enklávy.The driver contacts the attestation service to ensure that it is connecting to right enclave.

  2. Po ověření enklávy ovladač vytvoří zabezpečený kanál se zabezpečeným enklávy hostovaným na SQL Server.Once the enclave has been attested, the driver establishes a secure channel with the secure enclave hosted on SQL Server.

  3. Ovladač sdílí šifrovací klíče autorizované klientem s zabezpečeným enklávy po dobu trvání připojení SQL.The driver shares encryption keys authorized by the client with the secure enclave for the duration of the SQL connection.

Windows Presentation FoundationWindows Presentation Foundation

Hledání třídách ResourceDictionaries podle zdrojeFinding ResourceDictionaries by Source

Počínaje .NET Framework 4.7.2 může diagnostický pomocník najít ResourceDictionaries vytvářený z daného zdrojového identifikátoru URI.Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the ResourceDictionaries that have been created from a given source Uri. (Tato funkce se používá pro diagnostické asistenty, nikoli pro produkční aplikace.) Pomocník pro diagnostiku, jako je "Edit-and-Continue" sady Visual Studio, umožňuje svému uživateli upravit ResourceDictionary s záměrem, aby se změny projevily u běžící aplikace.(This feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility lets its user edit a ResourceDictionary with the intent that the changes be applied to the running application. V tomto kroku najdete všechny třídách ResourceDictionaries, které spuštěná aplikace vytvořila ze upravovaného slovníku.One step in achieving this is finding all the ResourceDictionaries that the running application has created from the dictionary that's being edited. Například aplikace může deklarovat ResourceDictionary, jehož obsah je zkopírován z daného zdrojového identifikátoru URI:For example, an application can declare a ResourceDictionary whose content is copied from a given source URI:

<ResourceDictionary Source="MyRD.xaml" />

Diagnostický pomocník, který upravuje původní kód v souboru MyRD. XAML , může k vyhledání slovníku použít novou funkci.A diagnostic assistant that edits the original markup in MyRD.xaml can use the new feature to locate the dictionary. Tato funkce je implementována novou statickou metodou ResourceDictionaryDiagnostics.GetResourceDictionariesForSource .The feature is implemented by a new static method, ResourceDictionaryDiagnostics.GetResourceDictionariesForSource. Pomocník diagnostiky volá novou metodu pomocí absolutního identifikátoru URI, který identifikuje původní kód, jak je znázorněno v následujícím kódu:The diagnostic assistant calls the new method using an absolute Uri that identifies the original markup, as illustrated by the following code:

IEnumerable<ResourceDictionary> dictionaries = ResourceDictionaryDiagnostics.GetResourceDictionariesForSource(new Uri("pack://application:,,,/MyApp;component/MyRD.xaml"));
Dim dictionaries As IEnumerable(Of ResourceDictionary) = ResourceDictionaryDiagnostics.GetResourceDictionariesForSource(New Uri("pack://application:,,,/MyApp;component/MyRD.xaml"))

Metoda vrátí prázdnou hodnotu výčtu, pokud VisualDiagnostics není povolena a ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO Proměnná prostředí je nastavena.The method returns an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

Hledání vlastníků ResourceDictionaryFinding ResourceDictionary owners

Počínaje .NET Framework 4.7.2 může pomocník pro diagnostiku najít vlastníky daného ResourceDictionary .Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the owners of a given ResourceDictionary. (Tato funkce je určena pro diagnostické asistenty, nikoli pro produkční aplikace.) Pokaždé, když je provedena změna na ResourceDictionary , WPF automaticky najde všechny odkazy na DynamicResource , které mohou být ovlivněny změnou.(The feature is for use by diagnostic assistants and not by production applications.) Whenever a change is made to a ResourceDictionary, WPF automatically finds all DynamicResource references that might be affected by the change.

Nástroj pro diagnostiku, jako je například zařízení "Edit-and-Continue" sady Visual Studio, může chtít tuto funkci zvětšit, aby zpracovávala odkazy na StaticResource .A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility may want to extend this to handle StaticResource references. Prvním krokem v tomto procesu je vyhledání vlastníků slovníku; To znamená, aby bylo možné najít všechny objekty, jejichž Resources vlastnost odkazuje na slovník (buď přímo, nebo nepřímo přes ResourceDictionary.MergedDictionaries vlastnost).The first step in this process is to find the owners of the dictionary; that is, to find all the objects whose Resources property refers to the dictionary (either directly, or indirectly via the ResourceDictionary.MergedDictionaries property). Tři nové statické metody implementované u System.Windows.Diagnostics.ResourceDictionaryDiagnostics třídy, jeden pro každý ze základních typů, které mají Resources vlastnost, podporují tento krok:Three new static methods implemented on the System.Windows.Diagnostics.ResourceDictionaryDiagnostics class, one for each of the base types that has a Resources property, support this step:

Tyto metody vrátí prázdný vyčíslitelné, pokud VisualDiagnostics není povoleno a ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO Proměnná prostředí je nastavena.These methods return an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

Hledání odkazů na StaticResourceFinding StaticResource references

Diagnostika pomocníka teď může obdržet oznámení vždy, když se vyřeší odkaz na StaticResource .A diagnostic assistant can now receive a notification whenever a StaticResource reference is resolved. (Tato funkce se používá pro diagnostické asistenty, nikoli pro produkční aplikace.) Nástroj pro diagnostiku, jako je například zařízení "Edit-and-Continue" sady Visual Studio, může chtít aktualizovat všechna použití prostředku, když se změní jeho hodnota ResourceDictionary .(The feature is for use by diagnostic assistants, not by production applications.) A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility may want to update all uses of a resource when its value in a ResourceDictionary changes. WPF to provede automaticky pro DynamicResource odkazy, ale záměrně to neudělá pro odkazy StaticResource .WPF does this automatically for DynamicResource references, but it intentionally does not do so for StaticResource references. Od .NET Framework 4.7.2 může pomocník diagnostiky použít tato oznámení k vyhledání těchto použití statického prostředku.Starting with .NET Framework 4.7.2, the diagnostic assistant can use these notifications to locate those uses of the static resource.

Oznámení je implementováno novou ResourceDictionaryDiagnostics.StaticResourceResolved událostí:The notification is implemented by the new ResourceDictionaryDiagnostics.StaticResourceResolved event:

public static event EventHandler<StaticResourceResolvedEventArgs> StaticResourceResolved;
Public Shared Event StaticResourceResolved As EventHandler(Of StaticResourceResolvedEventArgs)

Tato událost je vyvolána pokaždé, když modul runtime vyřeší odkaz StaticResource .This event is raised whenever the runtime resolves a StaticResource reference. StaticResourceResolvedEventArgsArgumenty popisují rozlišení a označují objekt a vlastnost, které hostují odkaz StaticResource a klíč a, který ResourceDictionary se používá pro řešení:The StaticResourceResolvedEventArgs arguments describe the resolution, and indicate the object and property that host the StaticResource reference and the ResourceDictionary and key used for the resolution:

public class StaticResourceResolvedEventArgs : EventArgs
{
   public Object TargetObject { get; }

   public Object TargetProperty { get; }

   public ResourceDictionary ResourceDictionary { get; }

   public object ResourceKey { get; }
}
Public Class StaticResourceResolvedEventArgs : Inherits EventArgs
   Public ReadOnly Property TargetObject As Object
   Public ReadOnly Property TargetProperty As Object
   Public ReadOnly Property ResourceDictionary As ResourceDictionary
   Public ReadOnly Property ResourceKey As Object
End Class

Událost není vyvolána (a její add přistupující objekt je ignorován), pokud VisualDiagnostics není povolena a ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO Proměnná prostředí je nastavena.The event is not raised (and its add accessor is ignored) unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

ClickOnceClickOnce

HDPI aplikace pro model Windows Forms, Windows Presentation Foundation (WPF) a Visual Studio Tools for Office (VSTO) se dají nasadit pomocí technologie ClickOnce.HDPI-aware applications for Windows Forms, Windows Presentation Foundation (WPF), and Visual Studio Tools for Office (VSTO) can all be deployed by using ClickOnce. Pokud je v manifestu aplikace nalezen následující záznam, nasazení bude úspěšné v části .NET Framework 4.7.2:If the following entry is found in the application manifest, deployment will succeed under .NET Framework 4.7.2:

<windowsSettings>
   <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>

V případě model Windows Forms aplikace není pro úspěšné nasazení ClickOnce předchozí alternativní řešení nastavení zvyšování rozlišení DPI v konfiguračním souboru aplikace, a ne jako manifest aplikace, již nutné.For Windows Forms application, the previous workaround of setting DPI awareness in the application configuration file rather than the application manifest is no longer necessary for ClickOnce deployment to succeed.

Co je nového v .NET Framework 4.7.1What's new in .NET Framework 4.7.1

.NET Framework 4.7.1 zahrnuje nové funkce v následujících oblastech:.NET Framework 4.7.1 includes new features in the following areas:

Navíc je hlavní fokus v .NET Framework 4.7.1 vylepšený přístupnost, což aplikaci umožňuje zajistit vhodné prostředí pro uživatele technologie usnadnění.In addition, a major focus in .NET Framework 4.7.1 is improved accessibility, which allows an application to provide an appropriate experience for users of Assistive Technology. Informace o vylepšeních usnadnění v .NET Framework 4.7.1 najdete v tématu co je nového v přístupnosti v .NET Framework.For information on accessibility improvements in .NET Framework 4.7.1, see What's new in accessibility in .NET Framework.

Základní třídyBase classes

Podpora pro .NET Standard 2,0Support for .NET Standard 2.0

.NET Standard definuje sadu rozhraní API, která musí být k dispozici v každé implementaci rozhraní .NET, která podporuje tuto verzi standardu..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 plně podporuje .NET Standard 2,0 a přidává asi 200 rozhraní API , která jsou definována v .NET Standard 2,0 a chybí v .NET Framework 4.6.1, 4.6.2 a 4,7..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 .NET Framework 4.6.1, 4.6.2, and 4.7. (Upozorňujeme, že tyto verze .NET Framework podporují .NET Standard 2,0 pouze v případě, že jsou do cílového systému nasazeny i další .NET Standard podpůrné soubory.) Další informace najdete v příspěvku na blogu o podpoře BCL-.NET Standard 2,0 v tématu .NET Framework 4.7.1 runtime a funkce kompilátoru .(Note that these versions of .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.

Podpora pro sestavovatele konfiguraceSupport for configuration builders

Tvůrci konfigurace umožňují vývojářům dynamicky vkládat a sestavovat nastavení konfigurace pro aplikace v době běhu.Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. Vlastní tvůrci konfigurace lze použít k úpravě existujících dat v konfiguračním oddílu nebo k sestavení konfiguračního oddílu úplně od začátku.Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Bez konfiguračních tvůrců, soubory. config jsou statické a jejich nastavení je definováno určitou dobu před spuštěním aplikace.Without configuration builders, .config files are static, and their settings are defined some time before an application is launched.

Chcete-li vytvořit vlastního tvůrce konfigurace, odvodit svého tvůrce z abstraktní ConfigurationBuilder třídy a přepsat jeho ConfigurationBuilder.ProcessConfigurationSection a ConfigurationBuilder.ProcessRawXml .To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. Můžete také definovat své sestavovatele v souboru. config.You also define your builders in your .config file. Další informace najdete v části "tvůrci konfigurace" v příspěvku na blogu .NET Framework 4.7.1 ASP.NET a konfigurační funkce .For more information, see the "Configuration Builders" section in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Detekce funkcí za běhuRun-time feature detection

System.Runtime.CompilerServices.RuntimeFeatureTřída poskytuje mechanismus pro určení, zda je předdefinovaná funkce v dané implementaci rozhraní .NET podporována v době kompilace nebo v době běhu.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. V době kompilace může kompilátor ověřit, zda zadané pole existuje k určení, zda je funkce podporována. Pokud ano, může vygenerovat kód, který tuto funkci využívá.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. V době běhu může aplikace zavolat RuntimeFeature.IsSupported metodu před vygenerováním kódu za běhu.At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. Další informace najdete v tématu Přidání pomocné metody pro popis funkcí podporovaných modulem runtime.For more information, see Add helper method to describe features supported by the runtime.

Typy řazené kolekce členů mají hodnotu serializovat.Value tuple types are serializable

Počínaje .NET Framework 4.7.1 System.ValueTuple a přidružené obecné typy jsou označeny jako serializovatelný, což umožňuje binární serializaci.Starting with .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. To by mělo být pro snazší migraci typů řazené kolekce členů, například Tuple<T1,T2,T3> a Tuple<T1,T2,T3,T4> , k hodnotám řazené kolekce členů.This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier. Další informace naleznete v příspěvku "Compiler--ValueTuple je serializovatelný" v příspěvku blogu .NET Framework 4.7.1 runtime a funkce kompilátoru .For more information, see "Compiler -- ValueTuple is Serializable" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Podpora odkazů jen pro čteníSupport for read-only references

.NET Framework 4.7.1 přidá System.Runtime.CompilerServices.IsReadOnlyAttribute ..NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. Tento atribut používají kompilátory jazyka k označení členů, kteří mají návratový typ nebo parametry ref jen pro čtení.This attribute is used by language compilers to mark members that have read-only ref return types or parameters. Další informace najdete v příspěvku na blogu o kompilátoru – podpora pro ReadOnlyReferences v tématu .NET Framework 4.7.1 runtime a funkce kompilátoru .For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. Informace o vrácených hodnotách ref naleznete v tématech ref Return Values a Locals (příručka C#) a ref Return values (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)

Vylepšení výkonu shromažďování pamětiGarbage collection performance improvements

Změny uvolňování paměti (GC) v .NET Framework 4.7.1 vylepšit celkový výkon, zejména pro přidělení LOH (large object Heap).Changes to garbage collection (GC) in .NET Framework 4.7.1 improve overall performance, especially for large object heap (LOH) allocations. V .NET Framework 4.7.1 jsou používány samostatné zámky pro LOH (Small Object Heap) a LOH alokace, což umožňuje přidělení, když je uvolňování paměti SOH na pozadí.In .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 is sweeping the SOH. V důsledku toho by aplikace, které vytvářejí velký počet přidělení LOH, měly vidět snížení kolizí uzamčení přidělení a lepší výkon.As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance. Další informace najdete v části "prostředí runtime – vylepšení výkonu GC" v příspěvku blogu .NET Framework 4.7.1 runtime a funkce kompilátoru .For more information, see the "Runtime -- GC Performance Improvements" section in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

SítěNetworking

Podpora SHA-2 pro Message. HashAlgorithmSHA-2 support for Message.HashAlgorithm

V .NET Framework 4,7 a starších verzích Message.HashAlgorithm podporuje vlastnost HashAlgorithm.Md5 pouze hodnoty a HashAlgorithm.Sha .In .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. Počínaje .NET Framework 4.7.1, HashAlgorithm.Sha256 , a HashAlgorithm.Sha384 HashAlgorithm.Sha512 jsou také podporovány.Starting with .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Určuje, zda je tato hodnota skutečně používána, záleží na službě MSMQ, protože Message samotná instance neprovádí žádné hodnoty hash, ale jednoduše předává hodnoty do služby MSMQ.Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ. Další informace najdete v tomto příspěvku na blogu podpora SHA-2 pro Message. HashAlgorithm v části .NET Framework 4.7.1 ASP.NET a konfigurační funkce .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

Kroky provádění v aplikacích ASP.NETExecution steps in ASP.NET applications

ASP.NET zpracovává požadavky v předdefinovaném kanálu, který zahrnuje 23 událostí.ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET spustí jednotlivé obslužné rutiny události jako krok provedení.ASP.NET executes each event handler as an execution step. Ve verzích ASP.NET až .NET Framework 4,7 nemůže ASP.NET z důvodu přepínání mezi nativními a spravovanými vlákny flowovat kontext spuštění.In versions of ASP.NET up to .NET Framework 4.7, ASP.NET can't flow the execution context due to switching between native and managed threads. Místo toho ASP.NET selektivní toky pouze HttpContext .Instead, ASP.NET selectively flows only the HttpContext. Počínaje .NET Framework 4.7.1 HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) Metoda také umožňuje modulům obnovovat okolní data.Starting with .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. Tato funkce je zaměřená na knihovny, které mají na starosti trasování, profilování, diagnostiku nebo transakce, například informace o toku spuštění aplikace.This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application. Další informace najdete v příspěvku na blogu věnovaném funkci "ASP.NET provádění kroku" v tématu .NET Framework 4.7.1 ASP.NET a konfigurační funkce .For more information, see the "ASP.NET Execution Step Feature" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

ASP.NET HttpCookie – analýzaASP.NET HttpCookie parsing

.NET Framework 4.7.1 zahrnuje novou metodu, HttpCookie.TryParse která poskytuje standardizovaný způsob, jak vytvořit HttpCookie objekt z řetězce a přesně přiřadit hodnoty souborů cookie, jako je datum vypršení platnosti a cesta..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. Další informace najdete v blogovém příspěvku "ASP.NET HttpCookie analyze" v blogu .NET Framework 4.7.1 ASP.NET and Configuration Features .For more information, see "ASP.NET HttpCookie parsing" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Možnosti hash SHA-2 pro přihlašovací údaje ověřování ASP.NET FormsSHA-2 hash options for ASP.NET forms authentication credentials

V .NET Framework 4,7 a starších verzích umožnili vývojářům ASP.NET ukládat přihlašovací údaje uživatele s hashými hesly v konfiguračních souborech pomocí MD5 nebo SHA1.In .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. Počínaje .NET Framework 4.7.1, ASP.NET podporuje také nové zabezpečené možnosti hash SHA-2, jako jsou SHA256, SHA384 a SHA512.Starting with .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 zůstává výchozí a v konfiguračním souboru webu lze definovat jiný algoritmus hash, který není výchozí.SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file. Například:For example:

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

Co je nového v .NET Framework 4,7What's new in .NET Framework 4.7

.NET Framework 4,7 obsahuje nové funkce v následujících oblastech:.NET Framework 4.7 includes new features in the following areas:

Seznam nových rozhraní API přidaných do .NET Framework 4,7 najdete v článku změny rozhraní api .NET Framework 4,7 na GitHubu.For a list of new APIs added to .NET Framework 4.7, see .NET Framework 4.7 API Changes on GitHub. Seznam vylepšení funkcí a oprav chyb v .NET Framework 4,7 naleznete v části .NET Framework 4,7 seznam změn na GitHubu.For a list of feature improvements and bug fixes in .NET Framework 4.7, see .NET Framework 4.7 List of Changes on GitHub. Další informace najdete v tématu oznámení .NET Framework 4,7 na blogu .NET.For more information, see Announcing .NET Framework 4.7 in the .NET blog.

Základní třídyBase classes

.NET Framework 4,7 vylepšuje serializaci DataContractJsonSerializer :.NET Framework 4.7 improves serialization by the DataContractJsonSerializer:

Vylepšená funkce s použitím šifrování s použitím eliptické křivky (ECC) _Enhanced functionality with Elliptic Curve Cryptography (ECC) _

V .NET Framework 4,7 ImportParameters(ECParameters) byly metody přidány do ECDsa tříd a, ECDiffieHellman aby objekt mohl představovat již zavedený klíč.In .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. ExportParameters(Boolean)Metoda byla přidána také pro export klíče pomocí explicitních parametrů křivky.An ExportParameters(Boolean) method was also added for exporting the key using explicit curve parameters.

.NET Framework 4,7 také přidává podporu pro další křivky (včetně sady křivky Brainpool) a přidala předdefinované definice pro usnadnění vytváření prostřednictvím nových Create a Create výrobních metod..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.

Na GitHubu můžete vidět příklad kryptografických vylepšení .NET Framework 4,7 .You can see an example of .NET Framework 4.7 cryptography improvements on GitHub.

_ Lepší podpora řídicích znaků DataContractJsonSerializer*_ Better support for control characters by the DataContractJsonSerializer*

V .NET Framework 4,7 DataContractJsonSerializer třída serializace řídicích znaků v souladu se standardem ECMAScript 6.In .NET Framework 4.7, the DataContractJsonSerializer class serializes control characters in conformity with the ECMAScript 6 standard. Toto chování je ve výchozím nastavení povolené pro aplikace, které cílí na .NET Framework 4,7, a je funkce pro přihlášení k aplikacím, které běží v .NET Framework 4,7, ale cílí na předchozí verzi .NET Framework.This behavior is enabled by default for applications that target .NET Framework 4.7, and is an opt-in feature for applications that are running under .NET Framework 4.7 but target a previous version of .NET Framework. Další informace najdete v části Kompatibilita aplikací .For more information, see the Application compatibility section.

SítěNetworking

.NET Framework 4,7 přidává následující funkci související se sítí:.NET Framework 4.7 adds the following network-related feature:

Výchozí podpora operačního systému pro protokoly TLS _Default operating system support for TLS protocols _

Zásobník protokolu TLS, který používají System.Net.Security.SslStream komponenty a součásti v zásobníku, jako jsou http, FTP a SMTP, umožňuje vývojářům používat výchozí protokoly TLS podporované operačním systémem.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. Vývojáři už nemusejí mít pevně zakódování verze TLS.Developers need no longer hard-code a TLS version.

ASP.NETASP.NET

V .NET Framework 4,7 obsahuje ASP.NET následující nové funkce:In .NET Framework 4.7, ASP.NET includes the following new features:

_ Rozšíření mezipaměti objektů*_ Object Cache Extensibility*

Počínaje .NET Framework 4,7 přidá ASP.NET novou sadu rozhraní API, která vývojářům umožní nahradit výchozí implementaci ASP.NET pro ukládání objektů do paměti a monitorování paměti.Starting with .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. Vývojáři teď můžou nahradit některou z následujících tří součástí, pokud ASP.NET implementace není adekvátní:Developers can now replace any of the following three components if the ASP.NET implementation is not adequate:

  • Úložiště mezipaměti objektů.Object Cache Store. Při použití konfiguračního oddílu Noví poskytovatelé mezipaměti můžou vývojáři připojit nové implementace mezipaměti objektů pro aplikaci ASP.NET pomocí nového rozhraní ICacheStoreProvider .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.

  • Monitorování paměti.Memory monitoring. Výchozí monitorování paměti v ASP.NET upozorní aplikace, když běží blízko nakonfigurovaného limitu privátních bajtů pro daný proces, nebo když má počítač nedostatek celkového dostupné fyzické paměti RAM.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. Když jsou tato omezení blízko, jsou aktivována oznámení.When these limits are near, notifications are fired. U některých aplikací se oznámení aktivují příliš blízko nakonfigurovaných limitů, aby bylo možné reakce na užitečné.For some applications, notifications are fired too close to the configured limits to allow for useful reactions. Vývojáři teď můžou zapisovat vlastní monitory paměti, které nahradí výchozí hodnotu pomocí ApplicationMonitors.MemoryMonitor Vlastnosti.Developers can now write their own memory monitors to replace the default by using the ApplicationMonitors.MemoryMonitor property.

  • Reakce na limit paměti.Memory Limit Reactions. Ve výchozím nastavení se ASP.NET pokusí oříznout mezipaměť objektů a pravidelně volat, GC.Collect Pokud je limit procesu privátního bajtu blízko.By default, ASP.NET attempts to trim the object cache and periodically call GC.Collect when the private byte process limit is near. U některých aplikací je frekvence volání GC.Collect nebo množství mezipaměti, která je oříznuta, neefektivní.For some applications, the frequency of calls to GC.Collect or the amount of cache that is trimmed are inefficient. Vývojáři teď můžou nahradit nebo doplnit výchozí chování tím, že se přihlásí k odběru IObserver implementace do monitorování paměti aplikace.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 (WCF) přidá následující funkce a změny:Windows Communication Foundation (WCF) adds the following features and changes:

Možnost konfigurovat výchozí nastavení zabezpečení zpráv na TLS 1,1 nebo TLS 1,2Ability to configure the default message security settings to TLS 1.1 or TLS 1.2

Počínaje .NET Framework 4,7 podporuje WCF jako výchozí protokol zabezpečení zpráv protokol TLS 1,1 nebo TLS 1,2 kromě protokolu SSL 3,0 a TLS 1,0.Starting with .NET Framework 4.7, WCF allows you to configure TLS 1.1 or TLS 1.2 in addition to SSL 3.0 and TLS 1.0 as the default message security protocol. Toto je nastavení výslovného souhlasu; Pokud ho chcete povolit, musíte do konfiguračního souboru aplikace přidat následující položku: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>

Vylepšená spolehlivost aplikací WCF a serializace WCFImproved reliability of WCF applications and WCF serialization

WCF zahrnuje řadu změn kódu, které eliminují konflikty časování, což zvyšuje výkon a spolehlivost možností serializace.WCF includes a number of code changes that eliminate race conditions, thereby improving performance and the reliability of serialization options. Mezi ně patří:These include:

  • Lepší podpora pro kombinování asynchronního a synchronního kódu v voláních Připojení SocketConnection bylo. BeginRead a Připojení SocketConnection bylo. Read.Better support for mixing asynchronous and synchronous code in calls to SocketConnection.BeginRead and SocketConnection.Read.
  • Lepší spolehlivost při přerušení připojení pomocí SharedConnectionListener a DuplexChannelBinder.Improved reliability when aborting a connection with SharedConnectionListener and DuplexChannelBinder.
  • Zlepšená spolehlivost operací serializace při volání FormatterServices.GetSerializableMembers(Type) metody.Improved reliability of serialization operations when calling the FormatterServices.GetSerializableMembers(Type) method.
  • Lepší spolehlivost při odebírání nástroje Wait voláním metody ChannelSynchronizer. RemoveWaiter .Improved reliability when removing a waiter by calling the ChannelSynchronizer.RemoveWaiter method.

Windows FormsWindows Forms

V .NET Framework 4,7 model Windows Forms vylepšuje podporu pro monitory s vysokým rozlišením DPI.In .NET Framework 4.7, Windows Forms improves support for high DPI monitors.

Podpora vysokého rozlišení DPIHigh DPI support

Počínaje aplikacemi, které cílí na .NET Framework 4,7, .NET Framework funkce vysokého rozlišení DPI a podpora dynamického DPI pro model Windows Forms aplikace.Starting with applications that target .NET Framework 4.7, .NET Framework features high DPI and dynamic DPI support for Windows Forms applications. Podpora vysokého rozlišení DPI vylepšuje rozložení a vzhled formulářů a ovládacích prvků na obrazovkách s vysokým rozlišením DPI.High DPI support improves the layout and appearance of forms and controls on high DPI monitors. Dynamické DPI mění rozložení a vzhled formulářů a ovládacích prvků, když uživatel změní v běžící aplikaci Měřítko DPI nebo zobrazení.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.

Podpora vysokého rozlišení DPI je funkce výslovného souhlasu, kterou nakonfigurujete tak, že definujete <System.Windows.Forms.ConfigurationSection> oddíl v konfiguračním souboru aplikace.High DPI support is an opt-in feature that you configure by defining a <System.Windows.Forms.ConfigurationSection> section in your application configuration file. Další informace o přidání podpory vysokého rozlišení DPI a dynamické podpory DPI do vaší aplikace model Windows Forms najdete v tématu Podpora vysokého rozlišení DPI v model 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)

V .NET Framework 4,7 zahrnuje WPF následující vylepšení:In .NET Framework 4.7, WPF includes the following enhancements:

Podpora pro sadu dotykové a stylusové sady založená na zprávách Windows WM_POINTERSupport for a touch/stylus stack based on Windows WM_POINTER messages

Teď máte možnost používat pro WM_POINTER zprávy místo platformy Windows Ink Services (Wispr) k dispozici tónovou nebo stylusovou sadu.You now have the option of using a touch/stylus stack based on WM_POINTER messages instead of the Windows Ink Services Platform (WISP). Toto je funkce výslovného souhlasu v .NET Framework.This is an opt-in feature in .NET Framework. Další informace najdete v části Kompatibilita aplikací .For more information, see the Application compatibility section.

Nová implementace pro rozhraní API pro tisk WPFNew implementation for WPF printing APIs

Rozhraní API pro tisk v platformě WPF ve System.Printing.PrintQueue třídě volají rozhraní API pro tiskové dokumenty systému Windows namísto zastaralých tiskových rozhraní XPS.WPF's printing APIs in the System.Printing.PrintQueue class call the Windows Print Document Package API instead of the deprecated XPS Print API. Dopad této změny na kompatibilitu aplikace naleznete v části Kompatibilita aplikací .For the impact of this change on application compatibility, see the Application compatibility section.

Co je nového v .NET Framework 4.6.2What's new in .NET Framework 4.6.2

.NET Framework 4.6.2 zahrnuje nové funkce v následujících oblastech:.NET Framework 4.6.2 includes new features in the following areas:

Seznam nových rozhraní API přidaných do .NET Framework 4.6.2 najdete v tématu .NET Framework změn rozhraní API 4.6.2 na GitHubu.For a list of new APIs added to .NET Framework 4.6.2, see .NET Framework 4.6.2 API Changes on GitHub. Seznam vylepšení funkcí a oprav chyb v .NET Framework 4.6.2 najdete v článku .NET Framework 4.6.2 seznam změn na GitHubu.For a list of feature improvements and bug fixes in .NET Framework 4.6.2, see .NET Framework 4.6.2 List of Changes on GitHub. Další informace najdete v tématu oznámení .NET Framework 4.6.2 na blogu .NET.For more information, see Announcing .NET Framework 4.6.2 in the .NET blog.

ASP.NETASP.NET

ASP.NET v .NET Framework 4.6.2 zahrnuje následující vylepšení:In .NET Framework 4.6.2, ASP.NET includes the following enhancements:

Vylepšená podpora pro lokalizované chybové zprávy v validátorech datových poznámekImproved support for localized error messages in data annotation validators

Validátory datových poznámek umožňují provádět ověřování přidáním jednoho nebo více atributů do vlastnosti třídy.Data annotation validators enable you to perform validation by adding one or more attributes to a class property. ValidationAttribute.ErrorMessageElement atributu definuje text chybové zprávy, pokud se ověření nepovede.The attribute's ValidationAttribute.ErrorMessage element defines the text of the error message if validation fails. Počínaje .NET Framework 4.6.2, ASP.NET usnadňuje lokalizaci chybových zpráv.Starting with .NET Framework 4.6.2, ASP.NET makes it easy to localize error messages. Chybové zprávy budou lokalizovány v těchto případech:Error messages will be localized if:

  1. ValidationAttribute.ErrorMessageJe k dispozici v atributu ověřování.The ValidationAttribute.ErrorMessage is provided in the validation attribute.

  2. Soubor prostředků je uložený ve složce App_LocalResources.The resource file is stored in the App_LocalResources folder.

  3. Název souboru lokalizovaných zdrojů má DataAnnotation.Localization.{ název formuláře }.resx , kde název je název jazykové verze ve formátu languageCode - Country/regionCode nebo languageCode.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. Klíčovým názvem prostředku je řetězec přiřazený k ValidationAttribute.ErrorMessage atributu a jeho hodnota je lokalizovaná chybová zpráva.The key name of the resource is the string assigned to the ValidationAttribute.ErrorMessage attribute, and its value is the localized error message.

Například následující atribut poznámky k datům definuje chybovou zprávu výchozí jazykové verze pro neplatné hodnocení.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

Pak můžete vytvořit soubor prostředků, dataanotace. Localization. fr. resx, jehož klíč je řetězec chybové zprávy a jehož hodnota je lokalizovaná chybová zpráva.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. Soubor se musí nacházet ve App.LocalResources složce.The file must be found in the App.LocalResources folder. Například následující je klíč a jeho hodnota v lokalizované chybové zprávě jazyka francouzštiny (FR):For example, the following is the key and its value in a localized French (fr) language error message:

NázevName HodnotaValue
Hodnocení musí být v rozmezí od 1 do 10.The rating must be between 1 and 10. La doit être tvoří meziplatformní 1 et 10.La note doit être comprise entre 1 et 10.

Lokalizace datových poznámek je navíc rozšiřitelná.In addition, data annotation localization is extensible. Vývojáři mohou připojit vlastní poskytovatele řetězce lokalizátora implementací IStringLocalizerProvider rozhraní k uložení lokalizačního řetězce jinde než v souboru prostředků.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.

Asynchronní podpora s poskytovateli úložiště stavu relaceAsync support with session-state store providers

ASP.NET teď umožňuje používat metody vracející úlohy s poskytovateli úložiště stavu relace, což aplikacím ASP.NET umožní získat výhody škálovatelnosti Async.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. Pro podporu asynchronních operací s poskytovateli úložiště stavu relace zahrnuje ASP.NET nové rozhraní, System.Web.SessionState.ISessionStateModule které dědí z IHttpModule a umožňuje vývojářům implementovat vlastní modul stavu relace a zprostředkovatele úložiště asynchronních relací.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. Rozhraní je definováno následujícím způsobem:The interface is defined as follows:

public interface ISessionStateModule : IHttpModule {
    void ReleaseSessionState(HttpContext context);
    Task ReleaseSessionStateAsync(HttpContext context);
}
Public Interface ISessionStateModule : Inherits IHttpModule
   Sub ReleaseSessionState(context As HttpContext)
   Function ReleaseSessionStateAsync(context As HttpContext) As Task
End Interface

Kromě toho SessionStateUtility Třída obsahuje dvě nové metody IsSessionStateReadOnly a IsSessionStateRequired , které lze použít k podpoře asynchronních operací.In addition, the SessionStateUtility class includes two new methods, IsSessionStateReadOnly and IsSessionStateRequired, that can be used to support asynchronous operations.

Asynchronní podpora pro poskytovatele výstupní mezipamětiAsync support for output-cache providers

Počínaje .NET Framework 4.6.2 lze metody vracející úlohy použít s poskytovateli výstupní mezipaměti k zajištění výhod škálovatelnosti Async.Starting with .NET Framework 4.6.2, task-returning methods can be used with output-cache providers to provide the scalability benefits of async. Poskytovatelé, kteří implementují tyto metody, omezují blokování vláken na webovém serveru a zlepšují škálovatelnost služby ASP.NET.Providers that implement these methods reduce thread-blocking on a web server and improve the scalability of an ASP.NET service.

Byla přidána následující rozhraní API pro podporu zprostředkovatelů asynchronní výstupní mezipaměti:The following APIs have been added to support asynchronous output-cache providers:

Kategorie znakůCharacter categories

Znaky ve .NET Framework 4.6.2 jsou klasifikovány na základě standardu Unicode verze 8.0.0.Characters in .NET Framework 4.6.2 are classified based on the Unicode Standard, Version 8.0.0. V .NET Framework 4,6 a .NET Framework 4.6.1 byly znaky klasifikovány na základě kategorií znaků Unicode 6,3.In .NET Framework 4.6 and .NET Framework 4.6.1, characters were classified based on Unicode 6.3 character categories.

Podpora Unicode 8,0 je omezená na klasifikaci znaků CharUnicodeInfo třídou a na typy a metody, které na ní spoléhají.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. Mezi ně patří StringInfo třída, přetížená Char.GetUnicodeCategory Metoda a třídy znaků rozpoznané modulem .NET Framework regulárních výrazů.These include the StringInfo class, the overloaded Char.GetUnicodeCategory method, and the character classes recognized by the .NET Framework regular expression engine. Porovnání znaků a řetězců a jejich řazení není ovlivněno touto změnou a nadále se spoléhá na základní operační systém nebo v systémech Windows 7 na znaková data, která poskytuje .NET Framework.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 .NET Framework.

Změny v kategoriích znaků z Unicode 6,0 až Unicode 7,0 najdete na webu Unicode Consortium na standardu Unicode verze 7.0.0 .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. Změny z Unicode 7,0 na Unicode 8,0 najdete na webu Unicode Consortium na standardu Unicode verze 8.0.0 .For changes from Unicode 7.0 to Unicode 8.0, see The Unicode Standard, Version 8.0.0 at The Unicode Consortium website.

KryptografieCryptography

Podpora pro certifikáty x509 obsahující FIPS 186-3 DSASupport for X509 certificates containing FIPS 186-3 DSA

.NET Framework 4.6.2 přidává podporu certifikátů x509 (Digital Signature Algorithm), jejichž klíče překračují limit bitů FIPS 186-2 1024..NET Framework 4.6.2 adds support for DSA (Digital Signature Algorithm) X509 certificates whose keys exceed the FIPS 186-2 1024-bit limit.

Kromě podpory většího počtu klíčových velikostí FIPS 186-3 .NET Framework 4.6.2 umožňuje výpočet podpisů s řadou algoritmu SHA-2 (SHA256, SHA384 a SHA512).In addition to supporting the larger key sizes of FIPS 186-3, .NET Framework 4.6.2 allows computing signatures with the SHA-2 family of hash algorithms (SHA256, SHA384, and SHA512). Podpora FIPS 186-3 je poskytována novou System.Security.Cryptography.DSACng třídou.FIPS 186-3 support is provided by the new System.Security.Cryptography.DSACng class.

V případě, že se v RSA .NET Framework 4,6 a třídě v .NET Framework 4.6.1 zachovává poslední změny třídy ECDsa , DSA má abstraktní základní třída v .NET Framework 4.6.2 další metody, které umožňují volajícím používat tuto funkci bez přetypování.In keeping with recent changes to the RSA class in .NET Framework 4.6 and the ECDsa class in .NET Framework 4.6.1, the DSA abstract base class in .NET Framework 4.6.2 has additional methods to allow callers to use this functionality without casting. Můžete zavolat DSACertificateExtensions.GetDSAPrivateKey metodu rozšíření pro podepsání dat, jak ukazuje následující příklad.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

A můžete zavolat DSACertificateExtensions.GetDSAPublicKey metodu rozšíření pro ověření podepsaných dat, jak ukazuje následující příklad.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

Větší přehlednost pro vstupy pro rutiny odvození ECDiffieHellman klíčůIncreased clarity for inputs to ECDiffieHellman key derivation routines

.NET Framework 3,5 přidala podporu pro Diffie-Hellman klíčovou smlouvu na eliptickou křivku se třemi různými rutinami funkce odvození klíče (KDF)..NET Framework 3.5 added support for Elliptic Curve Diffie-Hellman Key Agreement with three different Key Derivation Function (KDF) routines. Vstupy pro rutiny a samotné rutiny byly nakonfigurovány prostřednictvím vlastností ECDiffieHellmanCng objektu.The inputs to the routines, and the routines themselves, were configured via properties on the ECDiffieHellmanCng object. Ale vzhledem k tomu, že ne všechny rutiny čtou všechna vstupní vlastnost, existovala v minulosti pro vás rozsáhlá místnost pro nejasnost.But since not every routine read every input property, there was ample room for confusion on the past of the developer.

Pro vyřešení tohoto .NET Framework 4.6.2 byly do základní třídy přidány následující tři metody, ECDiffieHellman které jasně reprezentují tyto KDF rutiny a jejich vstupy:To address this in .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:

Metoda ECDiffieHellmanECDiffieHellman method PopisDescription
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[]) Odvozuje materiál klíče pomocí vzorce.Derives key material using the formula

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

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

kde x je vypočtený výsledek algoritmu ES Diffie-Hellman.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) Odvozuje materiál klíče pomocí vzorce.Derives 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)

kde x je vypočtený výsledek algoritmu ES Diffie-Hellman.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) Odvodí klíč klíče pomocí algoritmu odvození náhodného použití funkce TLS.Derives key material using the TLS pseudo-random function (PRF) derivation algorithm.

Podpora trvalého symetrického šifrování s trvalým klíčemSupport for persisted-key symmetric encryption

Knihovna kryptografických služeb systému Windows (CNG) přidala podporu pro ukládání trvalých symetrických klíčů a používání hardwarových a uložených symetrických klíčů a .NET Framework 4.6.2 umožnila vývojářům využít tuto funkci.The Windows cryptography library (CNG) added support for storing persisted symmetric keys and using hardware-stored symmetric keys, and .NET Framework 4.6.2 made it possible for developers to make use of this feature. Vzhledem k tomu, že pojem názvů klíčů a poskytovatelů klíčů jsou specifické pro konkrétní implementaci, vyžaduje použití této funkce konstruktor konkrétních typů implementace namísto preferovaného přístupu k továrně (například volání 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).

Pro algoritmy AES ( AesCng ) a 3DES () existují trvalé podpory symetrického šifrování-Key TripleDESCng .Persisted-key symmetric encryption support exists for the AES (AesCng) and 3DES (TripleDESCng) algorithms. Například: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

Podpora SignedXml pro algoritmus hash SHA-2SignedXml support for SHA-2 hashing

.NET Framework 4.6.2 přidává podporu SignedXml tříd pro signatury RSA-SHA256, RSA-SHA384 a RSA-SHA512 pro podpisové metody a SHA256, SHA384 a SHA512 referenční algoritmy Digest..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.

Konstanty identifikátoru URI jsou všechny vystavené na SignedXml :The URI constants are all exposed on SignedXml:

Pole SignedXmlSignedXml field KonstantaConstant
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"

Všechny programy, které zaregistrovaly vlastní SignatureDescription obslužnou rutinu do nástroje CryptoConfig pro přidání podpory pro tyto algoritmy, budou i nadále fungovat stejně jako v minulosti, ale vzhledem k tomu, že jsou teď výchozí nastavení platformy, CryptoConfig registrace už není potřeba.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

.NET Framework Zprostředkovatel dat pro SQL Server ( System.Data.SqlClient ) obsahuje následující nové funkce v .NET Framework 4.6.2:.NET Framework Data Provider for SQL Server (System.Data.SqlClient) includes the following new features in .NET Framework 4.6.2:

Sdružování připojení a vypršení časových limitů pomocí databází SQL AzureConnection pooling and timeouts with Azure SQL databases

Je-li povoleno sdružování připojení a dojde k vypršení časového limitu nebo jiné chyby přihlášení, je výjimka uložena do mezipaměti a při každém následném pokusu o připojení na dalších 5 sekund až 1 minutu je vyvolána výjimka v mezipaměti.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. Další informace najdete v tématu věnovaném sdružování připojení SQL Server (ADO.NET).For more information, see SQL Server Connection Pooling (ADO.NET).

Toto chování není vhodné při připojování k databázím Azure SQL, protože pokusy o připojení mohou selhat s přechodem k přechodným chybám, které se obvykle obnovují rychle.This behavior is not desirable when connecting to Azure SQL Databases, since connection attempts can fail with transient errors that are typically recovered quickly. Pro lepší optimalizaci možností opakovaného pokusu o připojení se při selhání připojení k databázím Azure SQL odstraní chování při blokování fondu připojení.To better optimize the connection retry experience, the connection pool blocking period behavior is removed when connections to Azure SQL Databases fail.

Přidání PoolBlockingPeriod klíčového slova New vám umožní vybrat dobu blokování, která se pro vaši aplikaci nejlépe hodí.The addition of the new PoolBlockingPeriod keyword lets you select the blocking period best suited for your app. Mezi tyto hodnoty patří:Values include:

Auto

Doba blokování fondu připojení pro aplikaci, která se připojuje k Azure SQL Database je zakázána a je povolená doba blokování fondu připojení pro aplikaci, která se připojuje k jakékoli jiné instanci SQL Server.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. Toto je výchozí hodnota.This is the default value. Pokud název koncového bodu serveru končí některým z následujících, považují se za databáze SQL Azure: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

Doba blokování fondu připojení je vždycky povolená.The connection pool blocking period is always enabled.

NeverBlock

Doba blokování fondu připojení je vždycky zakázaná.The connection pool blocking period is always disabled.

Vylepšení pro Always EncryptedEnhancements for Always Encrypted

SQLClient přináší dvě vylepšení pro Always Encrypted:SQLClient introduces two enhancements for Always Encrypted:

  • Pro zlepšení výkonu parametrizovaných dotazů proti šifrovaným databázovým sloupcům jsou metadata šifrování pro parametry dotazu nyní ukládána do mezipaměti.To improve performance of parameterized queries against encrypted database columns, encryption metadata for query parameters is now cached. SqlConnection.ColumnEncryptionQueryMetadataCacheEnabledPokud je vlastnost nastavena na true (což je výchozí hodnota), je-li stejný dotaz volán několikrát, klient načte metadata parametrů ze serveru pouze jednou.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.

  • Položky šifrovacího klíče sloupce v mezipaměti klíčů jsou teď po konfigurovatelném časovém intervalu vyřazení, které nastavíte pomocí SqlConnection.ColumnEncryptionKeyCacheTtl Vlastnosti.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

V .NET Framework 4.6.2 bylo Windows Communication Foundation rozšířeno v následujících oblastech:In .NET Framework 4.6.2, Windows Communication Foundation has been enhanced in the following areas:

Podpora zabezpečení přenosu WCF pro certifikáty uložené pomocí CNGWCF transport security support for certificates stored using CNG

Zabezpečení přenosu WCF podporuje certifikáty uložené pomocí knihovny kryptografických služeb systému Windows (CNG).WCF transport security supports certificates stored using the Windows cryptography library (CNG). V .NET Framework 4.6.2 je tato podpora omezená na použití certifikátů s veřejným klíčem, který má exponent větší než 32 bitů.In .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. Když je aplikace cílena .NET Framework 4.6.2, je tato funkce ve výchozím nastavení zapnutá.When an application targets .NET Framework 4.6.2, this feature is on by default.

Pro aplikace, které cílí na .NET Framework 4.6.1 a starší, ale běží na .NET Framework 4.6.2, je možné tuto funkci povolit přidáním následujícího řádku do <runtime> oddílu souboru app.config nebo web.config.For applications that target .NET Framework 4.6.1 and earlier but are running on .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"
/>

To lze provést také programově s kódem podobným následujícímu: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)

Lepší podpora více pravidel úprav více letního času pomocí třídy DataContractJsonSerializerBetter support for multiple daylight saving time adjustment rules by the DataContractJsonSerializer class

Zákazníci mohou použít nastavení konfigurace aplikace k určení, zda DataContractJsonSerializer Třída podporuje více pravidel úprav pro jedno časové pásmo.Customers can use an application configuration setting to determine whether the DataContractJsonSerializer class supports multiple adjustment rules for a single time zone. Toto je funkce výslovného souhlasu.This is an opt-in feature. Pokud ho chcete povolit, přidejte do souboru app.config následující nastavení:To enable it, add the following setting to your app.config file:

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

Když je tato funkce povolená, DataContractJsonSerializer objekt TimeZoneInfo místo TimeZone typu použije k deserializaci dat data a času typ.When this feature is enabled, a DataContractJsonSerializer object uses the TimeZoneInfo type instead of the TimeZone type to deserialize date and time data. TimeZoneInfo podporuje více pravidel úprav, což umožňuje pracovat s historickými daty časových pásem; TimeZone není.TimeZoneInfo supports multiple adjustment rules, which makes it possible to work with historic time zone data; TimeZone does not.

Další informace o TimeZoneInfo úpravách struktury a časových pásem najdete v tématu Přehled časových pásem.For more information on the TimeZoneInfo structure and time zone adjustments, see Time Zone Overview.

NetNamedPipeBinding nejlepší shodyNetNamedPipeBinding best match

Služba WCF má nové nastavení aplikace, které lze nastavit na klientských aplikacích, aby bylo zajištěno, že se budou vždy připojovat ke službě naslouchat na identifikátoru URI, který nejlépe odpovídá tomu, kterou vyžádají.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. Když je nastavení této aplikace nastaveno na false (výchozí), klienti nástroje používají NetNamedPipeBinding k pokusu o připojení ke službě naslouchající na identifikátoru URI, který je podřetězec požadovaného identifikátoru URI.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.

Například klient se pokusí připojit ke službě naslouchat na adrese net.pipe://localhost/Service1 , ale na tomto počítači, na kterém je spuštěná s oprávněním správce, naslouchá jiná služba 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. Když je nastavení této aplikace nastaveno na false , klient se pokusí připojit k nesprávné službě.With this app setting set to false, the client would attempt to connect to the wrong service. Po nastavení nastavení aplikace se true Klient vždy připojí k nejlépe vyhovující službě.After setting the app setting to true, the client will always connect to the best matching service.

Poznámka

Klienti používají NetNamedPipeBinding Najít služby na základě základní adresy služby (pokud existuje), nikoli úplné adresy koncového bodu.Clients using NetNamedPipeBinding find services based on the service's base address (if it exists) rather than the full endpoint address. Chcete-li zajistit, aby toto nastavení vždy fungovalo, měla by služba používat jedinečnou základní adresu.To ensure this setting always works the service should use a unique base address.

Pokud chcete tuto změnu povolit, přidejte do souboru App.config nebo Web.config klientské aplikace následující nastavení aplikace: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 není výchozím protokolem.SSL 3.0 is not a default protocol

Pokud používáte NetTcp se zabezpečením přenosu a typem přihlašovacích údajů certifikátu, SSL 3,0 už není výchozím protokolem používaným pro vyjednávání zabezpečeného připojení.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. Ve většině případů by nemělo dojít k žádným dopadům na existující aplikace, protože TLS 1,0 je zahrnutý v seznamu protokolů pro NetTcp.In most cases, there should be no impact to existing apps, because TLS 1.0 is included in the protocol list for NetTcp. Všichni existující klienti by měli být schopni vyjednat připojení pomocí aspoň TLS 1,0.All existing clients should be able to negotiate a connection using at least TLS 1.0. Pokud se vyžaduje SSL3, použijte jeden z následujících konfiguračních mechanismů a přidejte ho do seznamu sjednaných protokolů.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)

V .NET Framework 4.6.2 bylo Windows Presentation Foundation rozšířeno v následujících oblastech:In .NET Framework 4.6.2, Windows Presentation Foundation has been enhanced in the following areas:

Seskupení řazeníGroup sorting

Aplikace, která používá CollectionView objekt k seskupení dat, teď může explicitně deklarovat způsob řazení skupin.An application that uses a CollectionView object to group data can now explicitly declare how to sort the groups. Explicitní řazení řeší problém neintuitivního řazení, ke kterému dochází, když aplikace dynamicky přidává nebo odebírá skupiny nebo když změní hodnotu vlastností položek, které jsou součástí seskupení.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. Může také zvýšit výkon procesu vytváření skupiny přesunutím porovnání vlastností seskupení z řazení celé kolekce do řazení skupin.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.

Aby bylo možné podporovat řazení skupin, nové GroupDescription.SortDescriptions a GroupDescription.CustomSort vlastnosti popisují způsob řazení kolekce skupin vytvořených GroupDescription objektem.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. To je analogické jako způsob, jakým identicky pojmenované ListCollectionView vlastnosti popisují způsob řazení datových položek.This is analogous to the way the identically named ListCollectionView properties describe how to sort the data items.

Dvě nové statické vlastnosti PropertyGroupDescription třídy CompareNameAscending a CompareNameDescending lze použít v nejběžnějších případech.Two new static properties of the PropertyGroupDescription class, CompareNameAscending and CompareNameDescending, can be used for the most common cases.

Například následující XAML seskupuje data podle stáří, řadí věkové skupiny ve vzestupném pořadí a seskupuje položky v rámci každé věkové skupiny podle příjmení.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>

Podpora dotykové klávesniceTouch keyboard support

Podpora dotykové klávesnice umožňuje sledovat fokus v aplikacích WPF automatickým vyvoláním a chybějícím dotykovou klávesnicí ve Windows 10, když je vstup dotykového ovládání přijatý ovládacím prvkem, který může přebírat textový vstup.Touch keyboard support enables focus tracking in WPF applications by automatically invoking and dismissing the touch Keyboard in Windows 10 when the touch input is received by a control that can take textual input.

V předchozích verzích .NET Framework se aplikace WPF nemůžou vyjádřit k sledování fokusu bez zakázání podpory gesta perem a dotykového ovládání WPF.In previous versions of .NET Framework, WPF applications can't opt into the focus tracking without disabling WPF pen/touch gesture support. V důsledku toho musí aplikace WPF zvolit mezi plnou podporou WPF touch nebo se spoléhat na povýšení myší systému Windows.As a result, WPF applications must choose between full WPF touch support or rely on Windows mouse promotion.

Rozlišení DPI pro monitorPer-monitor DPI

Pro podporu nedávných rozmnožení prostředí s vysokým rozlišením DPI a hybridních DPI pro aplikace WPF v .NET Framework 4.6.2 umožňuje sledovat monitorování na základě monitoru.To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in .NET Framework 4.6.2 enables per-monitor awareness. Další informace o tom, jak povolit aplikaci WPF pro monitorování rozlišení DPI na monitoru, najdete v ukázkách a v příručce pro vývojáře na GitHubu.See the samples and developer guide on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.

V předchozích verzích .NET Framework aplikace WPF mají na rozlišení DPI systémové informace.In previous versions of .NET Framework, WPF apps are system-DPI aware. Jinými slovy, uživatelské rozhraní aplikace se podle potřeby škáluje operačním systémem, v závislosti na DPI monitoru, na kterém je aplikace vykreslená.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.

Pro aplikace běžící pod .NET Framework 4.6.2 můžete v aplikacích WPF zakázat změny rozlišení DPI podle monitoru přidáním příkazu konfigurace do <runtime> oddílu konfiguračního souboru aplikace následujícím způsobem:For apps running under .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)

V .NET Framework 4.6.2 bylo programovací model Windows Workflow Foundation vylepšeno v následující oblasti:In .NET Framework 4.6.2, Windows Workflow Foundation has been enhanced in the following area:

Podpora pro výrazy jazyka C# a IntelliSense v přehostovaném návrháři WFSupport for C# expressions and IntelliSense in the Rehosted WF Designer

Počínaje .NET Framework 4,5 podporuje WF výrazy jazyka C# v návrháři sady Visual Studio i v pracovních postupech kódu.Starting with .NET Framework 4.5, WF supports C# expressions in both the Visual Studio Designer and in code workflows. Rehostovaná Návrhář postupu provádění je klíčovou funkcí WF, která umožňuje, aby se Návrhář postupu provádění v aplikaci mimo Visual Studio (například v WPF).The Rehosted 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). Programovací model Windows Workflow Foundation poskytuje možnost podporovat výrazy jazyka C# a IntelliSense v Návrhář postupu provádění hostitele.Windows Workflow Foundation provides the ability to support C# expressions and IntelliSense in the Rehosted Workflow Designer. Další informace najdete na blogu programovací model Windows Workflow Foundation.For more information, see the Windows Workflow Foundation blog.

Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio Ve verzích .NET Framework před 4.6.2 se IntelliSense Návrháře WF při opětovném sestavení projektu pracovního postupu ze sady Visual Studio přeruší.Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio In versions of the .NET Framework prior to 4.6.2, WF Designer IntelliSense is broken when a customer rebuilds a workflow project from Visual Studio. I když je sestavení projektu úspěšné, typy pracovních postupů nejsou v Návrháři nalezeny a upozornění z IntelliSense pro chybějící typy pracovních postupů se zobrazí v okně Seznam chyb .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 řeší tento problém a zpřístupňuje IntelliSense..NET Framework 4.6.2 addresses this issue and makes IntelliSense available.

Aplikace pracovního postupu V1 se sledováním pracovních postupů zapnuto v režimu FIPSWorkflow V1 applications with Workflow Tracking on now run under FIPS-mode

Počítače s povoleným režimem dodržování standardů FIPS teď můžou úspěšně spustit aplikaci ve stylu pracovního postupu verze 1 se sledováním pracovních postupů zapnutým.Machines with FIPS Compliance Mode enabled can now successfully run a workflow Version 1-style application with Workflow tracking on. Chcete-li povolit tento scénář, musíte provést následující změnu app.config souboru:To enable this scenario, you must make the following change to your app.config file:

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

Pokud tento scénář není povolený, bude při spuštění aplikace i nadále vygenerována výjimka se zprávou "Tato implementace není součástí ověřených kryptografických algoritmů standardu FIPS platformy Windows."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."

Vylepšení pracovního postupu při použití dynamické aktualizace se sadou Visual Studio Návrhář postupu prováděníWorkflow Improvements when using Dynamic Update with Visual Studio Workflow Designer

Návrháři aktivity Návrhář postupu provádění, vývojový diagram a jiní návrháři aktivit pracovního postupu nyní úspěšně načetli a zobrazili pracovní postupy, které byly uloženy po volání DynamicUpdateServices.PrepareForUpdate metody.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. Ve verzích .NET Framework před .NET Framework 4.6.2 načítání souboru XAML v sadě Visual Studio pro pracovní postup, který byl uložen po volání, DynamicUpdateServices.PrepareForUpdate může způsobit následující problémy:In versions of the .NET Framework before .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:

  • Návrhář postupu provádění nemůže správně načíst soubor XAML (když ViewStateData.Id je na konci řádku).The Workflow Designer can't load the XAML file correctly (when the ViewStateData.Id is at the end of the line).

  • Návrhář aktivity vývojového diagramu nebo jiný Návrhář aktivity pracovního postupu může zobrazit všechny objekty ve výchozích umístěních na rozdíl od hodnot připojených vlastností.Flowchart Activity Designer or other Workflow Activity Designers may display all objects in their default locations as opposed to attached property values.

ClickOnceClickOnce

ClickOnce je aktualizovaná tak, aby podporovala TLS 1,1 a TLS 1,2 kromě protokolu 1,0, který už podporuje.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 automaticky zjišťuje, který protokol je vyžadován; aby bylo možné povolit podporu TLS 1,1 a 1,2, nejsou v rámci aplikace ClickOnce nutné žádné další kroky.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.

Převod aplikací model Windows Forms a WPF na aplikace pro UWPConverting Windows Forms and WPF apps to UWP apps

Windows teď nabízí možnosti, jak přenést existující desktopové aplikace pro Windows, včetně WPF a model Windows Forms aplikací, do Univerzální platforma Windows (UWP).Windows now offers capabilities to bring existing Windows desktop apps, including WPF and Windows Forms apps, to the Universal Windows Platform (UWP). Tato technologie funguje jako most, protože vám umožní postupně migrovat stávající základ kódu na UWP. tím se vaše aplikace přinášejí všem zařízením s Windows 10.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.

Převedená aplikace klasické pracovní plochy získala identitu aplikace podobnou identitě aplikací v aplikacích UWP, což zpřístupňuje rozhraní API UWP pro povolení funkcí, jako jsou živé dlaždice a oznámení.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. Aplikace se i nadále chová stejně jako dřív a běží jako aplikace s plnou důvěryhodností.The app continues to behave as before and runs as a full trust app. Po převedení aplikace lze do stávajícího procesu úplného vztahu důvěryhodnosti přidat proces kontejneru aplikace a přidat adaptivní uživatelské rozhraní.Once the app is converted, an app container process can be added to the existing full trust process to add an adaptive user interface. Když se všechny funkce přesunou do procesu kontejneru aplikace, může se odebrat úplný proces důvěryhodnosti a nová aplikace pro UWP se dá zpřístupnit pro všechna zařízení s Windows 10.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.

Vylepšení laděníDebugging improvements

Rozhraní API nespravovaného ladění bylo vylepšeno v .NET Framework 4.6.2, aby bylo možné provést další analýzu při NullReferenceException vyvolání, aby bylo možné určit, která proměnná v jednom řádku zdrojového kódu je null .The unmanaged debugging API has been enhanced in .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. Pro podporu tohoto scénáře byla do nespravovaného ladicího rozhraní API přidána následující rozhraní API.To support this scenario, the following APIs have been added to the unmanaged debugging API.

Co je nového v .NET Framework 4.6.1What's new in .NET Framework 4.6.1

.NET Framework 4.6.1 zahrnuje nové funkce v následujících oblastech:.NET Framework 4.6.1 includes new features in the following areas:

Další informace o .NET Framework 4.6.1 najdete v následujících tématech:For more information on .NET Framework 4.6.1, see the following topics:

Kryptografie: podpora pro certifikáty x509 obsahující ECDSACryptography: Support for X509 certificates containing ECDSA

.NET Framework 4,6 přidal podporu algoritmem RSACng pro certifikáty x509..NET Framework 4.6 added RSACng support for X509 certificates. .NET Framework 4.6.1 přidává podporu pro ECDSA (s eliptickou křivkou digitálního podpisu Algorithm) certifikátů x509..NET Framework 4.6.1 adds support for ECDSA (Elliptic Curve Digital Signature Algorithm) X509 certificates.

ECDSA nabízí lepší výkon a jedná se o bezpečnější algoritmus šifrování než RSA. poskytuje skvělou volbu toho, kde je výkon a škálovatelnost protokolu TLS (Transport Layer Security) obavy.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. Implementace .NET Framework zabalí volání do stávajících funkcí systému Windows.The .NET Framework implementation wraps calls into existing Windows functionality.

Následující příklad kódu ukazuje, jak snadné je generovat signaturu pro datový proud bajtů pomocí nové podpory pro certifikáty ECDSA x509 zahrnuté v .NET Framework 4.6.1.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 .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.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

To nabízí označený rozdíl na kód potřebný k vygenerování podpisu v .NET Framework 4,6.This offers a marked contrast to the code needed to generate a signature in .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.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

Do ADO.NET byly přidány následující:The following have been added to ADO.NET:

Always Encrypted podpora pro klíče chráněné hardwaremAlways Encrypted support for hardware protected keys

ADO.NET teď podporuje nativně ukládání Always Encrypted hlavních klíčů sloupce v modulech zabezpečení hardwaru (HSM).ADO.NET now supports storing Always Encrypted column master keys natively in Hardware Security Modules (HSMs). Díky této podpoře můžou zákazníci využívat asymetrické klíče uložené v HSM, aniž by museli psát vlastní Zprostředkovatelé úložiště klíčů pro vlastní sloupce a zaregistrovali je v aplikacích.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.

Aby mohli uživatelé získat přístup k Always Encrypted chráněným pomocí hlavních klíčů, které jsou uložené v modulu hardwarového zabezpečení (HSM), musí si do aplikačních serverů nebo klientských počítačů nainstalovat poskytovatele kryptografických služeb na základě dodavatele modulu hardwarového zabezpečení (HSM).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.

Vylepšené MultiSubnetFailover chování připojení pro AlwaysOnImproved MultiSubnetFailover connection behavior for AlwaysOn

SqlClient nyní automaticky poskytuje rychlejší připojení ke skupině dostupnosti AlwaysOn (AG).SqlClient now automatically provides faster connections to an AlwaysOn Availability Group (AG). Transparentně detekuje, jestli se vaše aplikace připojuje ke skupině dostupnosti AlwaysOn (AG) v jiné podsíti, a rychle zjistí aktuální aktivní server a poskytuje připojení k serveru.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. Před touto verzí musela aplikace nastavit připojovací řetězec tak, aby obsahovala "MultisubnetFailover=true" , aby označovala, že se připojil ke skupině dostupnosti AlwaysOn.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. Bez nastavení klíčového slova Connection na true se může u aplikace při připojování ke skupině dostupnosti AlwaysOn vyskytnout časový limit.Without setting the connection keyword to true, an application might experience a timeout while connecting to an AlwaysOn Availability Group. V této verzi nemusí aplikace nastavovat MultiSubnetFailover true již.With this release, an application does not need to set MultiSubnetFailover to true anymore. Další informace o podpoře SqlClient pro skupiny dostupnosti Always On najdete v článku Podpora SqlClient pro vysokou dostupnost a zotavení po havárii.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 zahrnuje řadu vylepšení a změn.Windows Presentation Foundation includes a number of improvements and changes.

Vylepšený výkonImproved performance

Zpoždění při vyvolávání událostí dotyku bylo opraveno v .NET Framework 4.6.1.The delay in firing touch events has been fixed in .NET Framework 4.6.1. Kromě toho psaní v RichTextBox ovládacím prvku již během rychlého vstupu nespojuje vlákno vykreslování.In addition, typing in a RichTextBox control no longer ties up the render thread during fast input.

Vylepšení kontroly pravopisuSpell checking improvements

Kontrola pravopisu v subsystému WPF byla aktualizována na Windows 8.1 a novějších verzích, aby bylo možné využívat operační systém pro kontrolu pravopisu dalších jazyků.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. Před Windows 8.1 se ve verzích Windows nezměnily žádné funkce.There is no change in functionality on Windows versions prior to Windows 8.1.

Stejně jako v předchozích verzích .NET Framework se detekuje jazyk pro TextBox Ora blok ovládacího prvku RichTextBox hledáním informací v následujícím pořadí:As in previous versions of .NET Framework, the language for a TextBox control ora RichTextBox block is detected by looking for information in the following order:

  • xml:lang, pokud je k dispozici.xml:lang, if it is present.

  • Aktuální jazyk vstupu.Current input language.

  • Aktuální jazyková verze vlákna.Current thread culture.

Další informace o podpoře jazyků v subsystému WPF najdete v blogovém příspěvku WPF o funkcích .NET Framework 4.6.1.For more information on language support in WPF, see the WPF blog post on .NET Framework 4.6.1 features.

Další podpora pro vlastní slovníky pro jednotlivé uživateleAdditional support for per-user custom dictionaries

V .NET Framework 4.6.1 rozpozná WPF vlastní slovníky, které jsou zaregistrované globálně.In .NET Framework 4.6.1, WPF recognizes custom dictionaries that are registered globally. Tato funkce je kromě možnosti registrace pro jednotlivé ovládací prvky k dispozici.This capability is available in addition to the ability to register them per-control.

V předchozích verzích WPF vlastní slovníky nerozpoznaly vyloučená slova a seznamy automatických oprav.In previous versions of WPF, custom dictionaries did not recognize Excluded Words and AutoCorrect lists. Jsou podporovány v Windows 8.1 a Windows 10 prostřednictvím souborů, které lze umístit do %AppData%\Microsoft\Spelling\<language tag> adresáře.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. Následující pravidla se vztahují na tyto soubory:The following rules apply to these files:

  • Soubory by měly mít přípony. dic (pro přidaná slova),. EXC (vyloučená slova) nebo. ACL (pro automatické opravy).The files should have extensions of .dic (for added words), .exc (for excluded words), or .acl (for AutoCorrect).

  • Soubory by měly být UTF-16 LE prostého textu, který začíná znakem pořadí bajtů (BOM).The files should be UTF-16 LE plaintext that starts with the Byte Order Mark (BOM).

  • Každý řádek by měl obsahovat slovo (v seznamech přidaných a vyloučených slov) nebo dvojici automatických slov oddělených svislým pruhem ("|") (v seznamu slov pro automatické opravy).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).

  • Tyto soubory jsou považovány za jen pro čtení a systém je nemění.These files are considered read-only and are not modified by the system.

Poznámka

Tyto nové formáty souborů nejsou přímo podporovány rozhraními API pro kontrolu pravopisu WPF a vlastní slovníky dodávané WPF v aplikacích by měly dál používat soubory. lex.These new file-formats are not directly supported by the WPF spell checking APIs, and the custom dictionaries supplied to WPF in applications should continue to use .lex files.

ukázkySamples

V úložišti GitHub Microsoft/WPF-Samples je několik ukázek WPF.There are a number of WPF samples on the Microsoft/WPF-Samples GitHub repository. Nám pomůžou vylepšit naše ukázky odesláním žádosti o přijetí změn nebo otevřením problému GitHubu.Help us improve our samples by sending us a pull-request or opening a GitHub issue.

Rozšíření DirectXDirectX extensions

WPF obsahuje balíček NuGet , který poskytuje nové implementace, které usnadňují D3DImage spolupráci s DX10 a DX11 obsahem.WPF includes a NuGet package that provides new implementations of D3DImage that make it easy for you to interoperate with DX10 and Dx11 content. Kód pro tento balíček je otevřený source a je dostupný na GitHubu.The code for this package has been open sourced and is available on GitHub.

Programovací model Windows Workflow Foundation: transakcíWindows Workflow Foundation: Transactions

Transaction.EnlistPromotableSinglePhaseMetoda teď může použít jiný správce distribuovaných transakcí než MSDTC k povýšení transakce.The Transaction.EnlistPromotableSinglePhase method can now use a distributed transaction manager other than MSDTC to promote the transaction. To provedete tak, že zadáte identifikátor ID zvýšení transakce GUID k novému Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) přetížení.You do this by specifying a GUID transaction promoter identifier to the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload . Pokud je tato operace úspěšná, existují omezení na možnosti transakce.If this operation is successful, there are limitations placed on the capabilities of the transaction. Jakmile je povýšen na transakci bez služby MSDTC, následující metody vyvolávají výjimku, TransactionPromotionException protože tyto metody vyžadují povýšení na MSDTC:Once a non-MSDTC transaction promoter is enlisted, the following methods throw a TransactionPromotionException because these methods require promotion to MSDTC:

Jakmile je vyřazení transakce bez služby MSDTC, je nutné ji použít pro budoucí trvalé zařazení pomocí protokolů, které definuje.Once a non-MSDTC transaction promoter is enlisted, it must be used for future durable enlistments by using protocols that it defines. Na Guid zvýšení transakce lze získat pomocí PromoterType Vlastnosti.The Guid of the transaction promoter can be obtained by using the PromoterType property. V případě, že transakce propaguje, poskytne vykonavatel transakce Byte pole, které představuje povýšený token.When the transaction promotes, the transaction promoter provides a Byte array that represents the promoted token. Aplikace může získat povýšený token pro transakci, která není povýšena MSDTC, s GetPromotedToken metodou.An application can obtain the promoted token for a non-MSDTC promoted transaction with the GetPromotedToken method.

Aby Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) bylo možné operaci povýšení úspěšně dokončit, musí se uživatelé nového přetížení řídit konkrétní sekvencí volání.Users of the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload must follow a specific call sequence in order for the promotion operation to complete successfully. Tato pravidla jsou popsána v dokumentaci metody.These rules are documented in the method's documentation.

ProfilaceProfiling

Nespravované rozhraní API profilování bylo vylepšeno následujícím způsobem:The unmanaged profiling API has been enhanced as follows:

  • Lepší podpora pro přístup k soubory PDB v rozhraní ICorProfilerInfo7 .Better support for accessing PDBs in the ICorProfilerInfo7 interface.

    V ASP.NET Core se sestavení stane mnohem častější, aby sestavení bylo zkompilováno v paměti pomocí Roslyn.In ASP.NET Core, it is becoming much more common for assemblies to be compiled in-memory by Roslyn. Pro vývojáře, kteří vytvářejí nástroje pro profilaci, to znamená, že soubory PDB, který historicky byly serializovány na disk, již nemusí být k dispozici.For developers making profiling tools, this means that PDBs that historically were serialized on disk may no longer be present. Nástroje profileru často používají soubory PDB k mapování kódu zpět na zdrojové řádky pro úlohy, jako je pokrytí kódu nebo analýza výkonu po jednotlivých řádcích.Profiler tools often use PDBs to map code back to source lines for tasks such as code coverage or line-by-line performance analysis. Rozhraní ICorProfilerInfo7 nyní obsahuje dvě nové metody, ICorProfilerInfo7:: GetInMemorySymbolsLength a ICorProfilerInfo7:: ReadInMemorySymbolsk poskytnutí těchto nástrojů profileru s přístupem k datům PDB v paměti pomocí nových rozhraní API může Profiler získat obsah souboru PDB v paměti jako bajtové pole a pak ho zpracovat nebo serializovat na disk.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.

  • Lepší instrumentaci pomocí rozhraní ICorProfiler.Better instrumentation with the ICorProfiler interface.

    Profilery, které používají ICorProfiler funkci ReJIT rozhraní API pro dynamickou instrumentaci, teď můžou upravovat některá metadata.Profilers that are using the ICorProfiler APIs ReJit functionality for dynamic instrumentation can now modify some metadata. Dříve takové nástroje mohly instrumentaci IL kdykoli instrumentovat, ale metadata se dají upravovat jenom v době načtení modulu.Previously such tools could instrument IL at any time, but metadata could only be modified at module load time. Vzhledem k tomu, že IL odkazuje na metadata, omezíme tak druhy instrumentace, které by bylo možné provést.Because IL refers to metadata, this limited the kinds of instrumentation that could be done. Některé z těchto omezení jsme převedli přidáním metody ICorProfilerInfo7:: ApplyMetaData pro podporu podmnožiny úprav metadat po načtení modulu, zejména přidáním nových AssemblyRef záznamů,,,, a TypeRef TypeSpec MemberRef MemberSpec UserString .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. Tato změna přináší mnohem širší množství možností instrumentace.This change makes a much broader range of on-the-fly instrumentation possible.

Generátor nativních bitových kopií (NGEN) soubory PDBNative Image Generator (NGEN) PDBs

Trasování událostí mezi počítači umožňuje zákazníkům profilovat program na počítači a a prohlédnout si data profilace pomocí mapování zdrojového řádku na počítači B. pomocí předchozích verzí .NET Framework by uživatel zkopíroval všechny moduly a nativní bitové kopie z profilované počítače do analytického počítače, který obsahuje soubor. PDB, aby vytvořil mapování zdrojové na nativní.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 .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. I když tento proces může fungovat i v případě, že jsou soubory relativně malé, například pro telefonní aplikace, můžou být soubory velmi velké na stolních počítačích a vyžadovat delší dobu kopírování.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.

V případě Ngen soubory PDB může NGen vytvořit PDB, který obsahuje mapování IL-to-Native bez závislosti na souboru PDB IL.With Ngen PDBs, NGen can create a PDB that contains the IL-to-native mapping without a dependency on the IL PDB. V našem scénáři trasování událostí mezi počítači je potřeba ke zkopírování nativní bitové kopie image generované počítačem A na počítač B a k použití rozhraní API pro přístup k rozhraní ladění , aby se načetlo mapování typu source-to-Il z nativního souboru PDB na nativní.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. Kombinování obou mapování poskytuje mapování zdrojové na nativní.Combining both mappings provides a source-to-native mapping. Vzhledem k tomu, že je soubor PDB nativní image mnohem menší než všechny moduly a nativní bitové kopie, proces kopírování z počítače A na počítač B je mnohem rychlejší.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.

Co je nového v .NET 2015What's new in .NET 2015

.NET 2015 zavádí .NET Framework 4,6 a .NET Core..NET 2015 introduces .NET Framework 4.6 and .NET Core. Některé nové funkce platí i pro i další funkce jsou specifické pro .NET Framework 4,6 nebo .NET Core.Some new features apply to both, and other features are specific to .NET Framework 4.6 or .NET Core.

  • ASP.NET CoreASP.NET Core

    .NET 2015 zahrnuje ASP.NET Core, což je implementace štíhlé aplikace .NET pro vytváření moderních cloudových aplikací..NET 2015 includes ASP.NET Core, which is a lean .NET implementation for building modern cloud-based apps. ASP.NET Core je modulární, takže můžete zahrnout jenom ty funkce, které jsou potřeba ve vaší aplikaci.ASP.NET Core is modular so you can include only those features that are needed in your application. Dá se hostovat ve službě IIS nebo v místním prostředí ve vlastním procesu a můžete spouštět aplikace s různými verzemi .NET Framework na stejném serveru.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. Obsahuje nový systém konfigurace prostředí, který je určený pro nasazení v cloudu.It includes a new environment configuration system that is designed for cloud deployment.

    MVC, webové rozhraní API a webové stránky jsou sjednocené do jediného rozhraní s názvem MVC 6.MVC, Web API, and Web Pages are unified into a single framework called MVC 6. ASP.NET Core aplikace můžete vytvářet prostřednictvím nástrojů v aplikaci Visual Studio 2015 nebo novější.You build ASP.NET Core apps through tools in Visual Studio 2015 or later. Stávající aplikace budou fungovat na novém .NET Framework. Chcete-li však vytvořit aplikaci, která používá MVC 6 nebo Signal 3, je nutné použít systém projektu v aplikaci Visual Studio 2015 nebo novější.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 or later.

    Informace najdete v tématu ASP.NET Core.For information, see ASP.NET Core.

  • ASP.NET aktualizaceASP.NET Updates

    • Rozhraní API založené na úlohách pro vyprazdňování asynchronních odpovědíTask-based API for Asynchronous Response Flushing

      ASP.NET nyní poskytuje jednoduché rozhraní API založené na úlohách pro vyprazdňování asynchronních odpovědí, HttpResponse.FlushAsync což umožňuje, aby odpovědi byly vyčištěny asynchronně pomocí podpory vašeho jazyka async/await .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.

    • Vazba modelu podporuje metody vracející úlohyModel binding supports task-returning methods

      V .NET Framework 4,5 přidal ASP.NET funkci vazby modelu, která povolila rozšiřitelný přístup k datům na základě kódu, na webové formuláře a uživatelské ovládací prvky.In .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. Systém vazby modelu teď podporuje Task – vrací metody vazby modelu.The Model Binding system now supports Task-returning model binding methods. Tato funkce umožňuje vývojářům webových formulářů získat výhody škálovatelnosti v rámci asynchronního přenosu dat při použití novějších verzí systému ORMs, včetně Entity Framework.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.

      Vazba asynchronního modelu je řízena aspnet:EnableAsyncModelBinding nastavením konfigurace.Async model binding is controlled by the aspnet:EnableAsyncModelBinding configuration setting.

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

      U aplikací, které cílí na .NET Framework 4,6, se nastaví jako výchozí true .On apps the target .NET Framework 4.6, it defaults to true. V aplikacích běžících na .NET Framework 4,6, které cílí na starší verzi .NET Framework, je false ve výchozím nastavení.On apps running on .NET Framework 4.6 that target an earlier version of .NET Framework, it is false by default. Dá se povolit nastavením nastavení konfigurace na true .It can be enabled by setting the configuration setting to true.

    • Podpora HTTP/2 (Windows 10)HTTP/2 Support (Windows 10)

      Http/2 je nová verze protokolu HTTP, která poskytuje mnohem lepší využití připojení (méně zpátečních cest mezi klientem a serverem). Výsledkem je načítání webových stránek s nižší latencí pro uživatele.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. Webové stránky (na rozdíl od služeb) využívají maximum HTTP/2, protože protokol je optimalizován pro více artefaktů, které jsou požadovány v rámci jednoho prostředí.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. Do ASP.NET v .NET Framework 4,6 byla přidána podpora protokolu HTTP/2.HTTP/2 support has been added to ASP.NET in .NET Framework 4.6. Vzhledem k tomu, že síťové funkce existují na více vrstvách, byly v systému Windows, ve službě IIS a v ASP.NET k dispozici nové funkce pro povolení protokolu HTTP/2.Because networking functionality exists at multiple layers, new features were required in Windows, in IIS, and in ASP.NET to enable HTTP/2. Abyste mohli používat HTTP/2 s ASP.NET, musíte běžet na Windows 10.You must be running on Windows 10 to use HTTP/2 with ASP.NET.

      Pro aplikace Windows 10 Univerzální platforma Windows (UWP), které používají rozhraní API, se standardně podporuje i HTTP/2 System.Net.Http.HttpClient .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.

      Aby bylo možné používat funkci PUSH_PROMISE v aplikacích ASP.NET, je nová metoda se dvěma přetíženími PushPromise(String) a PushPromise(String, String, NameValueCollection) přidána do HttpResponse třídy.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.

      Poznámka

      I když ASP.NET Core podporuje HTTP/2, podpora funkce PUSH Promise ještě není přidaná.While ASP.NET Core supports HTTP/2, support for the PUSH PROMISE feature has not yet been added.

      Prohlížeč a webový server (IIS v systému Windows) mají veškerou práci.The browser and the web server (IIS on Windows) do all the work. Nemusíte pro uživatele dělat těžkou zdvihání.You don't have to do any heavy-lifting for your users.

      Většina hlavních prohlížečů podporuje HTTP/2, takže pokud je server podporuje, bude vám vaše uživatelé moci podporu HTTP/2 využít.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.

    • Podpora pro protokol vazby tokenůSupport for the Token Binding Protocol

      Microsoft a Google spolupracuje na novém přístupu k ověřování, který se nazývá protokol vazby tokenů.Microsoft and Google have been collaborating on a new approach to authentication, called the Token Binding Protocol. Místní je, že ověřovací tokeny (v mezipaměti prohlížeče) můžou být odcizené a používané podvodníky pro přístup k jiným zabezpečeným prostředkům (třeba k bankovnímu účtu) bez vyžadování hesla nebo jakýchkoli dalších privilegovaných znalostí.The premise is that authentication tokens (in your browser cache) can be stolen and used by criminals to access otherwise secure resources (for example, your bank account) without requiring your password or any other privileged knowledge. Nový protokol se zaměřuje na zmírnění tohoto problému.The new protocol aims to mitigate this problem.

      Protokol vazby tokenu bude v systému Windows 10 implementován jako funkce prohlížeče.The Token Binding Protocol will be implemented in Windows 10 as a browser feature. Aplikace ASP.NET se budou podílet na protokolu, aby ověřovací tokeny byly ověřené jako legitimní.ASP.NET apps will participate in the protocol, so that authentication tokens are validated to be legitimate. Implementace klienta a serveru vytvoří kompletní ochranu určenou protokolem.The client and the server implementations establish the end-to-end protection specified by the protocol.

    • Algoritmy hash s náhodným řetězcemRandomized string hash algorithms

      .NET Framework 4,5 představil algoritmus hash s náhodným řetězcem..NET Framework 4.5 introduced a randomized string hash algorithm. ASP.NET ho ale nepodporuje, protože některé funkce ASP.NET jsou závislé na stabilním kódu hash.However, it was not supported by ASP.NET because of some ASP.NET features depended on a stable hash code. V .NET Framework 4,6 jsou nyní podporovány algoritmy hash s náhodným řetězcem.In .NET Framework 4.6, randomized string hash algorithms are now supported. Pokud chcete tuto funkci povolit, použijte aspnet:UseRandomizedStringHashAlgorithm nastavení konfigurace.To enable this feature, use the aspnet:UseRandomizedStringHashAlgorithm config setting.

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

    Rozhraní ADO .NET teď podporuje funkci Always Encrypted dostupnou v SQL Server 2016 Community Technology Preview 2 (CTP2).ADO .NET now supports the Always Encrypted feature available in SQL Server 2016 Community Technology Preview 2 (CTP2). Pomocí Always Encrypted může SQL Server provádět operace s šifrovanými daty a nejlepší ze všech šifrovacích klíčů se nachází v rámci důvěryhodného prostředí zákazníka, nikoli na serveru.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. Always Encrypted zabezpečuje zákaznická data, takže specializující nemají přístup k datům ve formátu prostého textu.Always Encrypted secures customer data so DBAs do not have access to plain text data. Šifrování a dešifrování dat probíhá transparentně na úrovni ovladače a minimalizuje změny, které je třeba provést u existujících aplikací.Encryption and decryption of data happens transparently at the driver level, minimizing changes that have to be made to existing applications. Podrobnosti najdete v tématu Always Encrypted (databázový stroj) a Always Encrypted (vývoj klientů).For details, see Always Encrypted (Database Engine) and Always Encrypted (client development).

  • 64 kompilátor JIT pro spravovaný kód64-bit JIT Compiler for managed code

    .NET Framework 4,6 obsahuje novou verzi 64 kompilátoru JIT (původně kódu s názvem RyuJIT)..NET Framework 4.6 features a new version of the 64-bit JIT compiler (originally code-named RyuJIT). Nový 64 kompilátor poskytuje významné zlepšení výkonu oproti staršímu 64 kompilátoru JIT.The new 64-bit compiler provides significant performance improvements over the older 64-bit JIT compiler. Nový 64 kompilátor je povolen pro 64 procesy spuštěné nad .NET Framework 4,6.The new 64-bit compiler is enabled for 64-bit processes running on top of .NET Framework 4.6. Vaše aplikace bude spuštěna v 64m procesu, pokud je kompilována jako 64-bit nebo AnyCPU a je spuštěna v operačním systému 64.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. I když jste se ujistili, že přechod na nový kompilátor je co možná transparentní, jsou možné změny v chování.While care has been taken to make the transition to the new compiler as transparent as possible, changes in behavior are possible.

    Nový 64 kompilátor JIT zahrnuje také funkce akcelerace hardwarového SIMDu v případě, že se v oboru názvů společně s typy SIMD podporují System.Numerics , což může přinést dobré zlepšení výkonu.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.

  • Vylepšení zavaděče sestaveníAssembly loader improvements

    Zavaděč sestavení nyní používá paměť efektivněji uvolněním sestavení IL po načtení odpovídající image NGEN.The assembly loader now uses memory more efficiently by unloading IL assemblies after a corresponding NGEN image is loaded. Tato změna snižuje virtuální paměť, což je zvláště užitečné pro velké 32ové aplikace (jako je například Visual Studio), a také šetří fyzickou paměť.This change decreases virtual memory, which is particularly beneficial for large 32-bit apps (such as Visual Studio), and also saves physical memory.

  • Změny knihovny základních třídBase class library changes

    K .NET Framework 4,6 bylo přidáno mnoho nových rozhraní API, které umožňuje použití klíčových scénářů.Many new APIs have been added around to .NET Framework 4.6 to enable key scenarios. Mezi ně patří tyto změny a dodatky:These include the following changes and additions:

    • <T>Implementace IReadOnlyCollectionIReadOnlyCollection<T> implementations

      Další kolekce implementují IReadOnlyCollection<T> například Queue<T> a Stack<T> .Additional collections implement IReadOnlyCollection<T> such as Queue<T> and Stack<T>.

    • CultureInfo. CurrentCulture a CultureInfo. CurrentUICultureCultureInfo.CurrentCulture and CultureInfo.CurrentUICulture

      CultureInfo.CurrentCultureVlastnosti a CultureInfo.CurrentUICulture jsou nyní určeny pro čtení i zápis, nikoli jen pro čtení.The CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture properties are now read-write rather than read-only. Pokud CultureInfo k těmto vlastnostem přiřadíte nový objekt, změní se také aktuální jazyková verze vlákna definovaná Thread.CurrentThread.CurrentCulture vlastností a aktuální jazyková verze vlákna uživatelského rozhraní definovaná Thread.CurrentThread.CurrentUICulture vlastnostmi.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.

    • Vylepšení uvolňování paměti (GC)Enhancements to garbage collection (GC)

      GCTřída teď obsahuje TryStartNoGCRegion metody a EndNoGCRegion , které umožňují zakázat uvolňování paměti během provádění kritické cesty.The GC class now includes TryStartNoGCRegion and EndNoGCRegion methods that allow you to disallow garbage collection during the execution of a critical path.

      Nové přetížení GC.Collect(Int32, GCCollectionMode, Boolean, Boolean) metody umožňuje řídit, zda je halda malých objektů i halda pro velké objekty Swept a komprimována nebo Swept pouze.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.

    • Typy s povoleným SIMDSIMD-enabled types

      System.NumericsObor názvů teď obsahuje několik typů s povoleným SIMD, jako Matrix3x2 jsou, Matrix4x4 ,, Plane Quaternion , Vector2 , Vector3 a Vector4 .The System.Numerics namespace now includes a number of SIMD-enabled types, such as Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3, and Vector4.

      Vzhledem k tomu, že nový 64 kompilátor JIT zahrnuje také funkce akcelerace hardwarového SIMD, existují obzvláště významná zlepšení výkonu při použití typů SIMD s novým 64 kompilátorem JIT.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.

    • Aktualizace kryptografieCryptography updates

      System.Security.CryptographyRozhraní API se aktualizuje tak, aby podporovalo rozhraní API kryptografie Windows CNG.The System.Security.Cryptography API is being updated to support the Windows CNG cryptography APIs. Předchozí verze .NET Framework se jako základ pro implementaci spoléhaly jenom na starší verzi rozhraní API kryptografie Windows System.Security.Cryptography .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. Měli jsme požadavky na podporu rozhraní API CNG, protože podporuje moderní kryptografické algoritmy, které jsou důležité pro určité kategorie aplikací.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 obsahuje následující nová vylepšení pro podporu kryptografických rozhraní API Windows CNG:.NET Framework 4.6 includes the following new enhancements to support the Windows CNG cryptography APIs:

      • Sada rozšiřujících metod pro certifikáty x509 System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) a System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2) , která vrací implementaci založenou na CNG spíše než implementaci založenou na rozhraní CAPI, pokud je to možné.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. (Některé čipové karty atd., stále vyžadují rozhraní CAPI a rozhraní API zařídí záložní verze.)(Some smartcards, etc., still require CAPI, and the APIs handle the fallback).

      • System.Security.Cryptography.RSACngTřída, která poskytuje implementaci CNG algoritmu RSA.The System.Security.Cryptography.RSACng class, which provides a CNG implementation of the RSA algorithm.

      • Vylepšení rozhraní RSA API tak, aby běžné akce již nevyžadovaly přetypování.Enhancements to the RSA API so that common actions no longer require casting. Například šifrování dat pomocí X509Certificate2 objektu vyžaduje kód podobný následujícímu v předchozích verzích .NET Framework.For example, encrypting data using an X509Certificate2 object requires code like the following in previous versions of .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)
        

        Kód, který používá nová rozhraní API kryptografie v .NET Framework 4,6, lze přepsat následujícím způsobem, aby se zabránilo přetypování.Code that uses the new cryptography APIs in .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)
        
    • Podpora převodu dat a časů do nebo z času v systému UNIXSupport for converting dates and times to or from Unix time

      Do struktury byly přidány následující nové metody DateTimeOffset , které podporují převod hodnot data a času na čas systému UNIX nebo z něj:The following new methods have been added to the DateTimeOffset structure to support converting date and time values to or from Unix time:

    • Přepínače kompatibilityCompatibility switches

      AppContextTřída přidává novou funkci kompatibility, která umožňuje zapisovačům knihoven poskytnout jednotný mechanismus pro odhlášení pro nové funkce pro své uživatele.The AppContext class adds a new compatibility feature that enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Zřizuje volně spojený kontrakt mezi komponentami, aby bylo možné sdělit požadavek na výslovný souhlas.It establishes a loosely coupled contract between components in order to communicate an opt-out request. Tato možnost je obvykle důležitá, když dojde ke změně existující funkce.This capability is typically important when a change is made to existing functionality. Naopak pro nové funkce už existuje implicitní výslovný souhlas.Conversely, there is already an implicit opt-in for new functionality.

      S AppContext , knihovny definují a zveřejňují přepínače kompatibility, zatímco kód, který na nich závisí, může nastavit tyto přepínače tak, aby ovlivnily chování knihovny.With AppContext, libraries define and expose compatibility switches, while code that depends on them can set those switches to affect the library behavior. Ve výchozím nastavení knihovny poskytují nové funkce a mění je pouze (to znamená, že poskytují předchozí funkce), pokud je přepínač nastaven.By default, libraries provide the new functionality, and they only alter it (that is, they provide the previous functionality) if the switch is set.

      Aplikace (nebo knihovna) může deklarovat hodnotu přepínače (což je vždy Boolean hodnota), kterou definuje závislá knihovna.An application (or a library) can declare the value of a switch (which is always a Boolean value) that a dependent library defines. Přepínač je vždy implicitně false .The switch is always implicitly false. Nastavením přepínače true ho povolíte.Setting the switch to true enables it. Explicitním nastavením přepínače, aby bylo false zajištěno nové chování.Explicitly setting the switch to false provides the new behavior.

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

      Knihovna musí ověřit, zda příjemce deklaroval hodnotu přepínače a následně na něj musí reagovat.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
      }
      
      If Not AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", shouldThrow) Then
          ' 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.
      End If
      
      ' The library can use the value of shouldThrow to throw exceptions or not.
      If shouldThrow Then
          ' old code
      Else
          ' new code
      End If
      

      Je výhodné použít pro přepínače konzistentní formát, protože se jedná o formální kontrakt, který je zpřístupněný knihovnou.It's beneficial to use a consistent format for switches, since they are a formal contract exposed by a library. Níže jsou uvedené dva zjevné formáty.The following are two obvious formats.

      • Přepínač. obor názvů. přepínačSwitch.namespace.switchname

      • Přepínač. Knihovna. přepínačSwitch.library.switchname

    • Změny asynchronního vzoru založeného na úlohách (klepnutím)Changes to the task-based asynchronous pattern (TAP)

      Pro aplikace, které cílí na .NET Framework 4,6, Task a objekty dědí jazykovou verzi Task<TResult> a jazykovou verzi uživatelského rozhraní volajícího vlákna.For apps that target .NET Framework 4.6, Task and Task<TResult> objects inherit the culture and UI culture of the calling thread. Chování aplikací, které cílí na předchozí verze .NET Framework nebo které necílí na konkrétní verzi .NET Framework, není ovlivněno.The behavior of apps that target previous versions of .NET Framework, or that do not target a specific version of .NET Framework, is unaffected. Další informace naleznete v části "jazyková verze a asynchronní operace založené na úlohách" v CultureInfo tématu třídy.For more information, see the "Culture and task-based asynchronous operations" section of the CultureInfo class topic.

      System.Threading.AsyncLocal<T>Třída umožňuje znázornit ambientní data, která jsou lokální pro daný tok asynchronního řízení, jako je například async metoda.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. Dá se použít k uchovávání dat napříč vlákny.It can be used to persist data across threads. Můžete také definovat metodu zpětného volání, která je upozorněna vždy, když se změní okolní data buď z důvodu AsyncLocal<T>.Value explicitního Změna vlastnosti, nebo protože vlákno zaznamenalo kontextový přechod.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.

      Task.CompletedTask Task.FromCanceled Task.FromException Do asynchronního vzoru založeného na úlohách (klepnutím) byly přidány tři praktické metody,, a, které budou vracet dokončené úkoly v určitém stavu.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.

      NamedPipeClientStreamTřída teď podporuje asynchronní komunikaci s jejím novým ConnectAsync .The NamedPipeClientStream class now supports asynchronous communication with its new ConnectAsync. Metoda.method.

    • EventSource teď podporuje zápis do protokolu událostí.EventSource now supports writing to the Event log

      Nyní můžete použít EventSource třídu k protokolování administrativních a provozních zpráv do protokolu událostí, a to i na všechny existující relace ETW, které byly vytvořeny v počítači.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. V minulosti jste pro tuto funkci museli použít balíček NuGet Microsoft. Diagnostics. Tracing. EventSource.In the past, you had to use the Microsoft.Diagnostics.Tracing.EventSource NuGet package for this functionality. Tato funkce je teď integrovaná .NET Framework 4,6.This functionality is now built-into .NET Framework 4.6.

      Balíček NuGet i .NET Framework 4,6 byly aktualizovány pomocí následujících funkcí:Both the NuGet package and .NET Framework 4.6 have been updated with the following features:

      • Dynamické událostiDynamic events

        Povoluje události definované "průběžně" bez vytváření metod událostí.Allows events defined "on the fly" without creating event methods.

      • Bohatá datová částRich payloads

        Povoluje jako datovou část speciálně definované třídy a pole a také primitivní typy, které mají být předány.Allows specially attributed classes and arrays as well as primitive types to be passed as a payload

      • Sledování aktivitActivity tracking

        Způsobí, že události spuštění a zastavení mezi nimi budou označovat události s ID, které představuje všechny aktuálně aktivní aktivity.Causes Start and Stop events to tag events between them with an ID that represents all currently active activities.

      Pro podporu těchto funkcí byla přetížená Write Metoda přidána do EventSource třídy.To support these features, the overloaded Write method has been added to the EventSource class.

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

    • Vylepšení HDPIHDPI improvements

      Podpora HDPI v subsystému WPF je teď v .NET Framework 4,6 lepší.HDPI support in WPF is now better in .NET Framework 4.6. Byly provedeny změny rozložení při zaokrouhlování, aby se snížily instance oříznutí v ovládacích prvcích s ohraničením.Changes have been made to layout rounding to reduce instances of clipping in controls with borders. Ve výchozím nastavení je tato funkce povolená, jenom když TargetFrameworkAttribute je nastavená na .NET Framework 4,6.By default, this feature is enabled only if your TargetFrameworkAttribute is set to .NET Framework 4.6. Aplikace, které jsou cíleny na starší verze rozhraní, ale jsou spuštěny v .NET Framework 4,6, mohou přihlášeni k novému chování přidáním následujícího řádku do <runtime> části app.config souboru:Applications that target earlier versions of the framework but are running on .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"
      />
      

      WPF Windows přecházející z více monitorů s různými nastaveními DPI (nastavení s více DPI) se teď kompletně vykreslují bez černých oblastí.WPF windows straddling multiple monitors with different DPI settings (Multi-DPI setup) are now completely rendered without blacked-out regions. Toto chování můžete odhlásit přidáním následujícího řádku do <appSettings> části souboru app.config, abyste zakázali toto nové chování: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"/>
      

      Do se přidala podpora pro automatické načtení správného kurzoru na základě nastavení DPI System.Windows.Input.Cursor .Support for automatically loading the right cursor based on DPI setting has been added to System.Windows.Input.Cursor.

    • Dotykové ovládání je lepšíTouch is better

      Zákaznické zprávy o připojení tohoto dotykového ovládání vytvářejí nepředvídatelné chování, které byly vyřešeny v .NET Framework 4,6.Customer reports on Connect that touch produces unpredictable behavior have been addressed in .NET Framework 4.6. Prahová hodnota dvojitého kliknutí pro aplikace pro Windows Store a aplikace WPF je teď stejná jako u Windows 8.1 a vyšších.The double tap threshold for Windows Store applications and WPF applications is now the same in Windows 8.1 and above.

    • Podpora transparentního podřízeného oknaTransparent child window support

      WPF v .NET Framework 4,6 podporuje transparentní podřízená okna v Windows 8.1 a vyšším.WPF in .NET Framework 4.6 supports transparent child windows in Windows 8.1 and above. To umožňuje vytvořit v oknech nejvyšší úrovně neobdélníkové a průhledné podřízené okna.This allows you to create non-rectangular and transparent child windows in your top-level windows. Tuto funkci můžete povolit nastavením HwndSourceParameters.UsesPerPixelTransparency vlastnosti na true .You can enable this feature by setting the HwndSourceParameters.UsesPerPixelTransparency property to true.

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

    • Podpora SSLSSL support

      Služba WCF teď podporuje protokol SSL verze TLS 1,1 a TLS 1,2 kromě protokolu SSL 3,0 a TLS 1,0 při použití NetTcp s zabezpečením přenosu a ověřováním klientů.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. Nyní je možné vybrat, který protokol se má použít, nebo zakázat staré méně zabezpečené protokoly.It is now possible to select which protocol to use, or to disable old lesser secure protocols. To lze provést buď nastavením SslProtocols vlastnosti, nebo přidáním následujícího do konfiguračního souboru.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>
      
    • Posílání zpráv pomocí různých připojení HTTPSending messages using different HTTP connections

      WCF teď umožňuje uživatelům zajistit, aby se určité zprávy odesílaly pomocí různých základních připojení HTTP.WCF now allows users to ensure certain messages are sent using different underlying HTTP connections. Toto lze provést dvěma způsoby:There are two ways to do this:

      • Použití předpony názvu skupiny připojeníUsing a connection group name prefix

        Uživatelé můžou zadat řetězec, který bude WCF používat jako předponu pro název skupiny připojení.Users can specify a string that WCF will use as a prefix for the connection group name. Dvě zprávy s různými předponami jsou odesílány pomocí různých základních připojení HTTP.Two messages with different prefixes are sent using different underlying HTTP connections. Předponu můžete nastavit přidáním páru klíč-hodnota k Message.Properties vlastnosti zprávy.You set the prefix by adding a key/value pair to the message's Message.Properties property. Klíč je "HttpTransportConnectionGroupNamePrefix"; hodnota je požadovaná předpona.The key is "HttpTransportConnectionGroupNamePrefix"; the value is the desired prefix.

      • Používání různých továrn kanálůUsing different channel factories

        Uživatelé taky můžou povolit funkci, která zajistí, že se zprávy odeslané pomocí kanálů vytvořených různými továrnami kanálů budou používat v různých podkladových připojeních HTTP.Users can also enable a feature that ensures that messages sent using channels created by different channel factories will use different underlying HTTP connections. Chcete-li povolit tuto funkci, musí uživatelé nastavit appSetting následující true :To enable this feature, users must set the following appSetting to true:

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

    Nyní můžete zadat počet sekund, po které bude služba pracovního postupu pojmout požadavek na operaci mimo pořadí, pokud před vypršením časového limitu žádosti existuje nevyřízená záložka bez protokolu.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. Záložka "non-Protocol" je záložka, která nesouvisí s nezpracovanými aktivitami příjmu.A "non-protocol" bookmark is a bookmark that is not related to outstanding Receive activities. Některé aktivity vytvářejí záložky bez protokolu v rámci jejich implementace, takže nemusí být zřejmé, že existuje záložka bez protokolu.Some activities create non-protocol bookmarks within their implementation, so it may not be obvious that a non-protocol bookmark exists. Mezi ně patří stav a výběr.These include State and Pick. Takže pokud máte službu pracovního postupu implementovanou se stavovým počítačem nebo obsahuje aktivitu vyskladnění, pravděpodobně budete mít záložky bez protokolu.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. Interval zadejte tak, že do části souboru app.config přidáte řádek podobný následujícímu appSettings :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"/>
    

    Výchozí hodnota je 60 sekund.The default value is 60 seconds. Pokud value je hodnota nastavena na 0, žádosti mimo pořadí jsou okamžitě odmítnuty s chybou text, který vypadá takto: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.
    

    Jedná se o stejnou zprávu, kterou dostanete, pokud je přijata zpráva o operacích mimo pořadí a nejsou k dispozici žádné záložky bez protokolu.This is the same message that you receive if an out-of-order operation message is received and there are no non-protocol bookmarks.

    Pokud hodnota FilterResumeTimeoutInSeconds elementu je nenulová, neexistují žádné záložky bez protokolu a časový limit vyprší, operace se nezdařila se zprávou o vypršení časového limitu.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.

  • TransakceTransactions

    Nyní můžete zahrnout identifikátor distribuované transakce pro transakci, která způsobila výjimku odvozenou od TransactionException vyvolání.You can now include the distributed transaction identifier for the transaction that has caused an exception derived from TransactionException to be thrown. Uděláte to tak, že do appSettings části souboru app.config přidáte následující klíč:You do this by adding the following key to the appSettings section of your app.config file:

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

    Výchozí hodnota je false.The default value is false.

  • SítěNetworking

    • Opakované použití soketuSocket reuse

      Windows 10 obsahuje nový síťový algoritmus s vysokou škálovatelností, který zajišťuje lepší využívání prostředků počítače tím, že znovu používá místní porty pro odchozí připojení TCP.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 podporuje nový algoritmus a umožňuje aplikacím .NET využít nové chování..NET Framework 4.6 supports the new algorithm, enabling .NET apps to take advantage of the new behavior. V předchozích verzích Windows se jednalo o umělý limit souběžného připojení (obvykle 16 384, výchozí velikost dynamického rozsahu portů), což může omezit škálovatelnost služby tím, že při zatížení způsobuje vyčerpání portů.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.

      V .NET Framework 4,6 byly přidány dvě rozhraní API, aby bylo možné znovu použít port, což efektivně odstraní limit 64 KB pro souběžná připojení:In .NET Framework 4.6, two APIs have been added to enable port reuse, which effectively removes the 64 KB limit on concurrent connections:

      Ve výchozím nastavení ServicePointManager.ReusePort vlastnost je, false Pokud HWRPortReuseOnSocketBind hodnota HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 klíče registru není nastavená na 0x1.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. Chcete-li povolit používání místních portů u připojení HTTP, nastavte ServicePointManager.ReusePort vlastnost na hodnotu true .To enable local port reuse on HTTP connections, set the ServicePointManager.ReusePort property to true. To způsobí, že všechna odchozí připojení soketu TCP z HttpClient a HttpWebRequest na používá novou možnost soketu Windows 10, SO_REUSE_UNICASTPORT, která umožňuje opakované použití místního portu.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.

      Vývojáři, kteří vytvářejí pouze sokety, mohou určit System.Net.Sockets.SocketOptionName možnost při volání metody, například Socket.SetSocketOption tak, aby odchozí sokety opakovaně znovu vyvolaly místní porty během vytváření vazby.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.

    • Podpora mezinárodních názvů domén a PunyCodeSupport for international domain names and PunyCode

      Do třídy se přidala nová vlastnost, IdnHost která bude Uri lépe podporovat názvy mezinárodních domén a Punycode.A new property, IdnHost, has been added to the Uri class to better support international domain names and PunyCode.

  • Změna velikosti v ovládacích prvcích model Windows Forms.Resizing in Windows Forms controls.

    Tato funkce byla rozšířena v .NET Framework 4,6, aby zahrnovala DomainUpDown NumericUpDown typy,, a DataGridViewComboBoxColumn DataGridViewColumn ToolStripSplitButton a obdélník určený Bounds vlastností použitou při vykreslování UITypeEditor .This feature has been expanded in .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.

    Toto je funkce výslovného souhlasu.This is an opt-in feature. Pokud ho chcete povolit, nastavte EnableWindowsFormsHighDpiAutoResizing element na true v souboru konfigurace aplikace (app.config):To enable it, set the EnableWindowsFormsHighDpiAutoResizing element to true in the application configuration (app.config) file:

    <appSettings>
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    
  • Podpora kódování znakových stránekSupport for code page encodings

    .NET Core primárně podporuje kódování Unicode a ve výchozím nastavení poskytuje omezené podpory pro kódování znakových stránek..NET Core primarily supports the Unicode encodings and by default provides limited support for code page encodings. Můžete přidat podporu pro kódování znakových stránek, která jsou k dispozici v .NET Framework, ale nepodporovaná v .NET Core, registrací kódování znakové stránky pomocí Encoding.RegisterProvider metody.You can add support for code page encodings available in .NET Framework but unsupported in .NET Core by registering code page encodings with the Encoding.RegisterProvider method. Další informace naleznete v tématu System.Text.CodePagesEncodingProvider.For more information, see System.Text.CodePagesEncodingProvider.

  • .NET Native.NET Native

    Aplikace pro Windows pro Windows 10, které cílí na .NET Core a jsou napsané v jazyce C# nebo Visual Basic můžou využít novou technologii, která kompiluje aplikace do nativního kódu místo IL.Windows apps for Windows 10 that target .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. Vytváří aplikace s větším počtem časů spuštění a spuštění.They produce apps characterized by faster startup and execution times. Další informace najdete v tématu kompilace aplikací pomocí .NET Native.For more information, see Compiling Apps with .NET Native. Přehled .NET Native, který prověřuje, jak se liší od kompilace JIT i NGEN a co znamená pro váš kód, naleznete v tématu .NET Native a kompilace.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.

    Vaše aplikace jsou kompilovány do nativního kódu ve výchozím nastavení, když je kompilujete pomocí sady Visual Studio 2015 nebo novější.Your apps are compiled to native code by default when you compile them with Visual Studio 2015 or later. Další informace najdete v tématu Začínáme s .NET Native.For more information, see Getting Started with .NET Native.

    Pro podporu ladění aplikací .NET Native bylo přidáno několik nových rozhraní a výčtů do nespravovaného ladicího rozhraní API.To support debugging .NET Native apps, a number of new interfaces and enumerations have been added to the unmanaged debugging API. Další informace naleznete v tématu ladění (nespravované rozhraní API) .For more information, see the Debugging (Unmanaged API Reference) topic.

  • Open Source .NET Framework balíčkyOpen-source .NET Framework packages

    Balíčky .NET Core, jako jsou neměnné kolekce, rozhraní API SIMDa síťové rozhraní API, jako jsou ty, které se nacházejí v System.Net.Http oboru názvů, jsou teď dostupné jako open source balíčky na GitHubu..NET Core packages such as the immutable collections, SIMD APIs, and networking APIs such as those found in the System.Net.Http namespace are now available as open-source packages on GitHub. Přístup k kódu naleznete v tématu .NET na GitHubu.To access the code, see .NET on GitHub. Další informace a postup, jak přispívat do těchto balíčků, najdete v tématu Úvod do .NET, Domovská stránka .NET na GitHubu.For more information and how to contribute to these packages, see Introduction to .NET, .NET Home Page on GitHub.

Co je nového v .NET Framework 4.5.2What's new in .NET Framework 4.5.2

Co je nového ve .NET Framework 4.5.1What's new in .NET Framework 4.5.1

Aktualizace z dubna 2014:April 2014 updates:

  • Visual Studio 2013 aktualizace 2 obsahuje aktualizace šablon přenosných knihoven tříd pro podporu těchto scénářů:Visual Studio 2013 Update 2 includes updates to the Portable Class Library templates to support these scenarios:

    • Rozhraní prostředí Windows Runtime API můžete použít v přenosných knihovnách, které cílí na Windows 8.1, Windows Phone 8,1 a Windows Phone Silverlight 8,1.You can use Windows Runtime APIs in portable libraries that target Windows 8.1, Windows Phone 8.1, and Windows Phone Silverlight 8.1.

    • Když cílíte Windows 8.1 nebo Windows Phone 8,1, můžete do přenosných knihoven zahrnout XAML (typy Windows. UI. XAML).You can include XAML (Windows.UI.XAML types) in portable libraries when you target Windows 8.1 or Windows Phone 8.1. Podporovány jsou následující šablony XAML: prázdná stránka, slovník prostředků, ovládací prvek s šablonou a uživatelský ovládací prvek.The following XAML templates are supported: Blank Page, Resource Dictionary, Templated Control, and User Control.

    • Můžete vytvořit přenosnou součást prostředí Windows Runtime (soubor. winmd) pro použití v aplikacích pro Store, které cílí na Windows 8.1 a Windows Phone 8,1.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.

    • Můžete změnit cíl knihovny tříd Windows Store nebo Windows Phone Store, jako je Přenosná knihovna tříd.You can retarget a Windows Store or Windows Phone Store class library like a Portable Class Library.

    Další informace o těchto změnách naleznete v tématu Přenosná knihovna tříd.For more information about these changes, see Portable Class Library.

  • Sada .NET Framework obsahu teď obsahuje dokumentaci pro .NET Native, což je předkompilace technologie pro sestavování a nasazování aplikací pro Windows.The .NET Framework content set now includes documentation for .NET Native, which is a precompilation technology for building and deploying Windows apps. .NET Native zkompiluje vaše aplikace přímo do nativního kódu, spíše než do mezilehlého jazyka (IL), pro lepší výkon..NET Native compiles your apps directly to native code, rather than to intermediate language (IL), for better performance. Podrobnosti najdete v tématu kompilace aplikací pomocí .NET Native.For details, see Compiling Apps with .NET Native.

  • Zdroj odkazů .NET Framework poskytuje nové prostředí pro procházení a vylepšené funkce.The .NET Framework Reference Source provides a new browsing experience and enhanced functionality. Nyní můžete procházet zdrojový kód .NET Framework online, stahovat reference pro zobrazení v režimu offline a procházet zdroje (včetně oprav a aktualizací) během ladění.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. Další informace najdete v blogu o novém hledání zdroje odkazů .NET.For more information, see the blog entry A new look for .NET Reference Source.

Mezi nové funkce a vylepšení základních tříd v .NET Framework 4.5.1 patří:New features and enhancements in the base classes in .NET Framework 4.5.1 include:

  • Automatické přesměrování vazby pro sestavení.Automatic binding redirection for assemblies. Počínaje Visual Studio 2013 se při kompilování aplikace, která cílí na .NET Framework 4.5.1, dají přesměrování vazby přidat do konfiguračního souboru aplikace, pokud vaše aplikace nebo její součásti odkazují na více verzí stejného sestavení.Starting with Visual Studio 2013, when you compile an app that targets .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. Tuto funkci můžete také povolit pro projekty, které cílí na starší verze .NET Framework.You can also enable this feature for projects that target older versions of .NET Framework. Další informace najdete v tématu Postup: povolení a zákaz automatického přesměrování vazby.For more information, see How to: Enable and Disable Automatic Binding Redirection.

  • Možnost shromažďovat diagnostické informace, které vývojářům pomůžou zlepšit výkon serverových a cloudových aplikací.Ability to collect diagnostics information to help developers improve the performance of server and cloud applications. Další informace naleznete v tématu WriteEventWithRelatedActivityId metody a WriteEventWithRelatedActivityIdCore EventSource třídy.For more information, see the WriteEventWithRelatedActivityId and WriteEventWithRelatedActivityIdCore methods in the EventSource class.

  • Schopnost explicitně komprimovat haldu velkých objektů (LOH) během uvolňování paměti.Ability to explicitly compact the large object heap (LOH) during garbage collection. Další informace najdete v tématu GCSettings.LargeObjectHeapCompactionMode vlastnost.For more information, see the GCSettings.LargeObjectHeapCompactionMode property.

  • Další vylepšení výkonu, jako je například pozastavení aplikace ASP.NET, vícejazykové vylepšení JIT a rychlejší spuštění aplikace po aktualizaci .NET Framework.Additional performance improvements such as ASP.NET app suspension, multi-core JIT improvements, and faster app startup after a .NET Framework update. Podrobnosti najdete v příspěvku na blogu .NET Framework 4.5.1 a v blogovém příspěvku o pozastavení aplikace ASP.NET .For details, see the .NET Framework 4.5.1 announcement and the ASP.NET app suspend blog post.

Mezi vylepšení model Windows Forms patří:Improvements to Windows Forms include:

  • Změna velikosti v ovládacích prvcích model Windows Forms.Resizing in Windows Forms controls. Pomocí nastavení rozlišení DPI systému můžete změnit velikost součástí ovládacích prvků (například ikony, které se zobrazí v mřížce vlastností), tím, že se přiřadíte k položce v konfiguračním souboru aplikace (app.config) pro vaši aplikaci.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. Tato funkce je aktuálně podporována v následujících ovládacích prvcích model Windows Forms:This feature is currently supported in the following Windows Forms controls:

    Chcete-li povolit tuto funkci, přidejte nový <appSettings> prvek do konfiguračního souboru (app.config) a nastavte EnableWindowsFormsHighDpiAutoResizing element na true :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>
    

Vylepšení při ladění .NET Frameworkch aplikací v Visual Studio 2013 zahrnují:Improvements when debugging your .NET Framework apps in Visual Studio 2013 include:

  • Návratové hodnoty v ladicím programu sady Visual Studio.Return values in the Visual Studio debugger. Při ladění spravované aplikace v Visual Studio 2013 zobrazí okno Automatické hodnoty návratové typy a hodnoty pro metody.When you debug a managed app in Visual Studio 2013, the Autos window displays return types and values for methods. Tyto informace jsou k dispozici pro stolní počítače, Windows Store a aplikace Windows Phone.This information is available for desktop, Windows Store, and Windows Phone apps. Další informace naleznete v tématu Kontrola vrácených hodnot volání metody.For more information, see Examine return values of method calls.

  • Upravit a pokračovat pro 64 aplikaceEdit and Continue for 64-bit apps. Visual Studio 2013 podporuje funkci upravit a pokračovat pro 64 spravované aplikace pro stolní počítače, Windows Store a Windows Phone.Visual Studio 2013 supports the Edit and Continue feature for 64-bit managed apps for desktop, Windows Store, and Windows Phone. Stávající omezení zůstávají v platnosti pro 32 i pro 64-bitové aplikace (viz poslední část článku podporované změny kódu (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).

  • Asynchronní ladění.Async-aware debugging. Aby bylo snazší ladit asynchronní aplikace v Visual Studio 2013, zásobník volání skrývá kód infrastruktury poskytnutý kompilátory pro podporu asynchronního programování a také řetězení v logických nadřazených snímcích, takže můžete pořídit provádění logického programu podrobněji.To make it easier to debug asynchronous apps in Visual 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. Okno úkoly nahrazuje okno paralelní úkoly a zobrazuje úkoly, které se vztahují k určité zarážce, a také zobrazí všechny další úkoly, které jsou v aplikaci aktuálně aktivní nebo naplánované.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. O této funkci si můžete přečíst v části "asynchronní ladění" v oznámení .NET Framework 4.5.1.You can read about this feature in the "Async-aware debugging" section of the .NET Framework 4.5.1 announcement.

  • Lepší podpora výjimek pro součásti prostředí Windows Runtime.Better exception support for Windows Runtime components. V Windows 8.1 výjimky, které vznikají v aplikacích pro Windows Store, uchovávají informace o chybě, která způsobila výjimku, i přes hranice jazyka.In Windows 8.1, exceptions that arise from Windows Store apps preserve information about the error that caused the exception, even across language boundaries. O této funkci si můžete přečíst v části vývoj aplikací pro Windows Store v oznámení .NET Framework 4.5.1.You can read about this feature in the "Windows Store app development" section of the .NET Framework 4.5.1 announcement.

Počínaje Visual Studio 2013 můžete použít Nástroj pro optimalizaci spravovaného profilu (Mpgo.exe) k optimalizaci aplikací pro Windows 8. x Store a aplikací klasické pracovní plochy.Starting with Visual Studio 2013, you can use the Managed Profile Guided Optimization Tool (Mpgo.exe) to optimize Windows 8.x Store apps as well as desktop apps.

Nové funkce v ASP.NET 4.5.1 najdete v tématu ASP.NET and Web Tools for Visual Studio 2013 poznámky k verzi.For new features in ASP.NET 4.5.1, see ASP.NET and Web Tools for Visual Studio 2013 Release Notes.

Co je nového v .NET Framework 4,5What's new in .NET Framework 4.5

Základní třídyBase classes

  • Schopnost snížit restart systému tím, že během nasazení detekuje a zavírá aplikace .NET Framework 4.Ability to reduce system restarts by detecting and closing .NET Framework 4 applications during deployment. Viz snížení počtu restartování systému během instalace .NET Framework 4,5.See Reducing System Restarts During .NET Framework 4.5 Installations.

  • Podpora pro pole, která jsou větší než 2 gigabajty (GB) na 64-bitových platformách.Support for arrays that are larger than 2 gigabytes (GB) on 64-bit platforms. Tato funkce se dá povolit v konfiguračním souboru aplikace.This feature can be enabled in the application configuration file. Podívejte se na <gcAllowVeryLargeObjects> element, který také obsahuje další omezení velikosti objektu a velikosti pole.See the <gcAllowVeryLargeObjects> element, which also lists other restrictions on object size and array size.

  • Lepší výkon při uvolňování paměti na pozadí pro servery.Better performance through background garbage collection for servers. Pokud používáte systém uvolňování paměti serveru v .NET Framework 4,5, je automatické uvolňování paměti na pozadí povoleno.When you use server garbage collection in .NET Framework 4.5, background garbage collection is automatically enabled. V tématu základní informace o uvolňování paměti najdete v části uvolňování paměti serveru na pozadí.See the Background Server Garbage Collection section of the Fundamentals of Garbage Collection topic.

  • Kompilace JIT (just-in-time), která je volitelně dostupná pro procesory s více jádry ke zlepšení výkonu aplikace.Background just-in-time (JIT) compilation, which is optionally available on multi-core processors to improve application performance. Viz třída ProfileOptimization.See ProfileOptimization.

  • Možnost omezit dobu, po kterou se modul regulárních výrazů pokusí přeložit regulární výraz předtím, než vyprší jeho časový limit. Podívejte se na Regex.MatchTimeout vlastnost.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.

  • Možnost definovat výchozí jazykovou verzi pro doménu aplikace.Ability to define the default culture for an application domain. Podívejte se na CultureInfo třídu.See the CultureInfo class.

  • Podpora konzoly pro kódování Unicode (UTF-16).Console support for Unicode (UTF-16) encoding. Podívejte se na Console třídu.See the Console class.

  • Podpora správy verzí pro kulturní řazení řetězců a porovnávání dat.Support for versioning of cultural string ordering and comparison data. Podívejte se na SortVersion třídu.See the SortVersion class.

  • Lepší výkon při načítání prostředků.Better performance when retrieving resources. Viz balení a nasazení prostředků.See Packaging and Deploying Resources.

  • Vylepšení komprese zip ke zmenšení velikosti komprimovaného souboru.Zip compression improvements to reduce the size of a compressed file. Viz System.IO.Compression obor názvů.See the System.IO.Compression namespace.

  • Možnost přizpůsobit kontext reflexe pro přepsání výchozího chování reflexe prostřednictvím CustomReflectionContext třídy.Ability to customize a reflection context to override default reflection behavior through the CustomReflectionContext class.

  • Podpora verze 2008 mezinárodních názvů domén v aplikacích (IDNA) standard, pokud System.Globalization.IdnMapping je třída použita ve Windows 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 8.

  • Delegování porovnání řetězců k operačnímu systému, které implementuje kódování Unicode 6,0, pokud je .NET Framework použito v systému Windows 8.Delegation of string comparison to the operating system, which implements Unicode 6.0, when the .NET Framework is used on Windows 8. Při spuštění na jiných platformách .NET Framework zahrnuje vlastní data porovnání řetězců, která implementují Unicode 5. x.When running on other platforms, the .NET Framework includes its own string comparison data, which implements Unicode 5.x. Podívejte se na String třídu a oddíl poznámky SortVersion třídy.See the String class and the Remarks section of the SortVersion class.

  • Možnost vypočítat kódy hash pro řetězce na základě domény aplikace.Ability to compute the hash codes for strings on a per application domain basis. Viz <UseRandomizedStringHashAlgorithm> element.See <UseRandomizedStringHashAlgorithm> Element.

  • Podpora reflexe typu je rozdělena mezi Type TypeInfo třídy a.Type reflection support split between Type and TypeInfo classes. Podívejte se na reflexi v .NET Framework pro aplikace pro Windows Store.See Reflection in the .NET Framework for Windows Store Apps.

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

V .NET Framework 4,5 obsahuje Managed Extensibility Framework (MEF) tyto nové funkce:In .NET Framework 4.5, the Managed Extensibility Framework (MEF) provides the following new features:

  • Podpora pro obecné typy.Support for generic types.

  • Programovací model založený na konvencích, který umožňuje vytvářet části na základě konvencí pojmenování, nikoli atributů.Convention-based programming model that enables you to create parts based on naming conventions rather than attributes.

  • Více oborů.Multiple scopes.

  • Podmnožina MEF, kterou můžete použít při vytváření aplikací pro Windows 8. x Store.A subset of MEF that you can use when you create Windows 8.x Store apps. Tato podmnožina je k dispozici jako balíček ke stažení z galerie NuGet.This subset is available as a downloadable package from the NuGet Gallery. Pokud chcete balíček nainstalovat, otevřete projekt v aplikaci Visual Studio, v nabídce projekt vyberte Spravovat balíčky NuGet a vyhledejte Microsoft.Composition balíček online.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.

Další informace naleznete v tématu Managed Extensibility Framework (MEF).For more information, see Managed Extensibility Framework (MEF).

Asynchronní operace se souboryAsynchronous file operations

V .NET Framework 4,5 byly do jazyků C# a Visual Basic přidány nové asynchronní funkce.In .NET Framework 4.5, new asynchronous features were added to the C# and Visual Basic languages. Tyto funkce přidávají model založený na úlohách pro provádění asynchronních operací.These features add a task-based model for performing asynchronous operations. Chcete-li použít tento nový model, použijte asynchronní metody v I/O třídách.To use this new model, use the asynchronous methods in the I/O classes. Viz asynchronní vstupně-výstupní operace se soubory.See Asynchronous File I/O.

nástrojeTools

V .NET Framework 4,5 umožňuje generátor souborů prostředků (Resgen.exe) vytvořit soubor. resw pro použití v aplikacích Windows 8. x Store ze souboru. Resources vloženého do sestavení .NET Framework.In .NET Framework 4.5, Resource File Generator (Resgen.exe) enables you to create a .resw file for use in Windows 8.x Store apps from a .resources file embedded in a .NET Framework assembly. Další informace najdete v tématu Resgen.exe (generátor zdrojového souboru).For more information, see Resgen.exe (Resource File Generator).

Spravovaná optimalizace na základě profilu (Mpgo.exe) umožňuje zlepšit dobu spuštění aplikace, využití paměti (velikost pracovní sady) a propustnost optimalizací sestavení nativních imagí.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. Nástroj příkazového řádku generuje data profilu pro sestavení aplikace nativní bitové kopie.The command-line tool generates profile data for native image application assemblies. Viz Mpgo.exe (Nástroj pro optimalizaci spravovaného profilu).See Mpgo.exe (Managed Profile Guided Optimization Tool). Počínaje Visual Studio 2013 můžete použít Mpgo.exe k optimalizaci aplikací pro Store Windows 8. x a desktopových aplikací.Starting with Visual Studio 2013, you can use Mpgo.exe to optimize Windows 8.x Store apps as well as desktop apps.

Paralelní výpočetní prostředíParallel computing

.NET Framework 4,5 obsahuje několik nových funkcí a vylepšení paralelního computingu..NET Framework 4.5 provides several new features and improvements for parallel computing. Mezi ně patří Vylepšený výkon, zvýšené řízení, vylepšená podpora pro asynchronní programování, nová knihovna toku dat a vylepšená podpora pro paralelní ladění a analýzu výkonu.These include improved performance, increased control, improved support for asynchronous programming, a new dataflow library, and improved support for parallel debugging and performance analysis. Informace o tom, co je nového pro paralelismus v .NET Framework 4,5 , najdete v blogu věnovaném paralelnímu programování pomocí .NET.See the entry What's New for Parallelism in .NET Framework 4.5 in the Parallel Programming with .NET blog.

WebWeb

ASP.NET 4,5 a 4.5.1 přidávají vazbu modelu pro webové formuláře, podporu WebSocket, asynchronní obslužné rutiny, vylepšení výkonu a mnoho dalších funkcí.ASP.NET 4.5 and 4.5.1 add model binding for Web Forms, WebSocket support, asynchronous handlers, performance enhancements, and many other features. Další informace naleznete v následujících zdrojích:For more information, see the following resources:

Sítě Networking

.NET Framework 4,5 poskytuje nové programovací rozhraní pro aplikace HTTP..NET Framework 4.5 provides a new programming interface for HTTP applications. Další informace najdete v tématu nové System.Net.Http System.Net.Http.Headers obory názvů a.For more information, see the new System.Net.Http and System.Net.Http.Headers namespaces.

Podpora je také k dispozici pro nové programovací rozhraní pro příjem a interakci s připojením protokolu WebSocket pomocí existující HttpListener a související třídy.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. Další informace naleznete v tématu nový System.Net.WebSockets obor názvů a HttpListener Třída.For more information, see the new System.Net.WebSockets namespace and the HttpListener class.

Kromě toho .NET Framework 4,5 obsahuje následující vylepšení sítě:In addition, .NET Framework 4.5 includes the following networking improvements:

  • Podpora identifikátoru URI kompatibilního se specifikací RFC.RFC-compliant URI support. Další informace naleznete v tématu Uri a související třídy.For more information, see Uri and related classes.

  • Podpora pro analýzu mezinárodních názvů domén (IDN).Support for Internationalized Domain Name (IDN) parsing. Další informace naleznete v tématu Uri a související třídy.For more information, see Uri and related classes.

  • Podpora mezinárodní adresy e-mailové adresy (EAI).Support for Email Address Internationalization (EAI). Další informace najdete v tématu System.Net.Mail obor názvů.For more information, see the System.Net.Mail namespace.

  • Vylepšená podpora protokolu IPv6.Improved IPv6 support. Další informace najdete v tématu System.Net.NetworkInformation obor názvů.For more information, see the System.Net.NetworkInformation namespace.

  • Podpora soketu s duálním režimem.Dual-mode socket support. Další informace naleznete v tématu Socket třídy a TcpListener .For more information, see the Socket and TcpListener classes.

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

V .NET Framework 4,5 Windows Presentation Foundation (WPF) obsahuje změny a vylepšení v následujících oblastech:In .NET Framework 4.5, Windows Presentation Foundation (WPF) contains changes and improvements in the following areas:

  • Nový Ribbon ovládací prvek, který umožňuje implementovat uživatelské rozhraní pásu karet, které je hostitelem panelu nástrojů pro rychlý přístup, nabídky aplikace a karet.The new Ribbon control, which enables you to implement a ribbon user interface that hosts a Quick Access Toolbar, Application Menu, and tabs.

  • Nové INotifyDataErrorInfo rozhraní, které podporuje synchronní a asynchronní ověřování dat.The new INotifyDataErrorInfo interface, which supports synchronous and asynchronous data validation.

  • Nové funkce pro VirtualizingPanel třídy a Dispatcher .New features for the VirtualizingPanel and Dispatcher classes.

  • Vylepšený výkon při zobrazování rozsáhlých sad seskupených dat a přístup k kolekcím na vláknech, která nejsou v uživatelském rozhraní.Improved performance when displaying large sets of grouped data, and by accessing collections on non-UI threads.

  • Vázání dat na statické vlastnosti, datové vazby na vlastní typy, které implementují ICustomTypeProvider rozhraní a načítání informací o vazbách dat z výrazu vazby.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.

  • Změna umístění dat při změně hodnot (živé tvarování).Repositioning of data as the values change (live shaping).

  • Možnost kontrolovat, zda je kontext dat pro kontejner položek odpojen.Ability to check whether the data context for an item container is disconnected.

  • Možnost nastavit dobu, která má uplynout mezi změnami vlastností a aktualizacemi zdrojů dat.Ability to set the amount of time that should elapse between property changes and data source updates.

  • Vylepšená podpora pro implementaci slabých vzorů událostí.Improved support for implementing weak event patterns. Události nyní také mohou přijímat rozšíření značek.Also, events can now accept markup extensions.

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

V .NET Framework 4,5 byly přidány následující funkce, které zjednodušují psaní a údržbu aplikací Windows Communication Foundation (WCF):In .NET Framework 4.5, the following features have been added to make it simpler to write and maintain Windows Communication Foundation (WCF) applications:

  • Zjednodušení generovaných konfiguračních souborů.Simplification of generated configuration files.

  • Podpora vývoje pro první kontrakt.Support for contract-first development.

  • Možnost snazší konfigurace režimu kompatibility ASP.NET.Ability to configure ASP.NET compatibility mode more easily.

  • Změny ve výchozích hodnotách vlastností přenosu snižují pravděpodobnost, že je budete muset nastavit.Changes in default transport property values to reduce the likelihood that you will have to set them.

  • Aktualizuje XmlDictionaryReaderQuotas třídu, aby se snížila pravděpodobnost, že bude nutné ručně nakonfigurovat kvóty pro čtečky slovníku XML.Updates to the XmlDictionaryReaderQuotas class to reduce the likelihood that you will have to manually configure quotas for XML dictionary readers.

  • Ověření konfiguračních souborů WCF nástrojem Visual Studio v rámci procesu sestavení, aby bylo možné zjistit chyby konfigurace před spuštěním aplikace.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.

  • Nová podpora asynchronního streamování.New asynchronous streaming support.

  • Nové mapování protokolu HTTPS, které usnadňuje vystavení koncového bodu přes HTTPS pomocí Internetová informační služba (IIS).New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS with Internet Information Services (IIS).

  • Možnost generovat metadata v jednom dokumentu WSDL připojením ?singleWSDL k adrese URL služby.Ability to generate metadata in a single WSDL document by appending ?singleWSDL to the service URL.

  • Podpora WebSockets podporuje true obousměrnou komunikaci přes porty 80 a 443 s charakteristikami výkonu podobným přenosu protokolu TCP.Websockets support to enable true bidirectional communication over ports 80 and 443 with performance characteristics similar to the TCP transport.

  • Podpora konfigurace služeb v kódu.Support for configuring services in code.

  • Popisy editoru XML.XML Editor tooltips.

  • ChannelFactory Podpora ukládání do mezipaměti.ChannelFactory caching support.

  • Podpora komprese binárního kodéruBinary encoder compression support.

  • Podpora pro přenos UDP, který vývojářům umožňuje psát služby, které používají zprávy "oheň a zapomenout".Support for a UDP transport that enables developers to write services that use "fire and forget" messaging. Klient pošle zprávu službě a neočekává odpověď ze služby.A client sends a message to a service and expects no response from the service.

  • Možnost podporovat více režimů ověřování na jednom koncovém bodu WCF při použití přenosu protokolu HTTP a zabezpečení přenosu.Ability to support multiple authentication modes on a single WCF endpoint when using the HTTP transport and transport security.

  • Podpora služeb WCF, které používají mezinárodní názvy domén (IDN).Support for WCF services that use internationalized domain names (IDNs).

Další informace najdete v tématu co je nového v Windows Communication Foundation.For more information, see What's New in Windows Communication Foundation.

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

V .NET Framework 4,5 byly do programovací model Windows Workflow Foundation (WF) přidány některé nové funkce, včetně těchto:In .NET Framework 4.5, several new features were added to Windows Workflow Foundation (WF), including:

  • Pracovní postupy stavového stroje, které byly poprvé představeny jako součást .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1).State machine workflows, which were first introduced as part of .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1). Tato aktualizace obsahuje několik nových tříd a aktivit, které vývojářům umožnili vytvářet pracovní postupy stavového počítače.This update included several new classes and activities that enabled developers to create state machine workflows. Tyto třídy a aktivity byly aktualizovány, aby .NET Framework 4,5 zahrnovaly:These classes and activities were updated for .NET Framework 4.5 to include:

    • Možnost nastavovat zarážky na stavech.The ability to set breakpoints on states.

    • Možnost Kopírovat a vkládat přechody v Návrháři postupu.The ability to copy and paste transitions in the workflow designer.

    • Podpora návrháře pro vytvoření přechodu na sdílené triggeryDesigner support for shared trigger transition creation.

    • Aktivity pro vytváření pracovních postupů stavového počítače, včetně: StateMachine , State a Transition .Activities for creating state machine workflows, including: StateMachine, State, and Transition.

  • Rozšířené funkce Návrhář postupu provádění, například následující:Enhanced Workflow Designer features such as the following:

    • Rozšířené možnosti hledání pracovních postupů v aplikaci Visual Studio, včetně rychlého hledání a hledání v souborech.Enhanced workflow search capabilities in Visual Studio, including Quick Find and Find in Files.

    • Schopnost automaticky vytvořit aktivitu sekvence, když se do aktivity kontejneru přidá druhá podřízená aktivita, a zahrnout obě aktivity do aktivity sekvence.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.

    • Podpora posouvání, která umožňuje změnit viditelnou část pracovního postupu bez použití posuvníků.Panning support, which enables the visible portion of a workflow to be changed without using the scroll bars.

    • Nové zobrazení Osnova dokumentu , které zobrazuje součásti pracovního postupu v zobrazení osnovy ve stylu stromu a umožňuje v zobrazení Osnova dokumentu vybrat komponentu.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.

    • Možnost přidávat poznámky k aktivitám.Ability to add annotations to activities.

    • Možnost definovat a spotřebovat delegáty aktivit pomocí návrháře pracovních postupů.Ability to define and consume activity delegates by using the workflow designer.

    • Automatické připojení a automatické vložení pro aktivity a přechody v pracovních postupech stavového stroje a vývojového diagramu.Auto-connect and auto-insert for activities and transitions in state machine and flowchart workflows.

  • Úložiště informací o stavu zobrazení pracovního postupu v jednom prvku v souboru XAML, takže můžete snadno vyhledat a upravit informace o stavu zobrazení.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.

  • Aktivita kontejneru oboru NoPersistScope, která zabraňuje zachování podřízených aktivit.A NoPersistScope container activity to prevent child activities from persisting.

  • Podpora pro výrazy jazyka C#:Support for C# expressions:

    • Projekty pracovního postupu, které používají Visual Basic, budou používat výrazy Visual Basic a projekty pracovního postupu C# budou používat výrazy jazyka C#.Workflow projects that use Visual Basic will use Visual Basic expressions, and C# workflow projects will use C# expressions.

    • Projekty pracovního postupu c#, které byly vytvořeny v aplikaci Visual Studio 2010 a které mají Visual Basic výrazy jsou kompatibilní s projekty pracovního postupu C#, které používají výrazy jazyka C#.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.

  • Vylepšení správy verzí:Versioning enhancements:

    • Nová WorkflowIdentity třída, která poskytuje mapování mezi trvalou instancí pracovního postupu a její definicí pracovního postupu.The new WorkflowIdentity class, which provides a mapping between a persisted workflow instance and its workflow definition.

    • Souběžné spouštění více verzí pracovních postupů ve stejném hostiteli, včetně WorkflowServiceHost .Side-by-side execution of multiple workflow versions in the same host, including WorkflowServiceHost.

    • V případě dynamické aktualizace je možné změnit definici trvalé instance pracovního postupu.In Dynamic Update, the ability to modify the definition of a persisted workflow instance.

  • Vývoj služby pracovního postupu prvního kontraktu, který poskytuje podporu pro automatické generování aktivit, které se shodují s existující smlouvou služby.Contract-first workflow service development, which provides support for automatically generating activities to match an existing service contract.

Další informace najdete v tématu co je nového v programovací model Windows Workflow Foundation.For more information, see What's New in Windows Workflow Foundation.

Aplikace .NET pro Windows 8.x Store.NET for Windows 8.x Store apps

Aplikace pro Store ve Windows 8. x jsou navržené pro konkrétní faktory a využívají sílu operačního systému Windows.Windows 8.x Store apps are designed for specific form factors and leverage the power of the Windows operating system. K dispozici je podmnožina .NET Framework 4,5 nebo 4.5.1 pro sestavování aplikací Windows 8. x Store pro Windows pomocí jazyka C# nebo Visual Basic.A subset of .NET Framework 4.5 or 4.5.1 is available for building Windows 8.x Store apps for Windows by using C# or Visual Basic. Tato podmnožina se nazývá .NET pro aplikace Windows 8. x Store a je popsána v přehledu.This subset is called .NET for Windows 8.x Store apps and is discussed in an overview.

Přenositelné knihovny tříd Portable Class Libraries

Přenosná knihovna tříd projektu v aplikaci Visual Studio 2012 (a novějších verzích) umožňuje psát a sestavovat spravovaná sestavení, která fungují na více .NET Framework platformách.The Portable Class Library project in Visual Studio 2012 (and later versions) enables you to write and build managed assemblies that work on multiple .NET Framework platforms. Pomocí přenositelného projektu knihovny tříd zvolíte platformy (například Windows Phone a .NET pro aplikace pro Windows 8. x Store) k cíli.Using a Portable Class Library project, you choose the platforms (such as Windows Phone and .NET for Windows 8.x Store apps) to target. Dostupné typy a členy v projektu jsou automaticky omezeny na společné typy a členy napříč těmito platformami.The available types and members in your project are automatically restricted to the common types and members across these platforms. Další informace naleznete v tématu Přenosná knihovna tříd.For more information, see Portable Class Library.

Viz takéSee also