In this post, Application Developer Managers, Joe Irizarry and Reed Robison provide an update on .NET – spanning new announcements, roadmap updates, and important support lifecycle changes.
First and foremost, be sure you are ready for the important .NET and IE lifecycle transitions that take effect in January 2016. These are big changes and may require some planning and preparation on your behalf.
Beginning January 12, 2016, Microsoft will only support .NET Framework 4.5.2 or higher in the .NET 4.x range. This latest version of the .NET Framework offers new workflow capabilities, advanced diagnostics, performance improvements, and also a homogeneous update requiring no recompilation when upgrading from the .NET 4.x. Microsoft recommends that customers who use the .NET Framework 4, 4.5 and 4.5.1 to proceed with the update to the .NET Framework 4.5.2 before January 12, 2016. This announcement does not impact .NET Framework versions prior to 4. Nearly everything you can think of asking is covered in the .NET Framework Support Lifecycle Policy FAQ.
It’s also important to note that only the most current version of Internet Explorer available for a supported operating system will receive technical support and security updates starting in January 2016.
Windows 10 .NET Framework Support:
- .NET 3.5 based on the current supported patches and versions (not installed by default)
- .NET 4.x based on the currently supported patches and versions
Please refer to http://microsoft.com/lifecycle for up-to-date information.
The .NET Framework 4.6 includes a wealth of new features and platform improvements. For a detailed list, check out What’s New. Here are a few highlights:
- ASP.NET 5 is a lean .NET platform for building modern cloud-based apps. The platform is modular so you can include only those features that are needed in your application. 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. It includes a new environment configuration system that is designed for cloud deployment. MVC, Web API, and Web Pages are unified into a single framework called MVC 6. You build ASP.NET 5 apps through the new tools in Visual Studio 2015. 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.
- The .NET Framework 4.6 will include the new 64-bit JIT which significantly improves the JIT time for 64-bit applications. The new JIT is available to all 64-bit .NET 4.x applications running on a machine where the .NET Frame 4.6 is installed, even applications who’s compilation is targeted at previous 4.x versions of the .NET Framework.
- ADO .NET now supports the Always Encrypted feature available in SQL Server 2016 Community Technology Preview 2 (CTP2).
- Many new APIs have been added around to .NET Framework 4.6 to enable key scenarios (IReadOnlyCollections, CultureInfo, GC, SIMD-enabled types, Cryptography, Unix date/time conversions, compatibility switches, TAP, and event log support for EventSource)
- WPF includes better support for HDPI, touch, and transparent child windows.
- 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. WCF also supports sending messages using different HTTP connections (via connection group prefix and different channel factories)
- Additional improvements include networking, WWF, resizing of form controls, code page encoding, .NET Native, and open-source packages on GitHub.
.NET Roadmap Revisited
There have been many announcements about .NET Core, CoreCLR, .NET Foundation, etc. If this makes you uneasy about Microsoft’s commitment to .NET, fear not. We’re continuing to invest in the .NET Framework and believe it’s one of the very best ways to build applications on Windows. It’s also important to note that WPF is still one of Microsoft’s premier desktop application development frameworks and that WPF will continue to receive investments. That said, Microsoft is making it easier for more developers to leverage our technologies and play well with other platforms.
You have probably also heard about .NET Being Open Sourced. Let’s dig into some “buzz words”:
- The .NET Foundation is an independent organization to foster open development and a community to improve the .NET Ecosystem, engage the community and encourage innovation.
- .NET Core is a new modular development stack which will be the foundation for future .NET platforms. It is already the platform for ASP.NET 5 and .NET Native. Another focus of .NET Core (aside from being modular) is that it is enabling .NET to run on more than just Windows, building a cross platform .NET ecosystem. .NET Core is open source allowing the community to help iterate and provide a closer feedback loop yielding a more agile development environment than before.
- CoreCLR is the open source CLR that actually loads the MSIL DLLs generated by .NET Language Compilers and JIT’s out the Machine Code which actually executes on the processor. It manages memory, and includes the new 64-bit JIT (which is also included in the .NET Framework 4.6).
With so much talk about the new .NET Core stack it can start to raise the question, “What about the .NET Framework?”
“The .NET Framework is still the platform of choice for building rich desktop applications and .NET Core doesn’t change that. For Visual Studio 2015 our goal is to make sure that .NET Core is a pure subset of the .NET Framework. In other words, there wouldn’t be any feature gaps. After Visual Studio 2015 is released our expectation is that .NET Core will version faster than the .NET Framework. This means that there will be points in time where a feature will only be available on the .NET Core based platforms.
We’ll continue to release updates to .NET Framework. Our current thinking is that the release cadence will roughly be the same as today, which is about once a year. In these updates, we’ll bring the innovations that we made in .NET Core to the .NET Framework. We’ll not just blindly port all the feature work, though – it will be based on a cost-benefit analysis. As I pointed out, even additive changes to the .NET Framework can cause issues for existing applications. Our goal is to minimize API and behavioral differences while not breaking compatibility with existing .NET Framework applications.
Be prepared for what’s next!
- Test Applications on the .NET Framework 4.5.2
- Prepare for January 2016 by testing applications on machines with the .NET Framework 4.5.2 installed. You do not need to re-target or re-compile your applications, simply install the .NET Framework 4.5.2. In most situations your application will work without any changes.
- NOTE: The .NET Framework 4.x updates are in-place upgrades meaning that older 4.x versions of the .NET Framework will be overwritten with the new version you are installing.
- If you have interest in running 64-bit .NET desktop applications look at .NET Framework 4.6 to take advantage of the improved 64-bit JIT
- You can run an application targeted for an older 4.x version of the .NET Framework while still taking advantage of the new 4.6 64-bit JIT (although you wouldn’t be able to leverage the other new features in the .NET Framework 4.6)
- .NET Core
- Keep an eye on the .NET Core advancements and innovations and plan to leverage where appropriate. Today ASP.NET 5 and .NET Native are two examples.
- Remember that although the .NET Framework’s release cycle may be slower, where deemed appropriate the innovations from .NET Core will be brought into the .NET Framework.
- WPF Roadmap
- CoreCLR Announcement
- Introducing .NET Core
- .NET Core Open Source
- What's New in the .NET Framework 4.6
- Visual Studio 2015