.NET Framework yenilikleriWhat's new in .NET Framework

Bu makalede, .NET Framework aşağıdaki sürümlerindeki temel yeni özellikler ve geliştirmeler özetlenmektedir:This article summarizes key new features and improvements in the following versions of the .NET Framework:

Bu makale, her yeni özellik hakkında kapsamlı bilgi sağlamaz ve değişikliğe tabidir.This article does not provide comprehensive information about each new feature and is subject to change. .NET Framework hakkında genel bilgi için bkz. Başlarken.For general information about the .NET Framework, see Getting Started. Desteklenen platformlar için bkz. sistem gereksinimleri.For supported platforms, see System Requirements. İndirme bağlantıları ve yükleme yönergeleri için bkz. Yükleme Kılavuzu.For download links and installation instructions, see Installation Guide.

Not

.NET Framework ekibi, platform desteğini genişletmek ve sabit koleksiyonlar ve SıMD özellikli vektör türleri gibi yeni işlevsellik tanıtmak için NuGet ile bant dışı özellikleri de serbest bırakır.The .NET Framework team also releases features out of band with NuGet to expand platform support and to introduce new functionality, such as immutable collections and SIMD-enabled vector types. Daha fazla bilgi için bkz. Ek sınıf kitaplıkları ve API 'ler ve .NET Framework ve bant dışı yayınlar.For more information, see Additional Class Libraries and APIs and The .NET Framework and Out-of-Band Releases. .NET Framework için NuGet paketlerinin tüm listesini görüntüleyin.See a complete list of NuGet packages for the .NET Framework.

.NET Framework 4,8 tanıtımıIntroducing .NET Framework 4.8

.NET Framework 4,8, çok kararlı bir ürünün geri kalanında birçok yeni düzeltme ve birkaç yeni özellik ekleyerek .NET Framework 4. x ' in önceki sürümlerinde oluşturulur..NET Framework 4.8 builds on previous versions of the .NET Framework 4.x by adding many new fixes and several new features while remaining a very stable product.

.NET Framework 4,8 indiriliyor ve yükleniyorDownloading and installing .NET Framework 4.8

.NET Framework 4,8 ' i şu konumlardan indirebilirsiniz:You can download .NET Framework 4.8 from the following locations:

.NET Framework 4,8, Windows 10, Windows 8.1, Windows 7 SP1 ve Windows Server 2008 R2 SP1 ile başlayan karşılık gelen sunucu platformları üzerine yüklenebilir..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. Web yükleyicisini veya çevrimdışı yükleyiciyi kullanarak .NET Framework 4,8 ' ü yükleyebilirsiniz.You can install .NET Framework 4.8 by using either the web installer or the offline installer. Çoğu kullanıcı için önerilen yöntem web yükleyicisini kullanmaktır.The recommended way for most users is to use the web installer.

.NET Framework 4,8 Geliştirici paketiniyükleyerek Visual Studio 2012 veya sonraki sürümlerde .NET Framework 4,8 ' i hedefleyebilirsiniz.You can target .NET Framework 4.8 in Visual Studio 2012 or later by installing the .NET Framework 4.8 Developer Pack.

.NET Framework 4,8 ' deki yeniliklerWhat's new in .NET Framework 4.8

.NET Framework 4,8 aşağıdaki alanlarda yeni özellikler sunar:.NET Framework 4.8 introduces new features in the following areas:

Bir uygulamanın yardımcı teknoloji kullanıcıları için uygun bir deneyim sağlamasına izin veren iyileştirilmiş erişilebilirlik, .NET Framework 4,8 ' nin önemli bir odağında devam etmektedir.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. .NET Framework 4,8 ' deki erişilebilirlik geliştirmeleri hakkında daha fazla bilgi için .NET Framework erişilebilirlikyenilikleri bölümüne bakın.For information on accessibility improvements in .NET Framework 4.8, see What's new in accessibility in the .NET Framework.

Temel sınıflarBase classes

Şifrelemeye göre daha az FIPS etkisi.Reduced FIPS impact on Cryptography. .NET Framework önceki sürümlerinde, SHA256Managed gibi yönetilen şifreleme sağlayıcısı sınıfları, Sistem şifreleme kitaplıkları "FIPS modunda" yapılandırıldığında bir CryptographicException oluşturur.In previous versions of the .NET Framework, managed cryptographic provider classes such as SHA256Managed throw a CryptographicException when the system cryptographic libraries are configured in “FIPS mode”. Bu özel durumlar, Sistem şifreleme kitaplıklarının aksine, şifreleme sağlayıcısı sınıflarının yönetilen sürümlerinin FIPS (Federal bilgi Işleme standartları) 140-2 sertifikası olmadığı için oluşturulur.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. Bazı geliştiricilerin geliştirme makineleri FIPS modunda olduğundan, özel durumlar genellikle üretim sistemlerinde oluşturulur.Because few developers have their development machines in FIPS mode, the exceptions are commonly thrown in production systems.

.NET Framework 4,8 ' i hedefleyen uygulamalarda varsayılan olarak, aşağıdaki yönetilen şifreleme sınıfları artık bu durumda bir CryptographicException oluşturmaz:By default in applications that target .NET Framework 4.8, the following managed cryptography classes no longer throw a CryptographicException in this case:

Bunun yerine, bu sınıflar şifreleme işlemlerini bir sistem şifreleme kitaplığına yönlendirir.Instead, these classes redirect cryptographic operations to a system cryptography library. Bu değişiklik, geliştirici ortamları ve üretim ortamları arasındaki kafa karıştırıcı bir farkı etkili bir şekilde kaldırır ve yerel bileşenlerin ve yönetilen bileşenlerin aynı şifreleme ilkesi altında çalışmasını sağlar.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. Bu özel durumlara bağımlı uygulamalar, AppContext anahtar Switch.System.Security.Cryptography.UseLegacyFipsThrow trueolarak ayarlayarak önceki davranışı geri yükleyebilir.Applications that depend on these exceptions can restore the previous behavior by setting the AppContext switch Switch.System.Security.Cryptography.UseLegacyFipsThrow to true. Daha fazla bilgi için bkz. yönetilen şifreleme SıNıFLARı FIPS modunda Cryptographyıexceptionoluşturmaz.For more information, see Managed cryptography classes do not throw a CryptographyException in FIPS mode.

ZLib 'in güncelleştirilmiş sürümünün kullanımıUse of updated version of ZLib

.NET Framework 4,5 ' den başlayarak, clrcompression. dll derlemesi, söndür algoritma için bir uygulama sağlamak üzere veri sıkıştırma için yerel bir dış kitaplık olan zlib'i kullanır.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. .NET Framework 4,8, clrcompression. dll, çeşitli temel geliştirmeler ve düzeltmeler içeren ZLib sürüm 1.2.11 kullanacak şekilde güncelleştirilir.The .NET Framework 4.8, 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)

ServiceHealthBehavior 'a girişIntroduction of ServiceHealthBehavior

Sistem durumu uç noktaları, Hizmetleri sistem durumlarına göre yönetmek için Orchestration araçları tarafından yaygın olarak kullanılır.Health endpoints are widely used by orchestration tools to manage services based on their health status. Sistem durumu denetimleri, bir hizmetin kullanılabilirliği ve performansı hakkında bildirimler izlemek ve bu bildirimleri sağlamak için izleme araçları tarafından da kullanılabilir.Health checks can also be used by monitoring tools to track and provide notifications about the availability and performance of a service.

Servicehealthbehavior , IServiceBehaviorGENIŞLETEN bir WCF hizmeti davranışıdır.ServiceHealthBehavior is a WCF service behavior that extends IServiceBehavior. ServiceDescription.Behaviors koleksiyonuna eklendiğinde, bir hizmet davranışı şunları yapar:When added to the ServiceDescription.Behaviors collection, a service behavior does the following:

  • HTTP yanıt kodlarıyla hizmet sistem durumu döndürür.Returns service health status with HTTP response codes. Bir HTTP/GET Health araştırma isteği için HTTP durum kodunu bir sorgu dizesinde belirtebilirsiniz.You can specify in a query string the HTTP status code for a HTTP/GET health probe request.

  • Hizmet durumu hakkında bilgi yayımlar.Publishes information about service health. Hizmet durumu, kısıtlama sayısı ve kapasite dahil olmak üzere hizmete özgü ayrıntılar ?health sorgu dizesiyle bir HTTP/GET isteği kullanılarak görüntülenebilir.Service-specific details, including service state, throttle counts, and capacity can be displayed by using an HTTP/GET request with the ?health query string. Bu tür bilgilere erişim kolaylığı, hatalı bir WCF hizmeti sorunlarını giderirken önemlidir.Ease of access to such information is important when troubleshooting a misbehaving WCF service.

Sistem durumu uç noktasını açığa çıkarmak ve WCF hizmeti durum bilgilerini yayımlamak için iki yol vardır:There are two ways to expose the health endpoint and publish WCF service health information:

  • Kod üzerinden.Through code. Örneğin: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)
    
  • Bir yapılandırma dosyası kullanarak.By using a configuration file. Örneğin:For example:

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

Hizmetin sistem durumu, OnServiceFailure, OnDispatcherFailure, OnListenerFailure, OnThrottlePercentExceeded) gibi sorgu parametreleri kullanılarak sorgulanabilir ve her sorgu parametresi için bir HTTP yanıt kodu belirtilebilir.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. Bir sorgu parametresi için HTTP yanıt kodu atlanırsa, varsayılan olarak bir 503 HTTP yanıt kodu kullanılır.If the HTTP response code is omitted for a query parameter, a 503 HTTP response code is used by default. Örneğin:For example:

  • OnServiceFailure: https://contoso:81/Service1?health&OnServiceFailure=450OnServiceFailure: https://contoso:81/Service1?health&OnServiceFailure=450

    ServiceHost olduğunda bir 450 HTTP yanıt durum kodu döndürülür. durum CommunicationState.Opened'den büyük.A 450 HTTP response status code is returned when ServiceHost.State is greater than CommunicationState.Opened. Sorgu parametreleri ve örnekleri:Query parameters and examples:

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

    Bir 455 HTTP yanıt durum kodu, kanal sevkiyatlarından birinin durumu CommunicationState.Openeddaha büyükse döndürülür.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

    Kanal dinleyicilerinin herhangi birinin durumu CommunicationState.Openeddaha büyükse, 465 HTTP yanıt durum kodu döndürülür.A 465 HTTP response status code is returned when the state of any of the channel listeners is greater than CommunicationState.Opened.

  • Onthrottleyüztexcebaşında: https://contoso:81/Service1?health&OnThrottlePercentExceeded= 70:350,95:500OnThrottlePercentExceeded: https://contoso:81/Service1?health&OnThrottlePercentExceeded= 70:350,95:500

    Yanıtı tetikleyen {1 – 100} yüzdesini ve {200 – 599} HTTP yanıt kodunu belirtir.Specifies the percentage {1 – 100} that triggers the response and its HTTP response code {200 – 599}. Bu örnekte:In this example:

    • Yüzde 95 ' den büyükse, bir 500 HTTP yanıt kodu döndürülür.If the percentage is greater than 95, a 500 HTTP response code is returned.

    • Yüzde veya 70 ile 95 arasında bir değer döndürülürse, 350 döndürülür.If the percentage or between 70 and 95, 350 is returned.

    • Aksi takdirde, 200 döndürülür.Otherwise, 200 is returned.

Hizmet sistem durumu, https://contoso:81/Service1?health&Xmlgibi bir sorgu dizesi belirterek, https://contoso:81/Service1?health veya XML gibi bir sorgu dizesi belirterek HTML içinde görüntülenebilir.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. https://contoso:81/Service1?health&NoContent gibi bir sorgu dizesi boş bir HTML sayfası döndürüyor.A query string like https://contoso:81/Service1?health&NoContent returns an empty HTML page.

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

Yüksek DPı geliştirmeleriHigh DPI enhancements

.NET Framework 4,8 ' de WPF, Monitor v2 DPı tanıma ve karma mod DPı ölçeklendirme için destek ekler.In .NET Framework 4.8, WPF adds support for Per-Monitor V2 DPI Awareness and Mixed-Mode DPI scaling. Yüksek DPı geliştirmesi hakkında daha fazla bilgi için bkz. Windows üzerinde yüksek DPI masaüstü uygulaması geliştirme .See High DPI Desktop Application Development on Windows for additional information about high DPI development.

.NET Framework 4,8, karma mod DPı ölçeklendirmesini (Windows 10 Nisan 2018 ' den başlayarak) destekleyen platformlar üzerindeki yüksek DPı WPF uygulamalarında barındırılan HWNDs ve Windows Forms birlikte çalışabilirlik desteğini geliştirir..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). Barındırılan HWNDs veya Windows Forms denetimleri Setthreaddpihostingbehavior ve SetThreadDpiAwarenessContextçağırarak karışık modlu DPI ölçekli pencereler olarak oluşturulduysa, her bir Monitor v2 WPF uygulamasında barındırılabilir ve uygun şekilde boyutlandırılabilir ve ölçeklenirler.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. Bu tür barındırılan içerikler yerel DPı 'de işlenmez; Bunun yerine, işletim sistemi barındırılan içeriği uygun boyuta ölçeklendirir.Such hosted content is not rendered at the native DPI; instead, the operating system scales the hosted content to the appropriate size. Monitör başına v2 DPı tanıma moduna yönelik destek Ayrıca, WPF denetimlerinin yüksek DPı uygulamasındaki yerel bir pencerede barındırılmasına (yani, üstü olarak) olanak tanır.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.

Karma mod yüksek DPı ölçeklendirme desteğini etkinleştirmek için aşağıdaki AppContext anahtarlarını uygulama yapılandırma dosyasına ayarlayabilirsiniz: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>

Ortak dil çalışma zamanıCommon language runtime

.NET Framework 4,8 ' deki çalışma zamanı aşağıdaki değişiklikleri ve geliştirmeleri içerir:The runtime in .NET Framework 4.8 includes the following changes and improvements:

JIT derleyicisi geliştirmeleri.Improvements to the JIT compiler. .NET Framework 4,8 ' deki tam zamanında (JıT) derleyici .NET Core 2,1 ' de JıT derleyicisine dayanır.The Just-in-time (JIT) compiler in .NET Framework 4.8 is based on the JIT compiler in .NET Core 2.1. .NET Core 2,1 JıT derleyicisi üzerinde yapılan en iyileştirmelerin ve tüm hata düzeltmelerinin çoğu, .NET Framework 4,8 JıT derleyicisine dahildir.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.

Ngen geliştirmeleri.NGEN improvements. Çalışma zamanı, Yerel Görüntü Oluşturucu (NGen) görüntüleri için bellek yönetimini iyileştirmiştir, bu sayede Ngen görüntülerinden eşlenen verilerin bellekte yerleşik olmaması sağlanır.The runtime has improved its memory management for Native Image Generator (NGEN) images so that data mapped from NGEN images are not memory-resident. Bu, yürütülecek belleği değiştirerek bu yüzey alanını rastgele kodu yürütmeye çalışacak saldırılara karşı azaltır.This reduces the surface area available to attacks that attempt to execute arbitrary code by modifying memory that will be executed.

Tüm derlemeler Için kötü amaçlı yazılımdan koruma taraması.Antimalware scanning for all assemblies. .NET Framework önceki sürümlerinde, çalışma zamanı, Windows Defender ya da üçüncü taraf kötü amaçlı yazılımdan koruma yazılımı kullanarak diskten yüklenen tüm derlemeleri tarar.In previous versions of the .NET Framework, the runtime scans all assemblies loaded from disk using either Windows Defender or third-party antimalware software. Ancak, Assembly.Load(Byte[]) yöntemi gibi diğer kaynaklardan yüklenen derlemeler taranmaz ve olası algılanabilecek kötü amaçlı yazılımları içerebilir.However, assemblies loaded from other sources, such as by the Assembly.Load(Byte[]) method, are not scanned and can potentially contain undetected malware. Windows 10 ' da çalışan .NET Framework 4,8 ' den itibaren, çalışma zamanı kötü amaçlı yazılımdan koruma taraması arabirimini (AMSı)uygulayan kötü amaçlı yazılımdan koruma çözümleri tarafından bir taramayı tetiklerStarting with .NET Framework 4.8 running on Windows 10, the runtime triggers a scan by antimalware solutions that implement the Antimalware Scan Interface (AMSI).

.NET Framework 4.7.2 yenilikleriWhat's new in .NET Framework 4.7.2

.NET Framework 4.7.2, aşağıdaki alanlardaki yeni özellikler içerir:.NET Framework 4.7.2 includes new features in the following areas:

.NET Framework 4.7.2 ' ye odaklanmaya devam etmek, bir uygulamanın yardımcı teknoloji kullanıcıları için uygun bir deneyim sağlamasına olanak tanıyan bir uygulamadır.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. .NET Framework 4.7.2 ' deki erişilebilirlik geliştirmeleri hakkında daha fazla bilgi için .NET Framework erişilebilirlikyenilikleri bölümüne bakın.For information on accessibility improvements in .NET Framework 4.7.2, see What's new in accessibility in the .NET Framework.

Temel sınıflarBase classes

.NET Framework 4.7.2, çok sayıda şifreleme geliştirmesi, ZIP arşivleri için daha iyi açma desteği ve ek koleksiyon API 'Leri sunar..NET Framework 4.7.2 features a large number of cryptographic enhancements, better decompression support for ZIP archives, and additional collection APIs.

Yeni RSA aşırı yüklemeleri. Ve DSA oluştur. OluşturmaNew overloads of RSA.Create and DSA.Create

DSA.Create(DSAParameters) ve RSA.Create(RSAParameters) yöntemleri, yeni bir DSA veya RSA anahtar örneği oluşturulurken anahtar parametreleri sunmanıza olanak tanır.The DSA.Create(DSAParameters) and RSA.Create(RSAParameters) methods let you supply key parameters when instantiating a new DSA or RSA key. Bunlar, aşağıdaki gibi bir kod değiştirmenizi sağlar: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

Şu şekilde kodla: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) ve RSA.Create(Int32) yöntemleri, belirli bir anahtar boyutuyla yeni DSA veya RSA anahtarları oluşturmanıza olanak sağlar.The DSA.Create(Int32) and RSA.Create(Int32) methods let you generate new DSA or RSA keys with a specific key size. Örneğin: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

Rfc2898DeriveBytes oluşturucular bir karma algoritma adı kabul ederRfc2898DeriveBytes constructors accept a hash algorithm name

Rfc2898DeriveBytes sınıfı, anahtarları türetmede kullanılacak HMAC algoritmasını tanımlayan bir HashAlgorithmName parametresine sahip üç yeni oluşturucuya sahiptir.The Rfc2898DeriveBytes class has three new constructors with a HashAlgorithmName parameter that identifies the HMAC algorithm to use when deriving keys. Geliştiriciler, SHA-1 kullanmak yerine, aşağıdaki örnekte gösterildiği gibi SHA-256 gibi bir SHA-2 tabanlı HMAC kullanmalıdır: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

Kısa ömürlü anahtarlar için destekSupport for ephemeral keys

PFX içeri aktarma isteğe bağlı olarak, sabit sürücüyü atlayarak özel anahtarları doğrudan bellekten yükleyebilir.PFX import can optionally load private keys directly from memory, bypassing the hard drive. Yeni X509KeyStorageFlags.EphemeralKeySet bayrağı bir X509Certificate2 oluşturucuda veya X509Certificate2.Import yönteminin aşırı yüklerinden birinde belirtildiğinde, özel anahtarlar kısa ömürlü anahtarlar olarak yüklenir. 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. Bu, anahtarların diskte görünmesini önler.This prevents the keys from being visible on the disk. AncakHowever:

  • Anahtarlar diske kalıcı olmadığından, bu bayrağıyla yüklenen sertifikalar bir X509Store eklemek için iyi aday değildir.Since the keys are not persisted to disk, certificates loaded with this flag are not good candidates to add to an X509Store.

  • Bu şekilde yüklenen anahtarlar neredeyse her zaman Windows CNG aracılığıyla yüklenir.Keys loaded in this manner are almost always loaded via Windows CNG. Bu nedenle, çağıranlar, CERT gibi uzantı yöntemlerini çağırarak özel anahtara erişmelidir . GetRSAPrivateKey ().Therefore, callers must access the private key by calling extension methods, such as cert.GetRSAPrivateKey(). X509Certificate2.PrivateKey özelliği çalışmıyor.The X509Certificate2.PrivateKey property does not function.

  • Eski X509Certificate2.PrivateKey özelliği sertifikalarla çalışmadıklarından, geliştiricilerin kısa ömürlü anahtarlara geçmeden önce ciddi testler gerçekleştirmesi gerekir.Since the legacy X509Certificate2.PrivateKey property does not work with certificates, developers should perform rigorous testing before switching to ephemeral keys.

PKCS # 10 sertifika imzalama istekleri ve X. 509.440 ortak anahtar sertifikalarının programlı bir şekilde oluşturulmasıProgrammatic creation of PKCS#10 certification signing requests and X.509 public key certificates

.NET Framework 4.7.2 ' den itibaren, iş yükleri sertifika imzalama istekleri (CSR) oluşturabilir ve bu da sertifika isteği oluşturma 'nın var olan araç halinde hazırlanmasını sağlar.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. Bu, genellikle test senaryolarında yararlı olur.This is frequently useful in test scenarios.

Daha fazla bilgi ve kod örnekleri için .net blogda"PKCS # 10 sertifika imzalama Isteklerinin ve X. 509.440 ortak anahtar sertifikalarının programlı oluşturulması" başlığına bakın.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.

Yeni SignerInfo üyeleriNew SignerInfo members

.NET Framework 4.7.2 ile başlayarak, SignerInfo sınıfı imza hakkında daha fazla bilgi sunar.Starting with .NET Framework 4.7.2, the SignerInfo class exposes more information about the signature. İmzalayan tarafından kullanılan imza algoritmasını belirleyebilmek için System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm özelliğinin değerini alabilirsiniz.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, bu imzalayan için şifreleme imzasının bir kopyasını almak üzere çağrılabilir.SignerInfo.GetSignature can be called to get a copy of the cryptographic signature for this signer.

CryptoStream atıldıktan sonra sarmalanmış bir akışın açılmasını bırakmaLeaving a wrapped stream open after CryptoStream is disposed

.NET Framework 4.7.2 ile başlayarak, CryptoStream sınıfının sarmalanmış akışı kapatmadığından Dispose izin veren ek bir Oluşturucusu vardır.Starting with .NET Framework 4.7.2, the CryptoStream class has an additional constructor that allows Dispose to not close the wrapped stream. CryptoStream örneği atıldıktan sonra kaydırılmış akışı açık bırakmak için, yeni CryptoStream oluşturucusunu aşağıdaki gibi çağırın: 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)

DeflateStream 'de değişiklikleri açmaDecompression changes in DeflateStream

.NET Framework 4.7.2 ' den itibaren, DeflateStream sınıfında açma işlemlerinin uygulanması, varsayılan olarak yerel Windows API 'Lerini kullanacak şekilde değiştirilmiştir.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. Genellikle bu, önemli ölçüde performans geliştirmesine neden olur.Typically, this results in a substantial performance improvement.

Windows API 'Leri kullanarak açma desteği, .NET Framework 4.7.2 ' i hedefleyen uygulamalar için varsayılan olarak etkinleştirilmiştir.Support for decompression by using Windows APIs is enabled by default for applications that target .NET Framework 4.7.2. .NET Framework önceki sürümlerini hedefleyen ancak .NET Framework 4.7.2 altında çalışan uygulamalar, uygulama yapılandırma dosyasına aşağıdaki AppContext anahtarını ekleyerek bu davranışı kabul edebilir: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" />

Ek koleksiyon API 'LeriAdditional collection APIs

.NET Framework 4.7.2, SortedSet<T> ve HashSet<T> türlerine bir dizi yeni API ekler..NET Framework 4.7.2 adds a number of new APIs to the SortedSet<T> and HashSet<T> types. Bunlar:These include:

