Latest posts

Up and running again

I had a server crash and no access to the server room. But everything should be up and running again.

Repository pattern, done right

The repository pattern has been discussed a lot lately. Especially about its usefulness since the introduction of OR/M libraries. This post (which is the…

Request for comments: Merging libraries

I currently have a number of libraries which I develop (at github). Most of them are small (less than 50kb) and I’m thinking about merging them into one…

Emailing passwords is no proof of storing passwords as plain text

There is a site named plaintextoffenders.com which lists sites which they claim store plain text passwords, i.e. not hashed or encrypted. As proof they let…

ADO.NET, the right way

ADO.NET is actually quite powerful if you use it correctly. This post will teach you everything from making your ADO.NET code driver independent to how to…

Data layer, the right way.

The goal with this post is to give you a better understanding of how you can design your data layer and why it’s important to create a complete abstraction…

Better support for localization in ASP.NET.

If you’ve tried the built in localization features in ASP.NET you’ve probably written cluttered view models like:

Solved: Getting 401 Unauthorized while calling an ASMX service using Windows authentication

Today I’ve spent almost the whole day figuring out why an application (COM+) couldn’t authenticate against an ASMX web service. Using my favorite networking…

Griffin.Decoupled – WinForms sample application

I’ve created a small WinForms sample application to demonstrate the features of Griffin.Decoupled. I’ve intentionally kept it small to just demonstrate the…

Griffin.Networking – Added support for HTTP ranges

Added support for partial file downloads (content ranges)