Microsoft recently revamped the core architecture of ASP.NET, and replaced the popular web application framework with ASP.NET Core. In addition to being leaner and modular, ASP.NET Core is also open source and cross-platform. Hence, developers can run ASP.NET Core applications on three distinct platforms – Windows, OS X, and Linux.
Also, they can use the redesigned web framework to build a variety of cloud-based web applications including websites, mobile backend and Internet of Things (IoT) applications. Microsoft further allows programmers to simplify and speedup development of these cloud-based web applications by taking advantage of a number of widely used third-party development tools.
The developers also have option to deploy the ASP.NET Core applications in a number of ways and choose from an array of hosting options. They can deploy the framework as part of the application and in the same destination folder. The multiple deployment options make it easier for programmers to optimize the functionality and performance of the ASP.NET Core application by choosing the right deployment option.
Evaluating Various Options to Publish ASP.NET Core Applications
Publishing Self-Contained Apps
The self-contained applications run just like normal native executables on Windows, Linux or OS X. Also, it contains everything required to run smoothly on each platform runtime. Hence, the programmers can publish the self-contained apps without pre-installing .NET Core. They need to publish the app by targeting the full .NET Framework and using the existing .NET dependencies. However, the self contained applications are relatively larger, and start slowly due to just in time (JIT) execution.
Deploying to IIS
Like ASP.NET applications, the ASP.NET Core applications can also be published to IIS. But the developers have to pre-install the .NET Core Windows Server Hosting bundle on the server to publish the application efficiently to IIS. Likewise, they have to point IIS to the web root folder (wwwroot) of the application. They can use the IIS-host tool to make the deployment process fast and hassle-free. Alternately, the developers can also deploy the ASP.NET Core application to IIS with Web Deploy by following a set of steps.
Deploying to Azure
The WebDeploy tool included in Visual Studio enables programmers to deploy ASP.NET Core applications directly to Microsoft Azure. The developers can further automate the entire deployment process by using generated scripts. However, they need to pre-install t Azure SDK for Visual Studio if Visual Studio is not installed on the system. The developers also have option to deploy the ASP.NET Core application directly to Azure through the continuous deployment option provided by Visual Studio.
Deploying to Linux
The developers can also deploy the ASP.NET Core applications on Linux platform. But they must have access to an Ubuntu 14.04 Server to deploy the application on Linux. Hence, new developers must create a standard user account, and obtain sudo privilege to access Ubuntu 14.04 Server. Also, they need to package the entire application into a self-contained directory, and copy the application by integrating all required tools into the workflow.
Deploying with Docker
The developers can also publish ASP.NET Core applications to Azure by using a lightweight container engine like Docker. But they have to follow a number of steps to set up Azure Docker Host VM as a prerequisite. Once the Azure Docker Host VM is configured, they can easily publish the application by using a set of tools provided by Visual Studio 2015.
In addition to providing a cloud ready setup for publishing applications, ASP.NET Core also supports cloud based environment based configuration. It further allows developers to deploy application smoothly by using a variety of third-party tools. But the developers must pick the tool according to their choice of deployment option and platforms. The combination of the right deployment option and robust deployment tools will enable developers to host the ASP.NET Core application efficiently.