Choosing a Host Operating System - Developing and Deploying .NET Applications on AWS

This whitepaper is for historical reference only. Some content might be outdated and some links might not be available.

Choosing a Host Operating System

Although Windows remains the natural choice for legacy applications using the .NET Framework, the cross-platform nature of .NET 5 means Linux is now an equally viable choice for new and future .NET applications. One of the challenges in choosing an OS is that they have broadly reached a state of commoditization. The current focus on OS evolution is largely about increased efficiency of resource use, as shown by the growing popularity of containers, and the future lure of library operating systems.

Another factor driving the choice of OS is the current architectural wisdom to explicitly declare and isolate dependencies, as promoted by the 12-factor app approach, which also aligns to the single process model of containers. Given the rich set of services built into Windows, it is common for legacy .NET Framework applications to implicitly depend on a variety of services, such as Active Directory for authentication and authorization, COM+ for distributed transaction processing, or Distributed File System (DFS) for file sharing. However, with the move toward explicitly declaring and isolating such dependencies, relying on Windows’ intrinsic features no longer holds the lure for .NET applications that it once did.

.NET 5 also makes it possible to avoid licensing cost and implications of the Windows operating system. .NET applications liberated from underlying operating system (OS) license restrictions can easily scale in and out to address contemporary IT demands.