The Model-View-Controller (MVC) is an architectural pattern.It divides a given application into three interconnected parts in order to separate internal representations of information. It separates an application into three main components: the model, the view, and the controller.
- The model is the central component of the pattern. corresponds to all the data-related logic. This can represent either the data that is being transferred between the View and Controller components or any other business logic-related data.
- A view can be any output representation of information, such as a chart or a diagram. The View component is used for all the UI logic of the application.
- The third part, the controller, accepts input and converts it to commands for the model or view
Simultaneous development Multiple developers can work simultaneously on the model, controller and views.
Code reuse, developers are able to reuse components quickly and easily in other applications.
Ease of modification, Because of the separation of responsibilities, future development or modification is easier
Decoupling if you need to change the code in one area of functionality, you can do it more easily without disturbing other unrelated code.
provides RAD(Rapid Application Development) development.
Laravel is a free open source PHP web framework, created by Taylor Otwell and intended for the development of web applications following the model-view-controller(MVC) architecture pattern.
Eloquent ORM object-relational mapping is an advanced PHP implementation of the active record pattern, providing at the same time internal methods for enforcing constraints on the relationships between database objects. Following the active record pattern, Eloquent ORM presents database tables as classes, with their object instances tied to single table rows.
Query builder, available since Laravel 4, provides a more direct database access alternative to the Eloquent ORM. Instead of requiring SQL queries to be written directly, Laravel’s query builder provides a set of classes and methods capable of building queries programmatically. It also allows selectable caching of the results of executed queries.
Reverse routing defines a relationship between the links and routes, making it possible for later changes to routes to be automatically propagated into relevant links. When the links are created by using names of existing routes, the appropriate uniform resource identifiers (URIs) are automatically created by Laravel.
Restful controllers provide an optional way for separating the logic behind serving HTTP GET and POST requests.
Blade templating engine combines one or more templates with a data model to produce resulting views, doing that by transpiling the templates into cached PHP code for improved performance. Blade also provides a set of its own control structures such as conditional statements and loops, which are internally mapped to their PHP counterparts. Furthermore, Laravel services may be called from Blade templates, and the templating engine itself can be extended with custom directives.
Asp.Net is an MVC(Model-View-Controller)architectural pattern. It is an alternative to the ASP.NET Web Forms pattern for creating Web applications.
Separation of application tasks ,input logic, data-related logic, and UI .
testability, and test-driven development (TDD). You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible.
Extensible and pluggable, The components of the ASP.NET MVC framework can be easily replaced or customized.
The ASP.NET MVC framework also supports the use of Dependency Injection (DI), DI enables you to inject objects into a class, instead of relying on the class to create the object itself.
Inversion of Control (IOC) container models. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file.
ASP.NET routing, which is a powerful URL-mapping component. URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.
ASP.NET MVC lets you use features such as forms authentication and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, the configuration system, and the provider architecture.
Zend Framework (ZF) is an open source,object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License.The framework is basically a collection of professional PHP based packages.
Zend Framework uses Composer as a package dependency manager; PHPUnit to test all packages; and Travis CI as a Continuous Integration service.
If you want to use zend-mvc to build Model-View-Controller (MVC) applications, we recommend you start with our skeleton application.The easiest way to create a new Zend Framework project is to use Composer.
To create your new Zend Framework project:
$ composer create-project -n -sdev zendframework/skeleton-application path/to/install
CodeIgniter is an open-source software rapid development web framework, for use in building dynamic web sites with PHP. CodeIgniter is loosely based on the popular model–view–controller (MVC) development pattern. While controller classes are a necessary part of development under CodeIgniter, models and views are optional
Light weight, It is extremely light-weighted. CodeIgniter core system requires very small library, other libraries may be added upon dynamic request based upon your needs. That is why it is quite fast and light weighted.
PHP creator Rasmus Lerdorf spoke at frOSCon in August 2008, noting that he liked CodeIgniter “because it is faster, lighter and the least like a framework.
Ruby on Rails
Ruby on Rails or simply Rails is a server side web application framework written in Ruby. Rails is a model-view-controller(MVC) framework.
It provides default structure for a database, web service and web pages. It follows the web standards like JSON or XML for data transfer.
In addition to MVC , Rails also uses the software design patterns and paradigms, like Convention over configuration(CoC), Don’t repeat yourself(DRY) and active record pattern.
Convention over configuration(CoC), is a software design paradigm which decreases the decision that developers needs to make without loosing the flexibility.
Don’t repeat yourself(DRY), the programmer who recognize the duplication in code and know how to avoid it can make clean code. The principle has been formulated by Andy Hunt and Dave Thomas in their book The Pragmatic Programmer
Active record pattern is an approach to accessing data in a database. A database table or view is wrapped into a class. Thus, an object instance is tied to a single row in the table. After creation of an object, a new row is added to the table upon save. Any object loaded gets its information from the database. When an object is updated, the corresponding row in the table is also updated.