In this article, we will compare some of the popular open source CMS systems. Here, we will study the architecture and the authentication supported by them. Two CMS systems are based on .NET technology and two are on PHP. The .NET systems we are analyzing are DNN and Umbraco, and the PHP systems are WordPress and Drupal.
Let’s analyze the architecture and the different features supported by each one of them.
DNN is an open source CMS system available on the .NET platform. It is available in both free and paid versisons. DNN has a basic Web application framework; multiple sites can be created on top on this basic framework. Each site consists of multiple pages and each page can have multiple modules. Each module is an application in itself. It also allows provides APIs to write custom extensions, and service APIs to connect to external systems. The DNN core system supports authentication against various providers, such as Twitter, Live, Facebook, and Google. This makes it easy for a user to log in with an existing ID instead on managing a new login.
In DNN, information is classified using taxonomy & folksonomy. Developers can extend tagging features to their custom modules by implementing ‘Content Items’. It also allows search engine optimization at the portal and the page level. Installation is made easy by providing an installation wizard and easy steps configure the application. A lot of free and paid themes are available for the users to use when developing DNN sites. It also supports development using HTML 5 and CSS. This also makes its UI responsive.
WordPress is an open source CMS based on PHP technology. It’s mostly used for creating portals and blogs. Its architecture revolves around template files; in other words, a full page or a blog post contains different sections such as the header, footer, side bar for navigation, and the content page. It allows a simpler and faster way to create and publish pages. It also offers a lot of SEO plugins that help search optimization. WordPress supports a two-step authentication process. One is the username and password that the user enters as a part of the authentication step. The other step is to register a mobile device from the application. Whenever a user tries to access the application, a verification code is sent to the mobile device; once the user keys in the verification code, access to the site is granted. There are a number of plugins available that can be used to enable the two-step authentication. This makes the application more secured because the verification is done twice. Installation is simple where, after extracting and copying the package, one follows the installation wizard to complete the installation of the Web hosting server. There are a lot of file management plugins available to manage and share documents with others.
Drupal is an open source CMS system based on PHP. Drupal’s architecture consists of modules that are further divided onto Core and contributed modules. Core modules are shipped with the installation package and cannot be uninstalled or removed. Contributed modules are custom modules that are installed separately and can be removed from the system. Drupal supports a forms-based authentication and also provides user management modules where users can be created and assigned privileges. It also supports anonymous users. Drupal supports a concept of content types. A page in a site can display multiple contents: news, blogs, and so forth. Each content is called a node and each node is based on a content type that defines the content to be displayed. It allows users to create a custom content type based on the requirements.
In this article, we looked at four open source CMS systems, their architecture concepts, and the features supported by them. Two of them are based on .NET platform and the other two are on PHP. Mainly, we touched upon the basic architecture and how they give flexibility to extend the application. We also covered the authentication support offered by the different applications. All the above applications are available in both free and paid versions. Choosing a platform may also depend of the expertise on the technology the development team or the support team has. It also depends on the application requirement and the plugins available for use.