Introducing a new article series: Building and auto-deploying an ASP.NET Core application with EF Core 5.0
Over the past couple of weeks I have been working on a new article series on building and auto-deploying an ASP.NET Core application using ASP.NET Core 5.0, Entity Framework Core 5.0, Git, GitHub and Azure DevOps. Just this week I wrapped up the last article and the series is now done! I've published the first article in the series today, and the remaining 6 parts will come online in the coming weeks.
In the series, that targets developers that are fairly new to DevOps, I'll show you in detail how to deploy an ASP.NET Core web site using Entity Framework Core to a remote machine such as a VM or an Azure App Service using modern CI/CD techniques where your web site is automatically built and optionally deployed every time you check in code in your GitHub-backed Git repository. As part of the release process, the database is automatically upgraded to the latest schema version.
Overview of the series
Here are the topics discussed in each article in the series:
Part 1 - Introduction
In this article I provide an overview of developing a web site using a CI/CD workflow. You'll get an introduction and learn what CI/CD is, and how to set up the necessary accounts for services like GitHub, Azure DevOps and the Azure Portal to follow along with the articles. Read the article now.
Part 2 - Creating the web application
In part 2 I'll show you how to create a simple ASP.NET Core 5.0 MVC application that uses EF Core 5 as the database technology. All the application will do is display some data from a table. The main focus of these articles is on how to deploy the application and its database schema, so the application itself will have no additional features. But the application will be complex enough from a setup perspective to demonstrate enough challenges, like dealing with EF in a separate class library, configuring the generated database and deploying schema changes as the application evolves. Read the article now.
Part 3 - Using GitHub and managing change in your application
Part 3 in the series shows you how to work with Git and GitHub to manage your source code. Read the article now.
Part 4 - Setting up a CI pipeline in Azure DevOps to build and test your code
In part 4 I'll build the first pipeline in Azure DevOps to take the latest copy of the source code, build it and store the results back in Azure DevOps so it's available when releasing the site to a production server. As part of that process, it generates SQL scripts using EF Migrations that can be run to update the database automatically as part of the release phase. It also shows you how to automatically run your unit tests as part of the build process. Read the article now.
Part 5 - Set up a CD pipeline - Deploying your site to a VM with Web Deploy
Part 5 and 6 are similar in that they show you how to deploy a web application to a remote server or service using an Azure DevOps release pipeline. In this part, you'll see how to deploy to one of your own servers running IIS, Besides deploying the application you'll also see how to set up and configure your database, how to deploy schema changes during subsequent releases and how to manage and update connection strings as part of the release. By the end of this article you have a setup where you can write code in Visual Studio and sync it with GitHub, to then automatically update your application and its database to your server without any manual intervention. Read the article now.
Part 6 - Setting up a CD pipeline: Deploying your site to an Azure App Service
Part 6 is similar to the previous article but now the focus is on deploying an application to an Azure App Service. Besides deploying the application you'll also see how to set up and configure a SQL Azure server and database, how to deploy schema changes during subsequent releases and how to manage and update connection strings as part of the release. By the end of this article you have a setup where you can write code in Visual Studio and sync it with GitHub, to then automatically update your application and its database in Azure without any manual intervention. Read the article now.
Part 7 - Improving your builds with a custom build agent
The article series closes with two topics to improve your build and release processes. The first part shows you how to install your own build agent to speed up the build and test phase of your pipeline. The second part discusses how to use Azure Deployment Slots to minimize downtime of your production sites when using Microsoft's cloud platform. Read the article now.
Purchasing the series
Part one is already online, and I'll publish the remaining ones in the coming weeks. If you would like to read the entire series now, you can purchase it for $8 using one of the methods below. The full PDF document for the entire series spans more than 75 pages; 86 to be exact, but that includes the cover page and a number of pages with links / footnotes.
Buy me a coffee
The simplest way to get the series is to "buy me two or more coffees", using this page: https://www.buymeacoffee.com/imar/. Once I have received your payment I'll send you the PDF document to your e-mail address (make sure you specify it on the Buy me coffee transaction).
If you prefer PayPal, click the Buy Now button in the form below to go the PayPal website where you'll find a variety of payment methods to complete your purchase.
Finally, anything purchased from my Amazon wish-list qualifies as a payment for the article series. You can find my wish-list here: https://www.amazon.com/hz/wishlist/ls/1I8QG3UOD16GU?ref_=wl_share
If you have any questions about the article series or how to purchase them, or have ideas on how to improve the series, be sure to let me know!
Where to Next?
Wonder where to go next? You can post a comment on this article.
Links in this Document
Talk Back! Comment on Imar.Spaanjaars.Com
I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.
When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.
If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the Doc ID of the document.
Please correct the following errors:
Unfortunately, something went wrong and your message or comments have not been submitted successfully.
There's a fair chance things broke down because you tried to post something that looks like HTML. Things that look like HTML include (X)HTML, obviously, XML, ASP.NET markup and c# generics syntax as all of them use the < and > characters.
If that's the case, try altering your message and remove anything that looks like an angled bracket. You can replace them with [ and ] for example so you can still make it look like HTML to some extend.
If, on the other hand, you were trying to spam this web site, I am pretty glad I caught you in the act and stopped you from doing so ;-)
Also, please don't use links in your posts; I had to block them to filter out most of the junk mail I am receiving.