Microsoft announced last week that it was scrapping its Windows Live Spaces blogging technology, and would make Automattic’s WordPress the default blogging platform for Windows Live. Couldn’t Microsoft’s Orchard, the three-year open-source project to provide a general-purpose website publishing and blogging platform, come up with the goods? Sadly, it is just bad timing: Orchard is only half way through its development, which aims to deliver far more than just a blogging platform. It promises an extensible architecture and a complete set of reusable components from which you could easily assemble a web-based application that is exactly tailored to your needs, the IT equivalent of Lego. At the moment there is nothing quite like it on the market. Whereas Joomla, WordPress, Drupal and all the others give you a tantalising glimpse, the more you try to tailor them the more you realise that the components and plug-ins don’t quite work together as you’d expect. Unless you design a framework from the ground up to be extensible, you’re going to hit the limits pretty soon, however attractive the plug-ins seem.
The idea of modules is at the heart of Orchard’s design. Orchard is built on top of ASP.NET MVC. MVC has a model (M) for the data, a controller (C) that orchestrates the UI and determines how it operates on the model, and a view (V) that just has to display what the controller passes to it. It also has ‘Areas’ that contain a set of features that are logically separate. Orchard Modules are MVC areas with YAML manifest files, the Module architecture allows you to slot functionality into a site. Want to add comments to a product, a picture or whatever? Decide that you want a blog? Want to publish articles from a CMS? Use a Lucene site-Search engine? You can pick, choose or write your own.
Orchard is therefore already a framework for Web Application development, but it is also an Application. Currently, they’re working on the Orchard CMS and Blog that are, in Beta version 0.5, already usable, albeit a bit rough around the edges. It is worth keeping an eye on Orchard, to see how it develops, or even join its’ community, since its aims are easy to sympathise with. See: http://orchard.codeplex.com/ and http://www.orchardproject.net/.
Orchard is an important part of a wider strategy for Microsoft that includes Razor and WebMatrix. It is to provide far simpler tools for people who want to create web applications, but at the same time give them the freedom to create design features that are novel and progressive. It is a hard balancing act, but well worth the attempt, since website development shouldn’t really be as hard as it currently is.
Is Orchard the best approach to componentised website construction, or have you come across better ones? If so, I’d love to hear about them.