• A Few Tips for Azure Resource Manager Templates

    Azure Resource Manager (ARM) templates are often looked upon as some sort of magic voodoo. People who use them every day often have a limited understanding of them and this leads to doing things the hard way. The users aren’t always to blame, the documentation is often terse (at best) and features change quickly. In particular, mid-2017 saw a few critical features appear that really improve their usability in a few cases. I’m not going to try to completely solve the knowledge gap or try to create a comprehensive set of guidelines. Instead, I’ll point you to a few things that have been useful for me or helped me get to that “click” moment where they stopped looking like a blob of json and started looking like a language.

  • Don't Repeat Yourself x3

    Don’t Repeat Yourself. DRY. It’s an oft repeated axiom among software developers but do we apply it broadly enough? Where we do apply it, do we apply it too aggressively? Today I’ll look at this fine old acronym three different ways: Avoid repeating code, Avoid making the same decisions, and avoid doing work over again.

  • I spoke at CNUG Tonight

    I spoke at the Chicago .Net Users Group in Downer’s Grove, IL on the topic of Azure planning tonight. I didn’t get to the entire slide deck that I hoped to because there were lots of questions and there was a ton of material to get through (I could speak for a day on Azure probably).

  • Is it DevOps?

    There is a huge amount of use and abuse of the term DevOps. This probably means that it is very near the top of the hype cycle so expect a lot voices in the next few months or year ranting about how much DevOps sucks. This doesn’t have to be so, but let’s rewind and reacquaint ourselves with the whole concept.

  • Pattern Matching Constructs in C# 7

    I have already covered local functions and tuples in C# 7. Today, I’ll play around with pattern matching. There’s actually two separate bits of syntax being called a single new feature. One extends the switch(){case} construct, the other extends is expressions. Like local functions and tuples, I think this adds some power for communicating the intention of the code. It can also be misused (what can’t?), a little more on that later. I hoped to do this article a week ago, but it took me longer to identify even a little additional insight over the MS docs than I expected. I’ve probably spent 15 hours fiddling around to come up with a somewhat meaningful sample!

subscribe via RSS