Validating sending mail messages in smart use case unit tests

When building applications with the Adf framework, smart use cases are implemented in task classes. Quite regularly mail messages are sent from tasks. To do so we use the MailManager class. Using this class mail messages are usually build up as in the following code example. To send mail messages, the MailManager plugs in an implementation of the IMailProvider interface. […]

A short notice about object relational mapping framework generated queries…

I guess object relational mapping is an accepted paradigm for exchanging data between an object oriented domain layer and underlying databases. For most applications object relational mapping is more than sufficient. And if not, perhaps command query responsibility segregation might contribute well to your solution. Being a more than frequent user, this very short blog post is not meant to […]

How Smart Use Cases Can Drive Web Development. Video for session at DevDays 2011 [in Dutch]

as the Channel 9 website says: using real-life code examples Sander will demonstrate how to model, generate and build smart use cases and introduce the positive impact smart use cases have on your layered software architecture. Anyway, here’s the video for my DevDays 2011 session:

Describing (smart) use cases using Enterprise Architect 8. Part I – Templates and validations

Enterprise Architect by Sparx Systems is a commonly used modeling tool, targeted at modeling UML and BPMN diagrams. One of the most frequently used diagrams is the use case diagram. A use case diagram consists mainly of actors and use cases, either traditional or smart use cases. A use case template The specification of the individual use cases in the […]

A book on pragmatic software architecture, patterns and frameworks?

One of the major items on my wish list – that is on the professional half of it – is to write a book that displays my ideas on software architecture, patterns and frameworks. Yes I know, there are many books on software architecture, and there are many books that explain patterns, and yes there also are a lot of […]

Please vote for my Microsoft Mix 2011 proposals!

From April 12-14 the next edition of Microsoft’s MIX Conference will take place in Las Vegas. I’ve sent in two proposals for the Open Call. Today heard that both proposals made it through the first cut, which means they’re open for public voting (you don’t have to be registered). It would be great if you would cast your vote for […]

Simple little things. Issue commands using CommandName and CommandArgument in a GridView control

Handling events in ASP.NET is not always as straightforward as it seems. One particular pattern that often occurs is that there’s several items in a row in a GridView control that trigger commands. Now the GridView supports several standard commands such as Select and Delete, but what if you want to issue your own command? As an example, here’s my […]

November 12, 2010 – Microsoft TechEd Europe. How smart use cases can drive web development

[Session ARC205 at Microsoft TechEd Europe 2010 in Berlin] Use cases have been around for many years describing the requirements of software development projects. From a developer’s point of view, use cases are often seen as too abstract and too complex to develop code from. Until now, that is. During this interactive talk, speaker Sander Hoogendoorn will demonstrate how to […]

November 9, 2010 – Microsoft TechEd Europe. How frameworks can kill your projects.

[Session ARC203 at Microsoft TechEd Europe 2010 in Berlin] When it comes to Microsoft .NET-connected development, more and more frameworks are entering the market, both from Microsoft and from open source. Think of ASP.NET MVC, Castle, Windows Workflow Foundation (WF), Entity Framework, Unity, Linq2SQL, ADO.NET Data Services, Windows Communication Foundation (WCF), nHibernate, Spring.NET, CSLA, NUnit, Enterprise Library, MEF or ADF. […]

Simple little things. The 42 extension method anti-pattern

Extension methods are a powerful feature in .NET, and have been increasingly adopted by the developer community. Also, LINQ and other framework features rely heavily on extension methods. In fact, extension methods were originally invented to be able to implement LINQ without having to change a lot of .NET framework base classes. Basically, an extension method is implemented as a […]

Simple little things. Placing dynamic images in databound controls

Sometimes there’s these really little things that hardly seem worth the effect blogging about. But when you start googling for the apparent solution, there’s a million-and-one blogs, forum questions that at the least are contradicting. In this particular case I wanted to set different images in different rows in a Repeater or GridView depending on some property of the domain […]

Sander’s talk at TechEd US 2010. How frameworks can kill your projects and patterns to prevent getting killed

Last week, the Microsoft TechEd North America 2010 took place in the great city of New Orleans. I was lucky to be invited to do a talk on how frameworks can kill your projects. When it comes to Microsoft .NET-connected development, more and more frameworks enter the market. Both from Microsoft and from open source. Think of ASP.NET MVC, Castle, […]

