Scott Hanselman

Migrating this blog to Azure. It's done. Now the work begins.

October 08, 2020 Comment on this post [13] Posted in ASP.NET | Azure
Sponsored By

imageI have been running this for almost 20 years. Like coming up on 19 I believe.

Recently it moved from being:

  • a 13(?) year old .NET Framework app called DasBlog running on ASP.NET and a Windows Server on real metal hardware


Finally. This blog, the main site, and the podcast site are all running on Azure Web Apps, built in Azure DevOps, and managed by Azure Front Door and watched by Application Insights. Yes I pay for it with cash, I have no unlimited free Azure credits other than my $100 MSDN account.

Mark and I have been pairing on this for months and having a wonderful time. In fact, it's been about a year since this started.

Moving this blog is a significant achievement for a number of reasons, IMHO.

  • If we did it right:
    • you didn't notice anything
    • The URLs look cooler.
    • We broke nothing in SEO.
    • Perf is better.
    • Before I could deploy the site a few times a year, and was afraid of it. Yesterday I deployed 11 times.
  • It was .NET 1.1, then 2.0, then 3.5, then 4.0, then stuck for 8 years.
    • It ran on a real Windows Server 2008 machine (no VM) at Sherweb who has been a great partner for years. Extremely reliable hosting!
    • Now it's on Azure under Linux
  • We upgraded the ASP.NET WebForms app to ASP.NET Core with Mark's genius idea of splitting the app responsibilities such that the original DasBlog blog templating language could be converted to simple Razor pages and we could use ASP.NET TagHelpers to replace WebForms controls.
    • This allowed me to port my template over in a day with minimal changes.
    • Once it compiled under .NET Core it was easy to move it from Windows to Linux and testing in WSL first.
    • We then just moved the other dependent projects to .NET Standard 2 and compiled the while thing as a .NET Core 3.1 LTS (Long Term Support) app. In fact, scroll down to the VERY bottom of this page and you can see what version we're on.
  • I set up CI/CD for the main site, this blog, and
    • There are 3 sites now, all behind a reverse proxy from Azure Front Door to handle SSL, Firewalls, and more.

Next steps? Keep it running, watch for errors, 5xx and 4xx and make small incremental changes. The pages are still heavy, while ASP.NET has server response time under 20ms, there's still 2 sec of JavaScript and bunch of old crap to clean up. I've also got two decades of links, so I'm fixing 404s as they are reported or they show up in Application Insights. I made a Dashboard here:


I'm going spend the next month or so blogging about the process and experience in as much detail as I can.

Here's some articles I've already written on the subject:

If you find any issues with this blog like

  • Broken links and 404s where you wouldn't expect them
  • Broken images, zero byte images, giant images
  • General oddness

Please file them here and let me know!

Oh, and please subscribe to my YouTube and tell your friends. It's lovely.

Sponsor: Never miss a beat with Seq. Live application logs and health checks. Download the Windows installer or pull the Docker image now.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Hosting By
Hosted in an Azure App Service
October 13, 2020 12:24
Very interesting, curious if it is cheaper than your old hosting.
October 13, 2020 12:43
I dont think it will be cheaper than old hosting , but still wanted to hear it from Scott :)
October 13, 2020 15:50
Hi Scott,
Can you give us more details about your azure infrastructure on which your running the blog? I'm asking because I want to run mine on azure also and I don't know what to use.
What web app and database are you using?

Thank you,
October 13, 2020 15:56
RSS feed still have link to share URL via Google+ which is long dead.
October 13, 2020 17:28
Judging by these comments, there is one semicolon to many somwhere as I don't think all of the commenters used a semicolon at end their comment...
October 13, 2020 17:44
Congrats! The only "glitch" I noticed was the RSS feed flooded with a bunch of "new" old posts. No big deal - just gave away the fact that you changed something.
October 13, 2020 17:47
I've noticed that performance is much better.
October 13, 2020 19:57
<blockquote cite="Scott">If you find any issues with this blog like ... General oddness ...</blockquote>Oh, there is a lot of them. Comments get displaced for no reason. There are semicolons at the end of every comment. And there is a lot of spam in all comment sections.
October 13, 2020 21:56
Hi Scott just wondering why you chose to host it on Linux instead of Windows? And if there was any oddness in that part of the porting process?
October 14, 2020 1:53
Good migration project, bet it was fun :)
October 14, 2020 17:46
Congratulation on doing the migration successfully. Your site speed and performance has improved a lot and it lots very quickly. Good to know that nothing got broken on site.
October 15, 2020 19:48
I went through this process a few years ago, and then I realized I had an old podcast site still running on webforms circa 2005. That wasn't going to run on a Linux app service, obvs. :) It's more than adequate for me, as I'm not doing tags and all the things that we thought mattered when blogs were bigger than the Twitter. Of course I open sourced it, because one is a lonely number. <a href=""></a>
October 29, 2020 18:31
So I would you to use Magento CMS. For better support solutions, speed, security, and performance, you will have to migrate. And, the sooner you do it, the better it is for you. Make the move now so that you can afford to spend some time learning the new technology. Also there a lot of useful extensions can check in this article <a href=""></a>

Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.