As much as I love ASP.NET and all of its associated technologies, building a new website from scratch doesn’t always make sense. Even though Microsoft has broadened the web development infrastructure provided by ASP.NET and IIS over the years to include many of the low-level services that most non-trivial websites require, there is a lot more that sites require, particularly on the user interface and content side of things.
It’s not news that Content Management Systems (CMSs) power a significant portion of the sites on the web; increasingly, my work has involved working with CMSs, both for relatively simple sites for clubs and other organizations I belong to, as well as for enterprise clients. I first got my hands dirty with some simple DotNetNuke and WordPress sites years ago. Lately, I've been going deep into Drupal for a specific project, which is a CMS that I hated at first but I've since grown to love. I still do plenty of work with ASP.NET, but I’m doing increasingly more CMS work.
The main benefit of a CMS is that its tools provide most of the infrastructure needed by modern websites, letting you and other users focus on the content and custom features. Many CMSs even include workflow features to support sophisticated content creation, review, and publishing, and some have surprisingly robust security infrastructures for controlling who can do and see what. Themes keep the UI stuff separate from the backend admin features, making it easy to overhaul the site’s appearance and organization. Some started as blogging platforms and branched into content management, while others took the opposite route.
W3Techs does a variety of ongoing web technology surveys, including one that tracks CMS usage statistics and market share, updated daily with full transparency about their methodologies. Here are some interesting statistics from late September 2014:
- 62.1 percent of all websites don’t use a CMS. Which, of course, means that a whopping 37.9 percent do use a CMS of some sort. That’s a lot of websites.
- WordPress is the top dog, powering 23.1 percent of all websites (not just those that use a CMS), giving the CMS company a 61.0 percent share of the CMS market. Not bad for an open source project!
- Drupal is third after Joomla, being used on 1.9 percent of all Web sites for a 5.1 percent CMS market share. Even Joomla has only a 7.9 percent share of the CMS market, so things drop off quickly after WordPress.
- Two prominent ASP.NET-based CMSs are pretty far down the list. DotNetNuke has a respectable 0.6 percent% of the CMS market, and Microsoft’s Orchard weighs in at 0.018 percent, but with steady growth.
Check out the chart that summarizes this data for all CMSs that W3Techs tracks. WordPress has dominated the market for years now, and there are no real signs of that changing short of a serious misstep with a major new version. The rest of the market shifts over time, so there’s no telling who tomorrow’s winners are going to be.
Interestingly, the vast majority of the top non-hosted CMSs are built using PHP and MySQL. Even .NET makes an appearance in a few spots, but it’s certainly not a dominant technology for CMSs today.
Ironically, something that has helped bolster CMS acceptance is the work Microsoft has done to make non-Microsoft technologies run better on Windows servers. For example, PHP-based sites can work just as well on later versions on Windows and IIS as they do on Linux and other OSs. So moving to self-hosted WordPress or Drupal doesn’t automatically mean dumping all your Windows servers unless you really want to.
If you’re interested in the differences between WordPress and Drupal, it’s pretty easy to summarize. Both hosting sites have a learning curve, but WordPress is far easier to learn and use without messing around with low-level technical details. You can certainly geek out and write code to enhance a site, but the vast assortment of plug-ins available make adding most features as easy as plug-and-play. Drupal, on the other hand, requires a much deeper knowledge and understanding of how the whole system works before you can do very much with it. Drupal is more modular than WordPress, so you’ll have core modules, and then you'll need to add a variety of contributed modules that go even further to perform just the basic actions. Knowing which modules you need in Drupal is a whole other learning curve! Once you figure things out, however, you can do some pretty amazing things with Drupal that would be much more difficult to accomplish in WordPress.
That’s all I’ll say about the differences here, but you can find much more detailed analyses with a Google/Bing search.
By the way, I’ve not gotten into Joomla yet—despite its second place in market share—because it is a mix of the easy-to-use WordPress and the complex power of Drupal. That makes it either harder to use than WordPress or less powerful than Drupal, depending on your perspective. So far I’ve not needed to use Joomla.
Tools like ASP.NET aren’t going away any time soon, but packaged solutions built into a CMS seem to be both the present and future for content sites.
Time to go brush up on my rusty PHP and MySQL skills!