Sam Gentile

Sponsors

The Lounge

Wicked Cool Jobs

Syndication

News

  • This Blog has moved to samgentile.com. If you have subscribed via FeedBurner, you do not have to do a thing, feed has been re-pointed

Advertisement

Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at imagehelp@codebetter.com
On CAB and P and P

I didn't want to have to write this post. I've been disapointed for well over a week about this and I've phoned Jeremy Miller twice to discuss my displeasure. A ways back, Ayende decides to bash the entire P&P team at Microsoft and specifically CAB. Then Jeremy comes in as well although he at least allows for the fact that people might choose CAB for good reasons. Chris Holmes at least calls Bullshit on this whole thing. He has raised most of the points I would but I want to shed some more light on a few.

Let's leave out the fact that three of my best friends in the world designed and implemented CAB. That's just the personal stuff. My problem is simply that many of the assumptions and things they wrote are patently false. They don't know these people, they don't know CAB at all. I have written a lot about CAB in this blog. Steve and I decided on it, we have 8 developers on it and we are extremely comfortable with its DI/IOC and the Event Brokering as well as well as the Smart Parts. And yah, we understand the same patterns that Ayende and Jeremy understand BTW. It has enabled us to build a state of the art dynamic, composable UI for the financial industry that knocks out our customers and lets us work in a totally extreme way.

Anyway, there a lot of assumptions that are just wrong:

  •  think the P&P team's framework products are hampered by the fact that these tools are written in a vacuum outside of any one project or group of projects.  It's speculative design. 
  • The P&P team doesn't work with their tools on real applications. Basically, these tools are created in vacum, not by having to solve real world problems

Wrong! What become CAB was developed for a real application together with multiple teams for a banking industry customer. The P&P team also worked with dozens of customers to help decide what went into CAB (we are just one of dozens). But what I object most is how they are targeting the wrong team in Microsoft! The P&P teams are one of the ONLY if not the ONLY team(s) in Microsoft that do Agile XP. They didn't do BDUF. They went into a War Room and built CAB in Iterations with TDD. I met with them many times and they were as fierce proponents of TDD/XP as Ayende/Scott Bellware/I are. If anything, you should be applauding and supporting a team trying to CHANGE the Microsoft system from the inside out. Have you seen the rest of the stuff that Microsoft is churning out for Morts? Here's a group trying to spread the good news of Design Patterns/Fowler, TDD, Agile and Iterations, etc and you have to stick it to them?

  • The CAB is a good example, I like some of the ideas there, but it comes with so much weight around it that it is not worth bothering. I can build on the same ideas in half a day and end up with a far more light wieght approach, easily testable and easier to explain to the next developer

Frankly, I am personally tired of hearing all the things you can build in an 1/2 hour Ayende. Why do you constantly have to show how smart you are or your worth? Whether you can or not is immaterial. Its' fine when you are in your early 20's and can write code (and blog) for 22 hours a day, be on dozen OSS efforts, etc. I could write framework too but I choose to write business value functionality that my business REALLY WANTS instead. With tight Iteration deadlines, we picked CAB and I would do it again too. Why did you pick NHibernate? Shouldn't you write an O/RM in a week as well? Probably similar reasons to why we picked the Wilson O/RM. On a side note, as I told Jeremy stop advocating Windsor/Castle when the last downloadable install release on the web site was Dec 2006. Yes, I can play with Subversion and all that good stuff but I have more important things to do like ship software. I respect you, but frankly these kind of posts don't endear you to me or others as they seem quite elitist and seem to advocate "you choose my way or you're dumb" mentality. If you want me (and others) to keep reading, maybe you might want to think about this.

Its not worth bothering? I understand DI and UI patterns and I chose it and bothered with it. What I thought at first was heavyweight is pretty suited to the tasks we have put it towards it. Its pretty testable to us, with 1900+ unit tests in our system, a major chunk of which is in the Presentation area. CAB certainly does Model-View-Controller or Model-View-Presenter straight away and we split into  Supervising Controller and Passive View. We actually don't find CAB that hard anymore and we are able to add UI logic in Iterations fairly quickly (We are on a one week Iteration system).

There was also a contention that the CAB team didn't look at anything else when they built CAB. That's totally false. I know from a fact from conversations with the CAB team that they looked at Spring, Spring.NET among others. You already know why they can't use OSS stuff in a codebase that could jepordize products like SQL Server. That's an orthogonal issue. I will tell you that it's fair to say that the CAB folks I know were fighting hard to use that stuff and appreciate the OSS community. They are the ones fighting the good fight.

All, in all, I am not thrilled with this post. It's gotten more personal that I would have liked. From our conversations on the phone, Jeremy knows where I am coming from. I support his series on Building Your Own CAB because you need to understand all of these patterns whether you use CAB or not. I'm going to stop there because I don't want to write about this anymore. I want to ship software.


Posted Fri, May 25 2007 1:33 PM by Sam Gentile

[Advertisement]

Devlicio.us