Custom Orchard Themes - Converting Existing Web Design and HTML Templates
Integrate Orchard into the Web Design
My first Orchard websites focused on integrating the web design into Orchard, and really what I should have been doing is integrating Orchard into the web design. The web design and templates are the king here and Orchard is but a servant of the website, client and business needs.
I rip out everything Orchard thinks it knows about HTML and replace it with the web design.Now instead of trying to incorporate the web design's HTML, CSS, and JS into the default thinking of Orchard, I rip out everything Orchard thinks it knows about HTML and replace it with the web design. This means there is a bit more overriding of shapes and wrappers, but the overall solution is beautiful, uninterrupted HTML true to the spirit of the web design. You get better validation of HTML and CSS, less noise created by Orchard, and it is far more easier to maintain with changes to the original HTML, CSS, and JS.
You also have the benefit of having a website that does not look like it is powered by Orchard. Last thing we want to do as Orchard Developers is have a whole bunch of similar ( if not exact ) looking websites like the early days of the DotNetNuke ( DNN ) Community.
We all overexaggerate how much control we need over our websites and what we plan to do with it.Seriously question if you really need a reusable widget or module for absolutely every inch of the website. After 18 years of developing, managing, and administering websites, I have come to the conclusion that we all overexaggerate how much control we need over our websites and what we plan to do with it. In reality, most people are far too busy running their business to spend time on the website.
This means the 75 zone, 100+ widget, Orchard CMS website is probably overkill. In fact, the web design templates that cross my desk to be converted to custom Orchard Themes often won't handle that flexibility anyway. And, because every little zone, widget, content type, and part is dynamically generated on the fly and composed at runtime, this may not be the best performing solution using any CMS on any host provider! You'll also find trying to manage all of that in the administration area of any CMS will be a full-time challenge.
As such, I have gotten very opinionated in my Orchard Themes when possible. Just because there is a widget or you can build a widget doesn't mean there should be one. Often the client and I find it is so much easier and cheaper to develop and maintain an Orchard website that is far more opinionated than a focus on "there's a widget for that" and "you can customize it yourself" but probably never will attitude. The website also ends up being better performing as Orchard has less to do in the pipeline to display a page.
Sum is Greater Than the Parts
Open the Chrome Developer Tools or Firebug and look for opportunities to optimize the Orchard Website. Optimize as a whole without doing a disservice to the value of pluggability and the migration of new and improved components and themes.
This is just scratching the surface on ways to improve the development of custom Orchard Themes and Websites. Now that we have had time to digest much of the Orchard Documentation and build custom widgets, themes, and modules, we need to raise the bar on the quality of Orchard Websites. In addition to building more manageable, feature-rich, and well performing modules and widgets, we need to make sure the website as a whole is optimized. This will mean working closely with the client as to the real needs of the website and customizing those Orchard Modules, Widgets, and Themes for the good of the website.