Webman-framework

Lightweight, Component-based, and Database-oriented Web Application Framework

About | Overview | Documentation

 

Philosophy
"While simplicity is preferable, totally eliminate complexity is impossible, thus a predefined solution entities are highly valuable" - MRS, November 4, 2011 at 5:49PM

It's great if the ancients Aristotle, Plato, or Socrates have the opportunity throughout their lifetime, to experience how the internet is used as nowadays and give their own perspectives regarding to web application development issues faced by the developers today.

Far from try to be one of the above mentioned ancients, nonetheless, it's worth and crucial to have something general but substantive to grasp with so the framework will has a clear visions and directions in its master plans development.
Strategies
Learn from other proven concept particularly the "Model View Controller" (MVC) architectural pattern that has been widely used in many different environments and applications, the framework simply outlines its development strategies as follows:
  • Accept, admit, and appreciate the benefits of implementing MVC architecture and design in web application
  • Adopting the idea of MVC in a different ways for the sake of simplicity and lightweight features of the framework
Not being exactly a MVC, simple, and lightweight might limit the type of applications supported by the framework but there are justifications for it. Even in small vertical problem domains, further scoped by organization's limited roles and responsiblities, there are still multitudinous different applications that are critically required by the organization to fulfill stakeholder needs. The idea of Webman-framework itself is actually come from the experiences of solving various problems in academic computing domain scoped at faculty and university level.

 

Rationale
The figure below shows a relative comparison of different web-based applications might be developed acrross different problem domains.

In real world not all applications are categorized as the most right-top of application as depicted in the figure. Developing the most bottom-left type applications using an application framework dedicated for the most right-top problem domains is obviously overkilled. At worst, developers put most of their efforts struggle with the complexities of the framework itself instead of the problem domain to be solved.

Contrarily, from-scratch development approach without using any application framework even for bottom-middle class applications can be too error prone and lead to unnecessary repetition of solutions thus increase the overall development cost.

Through the experiences of developing several bottom-middle type in-house web applications, the framework was proposed with the rationale to balance and harmonize both the complexity and necessity in web application development activities.

Concepts
The concepts are more towards how web application, alternatively, should be developed. They are derived after doing some studies on other previous related works and conducting small-scale reverse engineering activities on exsiting web applications developed using the framework.
  • Web applications (WAs) are mainly constructed from hierarchical connected nodes implemented as standard HTML link structure.
  • Nodes act as references to application components to construct the logical structure of component compositions that made up the overall application.
  • Application components are modules written in "Object-oriented Programming" (OOP) style following generic web application solution specifications, predefined using "Component-based Development" (CBD) approach.
  • Database should not only be used to store application data (content and relationships) but also the aforementioned HTML link structure and some parts of the control elements (business logic) of the application.