ConcurrentDictionary<TKey,TValue> sınıfı, sözlükten bir değer almak veya bulunamadıysanız eklemek ve sözlüğe bir değer eklemek ya da zaten varsa güncelleştirmek için AddOrUpdate ve GetOrAdd yöntemlerinin yeni aşırı yüklerini içerir.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

Web Forms bağımlılık ekleme desteğiSupport for dependency injection in Web Forms

Bağımlılık ekleme (dı) nesneleri ve bağımlılıklarını ayırır, böylece bir bağımlılık değiştiği için nesnenin kodunun artık değişmesi gerekmez.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. .NET Framework 4.7.2 hedefleyen ASP.NET uygulamaları geliştirirken şunları yapabilirsiniz:When developing ASP.NET applications that target .NET Framework 4.7.2, you can:

Aynı site tanımlama bilgileri için destekSupport for same-site cookies

SameSite , bir tarayıcının bir siteler arası istekle birlikte tanımlama bilgisi göndermesini engeller.SameSite prevents a browser from sending a cookie along with a cross-site request. .NET Framework 4.7.2, değeri System.Web.SameSiteMode numaralandırma üyesi olan bir HttpCookie.SameSite özelliği ekler..NET Framework 4.7.2 adds a HttpCookie.SameSite property whose value is a System.Web.SameSiteMode enumeration member. Değeri SameSiteMode.Strict veya SameSiteMode.Laxise, ASP.NET, set-Cookie başlığına SameSite özniteliğini ekler.If its value is SameSiteMode.Strict or SameSiteMode.Lax, ASP.NET adds the SameSite attribute to the set-cookie header. SameSite desteği HttpCookie nesneler için, FormsAuthentication ve System.Web.SessionState tanımlama bilgilerine de uygulanır.SameSite support applies to HttpCookie objects, as well as to FormsAuthentication and System.Web.SessionState cookies.

HttpCookie nesne için SameSite ' i aşağıdaki gibi ayarlayabilirsiniz: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

Ayrıca, Web. config dosyasını değiştirerek, uygulama düzeyinde SameSite tanımlama bilgilerini de yapılandırabilirsiniz:You can also configure SameSite cookies at the application level by modifying the web.config file:

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

Web yapılandırma dosyasını değiştirerek FormsAuthentication ve System.Web.SessionState tanımlama bilgileri için SameSite ekleyebilirsiniz: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>

Networking

HttpClientHandler özelliklerinin uygulanmasıImplementation of HttpClientHandler properties

.NET Framework 4.7.1 System.Net.Http.HttpClientHandler sınıfına sekiz özellik ekledi..NET Framework 4.7.1 added eight properties to the System.Net.Http.HttpClientHandler class. Ancak, ikisi bir PlatformNotSupportedExceptionoluşturdu.However, two threw a PlatformNotSupportedException. .NET Framework 4.7.2 artık bu özellikler için bir uygulama sağlar..NET Framework 4.7.2 now provides an implementation for these properties. Özellikler şunlardır:The properties are:

SQLClientSQLClient

Azure Active Directory evrensel kimlik doğrulaması ve Multi-Factor Authentication desteğiSupport for Azure Active Directory Universal Authentication and Multi-Factor authentication

Büyüyen uyumluluk ve güvenlik talepleri birçok müşterinin Multi-Factor Authentication (MFA) kullanmasını gerektirir.Growing compliance and security demands require that many customers use multi-factor authentication (MFA). Ayrıca, geçerli en iyi uygulamalar Kullanıcı parolalarını doğrudan bağlantı dizelerine dahil etmekten kaçınarak.In addition, current best practices discourage including user passwords directly in connection strings. Bu değişiklikleri desteklemek için, 4.7.2 ve Azure AD kimlik doğrulamasınıdesteklemek üzere mevcut "Authentication" anahtar sözcüğü için yeni bir değer ekleyerek SQLClient bağlantı dizelerini Active Directory ".NET Framework genişletir.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. Yeni etkileşimli Yöntem, yerel ve Federal Azure AD kullanıcılarını ve Azure AD Konuk kullanıcılarını destekler.The new interactive method supports native and federated Azure AD users as well as Azure AD guest users. Bu yöntem kullanıldığında, Azure AD tarafından uygulanan MFA kimlik doğrulaması SQL veritabanları için desteklenir.When this method is used, the MFA authentication imposed by Azure AD is supported for SQL databases. Ayrıca, kimlik doğrulama işlemi, en iyi güvenlik uygulamalarına uyacak şekilde bir Kullanıcı parolası ister.In addition, the authentication process requests a user password to adhere to security best practices.

.NET Framework önceki sürümlerinde SQL bağlantısı yalnızca SqlAuthenticationMethod.ActiveDirectoryPassword ve SqlAuthenticationMethod.ActiveDirectoryIntegrated seçeneklerini destekliyordu.In previous versions of the .NET Framework, SQL connectivity supported only the SqlAuthenticationMethod.ActiveDirectoryPassword and SqlAuthenticationMethod.ActiveDirectoryIntegrated options. Bunların her ikisi de, MFA 'yı desteklemeyen, etkileşimli olmayan adal protokolününbir parçasıdır.Both of these are part of the non-interactive ADAL protocol, which does not support MFA. Yeni SqlAuthenticationMethod.ActiveDirectoryInteractive seçeneğiyle, SQL bağlantısı MFA 'yı ve mevcut kimlik doğrulama yöntemlerini (parola ve tümleşik kimlik doğrulaması) destekler, böylece kullanıcılar bağlantı dizesinde kalıcı parolalar olmadan Kullanıcı parolalarını etkileşimli olarak girebilir.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.

Daha fazla bilgi ve örnek için .net blogdaki"SQL--Azure AD Universal ve Multi-Factor Authentication support" başlığına bakın.For more information and an example, see "SQL -- Azure AD Universal and Multi-factor Authentication Support" in the .NET Blog.

Always Encrypted sürüm 2 için destekSupport for Always Encrypted version 2

NET Framework 4.7.2, şifreleme tabanlı Always Encrypted destekler.NET Framework 4.7.2 adds supports for enclave-based Always Encrypted. Always Encrypted orijinal sürümü, şifreleme anahtarlarının istemciden hiçbir şekilde ayrılmayacağı istemci tarafı bir şifreleme teknolojisidir.The original version of Always Encrypted is a client-side encryption technology in which encryption keys never leave the client. Encde tabanlı Always Encrypted, istemci isteğe bağlı olarak, SQL Server bir parçası olarak kabul edilebilir ancak SQL Server kodu ile oynanamaz güvenli bir hesaplama varlığı olan güvenli bir kuşya şifreleme anahtarlarını gönderebilir.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. Kuşatma tabanlı Always Encrypted desteklemek için .NET Framework 4.7.2, System.Data.SqlClient ad alanına aşağıdaki türleri ve üyeleri ekler:To support enclave-based Always Encrypted, .NET Framework 4.7.2 adds the following types and members to the System.Data.SqlClient namespace:

Uygulama yapılandırma dosyası daha sonra, şifreleme sağlayıcısı için işlevselliği sağlayan soyut System.Data.SqlClient.SqlColumnEncryptionEnclaveProvider sınıfının somut bir uygulamasını belirtir.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. Örneğin: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>

Şifreleme tabanlı Always Encrypted temel akışı:The basic flow of enclave-based Always Encrypted is:

  1. Kullanıcı, SQL Server şifreli bir bağlantı oluşturur ve bu, şifreleme tabanlı Always Encrypted destekler.The user creates an AlwaysEncrypted connection to SQL Server that supported enclave-based Always Encrypted. Sürücü, doğru kuşağa bağlandığından emin olmak için kanıtlama hizmetiyle iletişim kurar.The driver contacts the attestation service to ensure that it is connecting to right enclave.

  2. Şifreleme onaylandıktan sonra, sürücü, SQL Server barındırılan güvenli şifreleme ile güvenli bir kanal oluşturur.Once the enclave has been attested, the driver establishes a secure channel with the secure enclave hosted on SQL Server.

  3. Sürücü, SQL bağlantısı süresi boyunca güvenli şifreleme ile istemci tarafından yetkilendirilmiş şifreleme anahtarlarını paylaşır.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

Kaynağa göre Resourcesözlükler bulmaFinding ResourceDictionaries by Source

.NET Framework 4.7.2 ile başlayarak bir tanılama Yardımcısı, belirli bir kaynak URI 'sinden oluşturulmuş ResourceDictionaries bulabilir.Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the ResourceDictionaries that have been created from a given source Uri. (Bu özellik, üretim uygulamalarına göre değil, tanılama yardımcıları tarafından kullanılır.) Visual Studio "Düzenle ve devam et" özelliği gibi bir tanılama Yardımcısı, kullanıcının, değişikliklerin çalışan uygulamaya uygulanmasını sağlamak için bir ResourceDictionary 'yi düzenlemesine olanak tanır. (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. Bunu elde eden bir adım, çalışan uygulamanın düzenlenmekte olan sözlükten oluşturduğu tüm Resourcesözlüklerini bulmasıdır.One step in achieving this is finding all the ResourceDictionaries that the running application has created from the dictionary that’s being edited. Örneğin, bir uygulama, içeriği belirli bir kaynak URI 'den kopyalanmış bir ResourceDictionary bildirebilir:For example, an application can declare a ResourceDictionary whose content is copied from a given source URI:

<ResourceDictionary Source="MyRD.xaml">

Myrd. xaml içindeki özgün biçimlendirmeyi düzenleyen bir tanılama Yardımcısı, sözlüğü bulmak için yeni özelliği kullanabilir.A diagnostic assistant that edits the original markup in MyRD.xaml can use the new feature to locate the dictionary. Özelliği, ResourceDictionaryDiagnostics.GetResourceDictionariesForSourceyeni bir statik yöntem tarafından uygulanır. The feature is implemented by a new static method, ResourceDictionaryDiagnostics.GetResourceDictionariesForSource. Tanılama Yardımcısı, aşağıdaki kodda gösterildiği gibi özgün biçimlendirmeyi tanımlayan mutlak bir URI kullanarak yeni yöntemi çağırır: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"))

 VisualDiagnostics etkinleştirilmediği ve ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO ortam değişkeni ayarlanmadığı takdirde yöntem boş bir sıralanabilir değer döndürür.The method returns an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

ResourceDictionary sahiplerini bulmaFinding ResourceDictionary owners

.NET Framework 4.7.2 ile başlayarak bir tanılama Yardımcısı, belirli bir ResourceDictionarysahiplerini bulabilir.Starting with .NET Framework 4.7.2, a diagnostic assistant can locate the owners of a given ResourceDictionary. (Özelliği, üretim uygulamalarına göre değil, tanılama yardımcıları tarafından kullanılır.) Bir ResourceDictionaryher değişiklik yapıldığında WPF, değişiklikten etkilenebilecek tüm DynamicResource başvurularını otomatik olarak bulur. (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.

Visual Studio "Düzenle ve devam et" özelliği gibi bir tanılama Yardımcısı, bu, StaticResource başvurularını işlemek için bunu genişletmek isteyebilir.A diagnostic assistant such as Visual Studio's "Edit-and-Continue" facility may want to extend this to handle StaticResource references. Bu işlemin ilk adımı, sözlüğün sahiplerini bulledir; diğer bir deyişle, Resources özelliği sözlüğüne başvuran tüm nesneleri bulmak için (doğrudan veya ResourceDictionary.MergedDictionaries özelliği aracılığıyla dolaylı olarak).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). System.Windows.Diagnostics.ResourceDictionaryDiagnostics sınıfında uygulanan üç yeni statik yöntem, bir Resources özelliğine sahip olan temel türlerin her biri için, bu adımı destekler: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:

 VisualDiagnostics etkinleştirilmediği ve ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO ortam değişkeni ayarlanmadığı takdirde bu yöntemler boş bir sıralanabilir değer döndürür.These methods return an empty enumerable unless VisualDiagnostics is enabled and the ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO environment variable is set.

StaticResource başvurularını bulmaFinding StaticResource references

Bir tanılama Yardımcısı, bir StaticResource başvurusu çözümlendiğinde artık bildirim alabilir.A diagnostic assistant can now receive a notification whenever a StaticResource reference is resolved. (Özelliği, üretim uygulamalarına göre değil, tanılama yardımcıları tarafından kullanılır.) Visual Studio "Düzenle ve devam et" özelliği gibi bir tanılama Yardımcısı, bir ResourceDictionary değiştiğinde bir kaynağın tüm kullanımlarını güncelleştirmek isteyebilir. (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 bunu, DynamicResource başvuruları için otomatik olarak yapar, ancak bu şekilde bu, StaticResource başvuruları için bunu yapmaz.WPF does this automatically for DynamicResource references, but it intentionally does not do so for StaticResource references. .NET Framework 4.7.2 ile başlayarak, tanılama Yardımcısı bu bildirimleri statik kaynak kullanımlarını bulmak için kullanabilir.Starting with .NET Framework 4.7.2, the diagnostic assistant can use these notifications to locate those uses of the static resource.

Bildirim, yeni ResourceDictionaryDiagnostics.StaticResourceResolved olayı tarafından uygulanır:The notification is implemented by the new ResourceDictionaryDiagnostics.StaticResourceResolved event:

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

Bu olay, çalışma zamanı bir StaticResource başvurusunu her çözdüğünde tetiklenir.This event is raised whenever the runtime resolves a StaticResource reference. StaticResourceResolvedEventArgs bağımsız değişkenleri çözümlemeyi betimleyen ve bu, StaticResource başvurusunu barındıran nesne ve özelliği ve çözüm için kullanılan ResourceDictionary ve anahtarı belirtir: 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

 VisualDiagnostics etkinleştirilmediği ve ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO ortam değişkeni ayarlanmadığı müddetçe olay oluşturulmaz (ve add erişimcisi yok sayılır).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

Windows Forms, Windows Presentation Foundation (WPF) ve Office için Visual Studio Araçları (VSTO) için HDPı kullanan uygulamalar ClickOnce kullanılarak dağıtılabilir.HDPI-aware applications for Windows Forms, Windows Presentation Foundation (WPF), and Visual Studio Tools for Office (VSTO) can all be deployed by using ClickOnce. Uygulama bildiriminde aşağıdaki giriş bulunursa, dağıtım .NET Framework 4.7.2 altında başarılı olur: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>

Windows Forms uygulama için, uygulama bildirimi yerine uygulama yapılandırma dosyasında DPı tanımayı ayarlamaya yönelik önceki geçici çözüm, artık ClickOnce dağıtımının başarılı olması için gerekli değildir.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.

.NET Framework 4.7.1 yenilikleriWhat's new in .NET Framework 4.7.1

.NET Framework 4.7.1, aşağıdaki alanlardaki yeni özellikler içerir:.NET Framework 4.7.1 includes new features in the following areas:

Ayrıca, .NET Framework 4.7.1 ' deki önemli bir odak, bir uygulamanın yardımcı teknoloji kullanıcıları için uygun bir deneyim sağlamasına izin veren gelişmiş erişilebilirliğe sahiptir.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. .NET Framework 4.7.1 ' deki erişilebilirlik geliştirmeleri hakkında daha fazla bilgi için .NET Framework erişilebilirlikyenilikleri bölümüne bakın.For information on accessibility improvements in .NET Framework 4.7.1, see What's new in accessibility in the .NET Framework.

Temel sınıflarBase classes

.NET Standard 2,0 desteğiSupport for .NET Standard 2.0

.NET Standard , standart sürümünü destekleyen her bir .NET uygulamasında kullanılabilir olması gereken bir API kümesini tanımlar..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, .NET Standard 2,0 ' yi tam olarak destekler ve .NET Standard 2,0 ' de tanımlanan 200 API 'leri ekler ve .NET Framework 4.6.1, 4.6.2 ve 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. (.NET Framework bu sürümlerinin yalnızca hedef sistemde ek .NET Standard destek dosyaları da dağıtılmışsa .NET Standard 2,0 desteklediğine unutmayın.) Daha fazla bilgi için, .NET Framework 4.7.1 çalışma zamanı ve derleyici özellikleri blog gönderisinde "BCL-.NET Standard 2,0 desteği" ne bakın.(Note that these versions of the .NET Framework support .NET Standard 2.0 only if additional .NET Standard support files are also deployed on the target system.) For more information, see "BCL - .NET Standard 2.0 Support" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Yapılandırma oluşturucuları için destekSupport for configuration builders

Yapılandırma üreticileri, geliştiricilerin uygulamalar için yapılandırma ayarlarını çalışma zamanında dinamik olarak eklemesine ve oluşturmalarına olanak tanır.Configuration builders allow developers to inject and build configuration settings for applications dynamically at run time. Özel yapılandırma oluşturucuları, bir yapılandırma bölümünde var olan verileri değiştirmek veya tamamen sıfırdan bir yapılandırma bölümü oluşturmak için kullanılabilir.Custom configuration builders can be used to modify existing data in a configuration section or to build a configuration section entirely from scratch. Yapılandırma oluşturucuları olmadan,. config dosyaları statiktir ve ayarları bir uygulama başlatılmadan önce bir süre tanımlanır.Without configuration builders, .config files are static, and their settings are defined some time before an application is launched.

Özel bir yapılandırma Oluşturucu oluşturmak için, oluşturucuyu soyut ConfigurationBuilder sınıfından türetirsiniz ve ConfigurationBuilder.ProcessConfigurationSection ve ConfigurationBuilder.ProcessRawXmlgeçersiz kılarsınız.To create a custom configuration builder, you derive your builder from the abstract ConfigurationBuilder class and override its ConfigurationBuilder.ProcessConfigurationSection and ConfigurationBuilder.ProcessRawXml. Ayrıca, Oluşturucularınızı. config dosyanızda tanımlarsınız.You also define your builders in your .config file. Daha fazla bilgi için, .NET Framework 4.7.1 ASP.net ve yapılandırma özellikleri blog gönderisinin "yapılandırma oluşturucuları" bölümüne bakın.For more information, see the "Configuration Builders" section in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

Çalışma zamanı özellik algılamaRun-time feature detection

System.Runtime.CompilerServices.RuntimeFeature sınıfı, derleme zamanında veya çalışma zamanında, belirli bir .NET uygulamasında önceden tanımlanmış bir özelliğin desteklenip desteklenmediğini belirlemede bir mekanizma sağlar.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. Derleme zamanında bir derleyici, özelliğin desteklenip desteklenmediğini anlamak için belirtilen alanın mevcut olup olmadığını denetleyebilir. varsa, bu özellikten faydalanan kodu yayabilir.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. Çalışma zamanında bir uygulama, çalışma zamanında kodu göndermeden önce RuntimeFeature.IsSupported metodunu çağırabilir.At run time, an application can call the RuntimeFeature.IsSupported method before emitting code at runtime. Daha fazla bilgi için bkz. çalışma zamanı tarafından desteklenen özellikleri anlatmak için yardımcı yöntemi ekleme.For more information, see Add helper method to describe features supported by the runtime.

Değer tanımlama grubu türleri seri hale getirilebilirValue tuple types are serializable

.NET Framework 4.7.1 ile başlayarak, System.ValueTuple ve ilişkili genel türleri, ikili Serileştirmeye izin veren seri hale getirilebilirolarak işaretlenir.Starting with .NET Framework 4.7.1, System.ValueTuple and its associated generic types are marked as Serializable, which allows binary serialization. Bu, Tuple<T1,T2,T3> ve Tuple<T1,T2,T3,T4>gibi kayıt düzeni türlerinin değer tanımlama grubu türlerine daha kolay olmasını sağlamalıdır.This should make migrating Tuple types, such as Tuple<T1,T2,T3> and Tuple<T1,T2,T3,T4>, to value tuple types easier. Daha fazla bilgi için, .NET Framework 4.7.1 çalışma zamanı ve derleyici özellikleri blog gönderisinde "derleyici--ValueTuple" seri hale getirilebilir "başlığına bakın.For more information, see "Compiler -- ValueTuple is Serializable" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Salt okuma başvuruları desteğiSupport for read-only references

.NET Framework 4.7.1 System.Runtime.CompilerServices.IsReadOnlyAttributeekler..NET Framework 4.7.1 adds the System.Runtime.CompilerServices.IsReadOnlyAttribute. Bu öznitelik, salt okuma başvuru dönüş türleri veya parametreleri olan üyeleri işaretlemek için dil derleyicileri tarafından kullanılır.This attribute is used by language compilers to mark members that have read-only ref return types or parameters. Daha fazla bilgi için, .NET Framework 4.7.1 çalışma zamanı ve derleyici özellikleri blog gönderisinde "derleyici--ReadOnlyReferences desteği" bölümüne bakın.For more information, see "Compiler -- Support for ReadOnlyReferences" in the .NET Framework 4.7.1 Runtime and Compiler Features blog post. Başvuru dönüş değerleri hakkında daha fazla bilgi için bkz. ref Return Values ve refC# Locals (Guide) ve 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).

Ortak dil çalışma zamanı (CLR)Common language runtime (CLR)

Çöp toplama performansı iyileştirmeleriGarbage collection performance improvements

.NET Framework 4.7.1 'teki çöp toplama (GC) değişiklikleri, özellikle büyük nesne yığını (LOH) ayırmaları için genel performansı geliştirir.Changes to garbage collection (GC) in .NET Framework 4.7.1 improve overall performance, especially for large object heap (LOH) allocations. .NET Framework 4.7.1 ' de, arka plan GC, SOH 'yi ortaya çıkaran zaman, LOH ayırmalarının oluşmasına izin veren küçük nesne yığını (SOH) ve LOH ayırmaları için ayrı kilitler kullanılır.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. Sonuç olarak, çok sayıda LOH ayırması yapan uygulamalar, ayırma Kilidi çakışması ve gelişmiş performans konusunda bir azalma görmeniz gerekir.As a result, applications that make a large number of LOH allocations should see a reduction in allocation lock contention and improved performance. Daha fazla bilgi için, .NET Framework 4.7.1 çalışma zamanı ve derleyici özellikleri blog gönderisindeki "çalışma zamanı--GC performansı iyileştirmeleri" bölümüne bakın.For more information, see the "Runtime -- GC Performance Improvements" section in the .NET Framework 4.7.1 Runtime and Compiler Features blog post.

Networking

Message. HashAlgorithm için SHA-2 desteğiSHA-2 support for Message.HashAlgorithm

.NET Framework 4,7 ve önceki sürümlerde, Message.HashAlgorithm özelliği yalnızca HashAlgorithm.Md5 ve HashAlgorithm.Sha değerlerini destekliyordu.In .NET Framework 4.7 and earlier versions, the Message.HashAlgorithm property supported values of HashAlgorithm.Md5 and HashAlgorithm.Sha only. .NET Framework 4.7.1 ile başlayarak, HashAlgorithm.Sha256, HashAlgorithm.Sha384ve HashAlgorithm.Sha512 de desteklenir.Starting with .NET Framework 4.7.1, HashAlgorithm.Sha256, HashAlgorithm.Sha384, and HashAlgorithm.Sha512 are also supported. Bu değerin gerçekten kullanılıp kullanılmadığını, Message örneğinin kendisi karma olmadığından ve yalnızca MSMQ 'ya değer geçirdiğinden MSMQ 'ya bağlıdır.Whether this value is actually used depends on MSMQ, since the Message instance itself does no hashing but simply passes on values to MSMQ. Daha fazla bilgi için, .NET Framework 4.7.1 ASP.net ve yapılandırma özellikleri blog gönderisinin "Message. HASHALGORITHM için SHA-2 desteği" bölümüne bakın.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

ASP.NET uygulamalarındaki yürütme adımlarıExecution steps in ASP.NET applications

ASP.NET, 23 olay içeren önceden tanımlanmış bir işlem hattındaki istekleri işler.ASP.NET processes requests in a predefined pipeline that includes 23 events. ASP.NET, her olay işleyicisini yürütme adımı olarak yürütür.ASP.NET executes each event handler as an execution step. ASP.NET ' nin .NET Framework 4,7 ' e kadar olan sürümlerinde, yerel ve yönetilen iş parçacıkları arasında geçiş yapmak nedeniyle ASP.NET yürütme bağlamını akamaz.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. Bunun yerine, ASP.NET yalnızca HttpContextakar.Instead, ASP.NET selectively flows only the HttpContext. .NET Framework 4.7.1 ile başlayarak, HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) Yöntemi ayrıca modüllerin çevresel verileri geri yüklemesine olanak tanır.Starting with .NET Framework 4.7.1, the HttpApplication.OnExecuteRequestStep(Action<HttpContextBase,Action>) method also allows modules to restore ambient data. Bu özellik, izleme, profil oluşturma, tanılama veya işlemlerle ilgili kitaplıklara, örneğin, uygulamanın yürütme akışı hakkında endişeleri hedefleder.This feature is targeted at libraries concerned with tracing, profiling, diagnostics, or transactions, for example, that care about the execution flow of the application. Daha fazla bilgi için, .NET Framework 4.7.1 ASP.net ve yapılandırma özellikleri blog gönderisine "ASP.net Execution Step Feature" bölümüne bakın.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 ayrıştırmaASP.NET HttpCookie parsing

.NET Framework 4.7.1, bir dizeden HttpCookie nesne oluşturmak için standartlaştırılmış bir yol sağlayan ve son kullanma tarihi ve yolu gibi tanımlama bilgisi değerlerini doğru şekilde atayan yeni bir HttpCookie.TryParseyöntem içerir..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. Daha fazla bilgi için, .NET Framework 4.7.1 ASP.net ve yapılandırma özellikleri blog gönderisine "ASP.net HttpCookie ayrıştırma" konusuna bakın.For more information, see "ASP.NET HttpCookie parsing" in the .NET Framework 4.7.1 ASP.NET and Configuration Features blog post.

ASP.NET Forms kimlik doğrulama kimlik bilgileri için SHA-2 karma seçenekleriSHA-2 hash options for ASP.NET forms authentication credentials

.NET Framework 4,7 ve önceki sürümlerde, ASP.NET izin verilen geliştiricilerin, Kullanıcı kimlik bilgilerini MD5 veya SHA1 kullanarak yapılandırma dosyalarında karma parolalara depolamasına olanak sağlar.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. .NET Framework 4.7.1 ile başlayarak, ASP.NET, SHA256, SHA384 ve SHA512 olur gibi yeni güvenli SHA-2 karma seçeneklerini de destekler.Starting with .NET Framework 4.7.1, ASP.NET also supports new secure SHA-2 hash options such as SHA256, SHA384, and SHA512. SHA1 varsayılan olarak kalır ve varsayılan olmayan bir karma algoritması Web yapılandırma dosyasında tanımlanabilir.SHA1 remains the default, and a non-default hash algorithm can be defined in the web configuration file. Örneğin:For example:

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

.NET Framework 4,7 ' deki yeniliklerWhat's new in .NET Framework 4.7

.NET Framework 4,7, aşağıdaki alanlardaki yeni özellikler içerir:.NET Framework 4.7 includes new features in the following areas:

.NET Framework 4,7 ' ye eklenen yeni API 'lerin bir listesi için bkz. GitHub 'da .NET Framework 4,7 API değişiklikleri .For a list of new APIs added to .NET Framework 4.7, see .NET Framework 4.7 API Changes on GitHub. .NET Framework 4,7 ' deki Özellik geliştirmeleri ve hata düzeltmeleri listesi için GitHub 'da .NET Framework 4,7 değişiklik listesine bakın.For a list of feature improvements and bug fixes in .NET Framework 4.7, see .NET Framework 4.7 List of Changes on GitHub. Daha fazla bilgi için bkz. .NET blogu 'nda .NET Framework 4,7 duyurusu .For more information, see Announcing the .NET Framework 4.7 in the .NET blog.

Temel sınıflarBase classes

.NET Framework 4,7 DataContractJsonSerializertarafından Serileştirmeyi geliştirir:.NET Framework 4.7 improves serialization by the DataContractJsonSerializer:

Eliptik eğri şifrelemesi (ECC) Ile gelişmiş işlevsellik*Enhanced functionality with Elliptic Curve Cryptography (ECC)*

.NET Framework 4,7 ' de, bir nesnenin zaten oluşturulmuş bir anahtarı göstermesini sağlamak için ECDsa ve ECDiffieHellman sınıflarına ImportParameters(ECParameters) yöntemler eklenmiştir.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. Açık eğri parametreleri kullanılarak anahtarı dışarı aktarmak için bir ExportParameters(Boolean) yöntemi de eklenmiştir.An ExportParameters(Boolean) method was also added for exporting the key using explicit curve parameters.

.NET Framework 4,7 ayrıca ek eğriler (Brainpool eğrisi paketi dahil) için destek de ekler ve yeni Create ve Create Factory yöntemleriyle oluşturma kolaylığı için önceden tanımlanmış tanımlar ekledi..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.

GitHub 'da 4,7 .NET Framework şifreleme geliştirmesi örneği görebilirsiniz.You can see an example of .NET Framework 4.7 cryptography improvements on GitHub.

DataContractJsonSerializer tarafından denetim karakterleri için daha iyi destekBetter support for control characters by the DataContractJsonSerializer

.NET Framework 4,7 ' de, DataContractJsonSerializer ECMAScript 6 standardı ile uyum içinde denetim karakterlerini seri hale getirir.In .NET Framework 4.7, the DataContractJsonSerializer serializes control characters in conformity with the ECMAScript 6 standard. Bu davranış, .NET Framework 4,7 ' i hedefleyen uygulamalar için varsayılan olarak etkindir ve .NET Framework 4,7 altında çalışan ancak .NET Framework önceki bir sürümünü hedefleyen uygulamalar için bir kabul etme özelliğidir.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 the .NET Framework. Daha fazla bilgi için bkz. .NET Framework 4,7 ' de yeniden hedefleme değişiklikleri.For more information, see Retargeting Changes in the .NET Framework 4.7.

Networking

.NET Framework 4,7, ağla ilgili aşağıdaki özelliği ekler:.NET Framework 4.7 adds the following network-related feature:

TLS protokolleri Için varsayılan işletim sistemi desteği*Default operating system support for TLS protocols*

HTTP, FTP ve SMTP gibi System.Net.Security.SslStream ve yukarı yığın bileşenleri tarafından kullanılan TLS yığını, geliştiricilerin işletim sistemi tarafından desteklenen varsayılan TLS protokollerini kullanmasına izin verir.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. Geliştiricilerin artık bir TLS sürümüne sabit kod olmaması gerekir.Developers need no longer hard-code a TLS version.

ASP.NETASP.NET

.NET Framework 4,7 ' de, ASP.NET aşağıdaki yeni özellikleri içerir:In .NET Framework 4.7, ASP.NET includes the following new features:

Nesne önbelleği genişletilebilirliğiObject Cache Extensibility

ASP.NET, .NET Framework 4,7 ' den başlayarak, geliştiricilerin bellek içi nesne önbelleğe alma ve bellek izleme için varsayılan ASP.NET uygulamalarını değiştirmesine izin veren yeni bir API kümesi ekler.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. ASP.NET uygulamasının yeterli olmaması halinde geliştiriciler artık aşağıdaki üç bileşenden birini değiştirebilir:Developers can now replace any of the following three components if the ASP.NET implementation is not adequate:

  • Nesne önbelleği deposu.Object Cache Store. Yeni önbellek sağlayıcıları yapılandırma bölümünü kullanarak, geliştiriciler yeni ICacheStoreProvider arabirimini kullanarak bir ASP.NET uygulaması için nesne önbelleğinin yeni uygulamalarını yükleyebilir.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.

  • Bellek izleme.Memory monitoring. ASP.NET ' deki varsayılan bellek İzleyicisi, uygulamaları, işlem için yapılandırılmış özel bayt sınırına yakın bir şekilde çalıştığında veya makinenin toplam kullanılabilir fiziksel RAM üzerinde azaldığını bildirir.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. Bu limitlerin yakınında, bildirimler tetiklenir.When these limits are near, notifications are fired. Bazı uygulamalar için bildirimler, yararlı yeniden eylemlere izin vermek üzere yapılandırılan sınırlara çok yakın şekilde harekete geçirilir.For some applications, notifications are fired too close to the configured limits to allow for useful reactions. Geliştiriciler artık ApplicationMonitors.MemoryMonitor özelliğini kullanarak varsayılan değerini değiştirmek için kendi bellek izleyicilerini yazabilir.Developers can now write their own memory monitors to replace the default by using the ApplicationMonitors.MemoryMonitor property.

  • Bellek sınırı yeniden eylemleri.Memory Limit Reactions. ASP.NET, varsayılan olarak, nesne önbelleğini kırpmaya çalışır ve özel bayt işlem sınırı yakınında GC.Collect düzenli aralıklarla çağırır.By default, ASP.NET attempts to trim the object cache and periodically call GC.Collect when the private byte process limit is near. Bazı uygulamalarda, GC.Collect çağrılarının sıklığı veya kırpılan önbellek miktarı verimsiz olur.For some applications, the frequency of calls to GC.Collect or the amount of cache that is trimmed are inefficient. Geliştiriciler artık ıgözlemci uygulamalarını uygulamanın bellek izleyicisine abone olarak varsayılan davranışı değiştirebilir veya tamamlayabilir.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) aşağıdaki özellikleri ve değişiklikleri ekler:Windows Communication Foundation (WCF) adds the following features and changes:

Varsayılan ileti güvenlik ayarlarını TLS 1,1 veya TLS 1,2 olarak yapılandırma olanağıAbility to configure the default message security settings to TLS 1.1 or TLS 1.2

WCF, .NET Framework 4,7 ' den itibaren, varsayılan ileti güvenlik protokolü olarak SSL 3,0 ve TSL 1,0 ' ye ek olarak TSL 1,1 veya TLS 1,2 yapılandırmanızı sağlar.Starting with .NET Framework 4.7, WCF allows you to configure TSL 1.1 or TLS 1.2 in addition to SSL 3.0 and TSL 1.0 as the default message security protocol. Bu bir kabul etme ayarıdır; etkinleştirmek için, uygulama yapılandırma dosyanıza aşağıdaki girişi eklemeniz gerekir: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>

WCF uygulamalarının ve WCF serileştirmenin güvenilirliği geliştirildiImproved reliability of WCF applications and WCF serialization

WCF, yarış koşullarını ortadan kaldıran bir dizi kod değişikliği içerir, böylece performansı ve serileştirme seçeneklerinin güvenilirliğini geliştirir.WCF includes a number of code changes that eliminate race conditions, thereby improving performance and the reliability of serialization options. Bunlar:These include:

  • SocketConnection. BeginRead ve SocketConnection. Readçağrılarına zaman uyumsuz ve zaman uyumlu kod karıştırma için daha iyi destek.Better support for mixing asynchronous and synchronous code in calls to SocketConnection.BeginRead and SocketConnection.Read.
  • Sharedconnectionlistener ve DuplexChannelBinderile bağlantı iptal edildiğinde iyileştirilmiş güvenilirlik.Improved reliability when aborting a connection with SharedConnectionListener and DuplexChannelBinder.
  • FormatterServices.GetSerializableMembers(Type) yöntemi çağrılırken serileştirme işlemlerinin geliştirilmiş güvenilirliği.Improved reliability of serialization operations when calling the FormatterServices.GetSerializableMembers(Type) method.
  • Channeleşitleyici. removewaiter yöntemi çağırarak bir garson kaldırılırken güvenilirlik artırıldı.Improved reliability when removing a waiter by calling the ChannelSynchronizer.RemoveWaiter method.

Windows FormsWindows Forms

.NET Framework 4,7 ' de, Windows Forms yüksek DPı izleyicileri desteğini geliştirir.In .NET Framework 4.7, Windows Forms improves support for high DPI monitors.

Yüksek DPı desteğiHigh DPI support

.NET Framework 4,7 ' i hedefleyen uygulamalarla başlayarak, .NET Framework Windows Forms uygulamalar için yüksek DPı ve dinamik DPı desteği sunar.Starting with applications that target .NET Framework 4.7, the .NET Framework features high DPI and dynamic DPI support for Windows Forms applications. Yüksek DPı desteği, yüksek DPı izleyicilerinde form ve denetimlerin düzen ve görünümünü geliştirir.High DPI support improves the layout and appearance of forms and controls on high DPI monitors. Dinamik DPı, Kullanıcı DPı 'yi değiştirdiğinde form ve denetimlerin yerleşimini ve görünümünü değiştirir ve çalışan bir uygulamanın ölçek faktörünü görüntüler.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.

Yüksek DPı desteği, uygulama yapılandırma dosyanızda <System. Windows. Forms. ConfigurationSection > bölümü tanımlayarak yapılandırdığınız bir katılım özelliğidir.High DPI support is an opt-in feature that you configure by defining a <System.Windows.Forms.ConfigurationSection> section in your application configuration file. Windows Forms uygulamanıza yüksek DPı desteği ve dinamik DPı desteği ekleme hakkında daha fazla bilgi için, bkz. Windows Forms yüksek DPI desteği.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)

