Wednesday, June 24, 2009

Next books to read: Working Effectively with Legacy Code

One of the next books I will be reading is image Working Effectively with Legacy Code by Michael C. Feathers. First I've seen it on the desk of my colleague and friend Thomas. Then I read about it in great book Clean Code.  Recently I listened to a podcast on Hanselminutes. Now I decided as soon I finished the current book stack I will turn into this one.

LINQ to XSD for typed XML programming

image I have been looking at LINQ to XSD since alpha 0.2 came out. Before that I was using Liquid Technologies for xml data binding with great success. When LINQ was released LINQ to XSD looked very interesting because of the tight integration into VS and well the LINQ support. I was not brave enough to put it into production code though this version worked fairly well.

Now the project is hosted on CodePlex and comes to live again.

Monday, June 22, 2009

Tools I need to do my job: Sandcastle

image As a Clean Code Developer I'm using StyleCop to make my code look like other professional developers code (which I hope is a good thing). StyleCop pushes you to comment your code (at least the option to check for public API documentation makes a lot of sense - for the privates you might argue). For getting the full benefit of source code documentation I'm using Sandcastle to build my reference files. Sandcastle Help File Builder is a neat UI tool that eases the use of Sandcastle.

Rating: Very useful!

Web Resources: Production Debugging for .NET Framework Applications

A good introduction to .NET debugging in production environments is publicly available on msdn here:

Production Debugging for .NET Framework Applications

Books on my desk: Debugging Microsoft .NET 2.0 Applications

image A great resource not only for debugging .NET but also about preventing the need for debugging in the first place. Writing posts for my windbg blog I regularly used this resource.

Rating: Very good!

Books on my desk: Beyond the C++ Standard Library - An Introduction to Boost

Today C++ is still a major player in the software industry and you are well advices to have at leastimage some basic understanding of it. Boost comprises a big resource of utilities to better get along with this long time evolved language. This book gives a quick introduction to some of the libraries boost provides. It's not a reference but a good starting point.

You can pick a chm version of this book here...

Rating: Useful!

Wednesday, June 17, 2009

Interesting picks: Enterprise Integration Patterns

image Listening to the SoftwareArchitekTOUR podcast I always need to lookup the mentioned patterns because understanding pattern of spoken words is not one of the easiest things (understanding patterns in general is not something I do with my brain stem). Googling for the pattern names I found the Enterprise Integration Patterns site mantained by Gregor Hohpe.

Rating: Great!

Tuesday, June 16, 2009

Components I use: NConsoler

Need an equivalent to boost program_options in c#?
Here you go; NConsoler provides an AOP approach on command line parsing.

Code looks like this:

using System;
using NConsoler;

public class Program {
    public static void Main(params string[] args) {
        Consolery.Run(typeof(Program), args);

    public static void Method(
        [Required] string name,
        [Optional(true)] bool flag) {
        Console.WriteLine("name: {0}, flag: {1}", name, flag);

Rating: Great!

Thursday, June 11, 2009

Books on my desk: Framework Design Guidelines

imageThis book is not the kind of book you start reading and you just cannot stop. It is a reference book I regularly take at hand when I'm I'm in doubt on how to do something like what kind of exception should I catch or throw. Additionally it is a good idea to watch Krzysztof Cwalinas and Brad Adams blogs because they publish updates to new and changed rules there.

Rating: Must be available!

Wednesday, June 10, 2009

Books on my desk: .NET 2.0 Interoperability Recipes by Bruce Bukovics

One book I more often touch than I would like to is ".NET 2.0 Interoperability Recipes by Bruce Bukovics". Every time imagewhen I need to interface old code with new code (or vice versa) I find myself grabbing this book. The book does what the cover promises: it provides short recipes on how to tackle common Interop scenarios.

Rating: Very useful

Tuesday, June 9, 2009

Tools I need to do my job: Clonezilla

imageFor testing software a good approach is to use virtualization with tools like VMWare. Sometimes you find yourself in the situation to test on real hardware especially when you rely on concrete non virtual hardware. In those cases Clonezilla helps to get a clean system snapshot which can be restored at any time.

ReSharper Short Cuts

In my "Tools I need to do my job..." series I already mentioned ReSharper here.
To gain the full productivity power of this tool it's good to know the keyboard shortcuts. I have a printout of this pdf always on my desk:


Monday, June 8, 2009

Tools I need to do my job: ... Commander

I've always been a big fan of two file window managers since the my early computer days. Starting with Midnight Commander on unix systems I switched to (windows) Total Commander and and used this one for many years. Even on my Ubuntu I'm using at home I'm using more ore less only this type of file manager (Krusader). Now writing this post I thought of looking for an alternative to this and found two things:

1.) A site that lists alternatives to something:

2.) A free alternative to Total Commander: FreeCommander (found via here...)


At first look I was missing nothing. Maybe I will update this post once I found something that would make me change back to Total Commander.