DevDays (The Hague, Netherlands. April 2010)

This post was originally published in .NET Magazine. I re-posted it because of the talk I did at Microsoft’s DevDays 2010 in Den Haag recently.  The slides for this talk can be downloaded here. As you’re probably have been made aware of in abundance, in .Net 3.5 Microsoft introduced a little language feature called LINQ. Although LINQ has been demonstrated […]

Spring 2010 speaking engagements

Again doing a lot of talks this spring on a wide range of subjects, from new technology, via enterprise agile to model driven development, but also about smart use cases, domain driven design, UML, and software architectures, design patterns, frameworks and .NET. This season’s highlights? Not a difficult choice: doing talks both at Microsoft DevDays and TechEd North America is […]

Follow the white rabbit! Exploring custom software development in Sharepoint

This DevTweet column by @mariannerd and @aahoogendoorn is published in SDN Magazine, December 2009. @aahoogendoorn Where are you???? 🙂 @mariannerd I’m here. How was Vegas? @aahoogendoorn #SPC09 was great! Great conference! Good sessions, good speakers and wow… The SharePoint community is enthusiastic! Loved it! @mariannerd So we can finally deliver actual applications on SharePoint? Would it be a good idea […]

Writing better software faster

Published in my Interesting Things column in SDN Magazine, November 2009. Looking back on twenty years of software development, I must have spent most of that time trying to improve the quality and productivity of software development. Ever since I started to write small applications in Turbo Pascal in 1988 I got infected with the writing-better-software-faster virus. Right after I […]

Extension methods. The overlooked language feature

This post was published in .NET Magazine. I recently did a talk at the SDC Conference at Papendal, Arnhem, discussing this topic. As you’re probably have been made aware of in abundance, in .Net 3.5 Microsoft introduced a little language feature called LINQ. Although LINQ has been demonstrated at all major and minor conferences, the way LINQ executes queries on […]

June 2009

My talks in June 2009. June 3. Agile software development in everyday practice. Full-day seminar on doing agile projects for IT Works, Hotel Pullman, Diegem, Belgium. With guest speaker Stefaan van Royen, Mediamine. See June 9. Pragmatic .Net development. Full-day seminar on software architectures and patterns for .Net software development for Array Seminars, .NBC Nieuwegein. See June 15 […]

Some of my talks in 2007

Pragmatic model driven development .Net using use cases Guest lecture at Hogeschool InHolland, Alkmaar, Netherlands. December 21, 2007 Informal guest lecture for students graduating this year. Likely subjects are software architecture, patterns, modeling and implementing smart use cases. Project anti-patterns Talk at Javapolis, Antwerp, Belgium. December 12, 2007 Presented my well known talk on project anti-patterns at Javapolis, the biggest […]

Highway to hell? DevTweet: @mariannerd and @aahoogendoorn review code

The following conversation between Marianne and me will be published as our DevTweet column of SDN Magazine, issue 102. Listening to Black Sabbath’s Master of Reality. @aahoogendoorn Look at you… new avatar! Is that an AC/DC shirt? @mariannerd Howdy partner! It is AC/DC all right. Your avatar new too? Something wrong with the old one? @aahoogendoorn Nope, just a change […]

Survey. Which frameworks do you use in .Net projects?

Later this week I will be doing a talk at the Microsoft DevDays conference at the Congrescentrum in Den Haag. This talk is titled Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash. Read more about it at Please fill in the little survey I’m conducting at Survey: Which frameworks do you use […]

Implementing smart use cases. Guest lecture at Hogeschool Arnhem Nijmegen

In the second half of last year, I did a guest lecture at the Hogeschool Arnhem Nijmegen (HAN) in Arnhem on an invitation by lecturer Rody Middelkoop. I’m sorry but I can’t remember the exact date – only that I had an upcoming flue. Although if was a Friday afternoon, the audience was good, about 60-70 lecturers and students. I […]

Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash – this year’s DevDays talk.

Good to hear that I’ve made the program of this year’s Microsoft DevDays. Will be a challenging talk on software architecture and patterns, titled just like this blog post. Here’s the description. Hope you like it. Navigating through the hypes, Software architectures and patterns to help avoiding your projects to crash When it comes to .Net software development, more and […]

