So it is done, you’ve written your very first application with the brand spanking (relatively new) .NET Core framework and you want to unleash your badass application to the market. What are your options then? As with any good answer it depends…
NOTE #1: this article only focuses on .NET Core related deployments and will not venture in broader-range deployment solutions and technologies (e.g. should I use docker, or, should I go on-prem or in the cloud). It would lead us too far away from the core (pun intended) mechanics for deployment on the .NET platform… |
NOTE #2: if you already know all of this, and just want to know how to do this in Visual Studio then aim for your scroll wheel and roll it all the way down for just that!
Deploying .NET Core Application
It’s safe to say there are a lot of options out there to get your .NET Core based application out, but which strategy is best for your project? For my own reference, I thought I’d write it up. And since we can’t let keystrokes go to waste, I though: I’ll share this on my blog and hereby try and bring some pros & cons on whichever release strategy you want to choose.
Let’s dive straight into your options in the .NET Core world
There are basically two main routes one can go when deploying a .NET Core application: framework-dependent and self-contained (or in short this application release holds your app bits, your 3rd party bits and the version of .NET Core you used to build the app).
Framework-dependent deployments essentially means you’re putting your application and any third party dependencies (which could be NuGet packages, interfaces for database communications, etc…) and deploying it on the target system.This target system needs to have the .NET Core version installed your app was built for.
Self-containted deployments essentially means you’re putting your application and any third party dependencies (which could be NuGet packages, interfaces dor database communications, etc…) as well as the .NET Core version you’ve build the application for. An SCD thus ships with (parts) of the .NET Core framework you need to run the app, it will ignore the target system’s default installed .NET / .NET Core framework. The target system does need the base prerequisites installed and maintained.
Let the battle begin: FDD vs SCD
There’s no real battle here, it’s more of a philosophy on that depends on your internal toolset, internal setup and internal workflow; or rather on the partners you work with. Either FDD or SCD have their positive and negatives, it’s up to you & the team or client to decide what path is the best for you, below are some key distinctions to take note of.
Yeah, yeah. I know all of this, so how do I do this in Visual Studio?
Ok, so you know what battle plan to choose but don’t have the required tools or no idea where to start making and FDD or SCD deployment? Head over to these links to give you step-by-step guides to accomplish what you want. Check out the complete documentation on deployment at https://docs.microsoft.com/en-us/dotnet/core/deploying/ if you need more information.
Framework-dependent deployment (FDD) step-by-step guides
- Deploying .NET Core apps with command-line interface (CLI): https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli#framework-dependent-deployment
- Deploying .NET Core apps with Visual Studio: https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-vs#framework-dependent-deployment
Self-contained (SCD) deployment step-by-step guides
- Deploying .NET Core apps with command-line interface (CLI): https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli#simpleSelf
- Deploying .NET Core apps with Visual Studio: https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-vs#simpleSelf
Looking for ASP.NET Core hosting?
While choosing a new web host, make sure you don’t make the same common mistakes that most beginners do. A few of my favorite web hosts are ASPHostPortal, HostForLIFE, UKWindowsHostASP.NET. I recently reviewed ASPHostPortal and in my opinion, they’re the best-shared host out there out of the large lot of hosts I’ve tested. If you’re curious as to why I never had to switch to another host since 2014, give my ASPHostPortal review a read.
A great place to look for a new web host is WebHostingTalk. Their members are very helpful and new members get proper guidance on choosing a web host.