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
Oxite - An Example of How Not To Write MVC Applications

You may have missed the release of Oxite recently, and some of the hype and comments around it. Having now seen some absolutely ludicrous comments on the web chiming in about how good it is, I feel compelled to write my own short appraisal. Lets start with some of the hype by the Oxite team about their application, as published on CodePlex:

Oxite is an open source, standards compliant, and highly extensible content management platform that can run anything from blogs to big web sites.

We heart you so much, that we thought of everything. Oxite was developed carefully and painstakingly to be a great blog sample, or a starting point for your own web site project with CMS needs. Its line-up of sexy attributes includes: provider-based architecture allowing you to swap out database and search providers (SQL Server DB, local and Live search providers included), built for testability and hence most likely to be voted "hottest in class" by TDD fans (repositories, everything has an interface, etc.)

That is the honest opinion of the Oxite team of the application they have written ... "hottest in class" by TDD fans

Now come on!!!! Firstly, to be admired by TDD fans it would have to have been developed using TDD, which clearly it wasn't - it's test coverage is pitiful, seriously pitiful.

But even forgetting picking on specifc ridiculous statements, it only takes 10 or 15 minutes of digging through the source to realise how poor this codebase is - really poor.

Now this has sparked a large number of web responses - one of the first was Rob Conery. Rob is a good guy, a very talented developer, and with his MVC Storefront application he has provided a very good example app for ASP.NET MVC. He took on Storefront  as a learning excercise, and although he has had some problems, and has changed things a few times, overall the app is pretty damn good. Rob is pretty restrained in his comments, understandabl as that is the kind of guy he is, and this was an application from his own company, Microsoft. Although not officially endorsed by MS, anything they release will obviously be held up as an example to others of "the right way"

This mild rebuttle was followed by Karl Seguin, who was far less restrained in his comments, with good cause. And that's where the furor began. For some peculiar reason, many people popped up out of the woodwork to say how good Oxite was, how it was really good of MS to release it, and about how they were going off to start writing other sites like it.

Then another peculiar thing, Rob Conery decided to refactor the application to try and make it half decent - he also commented that people who said negative things about Oxite were making his job harder in getting the Oxite team to sort the mess out.

Chad Myers commented, and tried to be restrained in his remarks - but never the less, his conclusion was less than complementary about Oxite.

Scott Hanselman then decided to chime in, and fairly predictably so as a MS employee, urged restraint in critisism. Scott has always been the diplomat, and his post was definitely down the middle of the road.

But Scott was missing the point, Oxite was not only shockingly poor, but was being promoted as a some wonder application, highly testable, "hottest in class" by TDD fans ... ultimately the puff on the CodePlex site was making this out to be "the right way" to do ASP.NET MVC. Oren decided his commentary would be on the PR blunder this had been, and specifically about Scott's comments, which he felt were less than appropriate.

