More on CAB and PAG
So I said I didn't want to write that last post and I probably shouldn't have judging by some of your reactions :) I'm in the middle of being at the lake with my family on this Memorial Day Weekend but I did want to say something better than what I said in the last post. I guess that wouldn't be too hard :)
I want to say first that I have immense respect for Ayende. I have linked to him many, many times and I feel he is one of the best voices in the community. Sometimes the way he says things puts me off personally, but as he says, there are probably differences in the languages and cultures and we are both passionate :). Ayende responded to me here and here and here (he is a very productive young lad:) ) and we are engaged in good dialogue. I want to also state that I respect Castle/Windsor, StructureMap as well as tools like CAB. Notice I NEVER said DAAB or even EntLib :) It's a matter of making project choices. Why I had the reaction I did was not because anything above but were meant to address implications that there was a piece of software that was developed in a vacum that produced a bloated, overengineered piece of software and my post was meant to say that those things were false as it was not developed BDUF and was developed in iterative feedback loops.
I want to quote what I put as responses:
What I meant is that you and Jeremy seemed to be saying that they did things BDUF. I don't recall which post but there seemed to be multiple implications that they worked in a way that produced an up-front over-engineered piece of software. And I was trying to point out that those things are false and that you didn't understand how their software was developed. That's it, simple as that.
It's silly to think that Agile (or any other method) would gaurentee success. If the post seemed to say that, then it is my fault for not articulating my points. I really don't care what people use as long as it produces business value. Again, my points were focused around countering the seeming impression that this software was developed in a vacum with a methodology that wasn't iterative and didn't have feedback loops. And that is false.
I get that you don't like CAB and you are allowed to have that opinion (or any other one you have). But the way you say things (I am far from the only one) seems to codemn others that choose differently. Is CAB perfect? Far from it. Is CAB too heavyweight? Probably. Depends on how you look at it. If you take into account all the things it is doing for you in complex Windows Forms apps, I think it is not perfect but offers a lot of value.
The question always comes down to buy vs. build. You take a look at your business needs and your development team skill sets. If the development team doesn't match for producing framework pieces like this or even growing them organically and there are extremly tight deadlines, you look at "buy." I don't know the Castle stack well (I do know CAB very well plus WSSCF, SCBAT, etc) and you put together all the different pieces needed to do something like this it seems to be just as complex.
There was also this:
Not everyone should just build a framework every time there is need. Frankly, most developers are no where near as talented as people like yourself to build a framework just in time in an iteration system without blowing all the iterations. There is also that there is a lot more to a complex Smart Client than just the DI/IOC and Event Brokering that CAB provides. I am just curious if you work in that space. It seems to me that there are quite a few "plumbing" pieces needed tyo create plugable Smart Clients that dynamically compose their UI based on criteria that you specify as well as stitching everything up. Looked in that light there is a lot of value. Looked at as just the other things, it looks way overengineered.
As Ayende said here, Okay, now we getting somewhere.
Can you expand on what you mean by more than DI/ Event Brokering that you need in order to create a Smart Client?
From my survey of the CAB, I assume that you are talking about smart parts, but I really don't see a whole lot new stuff there. Maybe I missed something?
And I will after the Memorial Day Weekend-). For now, I think Bill has a good start here:
CAB for example is not just about building maintainable WinForm apps. I like CAB as it gives me a bunch of things and they all work together in a fairly harmonious way. EventBroker is a nice way to message between views and keeping the views separate; ComandHandlers allow me to hook up UI elements indirectly to code to execute them; the ActionCatalog let's me security trim my commands (and in turn my UI); and the implementation of the MVP pattern using views lets me write presenter tests and keep my UI thin.
Ok, back to the cookouts :) Let peace reign once more...