.NET Framework 4,7 ' de WPF aşağıdaki geliştirmeleri içerir:In .NET Framework 4.7, WPF includes the following enhancements:

Windows WM_POINTER iletilerine dayalı bir dokunmatik/Stilus yığını desteğiSupport for a touch/stylus stack based on Windows WM_POINTER messages

Artık Windows mürekkep hizmetleri platformu (WıSS) yerine WM_POINTER iletilerine dayalı bir dokunmatik/Stilus yığını kullanma seçeneğiniz vardır.You now have the option of using a touch/stylus stack based on WM_POINTER messages instead of the Windows Ink Services Platform (WISP). Bu, .NET Framework bir katılım özelliğidir.This is an opt-in feature in the .NET Framework. Daha fazla bilgi için bkz. .NET Framework 4,7 ' de yeniden hedefleme değişiklikleri.For more information, see Retargeting Changes in the .NET Framework 4.7.

WPF yazdırma API 'Leri için yeni uygulamaNew implementation for WPF printing APIs

WPF 'nin System.Printing.PrintQueue sınıfında bulunan yazdırma API 'Leri, kullanım dışı olan XPS yazdırma API'Si yerine Windows yazdırma belgesi paketi API 'sini çağırır.WPF's printing APIs in the System.Printing.PrintQueue class call the Windows Print Document Package API instead of the deprecated XPS Print API. Bu değişikliğin uygulama uyumluluğuna etkisi için .NET Framework 4,7 ' deki yeniden hedefleme değişiklikleribölümüne bakın.For the impact of this change on application compatibility, see Retargeting Changes in the .NET Framework 4.7.

.NET Framework 4.6.2 yenilikleriWhat's new in .NET Framework 4.6.2

.NET Framework 4.6.2, aşağıdaki alanlardaki yeni özellikler içerir:The .NET Framework 4.6.2 includes new features in the following areas:

.NET Framework 4.6.2 'e eklenen yeni API 'lerin bir listesi için bkz. GitHub 'da .NET Framework 4.6.2 API değişiklikleri .For a list of new APIs added to .NET Framework 4.6.2, see .NET Framework 4.6.2 API Changes on GitHub. .NET Framework 4.6.2 ' deki Özellik geliştirmeleri ve hata düzeltmeleri listesi için bkz. GitHub 'da değişiklikler listesi .NET Framework 4.6.2 .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. Daha fazla bilgi için bkz. .NET blogda .NET Framework 4.6.2 duyurusu .For more information, see Announcing .NET Framework 4.6.2 in the .NET blog.

ASP.NETASP.NET

.NET Framework 4.6.2, ASP.NET aşağıdaki geliştirmeleri içerir:In the .NET Framework 4.6.2, ASP.NET includes the following enhancements:

Veri ek açıklama Doğrulayıcıları 'nda yerelleştirilmiş hata iletileri için geliştirilmiş destekImproved support for localized error messages in data annotation validators

Veri ek açıklama Doğrulayıcıları bir sınıf özelliğine bir veya daha fazla öznitelik ekleyerek doğrulama gerçekleştirmenize olanak tanır.Data annotation validators enable you to perform validation by adding one or more attributes to a class property. Özniteliğin ValidationAttribute.ErrorMessage öğesi, doğrulama başarısız olursa hata iletisinin metnini tanımlar.The attribute's ValidationAttribute.ErrorMessage element defines the text of the error message if validation fails. .NET Framework 4.6.2 ile başlayarak, ASP.NET hata iletilerini yerelleştirmenizi kolaylaştırır.Starting with the .NET Framework 4.6.2, ASP.NET makes it easy to localize error messages. Şu durumlarda hata iletileri yerelleştirilecektir:Error messages will be localized if:

  1. ValidationAttribute.ErrorMessage, doğrulama özniteliğinde verilmiştir.The ValidationAttribute.ErrorMessage is provided in the validation attribute.

  2. Kaynak dosyası App_LocalResources klasöründe depolanır.The resource file is stored in the App_LocalResources folder.

  3. Yerelleştirilmiş kaynaklar dosyasının adı DataAnnotation.Localization.{adı}.resx, burada ad languageCode-ülke/RegionCode veya languageCodebiçiminde bir kültür adıdır.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. Kaynağın anahtar adı, ValidationAttribute.ErrorMessage özniteliğe atanan dizedir ve değeri yerelleştirilmiş hata iletisidir.The key name of the resource is the string assigned to the ValidationAttribute.ErrorMessage attribute, and its value is the localized error message.

Örneğin, aşağıdaki Data Annotation özniteliği geçersiz bir derecelendirme için varsayılan kültürün hata iletisini tanımlar.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

Ardından, anahtar hata iletisi dizesi olan ve değeri yerelleştirilmiş hata iletisi olan DataAnnotation. yerelleştirme. fr. resx olan bir kaynak dosyası oluşturabilirsiniz.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. Dosyanın App.LocalResources klasöründe bulunması gerekir.The file must be found in the App.LocalResources folder. Örneğin, aşağıdaki anahtar ve değeri yerelleştirilmiş Fransızca (fr) dil hata iletisinde verilmiştir:For example, the following is the key and its value in a localized French (fr) language error message:

NameName ValueValue
Derecelendirme 1 ile 10 arasında olmalıdır.The rating must be between 1 and 10. La Note DoIt être, diğer 1 et 10.La note doit être comprise entre 1 et 10.

Ayrıca, veri ek açıklaması yerelleştirme genişletilebilir.In addition, data annotation localization is extensible. Geliştiriciler, yerelleştirme dizesini kaynak dosyasında dışında bir yerde depolamak için IStringLocalizerProvider arabirimini uygulayarak kendi dize yerelleştirici sağlayıcısını ekleyebilir.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.

Oturum durumu depo sağlayıcıları ile zaman uyumsuz destekAsync support with session-state store providers

ASP.NET artık oturum durumu depolama sağlayıcılarıyla birlikte görev döndüren yöntemlerin kullanılmasına izin veriyor, böylece ASP.NET uygulamalarının zaman uyumsuz olarak ölçeklenebilirlik avantajlarını almasına izin verir.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. ASP.NET IHttpModule 'ten devralan ve geliştiricilerin kendi oturum durumu modülünü ve zaman uyumsuz oturum depolama sağlayıcılarını uygulamasına olanak tanıyan System.Web.SessionState.ISessionStateModule, oturum durumu depolama sağlayıcılarıyla zaman uyumsuz işlemleri destekler.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. Arabirim aşağıdaki gibi tanımlanır: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

Ayrıca, SessionStateUtility sınıfı, zaman uyumsuz işlemleri desteklemek için kullanılabilen iki yeni yöntem içerir, IsSessionStateReadOnly ve IsSessionStateRequired.In addition, the SessionStateUtility class includes two new methods, IsSessionStateReadOnly and IsSessionStateRequired, that can be used to support asynchronous operations.

Çıkış önbelleği sağlayıcıları için zaman uyumsuz destekAsync support for output-cache providers

.NET Framework 4.6.2 ile başlayarak, zaman uyumsuz olarak ölçeklenebilirlik avantajları sağlamak için, görev döndüren yöntemler çıkış önbelleği sağlayıcılarıyla birlikte kullanılabilir.Starting with the .NET Framework 4.6.2, task-returning methods can be used with output-cache providers to provide the scalability benefits of async. Bu yöntemleri uygulayan sağlayıcılar, bir Web sunucusundaki iş parçacığı engellemeyi azaltır ve bir ASP.NET hizmetinin ölçeklenebilirliğini geliştirir.Providers that implement these methods reduce thread-blocking on a web server and improve the scalability of an ASP.NET service.

Zaman uyumsuz çıkış önbelleği sağlayıcılarını desteklemek için aşağıdaki API 'Ler eklenmiştir:The following APIs have been added to support asynchronous output-cache providers:

Karakter kategorileriCharacter categories

.NET Framework 4.6.2 karakterler Unicode standardı, sürüm 8.0.0temel alınarak sınıflandırılır.Characters in the .NET Framework 4.6.2 are classified based on the Unicode Standard, Version 8.0.0. .NET Framework 4,6 ve .NET Framework 4.6.1, karakterler Unicode 6,3 karakter kategorilerine göre sınıflandırıldı.In .NET Framework 4.6 and .NET Framework 4.6.1, characters were classified based on Unicode 6.3 character categories.

Unicode 8,0 desteği, CharUnicodeInfo sınıfı ve kendisine bağımlı tür ve yöntemlere göre karakterlerin sınıflandırmasıyla sınırlıdır.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. Bunlara StringInfo sınıfı, aşırı yüklenmiş Char.GetUnicodeCategory yöntemi ve .NET Framework normal ifade altyapısı tarafından tanınan karakter sınıfları dahildir.These include the StringInfo class, the overloaded Char.GetUnicodeCategory method, and the character classes recognized by the .NET Framework regular expression engine. Karakter ve dize karşılaştırma ve sıralama bu değişiklikten etkilenmez ve temel alınan işletim sistemine veya Windows 7 sistemlerinde, .NET Framework tarafından belirtilen karakter verilerinde kullanılmaya devam eder.Character and string comparison and sorting is unaffected by this change and continues to rely on the underlying operating system or, on Windows 7 systems, on character data provided by the .NET Framework.

Unicode 6,0 ' den Unicode 7,0 ' e karakter kategorilerindeki değişiklikler için bkz. Unicode Standart, sürüm 7.0.0 , Unicode konsorsiyum Web sitesi.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. Unicode 7,0 ' den Unicode 8,0 ' e yapılan değişiklikler için bkz. Unicode Standart, sürüm 8.0.0 , Unicode konsorsiyum Web sitesi.For changes from Unicode 7.0 to Unicode 8.0, see The Unicode Standard, Version 8.0.0 at The Unicode Consortium website.

ŞifrelemeCryptography

FIPS 186-3 DSA içeren x509 sertifikaları desteğiSupport for X509 certificates containing FIPS 186-3 DSA

.NET Framework 4.6.2, anahtarları FIPS 186-2 1024 bit sınırını aşan DSA (dijital Imza algoritması) x509 sertifikaları için destek ekler.The .NET Framework 4.6.2 adds support for DSA (Digital Signature Algorithm) X509 certificates whose keys exceed the FIPS 186-2 1024-bit limit.

.NET Framework 4.6.2, FIPS 186-3 'in daha büyük anahtar boyutlarını desteklemeye ek olarak, karma algoritmaların SHA-2 ailesiyle (SHA256, SHA384 ve SHA512 olur) imzaları hesaplama olanağı sağlar.In addition to supporting the larger key sizes of FIPS 186-3, the .NET Framework 4.6.2 allows computing signatures with the SHA-2 family of hash algorithms (SHA256, SHA384, and SHA512). FIPS 186-3 desteği yeni System.Security.Cryptography.DSACng sınıfı tarafından sağlanmaktadır.FIPS 186-3 support is provided by the new System.Security.Cryptography.DSACng class.

