So, I’ve been a bit quiet here recently, mainly because I’ve been absolutely swamped with a re-architecture project for a pretty major client, but any free time I did have I’ve been using it to learn about Orchard CMS. As you, yes you, you’re the only person that reads my blog… as you may know, I’ve had my own CMS for a number of years (http://www.fluxcms.co.uk or http://flux.codeplex.com), but with pressure of work I’ve not had much time to update it or add new features and to be honest, now that Orchard has released v1.1, I really don’t see much point in taking flux forward – Orchard kicks it’s ass to the ground and stomps on it’s private bits.
What is Orchard – it’s and ASP.NET MVC content management system, backed by Microsoft and is Open Source!
If you haven’t heard of Orchard, I strongly encourage you to go look at it now – http://www.orchardproject.net or http://orchard.codeplex.com – it’s well designed and uses some great technology like ASP.NET MVC3, the new Razor view engine, NHibernate for persistence, AutoFac for DI/IOC and it’s got a nice, active and helpful community. The key people on the project are Microsoft employees and MS have kindly funded the project up to this point, and presumably will continue to do so in the future, but there is a reasonably vibrant, and growing, community around the product.
Anyway, I needed to build a site for a friend of mine who is shortly launching a set of premium SharePoint components and solutions and for this he needed a website to promote and sell his wares, I volunteered to help out as his requirement would touch on most areas of Orchard and gave me a good reason to dive in with a real world example that I could then reskin and make open source for the basis for this series.
Learning orchard was quite straight forward, the source is available and there is some good documentation on the site – the recent release of v1.1 was also a godsend (take a look at the new shape tracing features to see why). What I did find though was as I started to go beyond the basics of modules and skins, the documentation was a little light, but the community made up for this, with regular and prompt answers to questions and some good overall advice. (big up to bertrandleroy and randompete on the forums for all their patience and help!).
I hope that this series will help other newcomers to adopt this CMS and grow the community further.
And so, without further ado, the scope of the site is for a fictitious company that makes premium components, themes and modules for orchard. They require a site which features;
- Nice(ish) site design
- Homepage layout with
- an aggregation of recent content, both from the site and from external sources (eg: Twitter)
- a promotion area to have the most recent product promoted
- Blog to post articles, tips and announcements for the products
- Rudimentary general pages
- A list of products they sell
- Product sections – each product will feature;
- Separate pages for main product overview, features etc.
- Ability for users to rate products and enter reviews
- Screenshot library for each product
- Basic shopping functionality
- On any of the product pages, add the product to the basket
- Products may be pre-release and so instead offer a “register your interest” option.
- Shopping cart view
- Check out via swreg.com or similar.
All in all, this is a pretty simple site but touches on all the key areas of development with Orchard. The look and feel of the site is as per the following mock up (click for a larger view);
So that’s the stage set, up next we’ll get ourselves a copy of orchard and make a start on skinning it to look like the above. I’m not planning on covering how to use orchard to manage your site in any of these posts by the way, this will purely be technical content which I’m hoping to write in a recipe style so you can both follow along with the series or use each article as a reference for how to achieve a particular goal.