December 2007 Entries

The Pitfalls of Concession


Ayende recently posted about a design aspect of the new MVC framework coming down from Microsoft. Ayende raised concern about the design requirement of attributing your public actions on a controller. He points out that Rob Conery has a 6 page post covering the usage of a tool to mask the pain involved in typing the excess noise. A follow-up by Phil Haack presents a solution through subclassing that allows one to avoid the attribute. What about composition instead?

The real reason behind this post is not to discuss the merit of a design decision directly, but the more off-handed results that come from it. If Microsoft is protecting the developer from making mistakes by requiring an attribute here and there within a controller, well, why wouldn't they protect the developer all over the place? Where does one draw a line in the sand from a design perspective? If we made a concession before, can we use that as justification for yet another design decision that might change the direction of the software even further? While the CTP is baked, the API can still change and Microsoft is listening, pipe up if you care to share your opinion.