Client/service architecture. Domain driven development in the distributed era. Episode IV

Go to episode three. Go to episode two. Go to episode one. In case you’re wondering why doesn’t this dude come to his point, you’ve probably missed it. I’ve made it already. The point is: you should always have a single point of truth, and at most have it reproduced on the server side. Which in most cases you don’t […]

Single point of truth. Domain driven development in the distributed era. Episode III

Go to episode two Go to episode one Client / server could have been a much more successful era in software development, if it wasn’t for this copy-and-paste programming, leading to applications that slowly became unmanageable. I have seen this anti-pattern occur in any of the popular client / server technologies. Without exception, whether it was Visual Basic, PowerBuilder or […]

The merits of two-tier architecture. Domain driven development in the distributed era. Episode II

Go to episode one. So now you’re stuck with this two-tier architecture. Is this a problem. Well, not yet. However, it can become a huge problem, and it has become a huge problem in many, many client / server applications, in a vide variety of technologies, including several types of (legacy) web application technologies. The truth is out there The […]

Back in the days of client/server. Domain driven development in the distributed era. Episode I

At this point in time, where we slowly shift from service orientation to cloud computing, building business software is more complicated then it has ever been. There are many platform that your software needs to target, and there are even more ways of writing the software. Beyond choosing technology Choosing a technology goes way beyond stating that you are doing […]

Application migration using smart use cases and a model driven development approach

Application migration is the process of migrating older applications (often referred to as legacy) to application that have more of less similar functionality, but are developed in newer technology. Application migration has proven to be a crucial but very hard part of software development over the years. Key to such projects is: Automated migration is hardly ever possible. It is […]

So much to write, so little time

It’s too bad there’s only 24 hours in a day. There are so many ideas in my head that I still have to write down, that I have to make a (short) list now to keep my head from exploding. So here it is: White paper on how to do agile SAP projects using smart use cases. Article on applying […]

Guest lecture Hogeschool Utrecht on implementing smart use cases in agile projects

On January 13 from 14:30 – 16:00 the Hogeschool Utrecht organizes a guest lecture by Sander Hoogendoorn, Principal Technology Officer at Capgemini. When asked who to invite for presenting a guest lecture, the students of the Hogeschool specifically requested for Sander. His lecture will be titled Implementing smart use cases in agile projects. Process, techniques, architecture and patterns. During this […]

Sander Hoogendoorn at the DevDays 2008

Finally, after some experimenting we’ve got it. My team managed to put out the broadcast of my talk on everything and the kitchen sink on YouTube, and moreover, link from that. See the results here. Introduction The introduction part with some jokes in it. Software architecture, design patterns and smart use cases in code A brief introduction into software architecture […]

Talk on DevDays 2008 combining smart use cases, model driven development, software architecture, Silverlight and WCF

At the last Microsoft DevDays Conference (2008) in Amsterdam I did a talk (sorry, it’s in Dutch) that covered a lot of subjects, including software architecture, agile software development, dependency injection, domain modeling, smart use cases, Silverlight, WCF, model driven development, Tobago MDA, our Accelerated Delivery Platform and a lot of other stuff that I can’t remember (getting old). In […]

Smells of bad code [1]

Can’t help it. Looking at someone else’s code is just plain fun. Especially when it’s not that well architectured. It seems that I keep running into nice fragments of how not to code. Well, to be honest, my colleagues tend to help out, and send me all kinds of code examples. Have a look at the tiny fragment below. If […]


In the beginning in November, I was in Barcelona. Apart from the fact that the Microsoft TechEd took place there, Barcelona is obviously in itself a landmark. One of my favorite places in the metropolis is the Sagrada Familia, the famous temple by Antoni Gaudi. Frequently used as a metaphor for colossal and never ending type of software development projects […]

Implementing value objects in C#

Earlier this year I wrote an article on how to implement value objects (as mentioned by Martin Fowler en Eric Evans in their books, respectively Patterns of Enterprise Application Architecture and Domain Driven Design). It appeared in English in International Developer Magazine (from Australia), and was later translated into German to appear in ObjectSPECTRUM. Finally it now also features in […]