Oxite: Good, but not clean

Oxite logo

Oxite has been released not long ago and had some mentions, mostly because it was used at the official MIX site and because it is created using ASP.NET MVC.

At first, the project looks fantastic. It includes a lot of blogging related stuff (metaweblogapi, pingbacks, gravatars...), it showcases how to use ASP.NET MVC, and full source code is available.

It has been promoted as an MVC starter kit in some places too. From the past, I usually take a cautious approach to starter kits, because some of the first ones that appeared were a bit crappy (TimeTracker for example, which in my previous company we had to modify a lot to be both testeable and usable in a real scenario).

I must admit that before trying it I read this Karl Seguin article, not giving a very good rating to Oxite. After that, I downloaded the source code (the most recent release), and had a look at it (not very deep, as I'm yet learning ASP.NET MVC).

I've created a small example list of defects (without looking at Karl's ones) of why I think that article is quite right in the critic:

  • The project includes a .dbproj, which needs a Visual Studio 2008 Database Edition. Not a good start for an apparent "showcasing ASP.NET MVC application" (that a lot of people won't be able to read).
  • Bad localization: Some places use a Localize() function, but others have text written into the .aspx directly.
  • Logic on some aspx files is present, and other things "uglier" for my eyes, like Response.Write(). <- If this is MVC "way to go", I prefer the old and classic ASP.NET with separate logic, or some Java Servlets-like approach (generating all output on BLL and just outputing it) than messing code in the Views which should only present data...
  • Having created some custom controls to handle all this ViewData[] mess in some pages would be way much clean.
  • Tests are not bad but there are not too many of them.
  • There are almost no comments xD (and of the few existing, some are just TODOs)

This is a small list made in a quick look at the code, I've read all sorts of critics like poor security (allows XSS, for example), bad MVC controller logic or inconsistent code conventions.

It looks as if it was done in a hurry and/or by an unorganized/uncoordinated team.

Not everything is bad, though. The code is legible, with good and self-descripting method and variable names. The DB model looks good, controllers are separated from the web project, and as stated at the start it can serve to blog developers to create components for some tasks like using the metaweblogapi.

Also, I've read that the code is being refactored and improved, so my advice is to wait for a while until it gets "fixed". It doesn't looks like a good starting point for ASP.NET MVC.

Comments?

Posted by Kartones on 2009-01-21