.NET Changes for the ASP.NET MVC Developer
Summary #
Timeline #
- .NET 4, 4.5, 4.5.1 - 01/12/2016 - End of Support
- .NET 4.6.1 - 11/30/2015 - Minor Release
Incremental improvements and cleanup from .NET 4.6 - .NET 4.6 - 07/20/2015 - Major Release
Convergence of several multi-year projects for performance, consistency, new features and streamlining ASP.NET APIs - .NET 4.5.2 - 05/05/2014 - Minor Release
Profiling, debugging, tracing, minor improvements for ASP.NET - .NET 4.5.1 - 10/17/2013 - Minor Release
Changes to support powerful development tools/features in VS2013 - .NET 4.5 - 08/15/2012 - Major Release
ASP.NET 4.5, background GC, JIT compilation, major improvements across each library in the .NET Framework
Upgrading #
The Case for Upgrading from 4 to 4.6.1 #
- Microsoft support is ending for .NET 4, 4.5, 4.5.1
- Likely to see performance improvements: speed of execution and reduced CPU, memory usage
- Enable compiler to use any optimizations in generating IL available from 4 to 4.6.1
- Bring new and legacy applications to the same runtime version to reduce the necessary amount of team knowledge of quirks and differences between runtime versions
Changes are Generally Backwards-Compatible, but not Forward #
.NET 4.6.1 - Nov 30th, 2015 #
This is a minor release, of incremental improvements and cleanup from 4.6 changes. Small impact for ASP.NET MVC Developers.
Announcement #
Breaking Changes #
No major breaking changes for ASP.NET MVC.
Most Significant Improvements for ASP.NET MVC Developers #
- Better support for Azure SQL Database
- “Many other performance, stability, and reliability related fixes in RyuJIT, GC, WPF and WCF.”
Other Major Improvements #
- WPF Improvements
- Enhanced support for Elliptic Curve Digital Signature Algorithm (ECDSA) X509 certificates
Complete Change List #
ASP.NET-Specific Changes on GitHub
.NET 4.6 - Jul 20th, 2015 #
This is a major release, coinciding with the release of Visual Studio 2015, especially focused on performance improvements with the new JIT compiler, the new Roslyn compiler, garbage collection, assembly loader. Streamlining ASP.NET by unifying Web Forms, MVC, Web API.
Announcement #
.NET 4.6 Announcement
ASP.NET 4.6, ASP.NET 5 Announcement
Breaking Changes #
- HtmlTextWriter.BeginTag - The BR tag now produces one line break. Previously, it produced two line breaks.
- Product Versioning scheme for the .NET Framework has changed, might affect you especially if you are detecting the installed version in your application
Most Significant Improvements for ASP.NET MVC Developers #
- RyuJIT - new Just-In-Time Compiler for .NET - 5 year project
- Simultaneous release of Roslyn v1. There will always be a compiler update whenever a new version of .NET is released so that the compiler is aware of any changes or new APIs in the Base Class Library - 6 year project
- Garbage Collector latency and memory utilization, especially when using pinned objects
Memory improvement for CLR Assembly Loader
-
ASP.NET 4.6
- Support for HTTP/2 (2nd version of HTTP protocol designed to reduce latency in web pages) on Windows 10 with IIS
- Easier connections to Azure AD
- Support for token-binding protocol (makes it hard to copy cookies from one computer to another to gain access)
- Plethora of edge-case bug fixes
- JSON, HTML, Javascript editor improvements
ADO.NET now supports Always Encrypted feature of SQL Server 2016
DateTimeOffset four additional methods to easily convert between UNIX time
Release of ASP.NET 5
Release of .NET Core, supporting the following workloads: ASP.NET 5, Windows 10 UWP and Console apps
Helpful bug fixes #
- Bug fixes for MemoryCache implementation
- SqlException can be caught. [1112280]
- SQL connection strings greater than 779 characters don’t cause application crash. [1109784]
- Fixed serialization and de-serialization of DateTime with daylight savings and special values. [1087198]
Other Major Improvements #
- Small features added for Async
- System.Security.Cryptography APIs add support for the Windows CNG crypto APIs
- WCF now supports SSL version TLS 1.1 and TLS 1.2, in addition to SSL 3.0 and TLS 1.0
- WPF HDPI and Touch Improvements
- .NET Native (mostly for phone apps) that compiles directly to native code instead of to IL code
Complete Change List #
ASP.NET-Specific Changes on GitHub
.NET 4.5.2 - May 5th, 2014 #
Minor Release, on a faster cadence, with profiling, debugging, tracing improvements, and a couple of minor features for ASP.NET.
Announcement #
Breaking Changes #
- Major - enableViewStateMac attribute of pages element can’t be set to false
- Minor - EF query optimization changes
Most Significant Improvements for ASP.NET MVC Developers #
- New APIs for interacting with request headers from the request and on the response
- New HostingEnvironment.QueueBackgroundWorkItem method that lets you schedule small background work items. ASP.NET tracks these items and prevents IIS from abruptly terminating the worker process until all background work items have completed. These will enable ASP.NET applications to reliably schedule Async work items.
Other Major Improvements #
- Profiling and activity tracing features
- WPF - High DPI Improvements
Complete Change List #
[MSDN}(https://msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx#Anchor_2)
.NET 4.5.1 - Oct 17th, 2013 #
This is a minor release focused on customer feedback, with a simultaneous release of Visual Studio 2013. The bulk of the improvements were to support new tooling functionality in Visual Studio.
Announcement #
Breaking Changes #
- Medium - ObjectContext.ExecuteStoreQuery now supports enumerations, but if application is expecting result to be zero, error could result
- Minor - If an app that was compiled with the anycpu option includes an x86 reference, it will raise a warning, because it could cause runtime failure
- Minor - Bug fixes for System.Uri
- Minor - No longer possible to connect to a SQL Server 2007 Database Server
- Minor - Change to SqlBulkCopy match encoding of destination column
- Minor - Change to CreateDatabase and DeleteDatabase behaviors
Most Significant Improvements for ASP.NET MVC Developers #
- Release of VS2013 with a lot of tooling improvements, esp for debugging
- ADO.NET will automatically attempt to reconnect on lost connection
- ASP.NET App Suspend - basically a low-memory state in IIS, waiting for requests so you can pack a lot more sites onto a single server without the really slow startup time of an “inactive” site
- Multi-core JIT (MCJ) for ASP.NET to reduce cold startup time
- Automatic binding redirection for assemblies
Other Major Improvements #
- Edge-case benefit of better memory management/GC for Large Object Heap
- Adding MU support for .NET Framework NuGet Packages especially for enterprise customers
- Faster app startup after a .NET Framework update
Complete Change List #
.NET 4.5 - Aug 15, 2012 #
Major Release, significant contributions across the board on each major area of the .NET Framework: .NET CLR, ASP.NET, WPF, WWF, WCF.
Announcement #
Breaking Changes #
- Minor - Task.WaitAll methods with time-out arguments
- Minor changes to ASP.NET see the Docs for more details
Most Significant Improvements for ASP.NET MVC Developers #
- Release of ASP.NET 4.5
- Better performance through background garbage collection for servers
- Background just-in-time (JIT) compilation
- Ability to limit how long the regular expression engine will attempt to resolve a regular expression before it times out
- Asynchronous file operations
- Major improvements to running, writing, and debugging parallel code
- Better support for international URIs and Domain Name parsing
Other Major Improvements #
- Support for arrays that are larger than 2 gigabytes (GB) on 64-bit platforms
- Major improvements for writing WCF services
- .NET for WIndows 8.x Store apps
- Portable Class Libraries
- Significant improvements to WPF
- Significant improvements to WWF
- Reduce system restarts required when installing .NET 4.5 applications in Windows