first_page

Jean-Paul Boodhoo Accused of Being Wet behind the Ears

Buy this book at Amazon.com! Jean-Paul Boodhoo is the guy that terrified ‘traditional’ Microsoft Windows programmers on dnr.tv, episodes 10, 11 and 14. You may call this coincidence but I say that J’ah provides: because of my recent exposure to Java programmers (and after my subsequent serious announcement that I was going to fire my manager), I immediately saw that “young” Jean-Paul was simply applying Java-like work habits to the .NET Framework (with a dash of Smalltalk).

Carl Franklin, in this week’s dotnetrocks.com podcast, wanted seize upon Rocky Lhotka’s reservations about Test-Driven Development, while reading fan email accusing Jean-Paul of being too inexperienced to appear on dnr.tv. But to me the more primal issues were:

  • Interface-based programming
  • Model View Presenter and Model View Controller *Interface-based programming. *First of all, Microsoft developers should not trip over interfaces. COM is almost entirely interfaces. In the .NET world, we have a choice among abstract classes, interfaces and delegates. (The J# people actually directly addressed quips from Sun Microsystems about delegates in “The Truth About Delegates.”) One of the workflow-based reasons why Jean-Paul and his thoughtworks.com posse depend so heavily on interface-based programming is to provide acres of unit-testing surface area. So what a more “mature” Jean-Paul may say in future is that he is aware that many, many Microsoft developers do not work in huge IT shops that demand this kind of testing. Most of us (lately I suppose to the embarrassment of Microsoft itself) provide solutions for small businesses or at department levels of large businesses. When Carl Franklin stuffed his big ass (just kidding, Carl) in that RV and toured North America last year, he took the time to speak to real Microsoft developers. His informal survey gave me the impression that most Microsoft developers still serve small business and/or small shops. With the recent release of Team System for Visual Studio, Java-based rude boys can smugly say that we are “growing up.” These would be the same Java snobs who can barely keep their strings in Unicode running so close to ANSI-based Linux metal. Dude, what happened to your glyph? Don’t let me get started.

*Model View Presenter and Model View Controller. *On dnr.tv, Jean-Paul Boodhoo could not tell you the difference between Model View Presenter and Model View Controller because only Martin Fowler knows the freaking difference. And when you find me working for Martin Fowler making over $99,000US per annum at Jean-Paul’s age, I wouldn’t care about the difference. I am sure that Jean-Paul follows directions with excellence and intelligence. My informal survey of Java programmers suggests that there is no clear agreement about what these design patterns are. There will always be small variations of the MVP/MVC theme so you can’t make your code snicker proof. One article that may be of ‘cultural’ interest is “ASP.NET and Struts: Web Application Architectures” written back in 2003 at MSDN.

Table of Related Resources

“[Understanding Interface-based Programming](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvb600/html/ifacebased.asp)” Back in 1999, Ted Pattison lays it down and makes love to it by the fire.
“[Making TDD Real](http://geekswithblogs.net/tmurphy/archive/2006/03/23/73134.aspx)” Tim Murphy’s comment on this topic.
“[Polymorphism in object-oriented programming](http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming)” Just a refresher.
[NMock](http://www.nmock.org/) Once you have your “interface types” isolated you may need to supply them with “mock” objects for testing.
“[Liskov substitution principle](http://en.wikipedia.org/wiki/Liskov_substitution_principle)” The academic foundation underneath using interfaces as types (assigning an interface to a variable).
“[ASP.NET and Struts: Web Application Architectures](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNet-ASPNet-J2EE-Struts.asp)” Another Microsoft Struts article. (Yes, I know Struts has been ‘replaced’ by [JavaServer Faces](http://en.wikipedia.org/wiki/JavaServer_Faces).)
“[Applying Robustness Analysis on the Model–View–Controller (MVC) Architecture in ASP.NET Framework, using UML](http://www.codeproject.com/aspnet/ModelViewController.asp)” Shams Mukhtar shows how MVC lives well in a Microsoft world. It may be useful to see MVC in action without Test Driven Development hooks all over the place. This highly rated article also shows how to use [UML](http://en.wikipedia.org/wiki/Unified_Modeling_Language).
“[Model-View-Controller](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpatterns/html/DesMVC.asp)” This looks like an MSDN Patterns and Practices article so we may find stability and comprehensive research here.

rasx()