APPLICATION DIRECTORIES

When you install a CMS system out of the box you have a virgin CMS installation which is always the same starting point. My idea for application directories is to customise the default CMS system to perform a specific application need or function and then deploy that customised version of the CMS with additional extensions and plugins already installed and configured multiple times to different domains using the ADT. The vision I have is that extension vendors could provide installed configurations of their extensions as a complete application meaning that you could "buy" a fully configured blogging system or a fully configured social networking solution "off the shelf" that has been built and configured by expert application developers for you. In this way its possible to make use of the "write once use many times" principle meaning that an application can be developed once, a baselined repository of it provided in an online "application directory", and an "infinite" number of customers can install (possibly for a fee) that pre-configured application as their own rather than having to start building it from scratch. This is intended to be a productivity boost. Preconfigured applicationt ypes could be blogging solutions or ecommerce solutions or social networking solutions and so on. If you use a solution provided by a vendor which is not self hosted, in other words, "they" control the software, then you are not free to customise the application if you choose to. With what I am suggesting here, a leading edge social networking solution could be developed for you (like a 3rd party vendor might develop a solution that you then subscribe to) but you would still have complete control if you wanted to make further customisations of your own because you would be self hosting the application.

Here is the workflow that I am suggesting for how the concept of "application directories" could work:

  1. An application developer installs using the ADT a base CMS, say Joomla onto their own servers and takes meticulous care about developing a very high quality application to meet a common business need, say, ecommerce or social networking or blogging.
  2. When the application developer is completely satisfied with the application that he has developed, he creates a set of baseline respositories (making sure that there's no sensitive credentials in the baseline of his application that he makes).
  3. He then registers his application with an application directory (either his own or a community one) together with an in depth description and possibly demo of what his application is and how his appilication works.
  4. A customer then looks through the application directory and sees the application that he likes or wants and (possibly for a fee) he gains access to the application repository sourcecode which he can then install on his servers using the ADT.
  5. The customer then has a working, out of the box, application to start from without having to have put in any of the work of downloading and understanding the interactions of the extensions and plugins that make up the application and possibly making sub-optimal configurations because of lack of experience with those particular extensions and plugins as well as the customer having the freedom to additionally customise the base application that has been provided by the application developer if that's what his needs are.

For me I want a plug and play blogging system or I want a plug and play social networking system and this is what I am suggesting here its not just about the objective of achieving enhanced productivity, if I have extensions and plugins written by someone else that I have to integrate together with a template or theme that doesn't quite gel with them and all this stuff that could be outsourced to an application development expert then I am happier like that because I know that there's less chances of nasty surprises if I have overlooked something when I have been building my application that I wasn't aware of because of the complexity of integrating it together into a cohesive solution in the first place.

And so that was the core idea which gave me the impetus to start building the ADT in the first place. If you look through the demos and tutorials you will see what I mean by being able to deploy a "baselined" or "customised (additional templates, extensions and plugins installed and configured as a service)" version of a CMS "out of the box".

It is ambitious you could say but being able to do this repeatedly and consistently at scale is the objective that I set myself and that I am sharing with you here. A DMS like this one does require learning just like a CMS does but would you want to go back to coding in basic HTML once you have discovered CMS systems, possibly not. If its money that you are interested in, application developers using this toolkit should be able to produce high quality COTS (Commerical Off The Shelf) web applications using their CMS of choice and have the applications they have developed reused by many customers making strides in all round productivity in the process. Think about the current model. If I want to build a "Community Builder" social network using Joomla I have to start from scratch wondering "what does this do", "how does that work" and so does the "other guy" doing something very similar to me. If I can instead use a preconfigured application solution, complete with online quality reviews from other customers, provided by the developers of Community Builder or another Community Builder expert from an applications directory or library and the "other guy" can do the same and so on then that satisifies a basic software engineering requirement of "write once, use many times" and it's that "write once use many times" principle which is at the heart of the win I want to achieve here.

NOTE: An application developer could also provide different configurations of the same application to his customers optimised for different qualities. For example one configuration could be optimised for security and one for speed and another one for being "good looking or fancy" and so so a customer could even have a choice of how the application is configured based on what matters to them. I think that such a methodology would be very good for customer choice as well as customer productivity.