Model-View-Controller (MVC) is a software design pattern for implementing user-interfaces. It divides application into three interconnected parts so as to separate input logic, business logic and UI logic. In MVC design pattern Model is responsible for implementing logic for applications data domain rules. The Controller is responsible for handling user action and informing the model and/or the view to change as appropriate while the View is responsible for displaying the UI of application.
Following figure explains how MVC design pattern works:
ASP.NET MVC overview:
ASP.NET MVC is an open source web application framework made available by Microsoft with full support. It is a lightweight, highly testable presentation framework that can be integrated with existing ASP.NET features, such as master pages and membership-based authentication. The first stable version of ASP.NET MVC was released in March 2009 and the latest stable version is 5 and was released in October 2013.
ASP.NET MVC at Helios:
For years Helios is working on Microsoft technology and has developed many applications based on web forms. With the introduction of MVC design pattern and its advantages over other pattern (such as web-forms), it was challenging for Helios developers to switch to MVC based development over other technologies to take advantages and stay in competitive market. It did not take long time for Helios developers to switch to MVC based development as it is key feature of developer to quickly learn new concepts and technologies.
Today, at Helios not only simple web application but complex applications are being developed in ASP.NET MVC framework and design pattern. Helios has successfully integrated various technologies with ASP.NET MVC framework, such as JQuery for UI enhancement, Entity framework with LINQ syntax for server side database operations and various others.
One of the important aspects of web application is to host application on server that client is familiar with and costs less. We have successfully hosted MVC based web applications on Windows Azure server (cloud environment by Microsoft) and various dedicated servers. Hosting application Azure server requires additional efforts like; managing time in UTC format and store session state in database or in azure dedicated cache.
Database selection plays a vital role in web application. Database that is robust and well supported by the technology used to develop web application should be selected. There are various options available to select database to hold user data in web application like MSSQL and MySQL. MSSQL is the database officially supported by Microsoft for ASP.NET MVC applications while MySQL is supported using database connectors and there is comparatively less support for it. We at Helios have experience in both databases, we prefer MSSQL over MySQL as entity framework is fully supported with MSSQL and also it is officially supported by Microsoft.
Advantages of ASP.NET MVC based application:
- ASP.NET MVC based web applications are lightweight.
- Web application development is much faster compared to others and with lesser code complexity.
- They provided a concept of front controller used for routing of request to appropriate action methods.
- It is easy to manage complexities in MVC based applications as there is clear separation of input logic, business logic and UI logic.
- It supports better test driven application development.
- It enables loose coupling between various modules and thus provides an easy way to do unit testing of individual module.
- Incremental and integration testing is always possible with MVC based applications and that too without extra efforts.
Why ASP.NET MVC should be selected for web applications according to Helios:
- Rapid application development with reduced error rate.
- Applications are lightweight and performance is high compared to other technologies.
- Easy to manage and expand because of modularity and less complexity.
- Each module can be independently tested and integrated.
- Cost of development is low as compared with other technologies.
- No hard binding with url and page but logical routing is done with url and action methods and thus becomes more readable and user friendly.