190 viewsRoughing It Session at the Canary Wharf Dot Net User Group
Here are the slides and code from my recent talk at the Canary Wharf Dot Net User Group (lots of code….few slides).
148 viewsSpeaking at NxtGenUG Coventry
I'll be speaking about CQRS, Event Sourcing and Related Patterns at NxtGenUG Conventry on June 26, 2012.
845 viewsYes, I Use a Text Editor for Demonstrating Code
I was in Southampton recently for a talk titled “An Introduction to CQRS, Event Sourcing and their Benefits”. I’ve got some nice feedback suggesting people generally liked it. I also got some nice criticism – some to do with the focus of the talk (which I’ll cover in another post) but one particular one that brought up the issue of my coding in a text editor -
1169 viewsFormatting JavaScript Date
Formatting DateTime in C# is dead simple – just call ToString() passing in the format string you desire. Doing the same in JavaScript is annoyingly cumbersome. Today, I came across a nice little jQuery plugin that can carry out this mundane task. It’s the jQuery-dateFormat plugin and can be found at
128 viewsSpeaking at NxtGenUG Southampton
I'll be speaking on CQRS, Event Sourcing and related patterns at NxtGenUG Southampton on January 19.
126 viewsSpeaking at NxtGenUG Hereford
I'll be speaking on CQRS, Event Sourcing and related patterns at NxtGenUG Hereford on January 09, 2012.
990 viewsAgile Fragile
I’m going to indulge myself by having a nice old fashioned rant. The topic of choice is “Agile”. A few experiences and conversations of the recent past have compelled me to write something on this topic. So here goes nothing

1729 viewsThe Other Side of NuGet
NuGet is a very nice addition to the .NET developers’ arsenal. It is a central place for every library and framework in .NET. It has pretty good tooling integrated into Visual Studio and the command line options are pretty sweet too. It can pull down specific libraries including their own dependencies saving the developer a lot of time and effort in figuring them out manually. For the continued growth of the open source .NET community, NuGet is pretty much something that should have happened years ago. Yet there are some things about NuGet you need to be careful about.
731 viewsDDD North 2011
One week after DDD Belfast, I was up in Sunderland for the first ever DDD North. The session line-up looked fantastic and it geared up to be a fantastic day.
856 viewsDDD Belfast 2011
After repeated attempts to resume blogging, I think I’m pretty much determined to end my hiatus. And I’ll start off with my experience at DDD Belfast.
1336 views2011 MVP Hat Trick
Got this email today:
1314 viewsMy CQRS Session at the Canary Wharf Dot Net User Group
About a couple of weeks ago, I presented some very basic CQRS and Event Sourcing concepts to the Canary Wharf Dot Net User Group. It was an interesting experience to say the least. About everybody there had heard of CQRS (hmmm), about a quarter knew a bit about how it works (wow) and only one guy there actually uses it (ah well). This confusing spread in the audience made it quite challenging as to which bits to focus on and what to consider “advanced”. [And I actually feel bad for the guy who uses it as he probably got zilch from the session!] With such a spread in the audience, the most effective part of any session turns out to be the Q&A part. And we had a very nice one with numerous questions – some of them turning into discussions. I’ll be blogging a bit about CQRS, Event Sourcing etc. in the coming weeks and will hopefully go into detail about some of the questions. As part of the session, I had a (purposefully) very simple demo using Ncqrs and ASP.NET MVC. It’s not a “best practices” thing but a simple app showing how simple it is to create a CQRS + Event Sourcing application with Ncqrs. (It’s also from an old build of Ncqrs – the current version would probably not work with the code but the changes required would be minimal.
7641 viewsASP.NET MVC Gotcha – String as Model
A very common task in ASP.NET MVC is to return a ViewResult from a controller Action. This is usually achieved by a simple:
2051 viewsNinja Coding: Composition over Inheritance–Even when Overriding
We’ve all heard it a million times – composition is favourable to inheritance. But inheritance can sometimes come with its own charms. One of its main attractions is to do some grunt work in a base class and have the ability to override that behaviour in a derived class. Framework developers favour an abstract base class as it leaves the potential to add features in the future without breaking all client code. The usual approach towards to polymorphism is achieved by declaring a method (or property) as virtual in the base class and overriding in the derived one(s). And this usually works out quite well (if you do find yourself using inheritance). This would typically look like this:
5624 viewsViewBag can be good…honestly
A lot of people seem to have an allergic reaction towards anything not “strongly typed”. They abhor ViewBag and resent ViewData[“key”] for passing values from the controller to the view. They write viewmodels that aggregate a few other viewmodels or worse, use inheritance to generate complex hierarchies. And in order to try and keep all that clean, they use design patterns and what not to achieve “compile time checking”, “testability” and a few other mirages of “good code”. Maybe I like leaning over the edge a bit, but I really can’t understand why something that is to be a data carrier has to be part of something that’s as complex (if not more) than a trivial application’s domain. Here are some of the drawbacks of strongly typing all viewmodel data:
4914 viewsIntroducing MSMSpec
1604 viewsIntroducing SeleniuMspec
Happy new year to you all. And to celebrate, I’ve just published my first codeplex project. SeleniuMspec is a template that you can use to generate MSpec BDD tests from Selenium IDE. I’ve been using both Selenium and MSpec for a while now and thought this might save a few seconds when writing some integration tests.
7354 viewsNinja Coding: Code Comments and Self Explanatory Code
It’s been a while since I last blogged and thought I would get back into the habit by starting off a new category of posts. The title for this category is “Ninja Coding” and will cover topics from software craftsmanship and better design to very simple tricks and tricks. Today, we will be visiting code comments.
7836 viewsASP.NET MVC 3 CTP1 View Improvements
ASP.NET MVC 3 CTP1 has introduced many improvements, not least of which is in the View. This screencast explores the improvements in the View, specially looking at the awesome new ViewEngine – Razor. It covers Razor syntax, layouts, templates, issues with namespaces etc. It also looks at the new dynamic viewmodel and shows how it can be used to clean up view code. It's just over 45 minutes long and we do go into a little depth. Hope you enjoy it :)
7746 viewsSelecting ListView Items with CheckBoxes
Often we need to enable users to select multiple items from a ListView control and do a batch operation on them. While the ListView control does enable selection, it only supports selecting one row (item) at a time. This article shows a nice, easy and reusable way to enable multiple selection with checkboxes.
RSS