A Facelift Using Orchard CMS
Okay. I've finally started to upgrade the FoxWiz Solutions website after almost 12 years of no maintenance whatsoever. I'm sure that many folks to whom I've given my email address have come out to the site and been extremely underwhelmed by what they saw. Truth is, web development has never been my forte. Actually, I find it tedious and don't really have the passion for it that I have for desktop applications. That's a nice way of saying I hate to develop web UIs.
Client-side scripting? Code behind? Flash or no Flash? CSS that works in IE but not in Mozilla (or the reverse)? Use tables? Don't use tables? AJAX? Managing state in a stateless model? Not to mention the complexities associated with debugging. Just too many moving parts for my tastes. Also, despite the evolution of the tools, I've never seen a web interface that delivers the same rich, performant user-experience that a Winform or WPF application delivers. Then again, I haven't kept up on the most recent advances so I'm not going to be one to judge. I have colleagues who are apparently doing some pretty incredible things with Silverlight. I'm just not one of them. After all, there's plenty of work for a guy like me who enjoys architecting a robust set of services or designing the ultimate OLTP or OLAP data model.
Still, the site needed to be updated. Everytime I felt like I was ready to immerse myself into revamping it, something else would come up to divert my attention; like taking a nap or doing laundry.
Finally, like many folks, I figured I would just farm the work out to someone who actually likes doing web development. After all, there are multitudes of web shops where young webmasters churn out robust sites using the magic in their toolboxes. All I needed was a simple site that would allow me to start blogging about what I think I know, share some of my experiences, and allow me to continue to make some developer tools and products available to folks who will hopefully throw a little cash my way. How hard could that be??? At a minimum, I would have a code base that I could alter and evolve to fit my needs.
So, I approached a colleague and asked for his help/recommendations. He's a younger guy who stays on the cutting edge of the changes in the toolkits and basically told me he could set something up for me in "no time". And, he did. Now, mind you, I was expecting a VS solution containing the typical ASPX and HTML files and the like. I expected everything would work and I could go in behind him and make any changes I wanted and integrate some of the services that the site would need to work with.
What I received a couple days later was a site built on top of Orchard CMS. I don't do enough Sharepoint administration to know whether the comparison is accurate, but for my money, Orchard seems like an open-source "Sharepoint Light". That's not what I was expecting, so I didn't think it was what I wanted/needed. Now, I would have to figure out how to manipulate widgets and modules and content types and the like in order to make the site serve my needs. Also, I would have to guess what the code was doing behind the scenes in order to connect different moving parts to achieve my end goals. As if I have time for all of that, right?
I thanked my friend and stashed the code away and went on with life and work while the old site remained up and running and serving as an eyesore on the internet.
Now, I have a lot of respect for the friend who gave me the original Orchard site. He really does keep his finger on the pulse of current development patterns and practices. Finally, I decided to commit myself to a few hours of trying to understand what he had given me and why he was so impressed by it. There had to be a reason...
After the first couple of hours of trying to figure out how to configure the product, I called my friend and told him that it would surely make sense from a productivity perspective for me to just build the site the old fashioned way because I felt like I was wasting a lot of time. Something in the way that he agreed with me made me decide to keep going. After another couple of hours of reviewing the extremely limited information about this beta product and building a site on my own, I started to have those "Ah Ha!" moments that we all hope for. Suddenly, it all (well, not all, but some of it) started to make sense. Orchard is a platform that is not unlike the frameworks that many of us have developed over the course of our careers. (I have been using mine, RapidApp, since the early 80s. It's never been released for sale or share because I've never had the time to document the 100s of thousands of lines of code that enable me to rapidly churn out my solutions).
A strength of Orchard lies in the many different modules that are available and continue to be developed to plug into the platform. Like this blogging module, for example. To add blogging to the site, I literally went into the site dashboard (control panel) and enabled the Blog module. Voila, I'm blogging! The full source code for that module is contained in the VS solution that comprises this site giving me complete access to understand what is going on under the hood. This is great! (Especially when one considers that there is a bug in the Blog module that caused me to have to restart this post twice before I realized there was an issue that was not caused by the man in front of the keyboard. Presumably, I'll be able to debug later, fix the issue, and report it to the cooperative that is managing this open source project.).
So, I think I can safely state that I'm sold...so far. There are still some lingering questions as to how I'm going to integrate with PayPal and my WCF services, but I'm sure that's just going to come down to my becoming more familiar with the platform. I'm guessing that when I know what a widget is and what the difference between a Container and a Containable Part is, I'll be well on my way to having a hold on this very powerful product. The biggest challenge will be finding documentation that can help a newbie out. As I stated before, the documentation and information is extremely weak. I guess that's to be expected considering the beta status of the product. There are lots of modules out there but rarely any instructions on how to configure the modules so that they can be used. I'm sure that will change. I plan to continue exploring the product as a naive beginner and will share my experiences here. If not so that someone else can benefit from my experiences, then as a reference for me when I build my next site on Orchard CMS.
~D