Deployment for ASP.NET Core
.NET Core applications can either run as a command line program with Kestrel, or under IIS. Basically, you can create two types of ASP.NET Core deployments:
- Framework-dependent deployment. As the name implies, framework-dependent deployment (FDD) relies on the presence of a shared system-wide version of .NET Core on the target system. Because .NET Core is already present, your app is also portable between installations of .NET Core. Your app contains only its own code and any third-party dependencies that are outside of the .NET Core libraries. FDDs contain .dll files that are launched by using the dotnet utility from the command line. For example, dotnet app.dll runs an application named app.
- Self-contained deployment. Unlike FDD, a self-contained deployment (SCD) doesn’t rely on the presence of shared components on the target system. All components, including both the .NET Core libraries and the Core runtime, are included with the application and are isolated from other Core applications. SCDs include an executable (such as exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET Core host, and a .dll file (such as app.dll), which is the actual application.
Why Should ASP.NET Core Technology Teams Know About Docker?
Docker is actually a platform that facilitates the deployment of software in containers. The Docker website provides a helpful definition of containers and the important role they play in software development:
“A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment.”
A container is a software component that sits on top on another piece of software in an isolated environment. The container can be used to create an isolated environment in which to develop, test, and launch software.
Then, whether deployed on Linux or Windows-based machines, the containerized applications will run smoothly on them despite any customized settings that differ from the environment in which their code was written and tested.
Use of Hyper-V, VMWare, or other activated virtualization tools are required in order to use containers.
The 5 main benefits of Key Benefits of Docker include CI, Version Control, Portability, Isolation and Security
Use Visual Studio to automatically generate a CI/CD pipeline to deploy an ASP.NET Core web app with Docker to Azure
ASP.NET Core is a lean and composable framework for building web and cloud applications, which can be deployed to Docker containers running on an Azure Container Service. Visual Studio 2017 RC.3 and newer with the Continuous Delivery Tools for Visual Studio extension provide an easy way to set up a full continuous integration (CI) and continuous deployment (CD) pipeline for such applications.
Continuous integration means starting an automated build (and possibly running tests) whenever new code is committed to or checked into the team project’s source control repository. This gives you immediate feedback that the code builds and can potentially be deployed. Continuous delivery (or deployment) means starting an automated deployment process whenever a new successful build is available.