Why we’re moving to .NET 4.5

Introduction

In this document we will analyze the business and development pros and cons of switching to .NET 4.5 in ApexSQL Monitor and other ApexSQL tools.

.NET is a general purpose development platform for any kind of app or workload, providing key capabilities for building high quality applications including automatic memory management and support for modern programming languages [1]. Each Microsoft Windows and Microsoft Windows Server release comes with a built-in version of .NET. To review which version is included in your operating system visit this link.

.NET adoption rates

Starting with Windows Server 2012 and Windows 8, Microsoft has inverted its strategy with regards to the default deployment of .NET framework: where before .NET 3.5 was installed by default and .NET 4.5 was optional, now .NET 4.5 became the default install and .NET 3.5 is an optional feature of the operating system (you can read more here). This means ApexSQL strategy of staying with .NET 3.5 in order to avoid burdening the customers with additional installs, which has worked for Windows Server 2003 and Windows Server 2008, will have the inverse effect of actually burdening all the customers that are migrating to Windows Server 2012, Windows 8, or newer operating systems.

Although most of our customers still use Windows 7 (see image below), which includes .NET 3.5 by default, we can’t ignore the fact that .NET 4.5 is beneficial to both developers and clients and is being used and downloaded more and more every day. To read more about .NET 4.5 adoption rates visit this link.

The pros and cons

There are multiple pros of moving to .NET 4.5 for both developers and customers, but we’ll stick to customer perspective and mention just the most important ones, such as:

  • Performance improvements
  • Consistency between all ApexSQL applications

However, there are some cons such as:

  • Inability to deploy .NET 4.5 on Windows Server 2003 or earlier versions
  • Burdening customers using operating systems prior to Windows 8 (client) or Windows Server 2012 (server) with additional installs

Each of the pros and cons will be deeply explained in the following sections.

Performance improvements

.NET 4.5 offers multiple performance improvements through various tools and code expansions. For example, the use of asynchronous operations and tasks allows developers to execute long-running operations in such a way that it doesn’t affect the customer. Some of the additional performance improvements are faster app startup after a .NET Framework update, background garbage collection for servers and many others, you can read about here. To see how these performance improvements will affect various ApexSQL applications visit The conclusion section.

ApexSQL applications consistency

Currently some of our applications use .NET 4.5 and others use earlier .NET versions. This means that every time a customer is installing any of our applications, he needs to check its requirements and install the proper version of .NET. By moving all applications to .NET 4.5, we allow customers to install .NET 4.5 once and ensure all of our applications work on that same version.

Deployment of .NET 4.5 on Windows Server 2003

One of the main cons is that the .NET 4.5 cannot be run on Windows Server 2003 and earlier versions. Previous product versions using an older .NET framework can still be found here.

Burdening customers with additional installs

All of our customers who use operating systems prior to Windows 8 will have to manually install .NET 4.5. However, by not switching to .NET 4.5 all of our customers who are using Windows 8 or Windows Server 2012 would have to install .NET 3.5. This puts us in a tough position. However, knowing all the benefits of .NET 4.5 and the fact that its installation executable is much lighter than the one for .NET 3.5, the decision is easy to make.

The conclusion

Customers of ApexSQL Log 2015 and ApexSQL Recover 2015 will have the major benefits of switching to .NET 4.5, since it allows the support for remote access without using server side components. This means that it replaces extended stored procedures that were previously installed on Microsoft SQL Server instances. Additionally, customers of ApexSQL Monitor, ApexSQL Audit, and ApexSQL Manage already benefit from performance improvements related to Windows communication foundation (WCF). As ApexSQL Restore is based on the Minifilter driver, the release including the new .NET 4.5 will have better performance due to Kernel driver bug fixes. Customers of ApexSQL Generate also benefit from improved performance, achieved by using asynchronous operations and tasks.

To sum up, even for the customers who would have to install .NET 4.5 on their machines, the good news is that .NET 4.5 installation executable is much lighter and easier to install than the one for .NET 3.5 (48 MB compared to 231 MB). Additionally, .NET 4.5 offers a high level of backward compatibility, meaning that applications and components built with previous versions will work without modification on the .NET Framework 4.5 [2].

[1] – Get Started
[2] – Version Compatibility in the .NET Framework

August 29, 2013