Updated (2017): See .NET Framework Releases to learn about newer releases. This release is not supported.
We are pleased to announce the .NET Framework Preview 4.6.2. You can download the release from one of the following links:
- .NET Framework 4.6.2 Preview – Standalone
- .NET Framework 4.6.2 Preview – Web Bootstrapper
- .NET Framework 4.6.2 Preview – Developer Pack
We’ve added new features and APIs in the following areas of the product:
- TLS 1.1/1.2 support for ClickOnce
- Enabling .NET desktop apps with Project Centennial
- Support for additional cryptography standards
- Soft keyboard and per-monitor DPI support for WPF
You can see the full set of changes in the .NET Framework 4.6.2 Preview in the change list and API diff that we’ve published on GitHub.
ClickOnce
Transport Layer Security (TLS) 1.1 and 1.2 Support
ClickOnce has been updated to support TLS 1.1 and 1.2. ClickOnce will automatically detect which TLS protocol is required at runtime. There are no extra steps that are needed within the ClickOnce application to enable this.
ClickOnce continues to support TLS 1.0 for the foreseeable future for compatibility, for applications that do not or cannot upgrade.
A release to support TLS 1.1 and 1.2 for .NET Framework versions 4.5.2, 4.6 and 4.6.1 as well as Windows 7 and above is planned for April 2016.
Converting Your Desktop App to UWP (Project Centennial)
Windows now offers capabilities to bring existing Windows desktop apps (including WPF/Windows Forms) to the Universal Windows Platform (UWP). This capability was previously known as “Project Centennial”. The goal of this technology is to act as a bridge by enabling developers to gradually migrate their existing code base to UWP, bringing their app to all Windows 10 devices.
The image below shows a WPF app that has been converted to Centennial and now includes a live tile, previously only available to UWP apps.
The .NET desktop app will continue to behave as before, running as a desktop app. You can add a UWP component that calls UWP APIs, to enable UWP features such as live tiles and the share contract. The UWP component would be build and compiled with .NET Native, just like building any other UWP app.
Cryptography
X509 Certificates Now Support FIPS 186-3 DSA
The .NET Framework 4.6.2 adds support for DSA (Digital Signature Algorithm) X509 certificates whose keys exceed the FIPS 186-2 limit of 1024-bit.
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). The FIPS 186-3 support is provided by the new DSACng class.
Keeping in line with recent changes to RSA (.NET Framework 4.6) and ECDsa (.NET Framework 4.6.1), the DSA abstract base class has additional methods to allow callers to make use of this functionality without casting.
Increased Clarity for Inputs to ECDiffieHellman Key Derivation Routines
The .NET Framework 4.6.2 added support for Ellptic Curve Diffie-Hellman Key Agreement that included three different KDF (Key Derivation Function) routines. The inputs to the routines, and the routine itself, were configured via properties on the ECDiffieHellmanCng object; but since not every routine read every input property there was ample room for confusion. The ECDiffieHellman base class has been updated to more clearly represent these KDF routines and their inputs:
Support for Persisted-Key Symmetric Encryption
The Windows Cryptography Library (CNG) has support for storing persisted symmetric keys on software and hardware devices and the .NET Framework 4.6.2 has made it possible for users to make use of this feature. Since key names and key providers is implementation-specific, using this feature requires calling the constructor of the concrete implementation type instead of the more common factory approach (e.g. Aes.Create()). Persisted-key symmetric encryption support exists for the AES (AesCng) and 3DES (TripleDESCng) algorithms.
SignedXml Support for SHA-2 Hashing
The .NET Framework 4.6.2 has added support to SignedXml which permits RSA-SHA256, RSA-SHA384, and RSA-SHA512 PKCS#1 signature methods, and SHA256, SHA384, and SHA512 reference digest algorithms. The URI constants are all exposed on SignedXml:�
Any programs which 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 should no longer be necessary.
Windows Presentation Foundation
Soft Keyboard Support
Soft Keyboard support enables automatic invocation and dismissal of the touch keyboard in WPF applications without disabling WPF stylus/touch support on Windows 10. Prior to 4.6.2, WPF applications do not implicitly support the invocation or dismissal of the touch keyboard without disabling WPF stylus/touch support. This is due to a change in the way the touch keyboard tracks focus in applications starting in Windows 8.
Per-Monitor DPI Support
WPF applications are system-DPI aware, which means that applications are scaled by Windows depending on the DPI of the monitor on which the application is being rendered. This can result in loss of sharpness, blurry text etc. Prior to 4.6.2, additional native code was required to enable per-monitor DPI awareness in WPF applications.
Given the recent proliferation of high-DPI and hybrid-DPI environments in the ecosystem, we have now enabled per-monitor DPI awareness in WPF applications. See the samples and developer guide for more information about how to enable you WPF application to become per-monitor DPI aware.
Providing Feedback
We hope to hear your feedback as you try the preview release which can be directed to:
Do you have information on the RTM timeframe for .NET 4.6.2? Will it be released concurrently with VS15 (so, most likely still quite some time in the future, I’m guessing a year) or out of band (so, in 3 months, maybe 6 months)?
Would it be possible to update https://github.com/Microsoft/dotnet/blob/master/releases/net462/dotnet462-changes.md with publicly available issue numbers / KB-numbers? As far as I’m aware, the TFS-numbers are only Microsoft-internal and have no relation to publicly available trackers, correct?
This information would be very much appriciated.
Many thanks, Michael
There is not publicly available issue number for most of those. The TFS issue number is still useful for reference if you need to investigate with support about a specific fix.
Hello Bertrand,
thanks for the update!
Best regards, Michael
Follow up:
Internally, we have identified the following hotfixed needed on top of .NET 4.6.1:
* KB3098786
* KB3093266
* KB3083185 (Windows 8.1, Windows Server 2012 R2)
* KB3083184 (Windows 8, Windows Server 2012)
* KB3083186 (Windows 7 SP1, Windows Server 2008 R2 SP1, Windows Vista SP2, Windows Server 2008 SP2)
* KB3081436 (Windows 10)
Could you please document which of those are are part of the .NET 4.6.2 release?
AES-GCM would be tremendously useful for authenticated encryption.
AES-CTR would be very useful to do away with padding. This constantly trips people up and might even lead to padding oracles.
Hey Tobi,
AES-GCM is definitely on our TODO list, for .NET Core (CoreFx) it is tracked at https://github.com/dotnet/corefx/issues/7023.
AES-CTR is more difficult logistically, since that isn’t a mode that our underlying provider supports (https://msdn.microsoft.com/en-us/library/windows/desktop/aa376211%28v=vs.85%29.aspx#BCRYPT_CHAINING_MODE).
A bunch of good news!
Just a question about the Soft Keyboard support for WPF. The problem wasn’t just the opening/closing of the keyboard, but sometimes the textbox was covered by the overlapping keyboard. Does the new feature shift the viewport according to the actual useful area?
Thanks.
Thanks for review and feedback. The Soft Keyboard feature will not add the functionality of shifting viewport at the framework level. We think apps are best place to handle this, more guidance/samples on how to achieve the desired scenario(s) at an individual app level will be shared in coming months.
Any news in this topic? There are some oficial samples for scrolling view to not cover by soft keyboard for Windows Store/UWP apps with InputPane class f.e https://code.msdn.microsoft.com/windowsapps/keyboard-events-sample-866ba41c/ or https://msdn.microsoft.com/en-us/windows/uwp/input-and-devices/respond-to-the-presence-of-the-touch-keyboard (and standard TextBox in UWP has this feature), but I haven’t found any with WPF.
Is it any solution: http://stackoverflow.com/questions/24517936/soft-keyboard-overlaping-control-wpf-desktop ?
Will there be a fix for http://stackoverflow.com/questions/36044796/any-way-to-workaround-wpfs-calling-of-gc-collect2-aside-from-reflection? This “feature” cannot be turned off. It basically means that a WPF application which updates some icons from time to time will cause a forced GC every 850ms or 30s. This totally ruins the user experience for a x64 WPF app with 2-3 GB of memory because this basically blocks all threads and turns in effect off background garbage collection.
We have made improvements in .NET 4.6.2 for these scenarios. We recommend trying out 4.6.2 preview build. If the issue still occurs on 4.6.2 Preview, please file a report at http://connect.microsoft.com/.
Yes .NET 4.6.2 has finally got rid of the WPF MemoryPressure class. That is a great move! I have added an answer to this SO question which contains more details and measurements: http://stackoverflow.com/questions/36044796/any-way-to-workaround-wpfs-calling-of-gc-collect2-aside-from-reflection/36592700#36592700
Nice for the article! Thanks
http://www.iransaffrons.com
Hey,
Is it already possible to reference a UWP component in a .NET Desktop app with the preview of the .NET 4.6.2 Framework and VS ’15’? I just tried and it always ends with the message “unable to add a reference …”.
Hi,
thank you for the per-monitor improvements for WPF applications.
We have one issue though with an WPF application that uses the System.Windows.Controls.WebBrowser control (embedded IE11). When this WPF application is run on a system with e.g. 150% DPI settings, while the WPF window with its controls scales correctly, the embedded WebBrowser still has a zoom factor of 100% which means the font in the HTML pages is small, and the user has to manually zoom with Ctrl+Mousewheel, whereas when starting IE or Edge directly, they have the correct zoom factor.
Are you able to change the WPF WebBrowser control so it has the correct zoom factor, or is there another way to set the zoom?
Thanks!
Hey there! I’ve been reading your blog for some time now
and finally got the bravery to go ahead and give you a shout out from
Humble Tx! Just wanted to tell you keep up the fantastic
job!
Should we be concerned that this update is being couched as a “preview”?
Preview means BETA in my world. Is there an expected release of the non-preview version of .NET 4.6.2.
If we build against the preview version of .NET 4.6.2, what are the ramifications?
We really need the Memory Pressure fix. Does the preview have a “go live” license so we can add it to our installer and redistribute? Or, if not, can we expect a release(able) version soon?
Thanks,
Henrik
Us WPF developers love you guys. For shizle! ^-^
By any chance does any of the new WPF enhancements (such as UWP) extend to XAML Browser apps (AKA XBAP)? Are there any plans to make XBAP work in the Edge browser one day?
Dear blog author, are you still here? Please close comments when you’re not checking in anymore to make it clear that you don’t care about your users. Otherwise we’re hanging on, waiting for the important bugfixes of the new version. Should I start going the uncomfortable path of native hacks for per-monitor DPI support in WPF, or is 4.6.2 just around the corner? My customer needs a solution.
Any update on this? When can we expect this – our customers are clamoring for automatic touch keyboard in WPF
anyone there? anyone?
No one hears your screams, or cares.