February 24

Passed AZ-500: Microsoft Azure Security Technologies

Yep, you’ve read that right. I have passed the AZ-500: Microsoft Azure Security Technologies exam. When I did that, I got an email saying I won the following prize:

Microsoft Certified: Azure Security Engineer Associate

It’s been awhile since I picked up the Microsoft Certified: Azure Solutions Architect Expert. It feels good to get another one. Specifically, the feeling you get when you click “Finish Test” in the exam, your score is displayed, and you passed.

I had the following question on BJSS’s Slack this morning:

What practice exams did you do @Tony Cardella ? Any recommended learning materials ?

Sean D.

Excellent question and one that I’ve had before starting exam prep. Starting from scratch is a little daunting so I hope this helps point someone in the right direction.

By themselves, no bullet point covers all the bases, rather each one provides a slightly different perspective on the exam. I do want to make sure I call out John Savill’s Technical Training YouTube channel for the excellent video he put together. The video is almost 3 hours long and it looks like he filmed it in a single take. Respect.

So what’s next? I’m not sure yet. I’m flirting with the idea of taking Exam DP-900: Microsoft Azure Data Fundamentals. I’m open to other ideas though. Got an idea? Let me know.

June 13

Deploying an ASP.NET Project From a Multi-Project Solution Using GitHub Actions

I’ve been studying for the AZ-400: Designing and Implementing Microsoft DevOps Solutions exam. As part of the preparation for that exam, you build a bunch of CI/CD pipelines. Every example given has a GitHub repo with 1 solution and 1 web project. That’s great for demoware, but we aren’t writing demoware.

Let’s say you have a website you wrote about 10 years ago using an earlier version of ASP.NET (read that as non-.NET Core) that you want to modernize/revamp. The approach I took was to create a new ASP.NET Core web project next to the older version of the website in a single solution.

The idea is that I could take my time moving parts from the old project to the new and still have a running version of the old website. Putting my DevOps hat on, I wanted to create a CI/CD pipeline using GitHub Actions. I started building the pipeline using the examples available in the Azure/webapps-deploy repo. I got the pipeline to successfully execute, or at least run with no errors. It was deploying the entire solution directory! Well, that ain’t gonna work.

For the purposes of this project, I just want to deploy the ASP.NET Core project. Using the .NET Core CLI, we can build the entire solution or individual projects.

We need to build the ASP.NET Core project only. In this example, we are using the Release configuration and I’ve told it not to restore NuGet packages because I did it in a previous step (not included in this blog post).

    - name: Build
      run: dotnet build ./NewWebsite/NewWebsite.csproj -c Release --no-restore

Next we need to gather the output for the project to be deployed. This example will publish the output of the NewWebsite project into a directory called publish located in the root of the repository. It will do it with the Release configuration.

    - name: Publish
      run: dotnet publish ./NewWebsite/NewWebsite.csproj -o ./publish -c Release

Once that is all gathered/packaged up, we need to deploy to the target Azure App Service. The value for app-name came from the Azure Web App Publish Profile. The publish-profile value is going to be the Azure Web App Publish Profile copied from Azure and added as a secret to your GitHub repository. The last part and the reason for this blog post, is the package setting. This should point to the directory you want to deploy.

    - uses: azure/webapps-deploy@v2
      with:
        app-name: 'newwebsite'
        publish-profile: ${{ secrets.azureWebAppPublishProfile }}
        package: ./publish/

That will deploy the contents of the publish directory to Azure. The trailing slash is important, if you leave that off, it will deploy the publish directory itself which is incorrect.

That’s what worked for me. I hope this helps you with your DevOps experience.

June 1

Microsoft Certified: Azure Developer Associate

Microsoft Certified: Azure Developer Associate

As I posted back in March, I have completed another Azure certification (Microsoft Certified: Azure Developer Associate). This time I took the AZ-204: Developing Solutions for Microsoft Azure exam. I took the exam back on April 15th and because the exam was in beta when I took it, I just got the results of the exam on May 28th. It was the first exam I have taken here at the house as opposed to going to a testing center. It wasn’t too bad except for the dogs barking and not being able to get up to tell them to knock it off.

The next one up will be Exam AZ-400: Designing and Implementing Microsoft DevOps Solutions to get the Microsoft Certified: DevOps Engineer Expert.

Thanks to this COVID-19 stuff, I’m still looking for a new opportunity. If you are looking for a .NET Core developer, let me know.

March 30

Azure Certifications 2020

So thanks to this COVID-19 stuff, I suddenly find myself with more time on my hands. In an effort to try not to waste this time, I’ve decided to start taking some Microsoft Azure certifications. I have already taken AZ-900 Microsoft Azure Fundamentals. So the next step is gonna be AZ-204 Developing Solutions for Microsoft Azure which will give me an Azure Developer Associate certification. (Thanks for the idea Marianna!)

Oh, if you are looking for a senior .NET developer with Azure experience, let’s talk and see if I can help you out.