.NET Framework 4,6 ' deki RSA sınıfında son değişiklikler ve .NET Framework 4.6.1 ' deki ECDsa sınıfı ile birlikte, DSA 4.6.2 içindeki .NET Framework soyut temel sınıf, çağıranların atama olmadan bu işlevselliği kullanmasına izin vermek için ek yöntemlere sahiptir.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. Aşağıdaki örnekte gösterildiği gibi, verileri imzalamak için DSACertificateExtensions.GetDSAPrivateKey uzantısı yöntemini çağırabilirsiniz.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şağıdaki örnekte gösterildiği gibi imzalı verileri doğrulamak için DSACertificateExtensions.GetDSAPublicKey uzantısı yöntemini çağırabilirsiniz.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

Ecdıfıehellman anahtar türetme yordamlarına yönelik girişler için daha fazla açıklıkIncreased clarity for inputs to ECDiffieHellman key derivation routines

.NET Framework 3,5, üç farklı anahtar türetme Işlevi (KDF) yordamlarına sahip Eliptik Eğri Diffie-Hellman anahtar anlaşması için destek eklendi..NET Framework 3.5 added support for Elliptic Curve Diffie-Hellman Key Agreement with three different Key Derivation Function (KDF) routines. Yordamlarına yapılan girişler ve yordamlar, ECDiffieHellmanCng nesnesindeki özellikler aracılığıyla yapılandırılmıştır.The inputs to the routines, and the routines themselves, were configured via properties on the ECDiffieHellmanCng object. Ancak her bir yordam her giriş özelliğini okumadığından, geliştiricinin geçmişte karışıklık için çok fazla yer vardır.But since not every routine read every input property, there was ample room for confusion on the past of the developer.

.NET Framework 4.6.2 ' de bunu ele almak için, bu KDF yordamlarını ve bunların girişlerini daha net bir şekilde temsil etmek üzere ECDiffieHellman temel sınıfına aşağıdaki üç yöntem eklenmiştir:To address this in the .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:

Ecdıfıfiehellman yöntemiECDiffieHellman method AçıklamaDescription
DeriveKeyFromHash(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[]) Formülü kullanarak önemli malzemeleri türetiliyorDerives key material using the formula

Karma (SecretPrepend | | x | | SecretAppend)HASH(secretPrepend || x || secretAppend)

Karma (secretPrepend Orelo x Orelo secretAppend)HASH(secretPrepend OrElse x OrElse secretAppend)

Burada x , EC Diffie-Hellman algoritmasının hesaplanan sonucudur.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyFromHmac(ECDiffieHellmanPublicKey, HashAlgorithmName, Byte[], Byte[], Byte[]) Formülü kullanarak önemli malzemeleri türetiliyorDerives key material using the formula

HMAC (HmacKey, SecretPrepend | | x | | SecretAppend)HMAC(hmacKey, secretPrepend || x || secretAppend)

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

Burada x , EC Diffie-Hellman algoritmasının hesaplanan sonucudur.where x is the computed result of the EC Diffie-Hellman algorithm.
DeriveKeyTls(ECDiffieHellmanPublicKey, Byte[], Byte[]) TLS sözde rastgele işlevi (PRF) türetme algoritmasını kullanarak önemli malzemeleri türetiliyor.Derives key material using the TLS pseudo-random function (PRF) derivation algorithm.

Kalıcı anahtar simetrik şifreleme desteğiSupport for persisted-key symmetric encryption

Windows şifreleme kitaplığı (CNG), kalıcı simetrik anahtarları depolama ve donanımla depolanan simetrik anahtarları kullanma desteği eklendi ve .NET Framework 4.6.2 geliştiricilerin bu özelliği kullanmasını mümkün hale getirir.The Windows cryptography library (CNG) added support for storing persisted symmetric keys and using hardware-stored symmetric keys, and the .NET Framework 4.6.2 made it possible for developers to make use of this feature. Anahtar adları ve anahtar sağlayıcılarının kavramı uygulamaya özgü olduğundan, bu özelliğin kullanılması tercih edilen fabrika yaklaşımı (örneğin, Aes.Createçağırma) yerine somut uygulama türleri oluşturucusunun kullanılmasını gerektirir.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).

AES (AesCng) ve 3DES (TripleDESCng) algoritmaları için kalıcı anahtar simetrik şifreleme desteği vardır.Persisted-key symmetric encryption support exists for the AES (AesCng) and 3DES (TripleDESCng) algorithms. Örneğin: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

SHA-2 karma için SignedXml desteğiSignedXml support for SHA-2 hashing

.NET Framework 4.6.2, RSA-SHA256, RSA-SHA384 ve RSA-SHA512 olur PKCS # 1 imza yöntemlerine, SHA256, SHA384 ve SHA512 olur başvuru Özet algoritmalarına yönelik SignedXml sınıfına destek ekler.The .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.

URI sabitlerinin tümü SignedXmlaçıktır:The URI constants are all exposed on SignedXml:

SignedXml alanıSignedXml field SabitConstant
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"

Bu algoritmalara yönelik destek eklemek için CryptoConfig özel bir SignatureDescription işleyicisini kaydetmiş olan programlar geçmişte oldukları gibi çalışmaya devam eder, ancak artık platform Varsayılanları olduğundan, CryptoConfig kaydı artık gerekli değildir.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

SQL Server için .NET Framework Veri Sağlayıcısı (System.Data.SqlClient) .NET Framework 4.6.2 aşağıdaki yeni özellikleri içerir:.NET Framework Data Provider for SQL Server (System.Data.SqlClient) includes the following new features in the .NET Framework 4.6.2:

Azure SQL veritabanları ile bağlantı havuzu oluşturma ve zaman aşımlarıConnection pooling and timeouts with Azure SQL databases

Bağlantı havuzu etkinleştirildiğinde ve bir zaman aşımı ya da başka bir oturum açma hatası oluştuğunda, bir özel durum önbelleğe alınır ve sonraki 5 saniye 1 dakikaya kadar sonraki bağlantı denemelerde önbelleğe alınan özel durum oluşturulur.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. Daha fazla bilgi için bkz. SQL Server bağlantı havuzu (ADO.net).For more information, see SQL Server Connection Pooling (ADO.NET).

Bağlantı girişimleri genellikle hızla kurtarılan geçici hatalarla başarısız olduğundan, bu davranış Azure SQL veritabanlarına bağlanırken istenmez.This behavior is not desirable when connecting to Azure SQL Databases, since connection attempts can fail with transient errors that are typically recovered quickly. Bağlantı yeniden deneme deneyimini daha iyi en iyi hale getirebilmesi için, Azure SQL veritabanlarına bağlantı başarısız olduğunda bağlantı havuzu engelleme süresi davranışı kaldırılır.To better optimize the connection retry experience, the connection pool blocking period behavior is removed when connections to Azure SQL Databases fail.

Yeni PoolBlockingPeriod anahtar sözcüğünün eklenmesi, uygulamanız için en uygun engelleme dönemini seçmenize olanak sağlar.The addition of the new PoolBlockingPeriod keyword lets you select the blocking period best suited for your app. Değerler şunlardır:Values include:

Auto

Azure SQL veritabanına bağlanan bir uygulama için bağlantı havuzu engelleme süresi devre dışıdır ve başka bir SQL Server örneğine bağlanan bir uygulama için bağlantı havuzu engelleme süresi etkindir.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. Varsayılan değer budur.This is the default value. Sunucu uç noktası adı aşağıdakilerden biriyle sonlanıyorsa, Azure SQL veritabanı olarak kabul edilir: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

Bağlantı havuzu engelleme dönemi her zaman etkindir.The connection pool blocking period is always enabled.

NeverBlock

Bağlantı havuzu engelleme süresi her zaman devre dışıdır.The connection pool blocking period is always disabled.

Always Encrypted geliştirmeleriEnhancements for Always Encrypted

SQLClient Always Encrypted için iki geliştirme sunar:SQLClient introduces two enhancements for Always Encrypted:

  • Şifrelenmiş veritabanı sütunlarına karşı parametreli sorguların performansını artırmak için, sorgu parametrelerinin şifreleme meta verileri artık önbelleğe alınır.To improve performance of parameterized queries against encrypted database columns, encryption metadata for query parameters is now cached. SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled özelliği true (varsayılan değer) olarak ayarlandığında, aynı sorgu birden çok kez çağrılırsa, istemci parametre meta verilerini sunucudan yalnızca bir kez alır.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.

  • Anahtar önbelleğindeki sütun şifreleme anahtarı girdileri artık yapılandırılabilir bir zaman aralığından sonra çıkarılmakta ve SqlConnection.ColumnEncryptionKeyCacheTtl özelliği kullanılarak ayarlanır.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

.NET Framework 4.6.2, aşağıdaki alanlarda Windows Communication Foundation geliştirilmiştir:In the .NET Framework 4.6.2, Windows Communication Foundation has been enhanced in the following areas:

CNG kullanılarak depolanan sertifikalar için WCF Aktarım güvenliği desteğiWCF transport security support for certificates stored using CNG

WCF Aktarım güvenliği, Windows şifreleme kitaplığı (CNG) kullanılarak depolanan sertifikaları destekler.WCF transport security supports certificates stored using the Windows cryptography library (CNG). .NET Framework 4.6.2, bu destek, en fazla 32 bit uzunluğunda olmayan bir ortak anahtarla sertifikaların kullanılmasıyla sınırlandırılmıştır.In the .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. Bir uygulama .NET Framework 4.6.2 hedefliyorsa, bu özellik varsayılan olarak açık olur.When an application targets the .NET Framework 4.6.2, this feature is on by default.

.NET Framework 4.6.1 ve önceki sürümlerini hedefleyen ancak .NET Framework 4.6.2 üzerinde çalışan uygulamalar için, bu özellik App. config veya Web. config dosyasının <runtime > bölümüne aşağıdaki satırı eklenerek etkinleştirilebilir.For applications that target the .NET Framework 4.6.1 and earlier but are running on the .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"
/>

Bu, aşağıdakiler gibi kodla programlı olarak da yapılabilir: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)

DataContractJsonSerializer sınıfına göre birden çok gün ışığından yararlanma zaman ayarlama kuralı için daha iyi destekBetter support for multiple daylight saving time adjustment rules by the DataContractJsonSerializer class

Müşteriler, DataContractJsonSerializer sınıfının tek bir saat dilimi için birden çok ayarlama kuralını destekleyip desteklemediğini tespit etmek için bir uygulama yapılandırma ayarı kullanabilir.Customers can use an application configuration setting to determine whether the DataContractJsonSerializer class supports multiple adjustment rules for a single time zone. Bu bir katılım özelliğidir.This is an opt-in feature. Etkinleştirmek için App. config dosyanıza aşağıdaki ayarı ekleyin:To enable it, add the following setting to your app.config file:

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

Bu özellik etkinleştirildiğinde, DataContractJsonSerializer nesnesi tarih ve saat verilerinin serisini kaldırmak için TimeZone türü yerine TimeZoneInfo türünü kullanır.When this feature is enabled, a DataContractJsonSerializer object uses the TimeZoneInfo type instead of the TimeZone type to deserialize date and time data. TimeZoneInfo, geçmişteki saat dilimi verileriyle çalışmayı olanaklı kılan birden çok ayarlama kuralını destekler; TimeZone.TimeZoneInfo supports multiple adjustment rules, which makes it possible to work with historic time zone data; TimeZone does not.

TimeZoneInfo yapısı ve saat dilimi ayarlamaları hakkında daha fazla bilgi için bkz. saat dilimine genel bakış.For more information on the TimeZoneInfo structure and time zone adjustments, see Time Zone Overview.

NetNamedPipeBinding en iyi eşleşmeNetNamedPipeBinding best match

WCF, istemci uygulamalarında, istedikleri uygulamayla en iyi şekilde eşleşen URI 'yi dinleyen hizmete her zaman bağlanabildiğini sağlayan yeni bir uygulama ayarına sahiptir.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. Bu uygulama ayarı false (varsayılan) olarak ayarlandığında, NetNamedPipeBinding kullanan istemciler, istenen URI 'nin bir alt dizesi olan bir URI üzerinde dinleme yapan bir hizmete bağlanmaya çalışmak için mümkündür.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.

Örneğin, bir istemci net.pipe://localhost/Service1dinlemeye bir hizmete bağlanmaya çalışır, ancak bu makinede yönetici ayrıcalığıyla çalışan farklı bir hizmet net.pipe://localhostdinler.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. Bu uygulama ayarı falseolarak ayarlandığında, istemci yanlış hizmete bağlanmaya çalışır.With this app setting set to false, the client would attempt to connect to the wrong service. Uygulama ayarını trueolarak ayarladıktan sonra istemci her zaman en iyi eşleşen hizmete bağlanır.After setting the app setting to true, the client will always connect to the best matching service.

Not

NetNamedPipeBinding kullanan istemciler, tam bitiş noktası adresi yerine hizmetin temel adresine (varsa) göre hizmetleri bulur.Clients using NetNamedPipeBinding find services based on the service's base address (if it exists) rather than the full endpoint address. Bu ayarın her zaman çalıştığından emin olmak için, hizmetin benzersiz bir temel adres kullanması gerekir.To ensure this setting always works the service should use a unique base address.

Bu değişikliği etkinleştirmek için, istemci uygulamanızın App. config veya Web. config dosyasına aşağıdaki uygulama ayarını ekleyin: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 varsayılan bir protokol değilSSL 3.0 is not a default protocol

SSL 3,0, aktarım güvenliği ile NetTcp kullanırken güvenli bir bağlantı anlaşması için kullanılan varsayılan protokol değildir.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. Çoğu durumda, TLS 1,0, NetTcp protokol listesine eklendiğinden, var olan uygulamalara hiçbir etkisi olmaz.In most cases, there should be no impact to existing apps, because TLS 1.0 is included in the protocol list for NetTcp. Tüm mevcut istemciler, en az TLS 1,0 kullanarak bir bağlantı anlaşması yapabilmelidir.All existing clients should be able to negotiate a connection using at least TLS 1.0. Ssl3 gerekliyse, anlaşmalı protokoller listesine eklemek için aşağıdaki yapılandırma mekanizmalarından birini kullanın.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)

.NET Framework 4.6.2, aşağıdaki alanlarda Windows Presentation Foundation geliştirilmiştir:In the .NET Framework 4.6.2, Windows Presentation Foundation has been enhanced in the following areas:

Grup sıralamasıGroup sorting

Verileri gruplamak için bir CollectionView nesnesi kullanan bir uygulama, artık grupların nasıl sıralanacağını açıkça bildirebilirler.An application that uses a CollectionView object to group data can now explicitly declare how to sort the groups. Açık sıralama, bir uygulama grupları dinamik olarak eklediğinde ya da kaldırırken veya gruplandırmada yer alan öğe özelliklerinin değerini değiştirdiğinde oluşan sezgisel olmayan sıralama sorununa yöneliktir.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. Ayrıca, gruplama özelliklerinin karşılaştırmalarını tam koleksiyonun sıralamasını grupların sıralaması olarak taşıyarak Grup oluşturma işleminin performansını da artırır.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.

Grup sıralamasını desteklemek için, yeni GroupDescription.SortDescriptions ve GroupDescription.CustomSort özellikleri GroupDescription nesnesi tarafından üretilen grup koleksiyonunun nasıl sıralanacağını anlatmaktadır.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. Bu, benzer ListCollectionView özelliklerinin veri öğelerinin nasıl sıralanacağını betimleyen yönteme benzerdir.This is analogous to the way the identically named ListCollectionView properties describe how to sort the data items.

PropertyGroupDescription sınıfının iki yeni statik özelliği CompareNameAscending ve CompareNameDescending, en yaygın durumlarda kullanılabilir.Two new static properties of the PropertyGroupDescription class, CompareNameAscending and CompareNameDescending, can be used for the most common cases.

Örneğin, aşağıdaki XAML verileri yaş ile gruplandırır, yaş gruplarını artan düzende sıralar ve her yaş grubundaki öğeleri son ada göre gruplandırır.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>

Dokunmatik klavye desteğiTouch keyboard support

Dokunmatik klavye desteği, dokunma girişi metin girişi yapan bir denetim tarafından alındığında, Windows 10 ' da dokunmatik klavyeyi otomatik olarak çağırarak ve yok ederek, WPF uygulamalarında odak izlemeye izin verebilir.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.

.NET Framework önceki sürümlerinde, WPF uygulamaları WPF kalem/dokunma hareketi desteğini devre dışı bırakmadan odak izlemeyi kabul edemiyor.In previous versions of .NET Framework, WPF applications can't opt into the focus tracking without disabling WPF pen/touch gesture support. Sonuç olarak, WPF uygulamalarının tam WPF dokunma desteği arasında seçim yapmanız veya Windows fare yükseltmesine güvenmelidir.As a result, WPF applications must choose between full WPF touch support or rely on Windows mouse promotion.

Monitör başına DPıPer-monitor DPI

WPF uygulamaları için yüksek DPı ve hibrit DPı ortamlarının en son kullanımını desteklemek için, .NET Framework 4.6.2 ' deki WPF, izleme başına tanımayı sağlar.To support the recent proliferation of high-DPI and hybrid-DPI environments for WPF apps, WPF in the .NET Framework 4.6.2 enables per-monitor awareness. WPF uygulamanızın monitör başına DPı kullanan bir duruma gelmesini sağlama hakkında daha fazla bilgi için bkz. GitHub 'da örnekler ve Geliştirici Kılavuzu .See the samples and developer guide on GitHub for more information about how to enable your WPF app to become per-monitor DPI aware.

.NET Framework önceki sürümlerinde, WPF uygulamaları sistem DPı farkındaylardır.In previous versions of the .NET Framework, WPF apps are system-DPI aware. Diğer bir deyişle, uygulamanın kullanıcı arabirimi, uygulamanın işlendiği izleyicinin DPı değerine bağlı olarak, işletim sistemi tarafından uygun şekilde ölçeklendirilir.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.

.NET Framework 4.6.2 altında çalışan uygulamalar için, uygulama yapılandırma dosyanızın <çalışma zamanı > bölümüne aşağıdaki şekilde bir yapılandırma AÇıKLAMASı ekleyerek WPF uygulamalarında MONITÖR başına DPI değişikliklerini devre dışı bırakabilirsiniz:For apps running under the .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>

{1>Windows Workflow Foundation (WF)<1}Windows Workflow Foundation (WF)

.NET Framework 4.6.2, Windows Workflow Foundation aşağıdaki alanda geliştirilmiştir:In the .NET Framework 4.6.2, Windows Workflow Foundation has been enhanced in the following area:

Yeniden barındırılan C# WF tasarımcısında Ifadeler ve IntelliSense desteğiSupport for C# expressions and IntelliSense in the Rehosted WF Designer

WF .NET Framework 4,5 ' den başlayarak hem C# Visual Studio tasarımcısında hem de kod iş akışlarında ifadeleri destekler.Starting with .NET Framework 4.5, WF supports C# expressions in both the Visual Studio Designer and in code workflows. Yeniden barındırılan İş Akışı Tasarımcısı, bir WF 'nin Visual Studio dışında bir uygulamada olmasını İş Akışı Tasarımcısı sağlayan bir temel özelliktir (örneğin, 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). Windows Workflow Foundation, yeniden barındırılan İş Akışı Tasarımcısı ifadeleri C# ve IntelliSense 'i destekleme yeteneği sağlar.Windows Workflow Foundation provides the ability to support C# expressions and IntelliSense in the Rehosted Workflow Designer. Daha fazla bilgi için Windows Workflow Foundation blogunabakın.For more information, see the Windows Workflow Foundation blog.

4.6.2 ' den önceki .NET Framework sürümlerindeki Availability of IntelliSense when a customer rebuilds a workflow project from Visual Studio, bir müşteri, Visual Studio 'dan bir iş akışı projesi yeniden oluştururken WF Tasarımcısı IntelliSense bozulur.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. Proje derlemesi başarılı olsa da, iş akışı türleri tasarımcıda bulunmadı ve eksik iş akışı türleri için IntelliSense uyarıları hata listesi penceresinde görünür.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 Bu sorunu giderir ve IntelliSense 'i kullanılabilir hale getirir..NET Framework 4.6.2 addresses this issue and makes IntelliSense available.

İş akışı Izleme olan iş akışı v1 uygulamaları artık FIPS modunda çalıştırılırWorkflow V1 applications with Workflow Tracking on now run under FIPS-mode

FIPS uyumluluk modu etkin olan makineler artık iş akışı izleme ile iş akışı sürüm 1 stilinde bir uygulamayı başarıyla çalıştırabiliyor.Machines with FIPS Compliance Mode enabled can now successfully run a workflow Version 1-style application with Workflow tracking on. Bu senaryoyu etkinleştirmek için App. config dosyanızda aşağıdaki değişikliği yapmanız gerekir:To enable this scenario, you must make the following change to your app.config file:

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

Bu senaryo etkinleştirilmemişse, uygulamayı çalıştırmak iletiyle birlikte bir özel durum oluşturmaya devam eder, "Bu uygulama Windows platformu FIPS tarafından doğrulanan şifreleme algoritmalarının bir parçası değil."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."

Visual Studio ile dinamik güncelleştirme kullanılırken iş akışı geliştirmeleri İş Akışı TasarımcısıWorkflow Improvements when using Dynamic Update with Visual Studio Workflow Designer

İş Akışı Tasarımcısı, FlowChart etkinlik Tasarımcısı ve diğer Iş akışı etkinliği tasarımcıları artık DynamicUpdateServices.PrepareForUpdate yöntemi çağrıldıktan sonra kaydedilmiş iş akışlarını başarıyla yükler ve görüntüler.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. .NET Framework 4.6.2 önce .NET Framework sürümlerinde, DynamicUpdateServices.PrepareForUpdate çağrıldıktan sonra kaydedilmiş bir iş akışı için Visual Studio 'da bir XAML dosyası yüklemek aşağıdaki sorunlara neden olabilir: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:

  • İş Akışı Tasarımcısı XAML dosyasını doğru bir şekilde yükleyemez (ViewStateData.Id satırın sonunda olduğunda).The Workflow Designer can't load the XAML file correctly (when the ViewStateData.Id is at the end of the line).

  • Akış çizelgesi etkinlik Tasarımcısı veya diğer Iş akışı etkinliği tasarımcıları, eklenen özellik değerlerinin aksine tüm nesneleri varsayılan konumlarında görüntüleyebilir.Flowchart Activity Designer or other Workflow Activity Designers may display all objects in their default locations as opposed to attached property values.

ClickOnceClickOnce

ClickOnce, zaten desteklediği 1,0 protokolüne ek olarak TLS 1,1 ve TLS 1,2 ' yi destekleyecek şekilde güncelleştirilmiştir.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 hangi protokolün gerekli olduğunu otomatik olarak algılar; TLS 1,1 ve 1,2 desteğini etkinleştirmek için ClickOnce uygulaması içinde ek adım gerekmez.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.

Windows Forms ve WPF uygulamalarını UWP uygulamalarına dönüştürmeConverting Windows Forms and WPF apps to UWP apps

Windows artık WPF ve Windows Forms uygulamalar dahil olmak üzere var olan Windows masaüstü uygulamalarını Evrensel Windows Platformu (UWP) uygulamasına getirmeye yönelik yetenekler sunmaktadır.Windows now offers capabilities to bring existing Windows desktop apps, including WPF and Windows Forms apps, to the Universal Windows Platform (UWP). Bu teknoloji, mevcut kod tabanınızı UWP 'ye kademeli olarak geçirmenize olanak tanıyarak bir köprü görevi görür ve böylece uygulamanızı tüm Windows 10 cihazlarına taşıyabilirsiniz.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.

Dönüştürülmüş masaüstü uygulamaları, UWP API 'Lerinin, canlı kutucuk ve bildirimler gibi özellikleri etkinleştirmek için erişilebilir hale getiren UWP uygulamalarının uygulama kimliğiyle benzer bir uygulama kimliği elde edebilir.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. Uygulama, daha önce olduğu gibi davranmaya devam eder ve tam güven uygulaması olarak çalışır.The app continues to behave as before and runs as a full trust app. Uygulama dönüştürüldükten sonra, bir uyarlamalı Kullanıcı arabirimi eklemek için mevcut tam güven işlemine bir uygulama kapsayıcısı işlemi eklenebilir.Once the app is converted, an app container process can be added to the existing full trust process to add an adaptive user interface. Tüm işlevler uygulama kapsayıcısı işlemine taşındığında, tam güven işlemi kaldırılabilir ve yeni UWP uygulaması tüm Windows 10 cihazlarında kullanılabilir hale getirilebilir.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.