Fast forward to today, when I was directed to a blog post via Twitter - in which Nigel Parker had swallowed the blue pill and repeated the ludicrous puff stuff from the Oxite team. (this link now appears to have been removed from Nigel's blog). More suprisingly he then went on to say how good this was, and how it as just what the development community needed. This prompted more than a few raised eyebrows - though clearly the post was written before Nigel had downloaded the code or read it - I can only hope he has now done so, and has come to the same conclusion that most of the developers I respect have done - Oxite is poor beyond belief.

I got narked enough to write this because I am stunned at ho many people thnk the Oxite application is "good", to be honest I am stunned by any developer who thinks it is of release quality, let alone to be released by Microsoft as an example application. Many many newcomers to ASP.NET MVC (an MVC in general) are going to pick this application up and copy it - consciously or subconsciously - and then we have the next generation of spaghetti mess that MVC is designed to eliminate.

And then these newcomers will find their MVC projects as f***ed up as the Webforms projects, and blame MVC, blame TDD, and generally blame anything but their own actions. And in this they would have some element of being in the right - if Microsoft employees release an example application, that in any way bears the Microsoft name - they have a responsibility to get it right.

And to round this off, Glenn Block posted the perfect response to Oxite - a piece of honesty and openess that elevates him even further in my estimation. The situation is summed up perfectly with:

There is no excuse for this. There are tons of folks both internal to Microsoft or external that can help people who want to learn good practices for developing software. The fact that the MVC team was not even consulted by the Oxite guys is literally stunning. Not to mention all the other folks we have internally like patterns & practices, folks in our evangelism team, and TDD and Agile email discussion groups which have hundreds of folks. I really wish the "Look what we can do" mentality would become a thing of the past.

Hallelujah, somebody gets it!



Posted 12-19-2008 5:56 PM by Jak Charlton
Filed under: , , ,



Christopher Bennage wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-19-2008 2:12 PM

Good summary.

Glenn Block wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-19-2008 3:12 PM

Nice post Casey.

I agree with all your points especially the concerns of the message it sends to newcomers. You just have to read the comments on Codeplex to see what they think.

When weak, feign strength wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-19-2008 4:38 PM

pretty much summarizes it

ASP.NET MVC Archived Blog Posts, Page 1 wrote ASP.NET MVC Archived Blog Posts, Page 1
on 12-20-2008 3:25 AM

Pingback from  ASP.NET MVC Archived Blog Posts, Page 1

Dew Drop - Weekend Edition - December 20-21, 2008 | Alvin Ashcraft's Morning Dew wrote Dew Drop - Weekend Edition - December 20-21, 2008 | Alvin Ashcraft's Morning Dew
on 12-20-2008 9:08 PM

Pingback from  Dew Drop - Weekend Edition - December 20-21, 2008 | Alvin Ashcraft's Morning Dew

Reflective Perspective - Chris Alcock » The Morning Brew #249 wrote Reflective Perspective - Chris Alcock » The Morning Brew #249
on 12-22-2008 3:40 AM

Pingback from  Reflective Perspective - Chris Alcock  » The Morning Brew #249

Josh wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-22-2008 12:19 PM

Let just say your comments are the lastest in a great telephone game of misrepresentation.

Show me where on the Oxite say they make any reference to TDD or it being an example of MVC using TDD.

So really your post has no basis beyond a steaming pile of rumor monguring.  You spend most of your post potraying it to be something it is not even advertise as being. (TDD)

Pretty much all you accomplished was showing yourself as a linker who reads a few feeds and has nothing factual to contribute.

Jeremy Gray wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-22-2008 2:00 PM

@Josh - the Oxite site _no longer_ says many of those things, since it has been _changed_ without any editorial note to that effect. I remember quite distinctly when it first went up and the site was fawning all over itself about each and every thing it is not being called out for. And then some, even.

Jak Charlton wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-23-2008 8:45 AM


The offending text is all from the Oxite sites (as was) ... they changed the CodePlex site, but the Mix site is still ludicrously evangelistical about the Oxite code base.

Honestly. go download the source, have a read. If you come to the conclusion that it is a quality code base, then good luck to you - you probably aren't the kind of person that should be reading my kind of blog.

Glenn Block wrote re: Oxite - An Example of How Not To Write MVC Applications
on 12-24-2008 1:36 AM


Casey is right, the offending text was cleaned up on the site, including the MIX site....thankfully.


Jarrett's Tech Blog wrote New BlogSvc Release and Oxite
on 12-24-2008 11:20 AM

Wow, I believe I’m all caught up on the recent hype around Oxite. Although I can’t help but…

Bitcrazed wrote re: Oxite - An Example of How Not To Write MVC Applications
on 11-11-2009 1:57 PM

Where's the meat?

I've read your and others' comments about Oxcite and yet, whilst I have only seen rare cases of specific issues with Oxcite, I've seen a large amount of non-specific "it's terrible" statements.

So, rather than generalizing with statements that a set of code "is poor beyond belief" and "it should be pulled ... NOW" demands, why not articulate your specific issues?

Should you do this in public? Yes - but only if you're willing to be honest and respectful. I'm not interested in reading posts about how one author thinks that another is "stupid".

I wasn to see where you would do things differently and why.

Guru Stop wrote Microsoft’s Oxite Successor, Orchard, A CMS “Platform”
on 11-12-2009 4:25 AM

If you heard about Microsoft Oxite CMS, this is the new one: From Press: Microsoft's open-source CMS

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)