Sunday, November 10, 2013

Visual Studio Templates and Developer Experience

A couple of days ago at work, I was thinking about how we might reduce number of errors and avoid some of the more repetitious code that we were writing. I've known about Visual Studio templates for a while but never bothered to look into them. Code generation (even though I've written T4 templates and the like) is something I tend to shy away from as they can becomes brittle quite quickly.

So depending on how much effort these templates would be (I was originally only looking at Item Templates), it might be something that can help us out. Turns out, item templates are really really simple.

Things like simple templates, nuget packges, ruby gems and the like can really help get developers started. I think the 'developer experience' or 'DX' (there is a calculus joke in there somewhere..) if you like, is something that is more and more important with today's smorgasbord of framework and tooling choices. VS templates are just one thing that can make a process just that little bit nicer or make getting started a pleasant experience.

I decided to have a further read and thought it might be a good idea to create some simple templates for the framework I "won't shut up about". ServiceStack. I use ServiceStack for a lot of things, it's not my only tool and not every proverbial nail can be hammered with it, but I do a lot of work around web services, so I tend to reach for it a lot. "Yo, D! Why?", you might ask? "DX" (nailed it..).

ServiceStack already has a great DX and I wanted to see if these templates would add any value. I have created a github repository and started on an item templates and project template at the time of writing. I intend to add more of the coming weeks if/when I get time and I've got a running list happening over on trello.