WordPress, at its core is a blogging platform. However, the way WordPress have evolved over the time, it can surely be seen differently. There are people who use WordPress as a publishing software (and not just a a blogging platform). With the right kind of theme and plugins, using WordPress in this way can produce great results. But there are plenty of other features in WordPress, that take it beyond “just a web publishing platform”, and make it a full-fledged Web Application Framework.
But, what is a Web Application Framework?
According to Wikipedia, a Web Application Framework is:
A web application framework is a software framework that is designed to support the development of dynamic websites, Web applications and Web services. The framework aims to alleviate the overhead associated with common activities used in Web development. For example, many frameworks provide libraries for database access, templating frameworks and session management, and often promote code reuse.
Wiki also lists some key features that may be found in Web Application Frameworks:
-
Web template system – Allows for different data sets to reuse templates
-
Caching – Can speed up generation or loading times by caching frequently requested data
-
Security – Providing user logins and access levels
-
Database access and mapping – Easy access methods that abstract out database access to higher level functions
-
URL mapping – Allows replacing complex URLs with query strings with cleaner looking URLs that are parsed in the framework
-
AJAX – Frameworks to make working with AJAX easier can be packaged as part of the Web Application Framework
-
Web services – Offers an externally-usable API for machine to machine communication
How does WordPress fit in this definition?
If you are familiar with WordPress, you would agree that it have all these features!
WordPress themes are nothing but templates, where your front-end design is separated out from your contents. The contents we see on site are actually rendered by standard WordPress loops. One can convert any HTML template into WordPress themes.
WP_Cache is WordPress’ built-in object caching system that offers execution speed improvements by caching frequently-needed objects. Via the plugin functionality, WP Cache and WP Super Cache can offer a large variety of caching options that can increase site performance by an order of magnitude or more.
WordPress offers user logins, and by default, these logins can belong to one of five different access levels. It also have internal logic that determines access to 31 different capabilities in the entire system.
The wpdb class class provided by WordPress hides logic to connect to the database server and makes running queries more simple. Moreover, the options storage mechanism is provided that stores and retrieves data in simple manner.
Pretty Permalinks options allow you to easily modify and manage how the site URLs look like. The WordPress Rewrite API “generates” all the URLs on your site using the format you specify, so you can use this option to expose Google-friendly links.
Offered indirectly, but jQuery AJAX functionality is included and easily used by WordPress and plugins.
WordPress also supports publishing via Atom, XML-RPC, and email. It also provide automatic pinging facility, so that you can notify other web apps about your newly published contents. It also have default support for RSS feeds.
Thus, bottom line is, almost all of those features listed in section above are included by default with WordPress (WP Cache and WP Super Cache are exceptions, though).
Conclusion
Why we prefer to use a Web Application Framework is because it can make the project quicker to complete and can make maintenance easier long term. That are exactly the reasons why we should think of WordPress as a solution for new web application development.
If you are looking at developing a custom web application and have experience with creating WordPress plugins and/or themes, WordPress is recommended! It may not exactly provide what you are looking for, but you can strip out what you don’t want and leave what you do want, rather than developing everything right from the scratch.
Since WordPress is in active development, code updates come out frequently that improve on security, introduce new functionality, and thus, the overall performance. This also means that you get the benefit of improving the foundation of your web apps without having to actually code all of it.