Hata ayıklama geliştirmeleriDebugging improvements

Yönetilmeyen hata ayıklama API 'si , bir NullReferenceException oluşturulduğunda ek analizler gerçekleştirmek için .NET Framework geliştirilmiştir. böylece, tek bir kaynak kodu satırındaki hangi değişkenin nullolduğunu tespit etmek mümkündür.The unmanaged debugging API has been enhanced in the .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. Bu senaryoyu desteklemek için, yönetilmeyen hata ayıklama API 'sine aşağıdaki API 'Ler eklenmiştir.To support this scenario, the following APIs have been added to the unmanaged debugging API.

.NET Framework 4.6.1 yenilikleriWhat's new in .NET Framework 4.6.1

.NET Framework 4.6.1, aşağıdaki alanlardaki yeni özellikler içerir:The .NET Framework 4.6.1 includes new features in the following areas:

.NET Framework 4.6.1 hakkında daha fazla bilgi için aşağıdaki konulara bakın:For more information on the .NET Framework 4.6.1, see the following topics:

Şifreleme: ECDSA içeren x509 sertifikaları için destekCryptography: Support for X509 certificates containing ECDSA

.NET Framework 4,6, x509 sertifikaları için RSACng desteğini ekledi..NET Framework 4.6 added RSACng support for X509 certificates. .NET Framework 4.6.1 ECDSA (Eliptik Eğri dijital Imza algoritması) x509 sertifikaları için destek ekler.The .NET Framework 4.6.1 adds support for ECDSA (Elliptic Curve Digital Signature Algorithm) X509 certificates.

ECDSA, daha iyi performans sağlar ve RSA 'dan daha güvenli bir şifreleme algoritmasıdır ve Aktarım Katmanı Güvenliği (TLS) performansının ve ölçeklenebilirliğinin sorun olduğu durumlarda mükemmel bir seçimdir.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. .NET Framework uygulama, çağrıları mevcut Windows işlevlerine kaydırır.The .NET Framework implementation wraps calls into existing Windows functionality.

Aşağıdaki örnek kod, .NET Framework 4.6.1 eklenen ECDSA x509 sertifikaları için yeni desteği kullanarak bir bayt akışı için imza oluşturmanın ne kadar kolay olduğunu gösterir.The following example code shows how easy it is to generate a signature for a byte stream by using the new support for ECDSA X509 certificates included in the .NET Framework 4.6.1.

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

Bu, .NET Framework 4,6 ' de imza oluşturmak için gereken koda işaretlenmiş bir kontrast sunar.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

ADO.NET 'e aşağıdakiler eklenmiştir:The following have been added to ADO.NET:

Donanım korumalı anahtarlar için Always Encrypted desteğiAlways Encrypted support for hardware protected keys

ADO.NET artık Always Encrypted sütunlu ana anahtarların donanım güvenlik modüllerinde (HSM 'ler) yerel olarak depolanmasını desteklemektedir.ADO.NET now supports storing Always Encrypted column master keys natively in Hardware Security Modules (HSMs). Bu destek sayesinde müşteriler, özel sütun ana anahtar deposu sağlayıcıları yazmak ve bunları uygulamalara kaydetmek zorunda kalmadan HSM 'lerde depolanan Asimetrik Anahtarlarla faydalanabilir.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.

Müşterilerin HSM 'de depolanan sütun ana anahtarlarıyla korunan Always Encrypted verilerine erişmek için, uygulama sunucularına veya istemci bilgisayarlara HSM satıcı tarafından sunulan CSP sağlayıcısını veya CNG anahtar deposu sağlayıcılarını yüklemeleri gerekir.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.

AlwaysOn MultiSubnetFailover bağlantı davranışı geliştirildiImproved MultiSubnetFailover connection behavior for AlwaysOn

SqlClient artık otomatik olarak bir AlwaysOn kullanılabilirlik grubuna (AG) daha hızlı bağlantılar sağlar.SqlClient now automatically provides faster connections to an AlwaysOn Availability Group (AG). Uygulamanızın farklı bir alt ağda bir AlwaysOn kullanılabilirlik grubuna (AG) bağlanıp bağlanmadığını saydam bir şekilde algılar ve geçerli etkin sunucuyu hızlıca bulup sunucuya bağlantı sağlar.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. Bu sürümden önce, bir uygulamanın bir AlwaysOn kullanılabilirlik grubuna bağlanmakta olduğunu göstermek için bağlantı dizesini "MultisubnetFailover=true" içerecek şekilde ayarlaması gerekiyordu.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. Bağlantı anahtar sözcüğünü trueolarak ayarlamadan, bir uygulama bir AlwaysOn kullanılabilirlik grubuna bağlanılırken bir zaman aşımı yaşar.Without setting the connection keyword to true, an application might experience a timeout while connecting to an AlwaysOn Availability Group. Bu sürümde, bir uygulamanın artık true MultiSubnetFailover ayarlaması gerekmez.With this release, an application does not need to set MultiSubnetFailover to true anymore. Always on kullanılabilirlik grupları için SqlClient desteği hakkında daha fazla bilgi için bkz. yüksek kullanılabilirlik Için SqlClient desteği, olağanüstü durum kurtarma.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 birkaç iyileştirme ve değişiklik içerir.Windows Presentation Foundation includes a number of improvements and changes.

İyileştirilmiş performansImproved performance

Dokunma olaylarının tetiklendiği gecikme .NET Framework 4.6.1 düzeltildi.The delay in firing touch events has been fixed in the .NET Framework 4.6.1. Ayrıca, bir RichTextBox denetimine yazmak hızlı giriş sırasında işleme iş parçacığını artık erişemez.In addition, typing in a RichTextBox control no longer ties up the render thread during fast input.

Yazım denetimi geliştirmeleriSpell checking improvements

WPF 'deki yazım denetleyicisi, Windows 8.1 ve sonraki sürümlerinde, yazım denetimi ek dilleri için işletim sistemi desteğinden yararlanmak üzere güncelleştirilmiştir.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. Windows 8.1 öncesindeki Windows sürümlerindeki işlevlerde değişiklik yoktur.There is no change in functionality on Windows versions prior to Windows 8.1.

.NET Framework önceki sürümlerinde olduğu gibi, aşağıdaki sırayla bilgi arayarak TextBox denetim Ora RichTextBox bloğunun dili algılanır:As in previous versions of the .NET Framework, the language for a TextBox control ora RichTextBox block is detected by looking for information in the following order:

  • varsa xml:lang.xml:lang, if it is present.

  • Geçerli giriş dili.Current input language.

  • Geçerli iş parçacığı kültürü.Current thread culture.

WPF dil desteği hakkında daha fazla bilgi için, .NET Framework 4.6.1 özellikleri hakkında WPF bloggönderisi bölümüne bakın.For more information on language support in WPF, see the WPF blog post on .NET Framework 4.6.1 features.

Kullanıcı başına özel sözlükler için ek destekAdditional support for per-user custom dictionaries

WPF .NET Framework 4.6.1 içinde, genel olarak kaydedilen özel sözlükleri tanır.In .NET Framework 4.6.1, WPF recognizes custom dictionaries that are registered globally. Bu özellik, denetimleri her denetim için kaydetme özelliğine ek olarak kullanılabilir.This capability is available in addition to the ability to register them per-control.

WPF 'nin önceki sürümlerinde özel sözlükler dışlanan kelimeleri ve otomatik düzeltme listelerini tanımıyor.In previous versions of WPF, custom dictionaries did not recognize Excluded Words and AutoCorrect lists. Windows 8.1 ve Windows 10 ' da %AppData%\Microsoft\Spelling\<language tag> dizin altına yerleştirilebilecek dosyaların kullanımı ile desteklenir.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. Bu dosyalar için aşağıdaki kurallar geçerlidir:The following rules apply to these files:

  • Dosyalar. dic uzantılarına sahip olmalıdır (eklenen kelimeler için),. exc (dışlanan kelimeler için) veya. ACL (otomatik düzeltme için).The files should have extensions of .dic (for added words), .exc (for excluded words), or .acl (for AutoCorrect).

  • Dosyalar, bayt sırası Işareti (BOM) ile başlayan UTF-16 LE düz metin olmalıdır.The files should be UTF-16 LE plaintext that starts with the Byte Order Mark (BOM).

  • Her satır bir sözcükten (eklenen ve dışlanan sözcük listelerinde) ya da dikey çubukla ("|") (otomatik düzeltme sözcük listesinde) ayrılmış sözcükler içeren bir otomatik düzeltme çiftinden oluşmalıdır.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).

  • Bu dosyalar salt okunurdur ve sistem tarafından değiştirilmez.These files are considered read-only and are not modified by the system.

Not

Bu yeni dosya biçimleri WPF yazım denetimi API 'Leri tarafından doğrudan desteklenmez ve uygulamalarda WPF 'ye sağlanan özel sözlüklerin. Lex dosyalarını kullanmaya devam etmesi gerekir.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.

ÖrneklerSamples

Microsoft/WPF-Samples GitHub deposunda birçok WPF örneği vardır.There are a number of WPF samples on the Microsoft/WPF-Samples GitHub repository. Bize bir çekme isteği göndererek veya bir GitHub sorunuaçarak örneklerimizi geliştirmemize yardımcı olun.Help us improve our samples by sending us a pull-request or opening a GitHub issue.

DirectX uzantılarıDirectX extensions

WPF, DX10 ve DX11 içeriğiyle birlikte çalışabilmeyi kolaylaştıran yeni D3DImage uygulamaları sağlayan bir NuGet paketi içerir.WPF includes a NuGet package that provides new implementations of D3DImage that make it easy for you to interoperate with DX10 and Dx11 content. Bu paketin kodu açık kaynaklıdır ve GitHub 'dakullanılabilir.The code for this package has been open sourced and is available on GitHub.

Windows Workflow Foundation: IşlemlerWindows Workflow Foundation: Transactions

Transaction.EnlistPromotableSinglePhase yöntemi artık işlemi yükseltmek için MSDTC dışında bir dağıtılmış işlem yöneticisi kullanabilir.The Transaction.EnlistPromotableSinglePhase method can now use a distributed transaction manager other than MSDTC to promote the transaction. Bunu, yeni Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) aşırı yüküne bir GUID işlem Promoter tanımlayıcısı belirterek yapabilirsiniz.You do this by specifying a GUID transaction promoter identifier to the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload . Bu işlem başarılı olursa, işlemin özelliklerine yerleştirilmiş sınırlamalar vardır.If this operation is successful, there are limitations placed on the capabilities of the transaction. MSDTC olmayan bir işlem promosyonu kaydedildikten sonra, bu yöntemler MSDTC 'ye yükseltme gerektirdiğinden aşağıdaki yöntemler bir TransactionPromotionException oluşturur:Once a non-MSDTC transaction promoter is enlisted, the following methods throw a TransactionPromotionException because these methods require promotion to MSDTC:

MSDTC olmayan bir işlem Promoter kaydedildikten sonra, tanımladığı protokoller kullanılarak gelecekteki dayanıklı kayıtlar için kullanılmalıdır.Once a non-MSDTC transaction promoter is enlisted, it must be used for future durable enlistments by using protocols that it defines. İşlem Promoter 'ın Guid, PromoterType özelliği kullanılarak elde edilebilir.The Guid of the transaction promoter can be obtained by using the PromoterType property. İşlem yükseltildiğinde, işlem Promoter, yükseltilen belirteci temsil eden bir Byte dizisi sağlar.When the transaction promotes, the transaction promoter provides a Byte array that represents the promoted token. Bir uygulama, GetPromotedToken yöntemiyle MSDTC olmayan bir yükseltilen işlem için yükseltilen belirteci elde edebilir.An application can obtain the promoted token for a non-MSDTC promoted transaction with the GetPromotedToken method.

Yeni Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) aşırı yüklemesinin kullanıcıları, yükseltme işleminin başarıyla tamamlanabilmesi için belirli bir çağrı sırasını izlemelidir.Users of the new Transaction.EnlistPromotableSinglePhase(IPromotableSinglePhaseNotification, Guid) overload must follow a specific call sequence in order for the promotion operation to complete successfully. Bu kurallar yöntemin belgelerinde belgelenmiştir.These rules are documented in the method's documentation.

Profil OluşturmaProfiling

Yönetilmeyen profil oluşturma API 'SI aşağıdaki şekilde geliştirilmiştir:The unmanaged profiling API has been enhanced as follows:

  • ICorProfilerInfo7 arabirimindeki pdb 'leri 'e erişmek için daha iyi destek.Better support for accessing PDBs in the ICorProfilerInfo7 interface.

    ASP.NET Core, derleme işlemleri için Roslyn tarafından bellek içinde derlenmesi çok daha yaygın hale geliyor.In ASP.NET Core, it is becoming much more common for assemblies to be compiled in-memory by Roslyn. Profil oluşturma araçları kuran geliştiriciler için bu, geçmişte diskte serileştirilmiş olan pdb 'leri artık mevcut olmayabilir.For developers making profiling tools, this means that PDBs that historically were serialized on disk may no longer be present. Profil Oluşturucu araçları genellikle kodu, kod kapsamı veya satır içi performans analizi gibi görevler için kaynak satırlara eşlemek için pdb 'leri kullanır.Profiler tools often use PDBs to map code back to source lines for tasks such as code coverage or line-by-line performance analysis. ICorProfilerInfo7 arabirimi artık iki yeni yöntem Içerir: ICorProfilerInfo7:: GetInMemorySymbolsLength ve ICorProfilerInfo7:: ReadInMemorySymbols, bu Profiler araçlarının yenı API 'leri kullanarak bellek içi pdb verilerine erişimi sağlamak için, bir profil oluşturucu bellek içi pdb 'nin içeriğini bayt dizisi olarak edinebilir ve sonra işleyebilir veya diske serileştirmez.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.

  • ICorProfiler arabirimiyle daha iyi izleme.Better instrumentation with the ICorProfiler interface.

    Dinamik izleme için ICorProfiler API 'Leri yeniden JIT işlevini kullanan profil oluşturucular artık bazı meta verileri değiştirebilir.Profilers that are using the ICorProfiler APIs ReJit functionality for dynamic instrumentation can now modify some metadata. Daha önce böyle araçlar, herhangi bir zamanda Il 'yi işaretleyebilir, ancak meta veriler yalnızca modül yükleme sırasında değiştirilebilir.Previously such tools could instrument IL at any time, but metadata could only be modified at module load time. Il meta verilere başvurduğundan, bu, yapılabilecek izleme türlerini sınırlandırıyor.Because IL refers to metadata, this limited the kinds of instrumentation that could be done. Modül yüklendikten sonra yeni AssemblyRef, TypeRef, TypeSpec, MemberRef, MemberSpecve UserString kayıtları ekleyerek meta veri düzenlemelerinin bir alt kümesini desteklemek üzere ICorProfilerInfo7:: ApplyMetaData metodunu ekleyerek bu limitlerden bazılarını yükseltilmemiş sunuyoruz.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. Bu değişiklik, mümkün olan çok daha geniş bir izleme sağlar.This change makes a much broader range of on-the-fly instrumentation possible.

Yerel Görüntü Oluşturucu (NGEN) pdb 'leriNative Image Generator (NGEN) PDBs

Çapraz makine olay izleme, müşterilerin A makinesinde bir programı profilini oluşturmasını ve B makinesi üzerinde kaynak satırı eşleme ile profil oluşturma verilerine bakmaya olanak sağlar. .NET Framework önceki sürümlerini kullanarak, Kullanıcı profili oluşturulan tüm modülleri ve yerel görüntüleri profili oluşturulmuş Kaynak-yerel eşlemeyi oluşturmak için Il PDB 'sini içeren analiz makinesine makine.Cross-machine event tracing allows customers to profile a program on Machine A and look at the profiling data with source line mapping on Machine B. Using previous versions of the .NET Framework, the user would copy all the modules and native images from the profiled machine to the analysis machine that contains the IL PDB to create the source-to-native mapping. Bu işlem, dosyalar görece küçük olduğunda (örneğin, telefon uygulamaları için), dosyalar masaüstü sistemlerinde çok büyük olabilir ve kopyalamak için önemli bir zaman gerekebilir.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.

Ngen pdb 'leri ile NGen, Il PDB 'ye bağımlılık olmadan IL-yerel eşlemeyi içeren bir PDB oluşturabilir.With Ngen PDBs, NGen can create a PDB that contains the IL-to-native mapping without a dependency on the IL PDB. Makineler arası olay izleme senaryolarımızda, A makinesi tarafından oluşturulan yerel görüntü PDB 'sini B makinesine kopyalamak ve Il PDB 'nin kaynaktan Il eşlemesini ve yerel görüntü PDB 'nin Il-to-to-Native eşlemesini okumak için hata ayıklama arabirimi erişim API 'lerini kullanmak için gereklidir.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. Her iki eşlemeyi de birleştirmek, kaynaktan yerel eşleme sağlar.Combining both mappings provides a source-to-native mapping. Yerel görüntü PDB tüm modüllerden ve yerel görüntülerden çok daha küçük olduğundan, A makinesinden B makinesine kopyalama işlemi çok daha hızlıdır.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.

.NET 2015 ' deki yeniliklerWhat's new in .NET 2015

