Sustaining a new technology release with the proper example is always something highly desirable. ASP.NET MVC is a fresh release and the proper official reference applications have yet failed to appear.
Oxite was the first try to get an official ASP.NET MVC application. Let’s just say that it was wrong from many points of view including the fact that the guys that were actually involved in developing ASP.NET MVC were not even consulted. Many guys from Microsoft stood up saying that it was wrong: Phil Haack, Glenn Block and Rob Conery.
Kobe is the second attempt to get things right but it appears that it isn’t very successful either. As a response to the community negative feedback, we can clearly see the announcement :
This sample application is being updated to incorporate community feedback. An updated version will be released shortly.
This says it all!
Update: Kazi Mansur Rashid started a long list of posts on this topic.
Oren has a series of posts on this topic:
- Kobe – In the nuts & bolts and don’t really liking it
- Kobe – Data Access done wrong
- Kobe – When the documentation is the only delivery that matters
- Kobe – An example of exception handling done wrong
- Kobe – Architectural overview
Phil Haack (the PM of ASP.NET MVC) wrote a nice post on code sample taxonomy sharing his opinion on how released code should be labelled and how it should be perceived by the developers. It acknowledges the fact that he has agreed upon the high level architecture of the project but it seems to be a gap between the architecture and implementation.
Rob Conery has started a few months ago his own tutorial on an ASP.NET MVC Storefront starter kit. After a couple of comments on his architectural approach, he decided to refactor the code and after a few code reviews with Oren Eini, Scott Hanselman just to name a few, he came up with a better ASP.NET MVC application that also followed some DDD principles.
With the release of Oxite and the negative vibe around it in the community, he started to refactor Oxite code.
Kona represents Rob Conery effort to change the MVC StoreFront into an open source community application. I think Rob’s decision is something that the guys from Microsoft should’ve done with their reference application. I also think that Rob’s application as it is right now represents a good starting point for building a reference application.
I think that inside Microsoft there are great people that drive things in the right direction but sometimes the lack of coordination between teams and the lack of proper code reviews can lead to bad things such as Oxite and Kobe.