Geeks With Blogs
Mike Nichols - SonOfNun Technology If I were the captain on a big steamboat... OOP, Patterns, Architecture
Moving Day - Feeds, Update Thineselves (both of you)

We've moved

New blog found here at

RSS is here at

Thanks to GWB for parking me here for a spell :) MIKE

Posted On Wednesday, October 4, 2006 11:13 AM

When Design Decisions Aren't
I've been working exclusively alone on a project for a while and have as much liberty as any developer could hope for. I'm a blessed man. Nonetheless, I have tried to kind of "pretend" like I am working in a team environment that has regimented deadlines. This is mostly due to integrity and partly due to prevention for easy is it to constantly be researching solutions without implementing them? There was a necessary period of growth in skill sets that had to occur and while I certainly ......

Posted On Saturday, September 30, 2006 12:29 PM

Patterns, voicings, and rudiments
For the first 14 years of my professional life, I was a touring musician with a Master's in Music Performance in percussion. By the grace of God, I've been moved along into a fun profession of Software Development. For the most, I've been a lone ranger and have had to learn everything on my own, which is fine since I enjoy problem solving. As I've matured (ok..I am still in Beta :)) in my 'skills' - not the numbchuck kind - I've seen many parallels to music composition/arrangement and development. ......

Posted On Thursday, September 14, 2006 4:40 PM

Validation With Bows and Arrows or With Battle Axes and Swords?
One of the things that requires a realignment in thinking when moving away from RAD development tools as a means of solving business problems into a Domain Driven approach is where to put validation and how to provide meaningful messages back to the user when something goes wrong. It seems to me that a good indicator of an anemic strategy for validating data is lots of work being done with validation controls and checks at the presentation (view) level. That doesn't mean that careful validation and ......

Posted On Tuesday, September 12, 2006 9:42 AM

Visitor Pattern For DataBinding ListControls with Model View Presenter
Implementing the Model-View-Presenter has been fun. I appreciate it's tendency to enforce discipline in keeping any business decisions out of the View layer. I was always bewildered when I would read that the business logic should be separated from the 'code-behind' source and then see millions of DataSet examples where that was tons of business logic embedded in Web Pages. However, trying to separate the presentation logic away and keep the client as dumb as possible presents (forgive the pun) some ......

Posted On Saturday, September 9, 2006 10:30 PM

Messaging Pattern Encapsulating Exceptions From Domain
Sergio Bossa has a nifty proposition for handling Specification failures during the course of operations in the Domain layer and propogating those messages up the layers thru the Service layer at http://sbtourist.blogspot.c... The basic idea is to collect Specification errors into a collection within a Notification inside a custom exception. I had considered this, but was frankly trying to avoid throwing exceptions for these kinds of things. But since ......

Posted On Wednesday, September 6, 2006 5:43 AM

Domain Validation Considerations
I have an Aggregate called Person that has a method called AddAddress which accepts an IAddress invariant to (hopefully) be added to the Person.Addresses collection. Within the method body of AddAddress, I am invoking a Command object that goes down a list of Specifications and if all are passed, then the address is added to the collection. So far so good. Now, i am calling this method from my Service layer and am expecting an IAddress object in return. If it fails, what is the best way of communicating ......

Posted On Tuesday, September 5, 2006 12:59 PM

When I see this more than once...
Let's say I have a class Person with your typical field/properties FirstName, LastName, blah, blah... Then let's say I decide to implement the Null Object Pattern. Why I decide this isn't important right now, but I know that I am just going to initialize all my fields to default setttings (string.Empty for FirstName,LastName, etc..) in the constructor. Like so: public class NullPerson : Person, INull { public NullPerson() : base(string.Empty,string.Em... { } } Now, notice I have ......

Posted On Thursday, August 24, 2006 7:17 AM

Remember Who The Enemy Is
I have been reading several posts from folks I respect for their advancement of practices like TDD, Agile ,DDD, and so on. Their wisdom has helped give me a great toolset to build deep, maintainable code that is production-minded throughout now. This is contrasted to writing what amounted to 'demoware' as I tried to write maintainable code using RAD tools. Still, I think Agile-minded leaders need to bear in mind that the enemy is not Microsoft if their creed is in fact rooted in the pragmatism of ......

Posted On Wednesday, August 23, 2006 4:04 AM

NHibernate Alpha release supports .NET 2.0 features like generics and nullables
A new NHIbernate release (alpha) supports generics and nullable types. The previews have been good. Even though i love NHibernate, this email by the development lead of the project underscored the need to avoid having Persistence mechanism details invading Domain logic ......

Posted On Monday, August 21, 2006 3:36 AM

Copyright © Mike Nichols | Powered by: