Using xUnit.Net with .Net 4.0

19. January 2010

I’ve been using xUnit.Net for a while now. It’s just a tiny bit cleaner and slightly less abrasive than other .Net unit testing frameworks. Leaving out unnecessary stuff like [TestFixture] and shortening Assert.AreEqual to the equally clear but shorter Assert.Equal don’t seem like big improvements but when you type them several times a day tiny improvements start to add up. I also like the use of the [Fact] attribute instead of [Test]. It shifts the focus from testing to defining behavior. So how do we get all this goodness working with the Visual Studio 2010 beta?

More...

dotNed Open Coffee, September 4th in Delft

24. August 2009

I'm helping organize an Open Coffee in Delft the 4th of September together with dotNed, the dutch .Net usergroup. The event is hosted by QDelft and will start at around 5 o clock.

All .Net devs (or people interested in talking to these geeks) are welcome, so just come over, have a drink and exchange ideas with fellow developers!

For more information visit the dotNed site over here.

UI patterns refactored – Divide and conquer

9. August 2009

Many tools (especially on the Microsoft platform) make it easy to start your new project by just dragging and dropping some controls on a window. Just add some logic to event handlers in the window-class that represents that window and be done with it. Most programmers who have done this a few times will know that the result will probably an unmaintainable and untestable mess. UI patterns solve this problem by splitting up your application in different parts, each with their own responsibilities. The first part of this series will look at how different UI patterns divide responsibilities between their components

More...

UI patterns refactored - Introduction

2. August 2009

I have never met anyone who could explain the differences between all the Presentation  patterns to me, but new ones seem to spring up almost daily. The last time I checked I found

Model View Controller, Model View Presenter, Document View, Supervising Controller, Passive View, Front Controller, Page Controller, Humble View, Humble Dialog, Model View Viewmodel, Presentation Model and Application Model,

More...

Agile architecture part II, SOLID or YAGNI?

15. July 2009

In a previous post about agile architecture I reasoned why big design up front isn’t a good solution to the problem of handling complexity in software. The best solution is architecting your application to avoid complexity as much as possible. At the end of the post I suggested reducing complexity by not implementing anything you don’t need right now. This principle is well known as YAGNI, short for You Aint Gonna Need It. Don’t implement anything you don’t need now. This will keep complexity down making it simpler to extend when you do need it. There’s another solutions to handling complexity though. You can reduce complexity by modularization. In software engineering we’ve got the SOLID principles for this. Unfortunately the SOLID principles seem to go against what YAGNI tells us. They tell us to add interfaces, separate out our dependencies and add all kinds of structures to our code that we don’t need just yet. So what’s it going to be SOLID or YAGNI?

More...

Using .Net 3.5 features in BlogEngine.Net widgets

30. June 2009

I’m getting quite used to C# 3.0 and .Net 3.5 features. So it took some getting used to not being able to use ‘var’ and linq-to-objects when writing the ‘My book-pick’ widget for BlogEngine.Net you see on the right. Eventually I just gave up and hacked the Web.Config. It turned out to be really easy to switch BlogEngine.Net to C# 3.0.

More...

Agile architecture, embrace change through reduced complexity

27. June 2009

Software development can sometimes be very counterintuitive. For example, when people started building larger software systems halfway through the last century one of the things they discovered was that changing existing software is often far more difficult and error prone than building new software. Most developers rediscover this somewhere in their first year of being a professional developer. They start out with a new project and as time goes by changes start taking more and more time, this can be very hard to explain to a client and usually we don’t until we get completely stuck and tell the client we need to start from scratch. I think this practice has been responsible for most of the bad reputation software development has.

More...

A good old fashioned flame war

17. June 2009

In the good old days of dial up connections and Usenet I used to enjoy aflamewar good flame war now and then. I’m not really a flame war kind of guy. I get distracted far too  easy to really commit myself to consistently flaming my enemies. And I’m bad at remembering names so in an online-world where you don’t see faces I usually forget who I’m supposed to flame anyway. But other people’s flame wars can be really entertaining.

But it seems people are slowly adapting to the way they interact online. Modern media are great for flaming but somehow I see less and less of that. You still see occasional blogosphere drama and occasionally fanboy X bashes platform Y. But that’s about it. Most people have found out that the best way to deal with trolls is to ignore them. And so people seem to find middle ground far easier. Like they should … in most cases.

More...

Where’s my MVC nested Master Page?

17. June 2009

The first thing I actually missed from Webforms are nested masterpages. Fortunately they’re not missing at all, they just figured out those MVC guys (and galls) like code so much, they don’t need no stinkin’ templates for something as trivial as this. And of course we don’t. Here’s how to roll your own.

More...

ASP.Net MVC … Wow!

15. June 2009

I’ve been very happy on the windows programming side. I used to do web-programming but frankly ASP.Net webforms spoiled that for me. Agreed… it’s very good for quickly setting up administrative websites that run inside the firewall. It has all the right abstractions for that allowing you to quickly piece together CRUD stuff without worrying about state, postbacks, javascript or even HTML. But when you want to build fun websites that look good and are designed to run on the big bad web these abstractions start to work against you.

Lately I’ve been getting a bit restless though. I needed to learn some new stuff. Frankly my job is boring, they’ve got me maintaining and supporting some C++ MFC application *yawn* so time to get back into web programming. Enter MVC!

More...

Powered by BlogEngine.NET 1.5.0.7
Theme adapted from BlogEngine.NET standard theme by Mads Kristensen

Mendelt Siebenga

Mendelt Siebenga with coffeeMendelt Siebenga works as a C# programmer. In his spare time he's been known to pick up Python, Lisp and even a soldering iron from time to time.

You can also find me here

My book-pick