.NET 2015, 4,6 ve .NET Core .NET Framework sunmaktadır..NET 2015 introduces the .NET Framework 4.6 and .NET Core. Bazı yeni özellikler için geçerlidir ve diğer özellikler .NET Framework 4,6 veya .NET Core 'a özgüdür.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, modern bulut tabanlı uygulamalar oluşturmak için yalın bir .NET uygulaması olan ASP.NET Core içerir..NET 2015 includes ASP.NET Core, which is a lean .NET implementation for building modern cloud-based apps. ASP.NET Core modüler olduğundan, yalnızca uygulamanızda gerekli olan özellikleri ekleyebilirsiniz.ASP.NET Core is modular so you can include only those features that are needed in your application. IIS 'de veya özel bir işlemde barındırılabilecek ve aynı sunucuda .NET Framework farklı sürümleriyle uygulamalar çalıştırabilirsiniz.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. Bulut dağıtımı için tasarlanan yeni bir ortam yapılandırma sistemi içerir.It includes a new environment configuration system that is designed for cloud deployment.

    MVC, Web API 'SI ve Web sayfaları, MVC 6 adlı tek bir çerçevede birleştirilmiştir.MVC, Web API, and Web Pages are unified into a single framework called MVC 6. Visual Studio 2015 veya sonraki sürümlerde araçlar aracılığıyla ASP.NET Core uygulamalar derleyebilirsiniz.You build ASP.NET Core apps through tools in Visual Studio 2015 or later. Mevcut uygulamalarınız yeni .NET Framework çalışacaktır; Ancak, MVC 6 veya SignalR 3 kullanan bir uygulama oluşturmak için Visual Studio 2015 veya sonraki sürümlerde proje sistemini kullanmanız gerekir.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.

    Bilgi için bkz. ASP.NET Core.For information, see ASP.NET Core.

  • ASP.NET güncelleştirmeleriASP.NET Updates

    • Zaman uyumsuz yanıt Temizleme için görev tabanlı APITask-based API for Asynchronous Response Flushing

      ASP.NET artık, zaman uyumsuz yanıt Temizleme için basit bir görev tabanlı API sağlıyor HttpResponse.FlushAsync, bu da yanıtların, dilinizin async/await desteği kullanılarak zaman uyumsuz olarak temizlenmesini sağlar.ASP.NET now provides a simple task-based API for asynchronous response flushing, HttpResponse.FlushAsync, that allows responses to be flushed asynchronously by using your language's async/await support.

    • Model bağlama, görev döndüren yöntemleri desteklerModel binding supports task-returning methods

      .NET Framework 4,5 ' de ASP.NET, Web Forms sayfalarındaki ve Kullanıcı denetimlerindeki CRUD tabanlı veri işlemlerine Genişletilebilir, kod odaklı bir yaklaşım uygulayan model bağlama özelliğini ekledi.In the .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. Model bağlama sistemi artık Taskdöndüren model bağlama yöntemlerini desteklemektedir.The Model Binding system now supports Task-returning model binding methods. Bu özellik, Web Forms geliştiricilerin, Entity Framework dahil olmak üzere daha yeni sürümleri kullanırken veri bağlama sistemi sayesinde, zaman uyumsuz olan ölçeklenebilirlik avantajlarını elde etmesine olanak tanır.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.

      Zaman uyumsuz model bağlama aspnet:EnableAsyncModelBinding yapılandırma ayarı tarafından denetlenir.Async model binding is controlled by the aspnet:EnableAsyncModelBinding configuration setting.

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

      Uygulamalar üzerinde .NET Framework 4,6 ' i hedefleyin, varsayılan olarak true.On apps the target the .NET Framework 4.6, it defaults to true. .NET Framework önceki bir sürümünü hedefleyen .NET Framework 4,6 üzerinde çalışan uygulamalarda, varsayılan olarak false.On apps running on the .NET Framework 4.6 that target an earlier version of the .NET Framework, it is false by default. Yapılandırma ayarı trueolarak ayarlanarak etkinleştirilebilir.It can be enabled by setting the configuration setting to true.

    • HTTP/2 desteği (Windows 10)HTTP/2 Support (Windows 10)

      Http/2 , çok daha iyi bağlantı kullanımı (istemci ve sunucu arasında daha az gidiş dönüş) sağlayan yenı bir http Protokolü sürümüdür ve bu sayede kullanıcılar için daha düşük gecikme süresi Web sayfası yüklemesi oluşur.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. Web sayfaları (hizmetler 'in aksine) HTTP/2 ' den en iyi şekilde faydalanır çünkü protokol, tek bir deneyimin bir parçası olarak istenen birden çok yapıtı için iyileştirmiştir.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. .NET Framework 4,6 ' de ASP.NET 'e HTTP/2 desteği eklenmiştir.HTTP/2 support has been added to ASP.NET in .NET Framework 4.6. Ağ işlevselliği birden çok katmanda mevcut olduğundan, Windows 'da, IIS 'de ve ASP.NET ' de HTTP/2 ' yi etkinleştirmek için yeni özellikler gerekiyordu.Because networking functionality exists at multiple layers, new features were required in Windows, in IIS, and in ASP.NET to enable HTTP/2. ASP.NET ile HTTP/2 kullanmak için Windows 10 ' da çalıştırıyor olmanız gerekir.You must be running on Windows 10 to use HTTP/2 with ASP.NET.

      HTTP/2 Ayrıca, System.Net.Http.HttpClient API kullanan Windows 10 Evrensel Windows Platformu (UWP) uygulamaları için varsayılan olarak desteklenir.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.

      ASP.NET uygulamalarında PUSH_PROMISE özelliğini kullanmanın bir yolunu sağlamak için HttpResponse sınıfına PushPromise(String) ve PushPromise(String, String, NameValueCollection)olmak üzere iki aşırı yüklemeye sahip yeni bir yöntem eklenmiştir.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.

      Not

      ASP.NET Core HTTP/2 ' yi desteklese de, anında PROMISE özelliği için destek henüz eklenmemiş.While ASP.NET Core supports HTTP/2, support for the PUSH PROMISE feature has not yet been added.

      Tarayıcı ve Web sunucusu (Windows üzerinde IIS) tüm işleri çalışır.The browser and the web server (IIS on Windows) do all the work. Kullanıcılarınız için herhangi bir ağır kaldırma yapmanız gerekmez.You don't have to do any heavy-lifting for your users.

      Büyük tarayıcıların çoğu http/2 ' yi desteklediğinden, sunucunuz bunu destekliyorsa, kullanıcılarınızın http/2 desteğinden faydalanır olması olasıdır.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.

    • Belirteç bağlama protokolü desteğiSupport for the Token Binding Protocol

      Microsoft ve Google, belirteç bağlama protokolüolarak adlandırılan kimlik doğrulamaya yönelik yeni bir yaklaşım üzerinde işbirliği yapmış.Microsoft and Google have been collaborating on a new approach to authentication, called the Token Binding Protocol. Şirket içi, kimlik doğrulama belirteçlerinin (tarayıcı önbelleğinizin) çalınabileceği ve güvenli kaynaklara (örneğin, banka hesabınızda) parola veya herhangi bir ayrıcalıklı bilgi gerekmeden erişmek için kullanılabilir.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. Bu sorunu hafifletmek için yeni protokol amaçlar.The new protocol aims to mitigate this problem.

      Belirteç bağlama protokolü Windows 10 ' da bir tarayıcı özelliği olarak uygulanır.The Token Binding Protocol will be implemented in Windows 10 as a browser feature. ASP.NET uygulamalar protokolde yer alacak ve kimlik doğrulama belirteçlerinin yasal olması için doğrulanacak.ASP.NET apps will participate in the protocol, so that authentication tokens are validated to be legitimate. İstemci ve sunucu uygulamaları, protokol tarafından belirtilen uçtan uca korumayı oluştururlar.The client and the server implementations establish the end-to-end protection specified by the protocol.

    • Rastgele dize karma algoritmalarıRandomized string hash algorithms

      .NET Framework 4,5, rastgele bir dize karma algoritmasısunmuştur..NET Framework 4.5 introduced a randomized string hash algorithm. Ancak, ASP.NET tarafından, kararlı bir karma koda bağımlı bazı ASP.NET özellikleri nedeniyle desteklenmez.However, it was not supported by ASP.NET because of some ASP.NET features depended on a stable hash code. .NET Framework 4,6 ' de, rastgele dize karma algoritmaları artık desteklenmektedir.In .NET Framework 4.6, randomized string hash algorithms are now supported. Bu özelliği etkinleştirmek için aspnet:UseRandomizedStringHashAlgorithm config ayarını kullanın.To enable this feature, use the aspnet:UseRandomizedStringHashAlgorithm config setting.

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

    ADO .NET artık SQL Server 2016 Community Technology Preview 2 ' de (CTP2) sunulan Always Encrypted özelliğini desteklemektedir.ADO .NET now supports the Always Encrypted feature available in SQL Server 2016 Community Technology Preview 2 (CTP2). Always Encrypted, SQL Server şifrelenmiş veriler üzerinde işlemler gerçekleştirebilir ve tüm şifreleme anahtarının en iyisi, sunucuda değil, müşterinin güvenilir ortamındaki uygulamayla birlikte bulunur.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, müşteri verilerinin güvenliğini sağlar, böylece DBAs düz metin verilerine erişemez.Always Encrypted secures customer data so DBAs do not have access to plain text data. Verilerin şifrelenmesi ve şifresinin çözülmesi, sürücü düzeyinde saydam bir şekilde gerçekleşir ve mevcut uygulamalarda yapılması gereken değişiklikleri en aza indirir.Encryption and decryption of data happens transparently at the driver level, minimizing changes that have to be made to existing applications. Ayrıntılar için bkz. Always Encrypted (veritabanı altyapısı) ve Always Encrypted (istemci geliştirme).For details, see Always Encrypted (Database Engine) and Always Encrypted (client development).

  • yönetilen kod için 64 bit JıT derleyicisi64-bit JIT Compiler for managed code

    .NET Framework 4,6, 64 bit JıT derleyicisinin yeni bir sürümünü (özgün olarak kod adı RyuJIT) sunar..NET Framework 4.6 features a new version of the 64-bit JIT compiler (originally code-named RyuJIT). Yeni 64 bit derleyicisi, eski 64 bit JıT derleyicisi üzerinde önemli performans iyileştirmeleri sağlar.The new 64-bit compiler provides significant performance improvements over the older 64-bit JIT compiler. Yeni 64 bit derleyici, .NET Framework 4,6 üzerinde çalışan 64 bit süreçler için etkinleştirilmiştir.The new 64-bit compiler is enabled for 64-bit processes running on top of .NET Framework 4.6. Uygulamanız 64 bit ya da AnyCPU olarak derlenirse ve bir 64-bit işletim sisteminde çalışıyorsa, 64 bitlik bir işlemde çalışır.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. Yeni derleyiciye geçişi mümkün olduğunca saydam hale getirmek için dikkatli olunurken, davranıştaki değişiklikler mümkündür.While care has been taken to make the transition to the new compiler as transparent as possible, changes in behavior are possible.

    Yeni 64-bit JıT derleyicisi Ayrıca, System.Numerics ad alanındaki SıMD özellikli türlerle birlikte kullanıldığında, iyi performans iyileştirmeleri sağlayan donanım SıMD hızlandırma özelliklerini de içerir.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.

  • Derleme yükleyici geliştirmeleriAssembly loader improvements

    Derleme yükleyicisi artık, ilgili bir NGEN görüntüsü yüklendikten sonra Il derlemelerini kaldırarak belleği daha verimli bir şekilde kullanmaktadır.The assembly loader now uses memory more efficiently by unloading IL assemblies after a corresponding NGEN image is loaded. Bu değişiklik, özellikle büyük 32 bitlik uygulamalar (Visual Studio gibi) için yararlı olan sanal belleği azaltır ve fiziksel belleği da kaydeder.This change decreases virtual memory, which is particularly beneficial for large 32-bit apps (such as Visual Studio), and also saves physical memory.

  • Temel sınıf kitaplığı değişiklikleriBase class library changes

    Temel senaryoları etkinleştirmek için .NET Framework 4,6 ' ye birçok yeni API eklenmiştir.Many new APIs have been added around to .NET Framework 4.6 to enable key scenarios. Bunlar aşağıdaki değişiklikleri ve eklemeleri içerir:These include the following changes and additions:

    • IReadOnlyCollection<T > uygulamalarIReadOnlyCollection<T> implementations

      Ek koleksiyonlar, Queue<T> ve Stack<T>gibi IReadOnlyCollection<T> uygular.Additional collections implement IReadOnlyCollection<T> such as Queue<T> and Stack<T>.

    • CultureInfo. CurrentCulture ve CultureInfo. CurrentUICultureCultureInfo.CurrentCulture and CultureInfo.CurrentUICulture

      CultureInfo.CurrentCulture ve CultureInfo.CurrentUICulture özellikleri artık salt okuma yerine salt yazılır.The CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture properties are now read-write rather than read-only. Bu özelliklere yeni bir CultureInfo nesnesi atarsanız, Thread.CurrentThread.CurrentCulture özelliği tarafından tanımlanan geçerli iş parçacığı kültürü ve Thread.CurrentThread.CurrentUICulture özellikleri tarafından tanımlanan geçerli UI iş parçacığı kültürü de değişir.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.

    • Çöp toplama geliştirmeleri (GC)Enhancements to garbage collection (GC)

      GC sınıfı artık kritik bir yolun yürütülmesi sırasında çöp toplamaya izin vermemeyi sağlayan TryStartNoGCRegion ve EndNoGCRegion yöntemleri içerir.The GC class now includes TryStartNoGCRegion and EndNoGCRegion methods that allow you to disallow garbage collection during the execution of a critical path.

      GC.Collect(Int32, GCCollectionMode, Boolean, Boolean) yönteminin yeni bir aşırı yüklemesi, hem küçük nesne yığını hem de büyük nesne yığınının birlikte kullanılıp kullanılmadığını ve yalnızca swemi olduğunu denetlemenize olanak tanır.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.

    • SıMD özellikli türlerSIMD-enabled types

      System.Numerics ad alanı artık Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3ve Vector4gibi birçok SıMD özellikli tür içerir.The System.Numerics namespace now includes a number of SIMD-enabled types, such as Matrix3x2, Matrix4x4, Plane, Quaternion, Vector2, Vector3, and Vector4.

      Yeni 64-bit JıT derleyicisi Ayrıca donanım SıMD hızlandırma özellikleri de içerdiğinden, yeni 64 bit JıT derleyicisi ile SıMD özellikli türler kullanılırken özellikle önemli performans iyileştirmeleri vardır.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.

    • Şifreleme güncelleştirmeleriCryptography updates

      System.Security.Cryptography API 'SI, WINDOWS CNG şifreleme API 'lerinidestekleyecek şekilde güncelleştiriliyor.The System.Security.Cryptography API is being updated to support the Windows CNG cryptography APIs. Önceki .NET Framework sürümleri, System.Security.Cryptography uygulamanın temeli olarak Windows şifreleme API 'lerinin önceki bir sürümünde tamamıyla güvendi.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. Belirli uygulama kategorileri için önemli olan modern şifreleme algoritmalarınıDESTEKLEDIĞINDEN CNG API 'sini desteklemeye yönelik isteklerdir.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, Windows CNG şifreleme API 'Lerini desteklemek için aşağıdaki yeni geliştirmeleri içerir:.NET Framework 4.6 includes the following new enhancements to support the Windows CNG cryptography APIs:

      • X509 sertifikaları, System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPublicKey(System.Security.Cryptography.X509Certificates.X509Certificate2) ve System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(System.Security.Cryptography.X509Certificates.X509Certificate2)için, mümkün olduğunda CAPı tabanlı bir uygulama yerine, CNG tabanlı bir uygulama döndüren bir genişletme yöntemleri kümesi.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. (Bazı smartcards, vb. için hala CAPı gerekir ve API geri dönüşü işler).(Some smartcards, etc., still require CAPI, and the APIs handle the fallback).

      • RSA algoritmasının CNG uygulamasını sağlayan System.Security.Cryptography.RSACng sınıfı.The System.Security.Cryptography.RSACng class, which provides a CNG implementation of the RSA algorithm.

      • Yaygın eylemlerin artık atama gerektirmemesi için RSA API geliştirmeleri.Enhancements to the RSA API so that common actions no longer require casting. Örneğin, X509Certificate2 nesne kullanarak verileri şifrelemek, .NET Framework önceki sürümlerinde aşağıdakiler gibi bir kod gerektirir.For example, encrypting data using an X509Certificate2 object requires code like the following in previous versions of the .NET Framework.

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

        .NET Framework 4,6 ' deki yeni şifreleme API 'Lerini kullanan kod, dönüştürmeyi önlemek için aşağıdaki şekilde yeniden yazılabilir.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)
        
    • Tarih ve saatleri Unix zamanına veya bu saatten dönüştürmeye yönelik destekSupport for converting dates and times to or from Unix time

      DateTimeOffset yapısına, tarih ve saat değerlerini UNIX zamanından veya buradan dönüştürmeyi desteklemek için aşağıdaki yeni yöntemler eklenmiştir:The following new methods have been added to the DateTimeOffset structure to support converting date and time values to or from Unix time:

    • Uyumluluk anahtarlarıCompatibility switches

      AppContext sınıfı, kitaplık yazıcılarının kullanıcılarına yeni işlevsellik için Tekdüzen bir geri alma mekanizması sağlamasını sağlayan yeni bir uyumluluk özelliği ekler.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. Bir geri çevirme isteğini iletmek için bileşenler arasında gevşek olarak bağlanmış bir sözleşme oluşturur.It establishes a loosely coupled contract between components in order to communicate an opt-out request. Bu özellik, genellikle mevcut işlevlere bir değişiklik yapıldığında önemlidir.This capability is typically important when a change is made to existing functionality. Buna karşılık, yeni işlevsellik için zaten örtük bir katılım vardır.Conversely, there is already an implicit opt-in for new functionality.

      AppContext, kitaplıklar uyumluluk anahtarlarını tanımlar ve kullanıma sunar, ancak bunlara bağlı olan kod bu anahtarları kitaplık davranışını etkileyecek şekilde ayarlayabilir.With AppContext, libraries define and expose compatibility switches, while code that depends on them can set those switches to affect the library behavior. Varsayılan olarak, kitaplıklar yeni işlevselliği sağlar ve yalnızca, anahtar ayarlanmışsa (yani, önceki işlevleri sağlar) değiştirir.By default, libraries provide the new functionality, and they only alter it (that is, they provide the previous functionality) if the switch is set.

      Bir uygulama (veya bir kitaplık), bağımlı bir kitaplığın tanımladığı bir anahtarın (her zaman bir Boolean değeri) değerini bildirebilir.An application (or a library) can declare the value of a switch (which is always a Boolean value) that a dependent library defines. Anahtar her zaman örtük false.The switch is always implicitly false. Anahtarın true için ayarlanması etkinleştirilir.Setting the switch to true enables it. Anahtarın false olarak ayarlanması, yeni davranışı sağlar.Explicitly setting the switch to false provides the new behavior.

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

      Kitaplığın, bir tüketicinin anahtar değerini bildirdiğinden ve daha sonra uygun şekilde davrandığından emin olması gerekir.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
      

      Bir kitaplık tarafından kullanıma sunulan resmi bir sözleşme olduklarından, anahtarlar için tutarlı bir biçim kullanmak faydalıdır.It's beneficial to use a consistent format for switches, since they are a formal contract exposed by a library. Aşağıda iki belirgin biçim verilmiştir.The following are two obvious formats.

      • Anahtar. ad alanı. SwitchNameSwitch.namespace.switchname

      • Anahtar. kitaplığı. SwitchNameSwitch.library.switchname

    • Görev tabanlı zaman uyumsuz düzende yapılan değişiklikler (TAP)Changes to the task-based asynchronous pattern (TAP)

      .NET Framework 4,6 ' i hedefleyen uygulamalar için Task ve Task<TResult> nesneleri çağıran iş parçacığının kültür ve Kullanıcı Arabirimi kültürünü devralınır.For apps that target the .NET Framework 4.6, Task and Task<TResult> objects inherit the culture and UI culture of the calling thread. .NET Framework önceki sürümlerini hedefleyen veya .NET Framework belirli bir sürümünü hedefmayan uygulamaların davranışı etkilenmemiştir.The behavior of apps that target previous versions of the .NET Framework, or that do not target a specific version of the .NET Framework, is unaffected. Daha fazla bilgi için, CultureInfo sınıfı konusunun "Kültür ve görev tabanlı zaman uyumsuz işlemler" bölümüne bakın.For more information, see the "Culture and task-based asynchronous operations" section of the CultureInfo class topic.

      System.Threading.AsyncLocal<T> sınıfı, bir async yöntemi gibi belirli bir zaman uyumsuz Denetim akışında yerel olan çevresel verileri temsil etmenize olanak tanır.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. İş parçacıkları arasında veri kalıcı hale getirmek için kullanılabilir.It can be used to persist data across threads. Ayrıca, AsyncLocal<T>.Value özelliği açıkça değiştiği veya iş parçacığı bir bağlam geçişi ile karşılaştığından, ortam verilerinin her ne zaman değiştiğini belirten bir geri çağırma yöntemi tanımlayabilirsiniz.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.FromCanceledve Task.FromException, görev tabanlı zaman uyumsuz düzene (dokunarak) belirli bir durumda Tamamlanan görevleri döndürmek için eklenmiştir.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.

      NamedPipeClientStream sınıfı artık yeni ConnectAsynczaman uyumsuz iletişimi desteklemektedir.The NamedPipeClientStream class now supports asynchronous communication with its new ConnectAsync. yöntemidir.method.

    • EventSource şimdi olay günlüğüne yazmayı destekliyorEventSource now supports writing to the Event log

      Artık, makinede oluşturulan mevcut ETW oturumlarına ek olarak yönetim veya işletimsel iletileri olay günlüğüne kaydetmek için EventSource sınıfını kullanabilirsiniz.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. Geçmişte, bu işlevsellik için Microsoft. Diagnostics. Tracing. EventSource NuGet paketini kullanmanız gerekiyordu.In the past, you had to use the Microsoft.Diagnostics.Tracing.EventSource NuGet package for this functionality. Bu işlevsellik artık 4,6 .NET Framework yerleşik olarak sunulmuştur.This functionality is now built-into .NET Framework 4.6.

      Hem NuGet paketi hem de .NET Framework 4,6 aşağıdaki özelliklerle güncelleştirilmiştir:Both the NuGet package and .NET Framework 4.6 have been updated with the following features:

      • Dinamik olaylarDynamic events

        Olay yöntemi oluşturmadan "anında" tanımlanan olaylara izin verir.Allows events defined "on the fly" without creating event methods.

      • Zengin yükRich payloads

        Özel olarak öznitelikli sınıfların ve dizilerin yanı sıra yük olarak geçirilecek ilkel türler sağlarAllows specially attributed classes and arrays as well as primitive types to be passed as a payload

      • Etkinlik izlemeActivity tracking

        , Şu anda etkin olan tüm etkinlikleri temsil eden bir KIMLIK ile aralarında olayları etiketlemek için başlatma ve durdurma olaylarına neden olur.Causes Start and Stop events to tag events between them with an ID that represents all currently active activities.

      Bu özellikleri desteklemek için, EventSource sınıfına aşırı yüklenmiş Write yöntemi eklenmiştir.To support these features, the overloaded Write method has been added to the EventSource class.

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

    • HDPı geliştirmeleriHDPI improvements

      WPF 'de HDPı desteği artık .NET Framework 4,6 ' de daha iyidir.HDPI support in WPF is now better in the .NET Framework 4.6. Kenarlıkların bulunduğu denetimlerde kırpma örneklerini azaltmak için yerleşim yuvarlama sırasında değişiklikler yapılmıştır.Changes have been made to layout rounding to reduce instances of clipping in controls with borders. Varsayılan olarak, bu özellik yalnızca TargetFrameworkAttribute .NET 4,6 olarak ayarlandıysa etkindir.By default, this feature is enabled only if your TargetFrameworkAttribute is set to .NET 4.6. Framework 'ün önceki sürümlerini hedefleyen ancak .NET Framework 4,6 üzerinde çalışan uygulamalar, App. config dosyasının <runtime > bölümüne aşağıdaki satırı ekleyerek yeni davranışı kabul edebilir:Applications that target earlier versions of the framework but are running on the .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"
      />
      

      Farklı DPı ayarlarına (çok DPı Kurulum) sahip birden çok izleyiciden oluşan WPF pencereleri, artık Blacked-Out bölgeleri olmadan tamamen işlenir.WPF windows straddling multiple monitors with different DPI settings (Multi-DPI setup) are now completely rendered without blacked-out regions. Bu yeni davranışı devre dışı bırakmak için App. config dosyasının <appSettings> bölümüne aşağıdaki satırı ekleyerek bu davranışı iptal edebilirsiniz: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"/>
      

      System.Windows.Input.Cursor'ye DPı ayarı temelinde sağ imleci otomatik olarak yükleme desteği eklenmiştir.Support for automatically loading the right cursor based on DPI setting has been added to System.Windows.Input.Cursor.

    • Dokunmatik daha iyidirTouch is better

      İletişim üzerindeki müşteri raporları, .NET Framework 4,6 ' de öngörülemeyen davranış üretir.Customer reports on Connect that touch produces unpredictable behavior have been addressed in the .NET Framework 4.6. Windows Mağazası uygulamaları ve WPF uygulamaları için çift dokunma eşiği artık Windows 8.1 ve üzeri sürümlerde aynıdır.The double tap threshold for Windows Store applications and WPF applications is now the same in Windows 8.1 and above.

    • Saydam alt pencere desteğiTransparent child window support

      .NET Framework 4,6 ' de WPF, Windows 8.1 ve üzeri sürümlerde saydam alt pencereleri destekler.WPF in the .NET Framework 4.6 supports transparent child windows in Windows 8.1 and above. Bu, üst düzey Windows 'larınızı dikdörtgen olmayan ve şeffaf alt pencereler oluşturmanıza olanak sağlar.This allows you to create non-rectangular and transparent child windows in your top-level windows. HwndSourceParameters.UsesPerPixelTransparency özelliğini trueolarak ayarlayarak bu özelliği etkinleştirebilirsiniz.You can enable this feature by setting the HwndSourceParameters.UsesPerPixelTransparency property to true.

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

    • SSL desteğiSSL support

      WCF, aktarım güvenliği ve istemci kimlik doğrulamasıyla NetTcp kullanılırken SSL 3,0 ve TLS 1,0 özelliklerine ek olarak SSL sürüm TLS 1,1 ve TLS 1,2 ' yi desteklemektedir.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. Artık hangi protokolün kullanılacağını seçebilir veya eski daha az güvenli protokollerin devre dışı bırakılması mümkündür.It is now possible to select which protocol to use, or to disable old lesser secure protocols. Bu, SslProtocols özelliği ayarlanarak veya bir yapılandırma dosyasına aşağıdakiler eklenerek yapılabilir.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>
      
    • Farklı HTTP bağlantıları kullanarak ileti göndermeSending messages using different HTTP connections

      WCF artık kullanıcıların, farklı temel HTTP bağlantıları kullanılarak belirli iletilerin gönderilmesini sağlamasına izin veriyor.WCF now allows users to ensure certain messages are sent using different underlying HTTP connections. Bunu yapmanın iki yolu vardır:There are two ways to do this:

      • Bağlantı grubu adı ön eki kullanmaUsing a connection group name prefix

        Kullanıcılar, WCF 'nin bağlantı grubu adı için önek olarak kullanacağı bir dize belirtebilir.Users can specify a string that WCF will use as a prefix for the connection group name. Farklı ön ekleri olan iki ileti, farklı temel HTTP bağlantıları kullanılarak gönderilir.Two messages with different prefixes are sent using different underlying HTTP connections. İletinin Message.Properties özelliğine bir anahtar/değer çifti ekleyerek ön eki ayarlarsınız.You set the prefix by adding a key/value pair to the message's Message.Properties property. Anahtar "HttpTransportConnectionGroupNamePrefix"; değer, istenen önekidir.The key is "HttpTransportConnectionGroupNamePrefix"; the value is the desired prefix.

      • Farklı kanal fabrikaları kullanmaUsing different channel factories

        Kullanıcılar ayrıca, farklı kanal fabrikaları tarafından oluşturulan kanallar kullanılarak gönderilen iletilerin farklı temel HTTP bağlantıları kullanmasını sağlayan bir özelliği etkinleştirebilir.Users can also enable a feature that ensures that messages sent using channels created by different channel factories will use different underlying HTTP connections. Bu özelliği etkinleştirmek için, kullanıcıların aşağıdaki appSetting trueolarak ayarlaması gerekir:To enable this feature, users must set the following appSetting to true:

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

    Artık, isteği zaman aşımından önce bekleyen bir "protokol dışı" yer işareti olduğunda, bir iş akışı hizmetinin bir sıra dışı işlem isteğine açık olacağı saniye sayısını belirtebilirsiniz.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. "Protokol dışı" yer işareti, bekleyen alma etkinlikleriyle ilgili olmayan bir yer işaretidir.A "non-protocol" bookmark is a bookmark that is not related to outstanding Receive activities. Bazı etkinlikler, kendi uygulamalarında protokol olmayan yer işaretleri oluşturur, bu nedenle protokol olmayan bir yer işaretinin mevcut olduğu açık olmayabilir.Some activities create non-protocol bookmarks within their implementation, so it may not be obvious that a non-protocol bookmark exists. Bu durum ve seçim dahildir.These include State and Pick. Bu nedenle, bir durum makinesi ile uygulanan veya bir çekme etkinliği içeren bir iş akışı hizmetiniz varsa, muhtemelen protokol olmayan yer işaretlerine sahip olursunuz.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. Uygulama. config dosyanızın appSettings bölümüne aşağıdakine benzer bir satır ekleyerek aralığı belirtirsiniz: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"/>
    

    Varsayılan değer 60 saniyedir.The default value is 60 seconds. value 0 olarak ayarlandıysa, aşağıdaki gibi görünen metin ile bir hata vererek sıra dışı istekler anında reddedilir: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.
    

    Bu, bir sıra dışı işlem iletisi alındığında ve protokol olmayan yer işaretleri yoksa aldığınız mesajdır.This is the same message that you receive if an out-of-order operation message is received and there are no non-protocol bookmarks.

    FilterResumeTimeoutInSeconds öğesinin değeri sıfır değilse, protokol olmayan yer işaretleri vardır ve zaman aşımı aralığı sona erdiğinde, işlem zaman aşımı iletisiyle başarısız olur.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.

  • İşlemlerTransactions

    Artık TransactionException ' den türetilen bir özel durumun oluşturulmasına neden olan işlem için dağıtılmış işlem tanımlayıcıyı ekleyebilirsiniz.You can now include the distributed transaction identifier for the transaction that has caused an exception derived from TransactionException to be thrown. Bunu, App. config dosyanızın appSettings bölümüne aşağıdaki anahtarı ekleyerek yapabilirsiniz:You do this by adding the following key to the appSettings section of your app.config file:

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

    Varsayılan değer: false.The default value is false.

  • Networking

    • Yuva yeniden kullanımıSocket reuse

      Windows 10, giden TCP bağlantıları için yerel bağlantı noktalarını yeniden kullanarak makine kaynaklarından daha iyi şekilde yararlanmasına yönelik yeni bir yüksek ölçeklenebilirlik ağ algoritması içerir.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 yeni algoritmayı destekleyerek, .NET uygulamalarının yeni davranıştan yararlanmasını sağlar..NET Framework 4.6 supports the new algorithm, enabling .NET apps to take advantage of the new behavior. Önceki Windows sürümlerinde, bir hizmetin ölçeklenebilirliğini, yük altında bağlantı noktası tükenmesi olmasına neden olarak sınırlayan yapay bir eşzamanlı bağlantı sınırı (genellikle 16.384) vardı.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.

      .NET Framework 4,6 ' de, bağlantı noktası yeniden kullanımını etkinleştirmek için iki API eklenmiştir. Bu, eşzamanlı bağlantılarda 64 KB sınırını etkili bir şekilde kaldırır:In .NET Framework 4.6, two APIs have been added to enable port reuse, which effectively removes the 64 KB limit on concurrent connections:

      Varsayılan olarak, HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 kayıt defteri anahtarının HWRPortReuseOnSocketBind değeri 0x1 olarak ayarlanmadığı müddetçe ServicePointManager.ReusePort özelliği false.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. HTTP bağlantılarında yerel bağlantı noktası yeniden kullanımını etkinleştirmek için ServicePointManager.ReusePort özelliğini trueolarak ayarlayın.To enable local port reuse on HTTP connections, set the ServicePointManager.ReusePort property to true. Bu, HttpClient ve HttpWebRequest giden tüm giden TCP yuvası bağlantılarının, yerel bağlantı noktası yeniden kullanımını sağlayan yeni bir Windows 10 yuva seçeneği SO_REUSE_UNICASTPORTkullanmasına neden olur.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.

      Yalnızca bir yuva uygulaması yazan geliştiriciler, bağlama sırasında giden yuvaların yerel bağlantı noktalarını yeniden kullanabilmesi için Socket.SetSocketOption gibi bir yöntemi çağırırken System.Net.Sockets.SocketOptionName seçeneğini belirtebilir.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.

    • Uluslararası etki alanı adları ve puni kodu desteğiSupport for international domain names and PunyCode

      Uluslararası etki alanı adlarını ve zayıf kodu daha iyi desteklemek için Uri sınıfına IdnHostyeni bir özellik eklenmiştir.A new property, IdnHost, has been added to the Uri class to better support international domain names and PunyCode.

  • Windows Forms Denetimlerinde yeniden boyutlandırma.Resizing in Windows Forms controls.

    Bu özellik .NET Framework 4,6 ' de DomainUpDown, NumericUpDown, DataGridViewComboBoxColumn, DataGridViewColumn ve ToolStripSplitButton türlerini ve bir Bounds çizerken kullanılan UITypeEditorözelliği tarafından belirtilen dikdörtgeni içerecek şekilde genişletildi.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.

    Bu bir katılım özelliğidir.This is an opt-in feature. Etkinleştirmek için, uygulama yapılandırma (App. config) dosyasında EnableWindowsFormsHighDpiAutoResizing öğesini true olarak ayarlayın:To enable it, set the EnableWindowsFormsHighDpiAutoResizing element to true in the application configuration (app.config) file:

    <appSettings>
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    
  • Kod sayfası kodlamaları için destekSupport for code page encodings

    .NET Core öncelikle Unicode kodlamaları destekler ve varsayılan olarak, kod sayfası kodlamaları için sınırlı destek sağlar..NET Core primarily supports the Unicode encodings and by default provides limited support for code page encodings. Kod sayfası kodlamalarını Encoding.RegisterProvider yöntemiyle kaydederek .NET Framework, ancak .NET Core 'ta desteklenmeyen kod sayfası kodlamaları için destek ekleyebilirsiniz.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. Daha fazla bilgi için bkz. System.Text.CodePagesEncodingProvider.For more information, see System.Text.CodePagesEncodingProvider.

  • .NET Native.NET Native

    .NET Core 'u C# hedefleyen ve veya Visual Basic yazılan Windows 10 için Windows uygulamaları, uygulamaları Il yerine yerel koda derleyen yeni bir teknolojiden yararlanabilir.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. Daha hızlı başlatma ve yürütme süreleriyle nitelenen uygulamalar oluşturur.They produce apps characterized by faster startup and execution times. Daha fazla bilgi için bkz. .NET Native uygulamalar derleme.For more information, see Compiling Apps with .NET Native. Hem JıT derleme hem de NGEN 'ten farklı olan .NET Native genel bir bakış için ve kodunuz için ne anlama geldiğini, bkz. .NET Native ve derleme.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.

    Uygulamalarınız, Visual Studio 2015 veya sonraki bir sürümü ile derlerken varsayılan olarak yerel koda derlenir.Your apps are compiled to native code by default when you compile them with Visual Studio 2015 or later. Daha fazla bilgi için bkz. .NET Native kullanmayabaşlama.For more information, see Getting Started with .NET Native.

    .NET Native uygulamalarında hata ayıklamayı desteklemek için, yönetilmeyen hata ayıklama API 'sine bir dizi yeni arabirim ve listeleme eklenmiştir.To support debugging .NET Native apps, a number of new interfaces and enumerations have been added to the unmanaged debugging API. Daha fazla bilgi için bkz. hata ayıklama (YÖNETILMEYEN API Başvurusu) konusu.For more information, see the Debugging (Unmanaged API Reference) topic.

  • Açık kaynaklı .NET Framework paketleriOpen-source .NET Framework packages

    Sabit koleksiyonlar, SIMD API 'lerive System.Net.Http ad alanında bulunanlar gibi ağ API 'leri gibi .NET Core paketleri artık GitHub'da açık kaynak paketler olarak kullanılabilir..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. Koda erişmek için GitHub 'da .netbölümüne bakın.To access the code, see .NET on GitHub. Daha fazla bilgi ve bu paketlere katkıda bulunma hakkında daha fazla bilgi için bkz. GitHub 'da .NET Core ve açık kaynak, .net giriş sayfası.For more information and how to contribute to these packages, see .NET Core and Open-Source, .NET Home Page on GitHub.

