By the way, some other notes on dependency injection customization.
Open Source CMS
For a long time, I have been watching the Microsoft Orchard project with great interest. It is the first Microsoft open source project that has provided a truly feature rich Content Management System that is blessed my Microsoft itself (unlike other offerings from DotNetNuke and others). While PHP-based systems like WordPress and Joomla still dominate open source CMS mindshare, Orchard provides a component based extensibility model that is only matched by Ruby’s Refinery CMS when it comes to its architecture, object model, and extensibility.
The key to making the greatest use of any open source CMS system is extending it to combine its content management features with general functionality needed for a particular vertical market or problem domain (e.g., running a company, interacting with users, building a web store, etc.) and making it look precisely the way you want it to using an expressive, dynamic theming engine. The following articles are new and provide a great starting point for learning how to extend Orchard, which can look like a daunting task to start with:
- Writing an Orchard Webshop Module from scratch–FINALLY, an up to date end to end series of articles showing how to correctly write Orchard modules!
- Orchard Extensibility–A great article on extensibility options by one of the creators of Orchard, Bertrand Le Roy.
What about performance?
Personally, I had a few issues with Orchard deployments being slow that, to this point, always had me going back to using solutions I liked much less architecturally–namely, WordPress. While .NET as a technology would seem to perform SO much faster on average than a PHP-based solution with an ugly mess of a code base and rigid architecture, you could almost FEEL Microsoft Orchard moving and churning on your content once deployed–not a good thing. Bertrand addresses this here, and I am ready to give Orchard another try–at least on my CloudMetal personal technology blog and consulting site. Stay tuned to see how that works out!
This morning, I came across this post about writing an Orchard module. It was one of the few I have found detailing the experience, and the feedback from members of the Orchard team is good to look at.
Recently, I have invested a LOT of time in determining a direction (or set of directions) to go with Content Management Systems. After careful consideration, I have banked my immediate fortunes on Microsoft Orchard, and open source framework for ASP.NET MVC 3 supported by Microsoft. I have found the following links helpful in learning the framework and how to use it:
- Orchard Themes Article–This article discusses the cool built in tracing tools that help with laying out pages and learning how to customize themes.
- Creating an Orchard Module that uses another data store–This article exposes a technique that can be used to customize the data storage done. By customizing your own
IRepositoryimplementation and hooking it into the storage filter for your “driver”, you can utilize Orchard’s CMS behavior without being married to its sometimes SLOW data access method.
- Tool to build themes ONLINE!–This is a super cool tool for building Orchard themes online based on a template that you customize.