Archive for November, 2007

Tools for personal coding projects

Wednesday, November 21st, 2007

I've been starting to do a bit of a side project recently and doing some evaluation of the tools I'll be using to do this. Visual Studio. No question. Very occasionally I've seen jobs where the requirement is to use Notepad... Seriously. Translation - we like our developers to waste time and get ...

Power build with PowerShell

Tuesday, November 20th, 2007

Here's a little PowerShell script I use to automatically log my build output somewhere so I can look at the last thing I tried to build if need be. Add the following to your profile: $lastBuild = join-path $env:temp lastbuild.log function b { msbuild /l:"FileLogger,Microsoft.Build.Engine;logfile=$lastBuild" $args } function lb { notepad $lastBuild } Now ...

Test Driven Development with DSL Tools

Saturday, November 17th, 2007

When we were writing Service Factory: Modeling Edition we tried really hard to do some Test Driven Development (TDD) or at the very least write some unit tests around our code. In some cases the approaches we took led to some shortcomings or the code coverage wasn't as high as ...

The Great Debate: Patterns vs. Tooling

Wednesday, November 14th, 2007

Jason Hogg wrote a post about our discussion on patterns vs. tooling at the p&p Summit. This was a fun panel to be on, largely because of the great input we got from the audience. Wojtek and I were presenting the patterns in tools standpoint, tooling that uses patterns and includes ...

Windows Live Writer

Wednesday, November 14th, 2007

I've been having some issues with using the WordPress web UI for authoring posts with a lot of code in. You might have noticed that the last attempt at code formatting was somewhat different. I've switched to using Windows Live Writer with Steve Dunn's code formatter for an altogether smoother ...

An Alternative to the C# Generic new() Constraint

Monday, November 12th, 2007

Here's something I came up with other the weekend while playing with some code... I wanted to write a method that ensured that some object of type T was always available. ModelElement element = EnsureElementExists<ModelElement>(_store); Unfortunately in this case the ModelElement class does not have ...

TDD anti-pattern “inherited or hidden test”

Friday, November 9th, 2007

This post actually started out as my TDD and DSLs post but I got sidetracked into trying to describe an anti-pattern I'd noticed in a some of the unit tests we wrote as part of Service Factory: Modeling Edition. I came across James Carr's excellent TDD anti-patterns post which got me ...

Developing a model centric software factory

Friday, November 9th, 2007

Time to look back on the last eight or so months of building and (finally) shipping Service Factory: Modeling Edition. I thought it might be interesting to think back to some of the things that caught us unawares when building a model centric factory using DSLs on top of GAT/GAX. Bob (Dev) ...

Service Factory model validation

Thursday, November 8th, 2007

Now Service Factory: Modeling Edition has finally shipped I felt obligated to write some stuff about it. As Dev Lead I didn't actually get to write a lot of code but one place I did get my hands grubby was the validation framework. In the process of putting together our presentation ...

Adding a new validation rule to the Service Factory

Thursday, November 8th, 2007

Even if you're not in the factory authoring game you might want to add additional validation to the Service Factory so that you can ensure that additional business rules are followed. For example all your services are using the correct namespace for your organization. We've made this sufficiently simple that anyone can add new ...