.NET Framework 4.5.2 yenilikleriWhat's new in .NET Framework 4.5.2

  • ASP.NET uygulamaları için yeni API 'Ler.New APIs for ASP.NET apps. Yeni HttpResponse.AddOnSendingHeaders ve HttpResponseBase.AddOnSendingHeaders yöntemleri, yanıt, istemci uygulamasına boşaltılmakta olduğu için yanıt üst bilgilerini ve durum kodunu incelemenizi ve değiştirmenizi sağlar.The new HttpResponse.AddOnSendingHeaders and HttpResponseBase.AddOnSendingHeaders methods let you inspect and modify response headers and status code as the response is being flushed to the client app. PreSendRequestHeaders ve PreSendRequestContent olayları yerine bu yöntemleri kullanmayı düşünün; daha verimli ve güvenilir.Consider using these methods instead of the PreSendRequestHeaders and PreSendRequestContent events; they are more efficient and reliable.

    HostingEnvironment.QueueBackgroundWorkItem yöntemi, küçük arka plan iş öğelerini zamanlamanıza olanak sağlar.The HostingEnvironment.QueueBackgroundWorkItem method lets you schedule small background work items. ASP.NET bu öğeleri izler ve tüm arka plan iş öğeleri tamamlanana kadar IIS 'nin çalışan işlemini aniden sonlandırmasını önler.ASP.NET tracks these items and prevents IIS from abruptly terminating the worker process until all background work items have completed. Bu yöntem, ASP.NET tarafından yönetilen bir uygulama etki alanı dışında çağrılamaz.This method can't be called outside an ASP.NET managed app domain.

    Yeni HttpResponse.HeadersWritten ve HttpResponseBase.HeadersWritten özellikleri, yanıt üstbilgilerinin yazılıp yazılmadığını belirten Boolean değerler döndürür.The new HttpResponse.HeadersWritten and HttpResponseBase.HeadersWritten properties return Boolean values that indicate whether the response headers have been written. Bu özellikleri, HttpResponse.StatusCode gibi API 'lere yapılan çağrıların (üstbilgiler yazılmışsa özel durumlar oluşturur) başarılı olacağını doğrulamak için kullanabilirsiniz.You can use these properties to make sure that calls to APIs such as HttpResponse.StatusCode (which throw exceptions if the headers have been written) will succeed.

  • Windows Forms Denetimlerinde yeniden boyutlandırma.Resizing in Windows Forms controls. Bu özellik genişletildi.This feature has been expanded. Artık, aşağıdaki ek denetimlerin bileşenlerini yeniden boyutlandırmak için sistem DPı ayarını kullanabilirsiniz (örneğin, Birleşik giriş kutularındaki aşağı açılan ok):You can now use the system DPI setting to resize components of the following additional controls (for example, the drop-down arrow in combo boxes):

    Bu bir katılım özelliğidir.This is an opt-in feature. Etkinleştirmek için, uygulama yapılandırma (App. config) dosyasında EnableWindowsFormsHighDpiAutoResizing öğesini true olarak ayarlayın:To enable it, set the EnableWindowsFormsHighDpiAutoResizing element to true in the application configuration (app.config) file:

    <appSettings>
        <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
    </appSettings>
    
  • Yeni iş akışı özelliği.New workflow feature. EnlistPromotableSinglePhase yöntemi kullanan bir kaynak yöneticisi (ve bu nedenle IPromotableSinglePhaseNotification arabirimini uygulamak), aşağıdakileri istemek için yeni Transaction.PromoteAndEnlistDurable yöntemini kullanabilir:A resource manager that's using the EnlistPromotableSinglePhase method (and therefore implementing the IPromotableSinglePhaseNotification interface) can use the new Transaction.PromoteAndEnlistDurable method to request the following:

    Bu, aynı uygulama etki alanı içinde yapılabilir ve yükseltmeyi gerçekleştirmek üzere MSDTC ile etkileşimde bulunmak için ek yönetilmeyen kod gerektirmez.This can be done within the same app domain, and doesn't require any extra unmanaged code to interact with MSDTC to perform the promotion. Yeni yöntem yalnızca, System.Transactions 'ten promotable kaydı tarafından uygulanan IPromotableSinglePhaseNotificationPromote yöntemine bekleyen bir çağrı olduğunda çağrılabilir.The new method can be called only when there's an outstanding call from System.Transactions to the IPromotableSinglePhaseNotificationPromote method that's implemented by the promotable enlistment.

  • Profil oluşturma geliştirmeleri.Profiling improvements. Aşağıdaki yeni yönetilmeyen profil oluşturma API 'Leri daha sağlam profil oluşturma sağlar:The following new unmanaged profiling APIs provide more robust profiling:

    Önceki ICorProfiler uygulamalar bağımlı derlemelerin geç yüklenmesini destekliyordu.Previous ICorProfiler implementations supported lazy loading of dependent assemblies. Yeni profil oluşturma API 'Leri, uygulama tam olarak başlatıldıktan sonra yüklenmesi yerine, profil oluşturucu tarafından doğrudan yüklenebilir olarak eklenen bağımlı derlemeler gerektirir.The new profiling APIs require dependent assemblies that are injected by the profiler to be loadable immediately, instead of being loaded after the app is fully initialized. Bu değişiklik, mevcut ICorProfiler API 'Leri kullanıcılarını etkilemez.This change doesn't affect users of the existing ICorProfiler APIs.

  • Hata ayıklama geliştirmeleri.Debugging improvements. Aşağıdaki yeni yönetilmeyen hata ayıklama API 'Leri, bir profil Oluşturucu ile daha iyi tümleştirme sağlar.The following new unmanaged debugging APIs provide better integration with a profiler. Artık Profiler tarafından yerleştirilen meta verilere, Ayrıca, döküm hata ayıklaması sırasında derleyici ReJIT istekleri tarafından oluşturulan yerel değişkenlere ve koda erişebilirsiniz.You can now access metadata inserted by the profiler as well as local variables and code produced by compiler ReJIT requests when dump debugging.

  • Olay izleme değişiklikleri.Event tracing changes. .NET Framework 4.5.2, daha büyük bir yüzey alanı için işlem dışı, Windows için olay Izleme (ETW) tabanlı etkinlik izleme imkanı sunar..NET Framework 4.5.2 enables out-of-process, Event Tracing for Windows (ETW)-based activity tracing for a larger surface area. Bu, gelişmiş güç yönetimi (APM) satıcılarının, iş parçacıkları arasındaki bireysel isteklerin ve etkinliklerin maliyetlerini doğru bir şekilde izleyen hafif araçlar sağlamasına olanak sağlar.This enables Advanced Power Management (APM) vendors to provide lightweight tools that accurately track the costs of individual requests and activities that cross threads. Bu olaylar yalnızca ETW denetleyicileri etkinleştirilse tetiklenir; Bu nedenle, değişiklikler önceden yazılmış ETW kodunu veya ETW devre dışı ile çalışan kodu etkilemez.These events are raised only when ETW controllers enable them; therefore, the changes don't affect previously written ETW code or code that runs with ETW disabled.

  • Bir işlemi yükseltme ve dayanıklı bir kayda dönüştürmePromoting a transaction and converting it to a durable enlistment

    Transaction.PromoteAndEnlistDurable, .NET Framework 4.5.2 ve 4,6 ' ye eklenen yeni bir API 'dir:Transaction.PromoteAndEnlistDurable is a new API added to .NET Framework 4.5.2 and 4.6:

    [System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Name = "FullTrust")]
    public Enlistment PromoteAndEnlistDurable(Guid resourceManagerIdentifier,
                                              IPromotableSinglePhaseNotification promotableNotification,
                                              ISinglePhaseNotification enlistmentNotification,
                                              EnlistmentOptions enlistmentOptions)
    
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.LinkDemand, Name:="FullTrust")>
    public Function PromoteAndEnlistDurable(resourceManagerIdentifier As Guid,
                                            promotableNotification As IPromotableSinglePhaseNotification,
                                            enlistmentNotification As ISinglePhaseNotification,
                                            enlistmentOptions As EnlistmentOptions) As Enlistment
    

    Yöntemi, ITransactionPromoter.Promote yöntemine yanıt olarak Transaction.EnlistPromotableSinglePhase tarafından daha önce oluşturulmuş bir kayıt tarafından kullanılabilir.The method may be used by an enlistment that was previously created by Transaction.EnlistPromotableSinglePhase in response to the ITransactionPromoter.Promote method. İşlemi bir MSDTC işlemine yükseltmek ve promotable listesini dayanıklı bir listeye "dönüştürmek" için System.Transactions sorar.It asks System.Transactions to promote the transaction to an MSDTC transaction and to "convert" the promotable enlistment to a durable enlistment. Bu yöntem başarıyla tamamlandıktan sonra, IPromotableSinglePhaseNotification arabirimine artık System.Transactionstarafından başvurulmayacak ve gelecekteki tüm bildirimler belirtilen ISinglePhaseNotification arabirimine gönderilir.After this method completes successfully, the IPromotableSinglePhaseNotification interface will no longer be referenced by System.Transactions, and any future notifications will arrive on the provided ISinglePhaseNotification interface. Söz konusu kayıt, işlem günlüğü ve kurtarmayı destekleyen dayanıklı bir liste olarak davranmalıdır.The enlistment in question must act as a durable enlistment, supporting transaction logging and recovery. Ayrıntılar için Transaction.EnlistDurable bakın.Refer to Transaction.EnlistDurable for details. Ayrıca, kayıt ISinglePhaseNotificationdesteklemelidir.In addition, the enlistment must support ISinglePhaseNotification. Bu yöntem, yalnızca bir ITransactionPromoter.Promote çağrısı işlenirken çağrılabilir.This method can only be called while processing an ITransactionPromoter.Promote call. Böyle değilse, bir TransactionException özel durumu oluşturulur.If that is not the case, a TransactionException exception is thrown.

.NET Framework 4.5.1 yenilikleriWhat's new in .NET Framework 4.5.1

Nisan 2014 güncelleştirmeleri:April 2014 updates:

  • Visual Studio 2013 güncelleştirme 2 , bu senaryoları desteklemek Için taşınabilir sınıf kitaplığı şablonlarına yönelik güncelleştirmeleri içerir:Visual Studio 2013 Update 2 includes updates to the Portable Class Library templates to support these scenarios:

    • Windows 8.1, Windows Phone 8,1 ve Windows Phone Silverlight 8,1 ' i hedefleyen taşınabilir kitaplıklarda Windows Çalışma Zamanı API 'Leri kullanabilirsiniz.You can use Windows Runtime APIs in portable libraries that target Windows 8.1, Windows Phone 8.1, and Windows Phone Silverlight 8.1.

    • Windows 8.1 veya Windows Phone 8,1 ' i hedefliyorsanız taşınabilir kitaplıklara XAML (Windows. UI. XAML türleri) ekleyebilirsiniz.You can include XAML (Windows.UI.XAML types) in portable libraries when you target Windows 8.1 or Windows Phone 8.1. Şu XAML şablonları desteklenir: boş sayfa, kaynak sözlüğü, şablonlu denetim ve Kullanıcı denetimi.The following XAML templates are supported: Blank Page, Resource Dictionary, Templated Control, and User Control.

    • Windows 8.1 ve Windows Phone 8,1 ' i hedefleyen Mağaza uygulamalarında kullanılmak üzere taşınabilir bir Windows Çalışma Zamanı bileşeni (. winmd dosyası) oluşturabilirsiniz.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.

    • Bir Windows Mağazası veya Windows Phone depolama sınıfı kitaplığını taşınabilir bir sınıf kitaplığı gibi yeniden hedefleyebilirsiniz.You can retarget a Windows Store or Windows Phone Store class library like a Portable Class Library.

    Bu değişiklikler hakkında daha fazla bilgi için bkz. taşınabilir sınıf kitaplığı.For more information about these changes, see Portable Class Library.

  • .NET Framework içerik kümesi artık, Windows uygulamaları oluşturmaya ve dağıtmaya yönelik bir ön derleme teknolojisi olan .NET Native belgelerini içerir.The .NET Framework content set now includes documentation for .NET Native, which is a precompilation technology for building and deploying Windows apps. .NET Native uygulamalarınızı, daha iyi performans için, ara dil (IL) yerine yerel koda doğrudan derler..NET Native compiles your apps directly to native code, rather than to intermediate language (IL), for better performance. Ayrıntılar için bkz. .NET Native uygulamalar derleme.For details, see Compiling Apps with .NET Native.

  • .NET Framework başvuru kaynağı yeni bir gözatma deneyimi ve gelişmiş işlevsellik sağlar.The .NET Framework Reference Source provides a new browsing experience and enhanced functionality. Artık .NET Framework kaynak koduna göz atabilir, çevrimdışı görüntüleme başvurusunu indirebilir ve hata ayıklama sırasında kaynaklarda (yayama ve güncelleştirmeler dahil) ilerme yapabilirsiniz.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. Daha fazla bilgi için bkz. .net başvuru kaynağı için yeni bir görünümolan blog girişi.For more information, see the blog entry A new look for .NET Reference Source.

.NET Framework 4.5.1 ' deki temel sınıflardaki yeni özellikler ve geliştirmeler şunları içerir:New features and enhancements in the base classes in .NET Framework 4.5.1 include:

Windows Forms iyileştirmeleri şunlardır:Improvements to Windows Forms include:

  • Windows Forms Denetimlerinde yeniden boyutlandırma.Resizing in Windows Forms controls. Denetim bileşenlerini (örneğin, bir özellik kılavuzunda görünen simgeler) uygulamanızın uygulama yapılandırma dosyasında (App. config) bir girdiyle değiştirerek yeniden boyutlandırmak için sistem DPı ayarını kullanabilirsiniz.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. Bu özellik şu anda aşağıdaki Windows Forms Denetimlerinde desteklenmektedir:This feature is currently supported in the following Windows Forms controls:

    Bu özelliği etkinleştirmek için yapılandırma dosyasına (App. config) yeni bir <appSettings > öğesi ekleyin ve EnableWindowsFormsHighDpiAutoResizing öğesini trueolarak ayarlayın: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>
    

