Software Web Framework ?

What is a Software Web framework ?

Frameworks are best practices. Period.

Thus once you have the best practices, you will build an engine.

Therefore, a framework is an engine based on best practices.

Types of Frameworks

Since frameworks are best practices, it cannot be an omnipotent framework. Frameworks are meant to be generic but yet it has to vertical-oriented. Thus there are frameworks for enterprise web solutions, content management, portal and etc. Of course, there can never be solid lines drawn between these types.

Characteristic of Enterprise Web Frameworks:

1. Model-view-controller (MVC), separation of business rules, server logic and presentation views. According to Symfony, it states that..
  • compatible with as many environments as possible
  • easy to install and configure
  • simple to learn
  • enterprise ready
  • convention rather than configuration, supporting fallback calls
  • simple in most cases, but still flexible enough to adapt to complex cases
  • most common web features included
  • compliant with most of the web "best practices" and web "design patterns"
  • very readable code with easy maintenance
  • open source (Very important)
2. Multi Database apability

3. Object-oriented… because object-orientation is the far most effective and proven methodology to establish relationships between entities.

In the case of Symfony.. it relies on three distinct layers.
  • Database abstraction
  • Object-relational mapping
  • A MVC model for front and back-office
4. Built-in automations for common web features. According to Symfony, it states that..
  • internationalization
  • templating with helpers
  • form validation
  • cache management
  • shopping cart management
  • smart URLs
  • scaffolding
  • email sending
  • Pagination
  • AJAX interactions
5. Development environment configurable into different coding guidelines and project management rules.

How many Frameworks out there?

Numbers of frameworks out there are influenced by numbers of different programming languages, that is Java, PHP, Ruby and etc.

Java has the most types of frameworks and followed by PHP. And this blog attempts to find out which framework is the most popuplar. There is a new framework for Ruby known as Ruby on Rails.

Struts, Spring MVC - Java
Symfony, smarty - PHP
Django - Python

What about ASP.net ???

It seems that the idea of having web framework on ASP.net is not popular where there is only one popular called DotNetNuke; which is a framework for content management system.

Perhaps, the idea of creating framework based on Microsoft technology is not attractive because Microsoft by itself is not open-source. Since frameworks have to be made open-source, the resulting frameworks based on Microsoft technology will be half-open-source.

Also, Microsoft .Net technology is already a big framework; proprietary and it is very popular amongst software developers. Thus, there is really no need for such endeavour when the purpose of creation has not much merit. It would be better to create other frameworks to fight .Net as a framework.

Conclusion:

Having frameworks is not the reality of having a saviour. This is because frameworks are, first of all, open-source and secondly created by human.

Also, the learning curve for frameworks may vary according to how well it is documented. As this entry puts it, it sucks.

Therefore, knowing the most popular framework is important because one wouldn't want to waste time investing into frameworks which end up not living up to expectations.

However, for the merit of research, framework is the answer because it is best-practice and open-source.

Nevertheless, in terms of practicality, frameworks may provide developers with continuous incomes from maintenance jobs because for solutions developed on frameworks, reverse engineering would usually take longer time.

Above all, having knowledge on frameworks gives one the stamp of "professionalism". Just like how Fox Mulder puts it, "The truth is out there.." and are you awared of it ?

Comments