Geeks With Blogs
// ThomasWeller C#/.NET software development, software integrity, life as a freelancer, and all the rest September 2009 Entries
Duct Tape Programming? - Certainly not THAT way...

Lately, there was a blog post by Joel Spolsky called "The Duct Tape Programmer", which is very opinionated and caused quite a lot of responses and discussions in the blogosphere. Basically, this post contrasted the duct tape worldview of developing software to the astronaut architect's, forcing programmers to decide between quick-and-dirty solutions on the one side and analysis paralysis on the other. While all objective arguments against that are already made, here are some additional thoughts.

Posted On Wednesday, September 30, 2009 8:25 AM

'dynamic' ? - Be afraid, be very afraid...

One of the new language features, that come with C# 4.0, is the new 'dynamic' keyword. I was totally horrified when I first read about it, because it makes it much too easy to introduce (undetectable) errors into a codebase, can foster bad coding style, and certainly will cause serious maintenance problems. A rant...

Posted On Wednesday, September 23, 2009 6:37 AM

Lazy loading, Inheritance, and Persistence ignorance (part 2)

Previously, I described a problem with O/R-mappers like NHibernate that could possibly break domain code which is relying on type information (this is not only relevant for casting issues!). The problem occurs when NH creates a lazy loading proxy for a polymorphic object, not knowing the exact type of the proxy at creation time. This post presents the first part of a possible way to circumvent these problems and to be truly persistent ignorant - not just physically, but also logically...

Posted On Sunday, September 20, 2009 7:28 AM

Gallio 3.1 is here

A few days ago, a new version of Gallio was released, my favorite Test and Automation platform. Although the official version number suggests only a small progression, it actually is a major upgrade that brings a wealth of new features. This is a first look at the two features that attracted me most...

Posted On Friday, September 18, 2009 9:55 AM

AOP can save you tons of repetitive code

Lately I played around a bit with Aspect Oriented Programming, especially with PostSharp and the ValidationAspects library that sits on top of it. I wanted to see how I could reduce the amount of infrastructural code like e.g. value-checking, which is highly repetitive and error-prone. I must say, I was impressed of what can be achieved...

Posted On Tuesday, September 15, 2009 6:41 AM

No more new technologies, please...

As a freelance software developer, I am regularly asked in interviews if I am familiar with a certain technology or product, which is only natural, since potential customers each have their individual, company-internal development technology stacks. But as a freelancer, I must say that keeping up with all the latest technologies and related news is not just hard, it's simply impossible, and (at least as of yet) I refuse to even try participating in that rat race...

Posted On Sunday, September 13, 2009 1:35 PM

CodePlex Foundation

Yesterday, Microsoft announced the creation of the CodePlex foundation (, which is different from It's mission is to bridge the gap between commercial software development and Open Source software, "ultimately aiming to bring open source and commercial software developers together in a place where they can collaborate". This could be a big next step for the acceptance of Open Source...

Posted On Friday, September 11, 2009 3:00 PM

Unit testing with built-in NHibernate support

Setting up NHibernate is not one of the easiest tasks, and having to do it for each of your relevant test projects again and again certainly doesn't make it better. So here's a small base class for a test fixture that comes with already pre-configured, ready-to-use NH-support...

Posted On Thursday, September 10, 2009 12:14 PM

Lazy loading, Inheritance, and Persistence ignorance (part 1.5)

A few days ago, I talked about a problem, that using an ORM like NHibernate could bring, when there's inheritance and lazy loading around. Unfortunately, the example in this post turned out to be somewhat unclear, giving the impression that type casting issues are relevant in some way. This is a short follow-up with another example, that hopefully underpins my arguments a bit more precisely.

Posted On Thursday, September 10, 2009 7:53 AM

Automating database script execution

Almost every software project comes with a database. But although this is quite common, managing database related tasks is not very handy from the development point of view. To make life somewhat easier, this post demonstrates a way to automate sql script execution for MS SQL Server, using the Gallio Automation Platform.

Posted On Tuesday, September 8, 2009 5:37 PM

Lazy loading, Inheritance, and Persistence ignorance (part 1)

Recently, I came across a problem with NHibernate (and ORMs in general), lazy loading, and polymorphism. Initially I thought it to be just another one of these fancy technical details that one has to deal with all the time. But now I consider it to be a 'real' problem that can question our entire approach to architectural layering.

Posted On Sunday, September 6, 2009 8:07 PM

Copyright © Thomas Weller | Powered by: | Join free