Visual Studio 2013 .NET Framework uygulamalarınızın hata ayıklaması sırasında iyileştirmeler şunlardır:Improvements when debugging your .NET Framework apps in Visual Studio 2013 include:

  • Visual Studio hata ayıklayıcısındaki değerleri döndürün.Return values in the Visual Studio debugger. Visual Studio 2013 yönetilen bir uygulamada hata ayıklarken, oto 'Lar penceresi yöntemlerin dönüş türlerini ve değerlerini görüntüler.When you debug a managed app in Visual Studio 2013, the Autos window displays return types and values for methods. Bu bilgiler Masaüstü, Windows Mağazası ve Windows Phone uygulamaları için kullanılabilir.This information is available for desktop, Windows Store, and Windows Phone apps. Daha fazla bilgi için bkz. Yöntem çağrılarının dönüş değerlerini inceleme.For more information, see Examine return values of method calls.

  • 64 bit uygulamalar için Düzenle ve devam et.Edit and Continue for 64-bit apps. Visual Studio 2013 Masaüstü, Windows Mağazası ve Windows Phone 64 bitlik yönetilen uygulamalar için Düzenle ve devam et özelliğini destekler.Visual Studio 2013 supports the Edit and Continue feature for 64-bit managed apps for desktop, Windows Store, and Windows Phone. Mevcut sınırlamalar hem 32-bit hem de 64-bit uygulamalar için geçerli kalır ( desteklenen kod değişikliklerininC# son bölümüne bakın () makalesinin).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).

  • Zaman uyumsuz olarak algılayan hata ayıklama.Async-aware debugging. Visual Studio 2013, zaman uyumsuz uygulamalarda hata ayıklamayı kolaylaştırmak için, çağrı yığını zaman uyumsuz programlamayı desteklemek için derleyiciler tarafından belirtilen altyapı kodunu gizler ve ayrıca mantıksal program yürütmeyi daha fazla takip edebilmeniz için mantıksal üst çerçevelerde zincirler NET.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. Bir Görevler penceresi, paralel görevler penceresinin yerini alır ve belirli bir kesme noktasıyla ilgili görevleri görüntüler ve ayrıca, şu anda etkin olan veya uygulamada zamanlanan diğer görevleri görüntüler.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. Bu özellik hakkında bilgi edinmek için, .NET Framework 4.5.1 duyurusunun"zaman uyumsuz algılayan hata ayıklama" bölümünde bulabilirsiniz.You can read about this feature in the "Async-aware debugging" section of the .NET Framework 4.5.1 announcement.

  • Windows Çalışma Zamanı bileşenleri için daha iyi özel durum desteği.Better exception support for Windows Runtime components. Windows 8.1, Windows Mağazası uygulamalarından kaynaklanan özel durumlar, özel duruma neden olan hata hakkındaki bilgileri, dil sınırları boyunca korur.In Windows 8.1, exceptions that arise from Windows Store apps preserve information about the error that caused the exception, even across language boundaries. Bu özellik hakkında bilgi edinmek için .NET Framework 4.5.1 duyurusunun"Windows Mağazası uygulama geliştirme" bölümünde bulabilirsiniz.You can read about this feature in the "Windows Store app development" section of the .NET Framework 4.5.1 announcement.

Visual Studio 2013 başlayarak, Windows 8. x mağaza uygulamalarını ve masaüstü uygulamalarını en iyi duruma getirmek için yönetilen profil temelli Iyileştirme aracı 'nı (Mpgo. exe) kullanabilirsiniz.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.

ASP.NET 4.5.1 içindeki yeni özellikler için bkz. Visual Studio 2013 Sürüm notları ASP.NET and Web Tools.For new features in ASP.NET 4.5.1, see ASP.NET and Web Tools for Visual Studio 2013 Release Notes.

.NET Framework 4,5 ' deki yeniliklerWhat's new in .NET Framework 4.5

Temel sınıflarBase classes

  • Dağıtım sırasında .NET Framework 4 uygulamalarını algılayıp kapatarak sistem yeniden başlatmaları azaltma özelliği.Ability to reduce system restarts by detecting and closing .NET Framework 4 applications during deployment. Bkz. .NET Framework 4,5 yüklemeleri sırasında sistem yeniden başlatmaları azaltma.See Reducing System Restarts During .NET Framework 4.5 Installations.

  • 64-bit platformlarda 2 gigabayttan (GB) daha büyük diziler için destek.Support for arrays that are larger than 2 gigabytes (GB) on 64-bit platforms. Bu özellik uygulama yapılandırma dosyasında etkinleştirilebilir.This feature can be enabled in the application configuration file. Nesne boyutu ve dizi boyutu üzerindeki diğer kısıtlamaları da listeleyen <gcAllowVeryLargeObjects > öğesinebakın.See the <gcAllowVeryLargeObjects> element, which also lists other restrictions on object size and array size.

  • Sunucular için arka plan atık toplama ile daha iyi performans.Better performance through background garbage collection for servers. .NET Framework 4,5 ' de sunucu çöp toplama kullandığınızda, arka plan atık toplama otomatik olarak etkinleştirilir.When you use server garbage collection in the .NET Framework 4.5, background garbage collection is automatically enabled. Çöp toplama temelleri konusunun arka plan sunucusu çöp toplama bölümüne bakın.See the Background Server Garbage Collection section of the Fundamentals of Garbage Collection topic.

  • Arka plan tam zamanında (JıT) derleme, isteğe bağlı olarak, uygulama performansını artırmak için çok çekirdekli işlemcilerde kullanılabilir.Background just-in-time (JIT) compilation, which is optionally available on multi-core processors to improve application performance. Bkz. ProfileOptimization.See ProfileOptimization.

  • Normal ifade altyapısının zaman aşımına uğramadan önce normal ifadeyi çözmeyi ne kadar süreyle deneyeceğini sınırlayabilme olanağı. Regex.MatchTimeout özelliğine bakın.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.

  • Bir uygulama etki alanı için varsayılan kültürü tanımlama özelliği.Ability to define the default culture for an application domain. CultureInfo sınıfına bakın.See the CultureInfo class.

  • Unicode (UTF-16) kodlaması için konsol desteği.Console support for Unicode (UTF-16) encoding. Console sınıfına bakın.See the Console class.

  • Kültürel dize sıralaması ve karşılaştırma verilerinin sürümü oluşturma desteği.Support for versioning of cultural string ordering and comparison data. SortVersion sınıfına bakın.See the SortVersion class.

  • Kaynakları alırken daha iyi performans.Better performance when retrieving resources. Bkz. kaynakları paketleme ve dağıtma.See Packaging and Deploying Resources.

  • Sıkıştırılmış bir dosyanın boyutunu azaltmak için ZIP sıkıştırma geliştirmeleri.Zip compression improvements to reduce the size of a compressed file. Bkz. System.IO.Compression ad alanı.See the System.IO.Compression namespace.

  • CustomReflectionContext sınıfı aracılığıyla varsayılan yansıma davranışını geçersiz kılmak için yansıma bağlamını özelleştirme özelliği.Ability to customize a reflection context to override default reflection behavior through the CustomReflectionContext class.

  • Windows 8 ' de System.Globalization.IdnMapping sınıfı kullanıldığında, uygulamalar (ıDNA) standardında uluslararası etki alanı adlarının 2008 sürümü için destek.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.

  • Windows 8 ' de .NET Framework kullanıldığında, Unicode 6,0 uygulayan işletim sistemine dize karşılaştırması temsili.Delegation of string comparison to the operating system, which implements Unicode 6.0, when the .NET Framework is used on Windows 8. Diğer platformlarda çalışırken .NET Framework, Unicode 5. x uygulayan kendi dize karşılaştırma verilerini içerir.When running on other platforms, the .NET Framework includes its own string comparison data, which implements Unicode 5.x. SortVersion sınıfının String sınıfına ve açıklamalar bölümüne bakın.See the String class and the Remarks section of the SortVersion class.

  • Her uygulama etki alanı temelinde dizeler için karma kodları hesaplama özelliği.Ability to compute the hash codes for strings on a per application domain basis. Bkz. <UseRandomizedStringHashAlgorithm > öğesi.See <UseRandomizedStringHashAlgorithm> Element.

  • Type ve TypeInfo sınıfları arasında bölünmüş tür yansıtma desteği.Type reflection support split between Type and TypeInfo classes. Bkz. Windows Mağazası uygulamaları için .NET Framework yansıtma.See Reflection in the .NET Framework for Windows Store Apps.

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

.NET Framework 4,5 ' de, Managed Extensibility Framework (MEF) aşağıdaki yeni özellikleri sağlar:In the .NET Framework 4.5, the Managed Extensibility Framework (MEF) provides the following new features:

  • Genel türler için destek.Support for generic types.

  • Öznitelikler yerine adlandırma kurallarına göre parçalar oluşturmanıza olanak sağlayan kural tabanlı programlama modeli.Convention-based programming model that enables you to create parts based on naming conventions rather than attributes.

  • Birden çok kapsam.Multiple scopes.

  • Windows 8. x Mağazası uygulamaları oluştururken kullanabileceğiniz MEF alt kümesi.A subset of MEF that you can use when you create Windows 8.x Store apps. Bu alt küme NuGet galerisinden indirilebilir bir paket olarak kullanılabilir.This subset is available as a downloadable package from the NuGet Gallery. Paketi yüklemek için, projenizi Visual Studio 'da açın, Proje menüsünden NuGet Paketlerini Yönet ' i seçin ve Microsoft.Composition paketini çevrimiçi olarak arayın.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.

Daha fazla bilgi için bkz. Managed Extensibility Framework (MEF).For more information, see Managed Extensibility Framework (MEF).

Zaman uyumsuz dosya işlemleriAsynchronous file operations

.NET Framework 4,5 ' de, C# ve Visual Basic dillerine yeni zaman uyumsuz özellikler eklenmiştir.In the .NET Framework 4.5, new asynchronous features were added to the C# and Visual Basic languages. Bu özellikler, zaman uyumsuz işlemleri gerçekleştirmek için görev tabanlı bir model ekler.These features add a task-based model for performing asynchronous operations. Bu yeni modeli kullanmak için g/ç sınıflarında zaman uyumsuz yöntemleri kullanın.To use this new model, use the asynchronous methods in the I/O classes. Bkz. zaman uyumsuz dosya g/ç.See Asynchronous File I/O.

AraçlarTools

.NET Framework 4,5, kaynak dosya Oluşturucu (Resgen. exe), bir. resources .NET Framework dosyasındaki Windows 8. x Mağaza uygulamalarında kullanılmak üzere bir. resw dosyası oluşturmanıza olanak sağlar.In the .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. Daha fazla bilgi için bkz. Resgen. exe (kaynak dosya Oluşturucu).For more information, see Resgen.exe (Resource File Generator).

Yönetilen profil temelli Iyileştirme (Mpgo. exe), yerel görüntü derlemelerini iyileştirerek uygulama başlangıç süresini, bellek kullanımını (çalışma kümesi boyutu) ve aktarım hızını iyileştirmenize olanak sağlar.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. Komut satırı aracı, yerel görüntü uygulama derlemeleri için profil verileri oluşturur.The command-line tool generates profile data for native image application assemblies. Bkz. Mpgo. exe (yönetilen profil temelli Iyileştirme aracı).See Mpgo.exe (Managed Profile Guided Optimization Tool). Visual Studio 2013 başlayarak, Mpgo. exe ' yi kullanarak Windows 8. x mağaza uygulamalarını ve masaüstü uygulamalarını en iyi duruma getirebilirsiniz.Starting with Visual Studio 2013, you can use Mpgo.exe to optimize Windows 8.x Store apps as well as desktop apps.

Paralel bilgi işlemParallel computing

.NET Framework 4,5, paralel bilgi işlem için çeşitli yeni özellikler ve iyileştirmeler sağlar.The .NET Framework 4.5 provides several new features and improvements for parallel computing. Bunlar, geliştirilmiş performans, artırılmış denetim, zaman uyumsuz programlama için geliştirilmiş destek, yeni bir veri akışı kitaplığı ve paralel hata ayıklama ve performans analizi için geliştirilmiş destek içerir.These include improved performance, increased control, improved support for asynchronous programming, a new dataflow library, and improved support for parallel debugging and performance analysis. .Net blogu ile paralel programlamada .net 4,5 ' de paralellik Için nasıl yeni bir giriş olduğuna bakın.See the entry What’s New for Parallelism in .NET 4.5 in the Parallel Programming with .NET blog.

WebWeb

Web Forms, WebSocket desteği, zaman uyumsuz işleyiciler, performans geliştirmeleri ve diğer birçok özellik için ASP.NET 4,5 ve 4.5.1 model bağlama ekleyin.ASP.NET 4.5 and 4.5.1 add model binding for Web Forms, WebSocket support, asynchronous handlers, performance enhancements, and many other features. Daha fazla bilgi için aşağıdaki kaynaklara bakın:For more information, see the following resources:

Networking

.NET Framework 4,5, HTTP uygulamaları için yeni bir programlama arabirimi sağlar.The .NET Framework 4.5 provides a new programming interface for HTTP applications. Daha fazla bilgi için bkz. yeni System.Net.Http ve System.Net.Http.Headers ad alanları.For more information, see the new System.Net.Http and System.Net.Http.Headers namespaces.

Ayrıca, mevcut HttpListener ve ilgili sınıfları kullanarak bir WebSocket bağlantısı kabul etmek ve bunlarla etkileşim kurmak için yeni bir programlama arabirimi de mevcuttur.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. Daha fazla bilgi için bkz. yeni System.Net.WebSockets ad alanı ve HttpListener sınıfı.For more information, see the new System.Net.WebSockets namespace and the HttpListener class.

Ayrıca, 4,5 .NET Framework aşağıdaki ağ geliştirmelerini içerir:In addition, the .NET Framework 4.5 includes the following networking improvements:

  • RFC uyumlu URI desteği.RFC-compliant URI support. Daha fazla bilgi için bkz. Uri ve ilgili sınıflar.For more information, see Uri and related classes.

  • Uluslararası etki alanı adı (ıDN) ayrıştırma desteği.Support for Internationalized Domain Name (IDN) parsing. Daha fazla bilgi için bkz. Uri ve ilgili sınıflar.For more information, see Uri and related classes.

  • E-posta adresi uluslararası duruma getirme (EAı) desteği.Support for Email Address Internationalization (EAI). Daha fazla bilgi için System.Net.Mail ad alanına bakın.For more information, see the System.Net.Mail namespace.

  • Geliştirilmiş IPv6 desteği.Improved IPv6 support. Daha fazla bilgi için System.Net.NetworkInformation ad alanına bakın.For more information, see the System.Net.NetworkInformation namespace.

  • Çift modlu yuva desteği.Dual-mode socket support. Daha fazla bilgi için bkz. Socket ve TcpListener sınıfları.For more information, see the Socket and TcpListener classes.

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

.NET Framework 4,5 ' de, Windows Presentation Foundation (WPF) aşağıdaki alanlarda değişiklikler ve iyileştirmeler içerir:In the .NET Framework 4.5, Windows Presentation Foundation (WPF) contains changes and improvements in the following areas:

  • Hızlı erişim araç çubuğu, uygulama menüsü ve sekmeler barındıran bir şerit kullanıcı arabirimi uygulamanıza olanak sağlayan yeni Ribbon denetimi.The new Ribbon control, which enables you to implement a ribbon user interface that hosts a Quick Access Toolbar, Application Menu, and tabs.

  • Zaman uyumlu ve zaman uyumsuz veri doğrulamayı destekleyen yeni INotifyDataErrorInfo arabirimi.The new INotifyDataErrorInfo interface, which supports synchronous and asynchronous data validation.

  • VirtualizingPanel ve Dispatcher sınıflarına yönelik yeni özellikler.New features for the VirtualizingPanel and Dispatcher classes.

  • Büyük düzeyde gruplandırılmış verilerin görüntülenirken ve Kullanıcı arabirimi olmayan iş parçacıklarında koleksiyonlara erişerek gelişmiş performans.Improved performance when displaying large sets of grouped data, and by accessing collections on non-UI threads.

  • Statik özelliklere veri bağlama, ICustomTypeProvider arabirimini uygulayan özel türlere veri bağlama ve veri bağlama bilgilerinin bir bağlama ifadesinden alınması.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.

  • Değerler değiştiğinde verileri yeniden konumlandırma (canlı şekillendirme).Repositioning of data as the values change (live shaping).

  • Bir öğe kapsayıcısının veri bağlamının bağlantısının kesilmesi olup olmadığını denetleme özelliği.Ability to check whether the data context for an item container is disconnected.

  • Özellik değişiklikleri ve veri kaynağı güncelleştirmeleri arasında geçmesi gereken süre miktarını ayarlama yeteneği.Ability to set the amount of time that should elapse between property changes and data source updates.

  • Zayıf olay desenleri uygulama desteği geliştirildi.Improved support for implementing weak event patterns. Ayrıca, olaylar artık işaretleme uzantılarını kabul edebilir.Also, events can now accept markup extensions.

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

.NET Framework 4,5 ' de, Windows Communication Foundation (WCF) uygulamaları yazmayı ve bakımını daha kolay hale getirmek için aşağıdaki özellikler eklenmiştir:In the .NET Framework 4.5, the following features have been added to make it simpler to write and maintain Windows Communication Foundation (WCF) applications:

  • Oluşturulan yapılandırma dosyalarının basitleştirmesi.Simplification of generated configuration files.

  • Sözleşmenin ilk geliştirmesi için destek.Support for contract-first development.

  • ASP.NET uyumluluk modunu daha kolay bir şekilde yapılandırma özelliği.Ability to configure ASP.NET compatibility mode more easily.

  • Varsayılan taşıma özelliği değerlerindeki değişiklikler, bunları ayarlamak için sahip olma olasılığını azaltır.Changes in default transport property values to reduce the likelihood that you will have to set them.

  • XML sözlüğü okuyucuları için kotaları el ile yapılandırmak zorunda olma olasılığını azaltmak için XmlDictionaryReaderQuotas sınıfına yönelik güncelleştirmeler.Updates to the XmlDictionaryReaderQuotas class to reduce the likelihood that you will have to manually configure quotas for XML dictionary readers.

  • Visual Studio tarafından derleme sürecinin bir parçası olarak WCF yapılandırma dosyalarının doğrulanması, böylece uygulamanızı çalıştırmadan önce yapılandırma hatalarını tespit edebilirsiniz.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.

  • Yeni zaman uyumsuz akış desteği.New asynchronous streaming support.

  • Internet Information Services (IIS) ile HTTPS üzerinden bir uç nokta açığa çıkarmak daha kolay hale getirmek için yeni HTTPS protokol eşlemesi.New HTTPS protocol mapping to make it easier to expose an endpoint over HTTPS with Internet Information Services (IIS).

  • Hizmet URL 'sine ?singleWSDL ekleyerek tek bir WSDL belgesinde meta veri oluşturma yeteneği.Ability to generate metadata in a single WSDL document by appending ?singleWSDL to the service URL.

  • TCP aktarımına benzer performans özellikleriyle 80 ve 443 bağlantı noktaları üzerinden doğru çift yönlü iletişimi etkinleştirmek için WebSockets desteği.Websockets support to enable true bidirectional communication over ports 80 and 443 with performance characteristics similar to the TCP transport.

  • Kodda hizmetleri yapılandırmaya yönelik destek.Support for configuring services in code.

  • XML Düzenleyici araç ipuçları.XML Editor tooltips.

  • önbelleğe alma desteği ChannelFactory.ChannelFactory caching support.

  • İkili kodlayıcı sıkıştırma desteği.Binary encoder compression support.

  • Geliştiricilerin "yangın ve unut" iletilerini kullanan hizmetler yazmasını sağlayan bir UDP taşıması desteği.Support for a UDP transport that enables developers to write services that use "fire and forget" messaging. İstemci, hizmete bir ileti gönderir ve hizmetten yanıt vermez.A client sends a message to a service and expects no response from the service.

  • HTTP taşıma ve aktarım güvenliği kullanılırken, tek bir WCF uç noktasında birden çok kimlik doğrulama modunu destekleme özelliği.Ability to support multiple authentication modes on a single WCF endpoint when using the HTTP transport and transport security.

  • Uluslararası etki alanı adları (IDNs) kullanan WCF Hizmetleri için destek.Support for WCF services that use internationalized domain names (IDNs).

Daha fazla bilgi için bkz. Windows Communication Foundationyenilikleri.For more information, see What's New in Windows Communication Foundation.

{1>Windows Workflow Foundation (WF)<1}Windows Workflow Foundation (WF)

.NET Framework 4,5 ' de aşağıdakiler de dahil olmak üzere Windows Workflow Foundation (WF) birkaç yeni özellik eklenmiştir:In the .NET Framework 4.5, several new features were added to Windows Workflow Foundation (WF), including:

  • İlk olarak .NET Framework 4.0.1 (.NET Framework 4 platformu güncelleştirme 1) bir parçası olarak sunulan durum makinesi iş akışları.State machine workflows, which were first introduced as part of .NET Framework 4.0.1 (.NET Framework 4 Platform Update 1). Bu güncelleştirme, geliştiricilerin durum makinesi iş akışları oluşturmalarına olanak tanıyan birkaç yeni sınıf ve etkinlik içeriyordu.This update included several new classes and activities that enabled developers to create state machine workflows. Bu sınıflar ve Etkinlikler 4,5 .NET Framework şunlar için güncelleştirildi:These classes and activities were updated for the .NET Framework 4.5 to include:

    • Durumlar üzerinde kesme noktaları ayarlama yeteneği.The ability to set breakpoints on states.

    • İş akışı tasarımcısında geçişleri kopyalama ve yapıştırma özelliği.The ability to copy and paste transitions in the workflow designer.

    • Paylaşılan tetikleyici geçişi oluşturma için tasarımcı desteği.Designer support for shared trigger transition creation.

    • StateMachine, Stateve Transitiondahil olmak üzere durum makine iş akışları oluşturma etkinlikleri.Activities for creating state machine workflows, including: StateMachine, State, and Transition.

  • Aşağıdakiler gibi gelişmiş İş Akışı Tasarımcısı Özellikler:Enhanced Workflow Designer features such as the following:

    • Visual Studio 'da hızlı bul ve dosyalardaki buldahil olmak üzere gelişmiş iş akışı arama özellikleri.Enhanced workflow search capabilities in Visual Studio, including Quick Find and Find in Files.

    • Bir kapsayıcı etkinliğine ikinci bir alt etkinlik eklendiğinde ve her iki etkinliği de sıralı etkinliğe dahil etmek için otomatik olarak bir dizi etkinliği oluşturma özelliği.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.

    • Kaydırma çubukları kullanılmadan bir iş akışının görünür bölümünün değiştirilmesini sağlayan kaydırma desteği.Panning support, which enables the visible portion of a workflow to be changed without using the scroll bars.

    • Bir ağaç stili ana hat görünümündeki bir iş akışının bileşenlerini gösteren ve Belge anahat görünümünde bir bileşen seçmenize olanak sağlayan yeni bir Belge anahat görünümü.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.

    • Etkinliklere ek açıklamalar ekleme özelliği.Ability to add annotations to activities.

    • İş akışı tasarımcısını kullanarak etkinlik temsilcilerini tanımlama ve kullanma yeteneği.Ability to define and consume activity delegates by using the workflow designer.

    • Durum makinesi ve akış çizelgesi iş akışlarında etkinlikler ve geçişler için otomatik bağlan ve otomatik ekle.Auto-connect and auto-insert for activities and transitions in state machine and flowchart workflows.

  • Bir iş akışı için Görünüm durumu bilgilerini XAML dosyasındaki tek bir öğede depolamak için, Görünüm durumu bilgisini kolayca bulup düzenleyebilmenizi sağlayabilirsiniz.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.

  • Alt etkinliklerin kalıcı olmasını önleyen bir NoPersistScope kapsayıcı etkinliği.A NoPersistScope container activity to prevent child activities from persisting.

  • İfadeler için C# destek:Support for C# expressions:

    • Visual Basic kullanan iş akışı projeleri Visual Basic ifadelerini kullanır ve C# iş akışı projeleri ifadeleri kullanır. C#Workflow projects that use Visual Basic will use Visual Basic expressions, and C# workflow projects will use C# expressions.

    • C#Visual Studio 2010 ' de oluşturulan ve Visual Basic ifadelerine sahip iş akışı projeleri, ifadeler kullanan C# C# iş akışı projeleriyle uyumludur.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.

  • Sürüm oluşturma geliştirmeleri:Versioning enhancements:

    • Kalıcı bir iş akışı örneği ve onun iş akışı tanımı arasında eşleme sağlayan yeni WorkflowIdentity sınıfı.The new WorkflowIdentity class, which provides a mapping between a persisted workflow instance and its workflow definition.

    • WorkflowServiceHostdahil olmak üzere aynı ana bilgisayarda birden çok iş akışı sürümünün yan yana yürütülmesi.Side-by-side execution of multiple workflow versions in the same host, including WorkflowServiceHost.

    • Dinamik güncelleştirmede, kalıcı bir iş akışı örneğinin tanımını değiştirme özelliği.In Dynamic Update, the ability to modify the definition of a persisted workflow instance.

  • Sözleşme-ilk iş akışı hizmeti geliştirme, mevcut bir hizmet sözleşmesiyle eşleşecek şekilde otomatik olarak etkinlik oluşturma desteği sağlar.Contract-first workflow service development, which provides support for automatically generating activities to match an existing service contract.

Daha fazla bilgi için bkz. Windows Workflow Foundationyenilikleri.For more information, see What's New in Windows Workflow Foundation.

Windows 8.x Mağazası uygulamaları için .NET.NET for Windows 8.x Store apps

Windows 8. x Mağazası uygulamaları belirli form faktörleri için tasarlanmıştır ve Windows işletim sisteminin gücünden yararlanır.Windows 8.x Store apps are designed for specific form factors and leverage the power of the Windows operating system. Veya Visual Basic kullanarak C# Windows için Windows 8. x Mağazası uygulamaları oluşturmak üzere 4,5 veya 4.5.1 .NET Framework bir alt kümesi mevcuttur.A subset of the .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. Bu alt küme, Windows 8. x Mağazası uygulamaları için .NET olarak adlandırılır ve genel bakıştaele alınmıştır.This subset is called .NET for Windows 8.x Store apps and is discussed in an overview.

Taşınabilir sınıf kitaplıkları Portable Class Libraries

Visual Studio 2012 ' deki (ve sonraki sürümlerde) taşınabilir sınıf kitaplığı projesi, birden çok .NET Framework platformda çalışan yönetilen derlemeler yazmanızı ve oluşturmanızı sağlar.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. Taşınabilir bir sınıf kitaplığı projesi kullanarak, hedeflenecek platformları (Windows Phone ve Windows 8. x Mağazası uygulamaları için .NET) seçersiniz.Using a Portable Class Library project, you choose the platforms (such as Windows Phone and .NET for Windows 8.x Store apps) to target. Projenizdeki kullanılabilir türler ve Üyeler, bu platformlar genelinde ortak türler ve üyelerle otomatik olarak kısıtlıdır.The available types and members in your project are automatically restricted to the common types and members across these platforms. Daha fazla bilgi için bkz. taşınabilir sınıf kitaplığı.For more information, see Portable Class Library.

Ayrıca bkz.See also