Reusing parts of LINQ queries is easily done by chaining methods returning IQueryable. Unfortunately that doesn’t cover some senarios like reusing member initialization lists. To handle such a situation I wrote a Merge extension method for select expressions. For this post we’ll load the data required for a list of cars and a detail view… Continue reading Merging Expression Trees to Reuse in Linq Queries
The Project Counter-Sabotage Handbook
A project saboteur is a person doing his/her best to sink a project and cause it to fail through a variety of methods. Effective counter sabotage to identify and deal with project saboteurs as early as possible is a key success factor to any large project because there will always be a saboteur somewhere… Know… Continue reading The Project Counter-Sabotage Handbook
Project Saboteur Taxonomy
While the methods of project saboteurs are similar, any project in the wild may encounter very different kinds of saboteurs. The Project Saboteur Taxonomy is an attempt to shed some light on the saboteurs in the wild. Saboteur Types This taxonomy contains five types. I am sure that there are plenty other types – please… Continue reading Project Saboteur Taxonomy
On Null or Why Empty Strings are not Same as Null
Null is an important, but sometimes hard concept. What’s the difference between an empty string and a null string? One of my first Stack Overflow questions was (NOT) NULL for NVARCHAR columns. Some people claim that using null is always wrong or is some kind of voodoo. If you feel the urge to use Nullable<int>… Continue reading On Null or Why Empty Strings are not Same as Null
The Project Saboteur’s Handbook
There are many ways to sabotage a project. Recognizing them is the first crucial step to counter them. In this brief handbook I will present a number of ways of sabotage that I have encountered in various projects. This post is the saboteur’s handbook. The countermeasures will be saved for another post. Enough of introduction.… Continue reading The Project Saboteur’s Handbook