Skip to main content

MVC Architecture - In depth

Hello friends,

Welcome back 🙂.

In this article, I’m writing about which the new developers consider a very big concept. The MVC

What is MVC?

MVC is actually a design pattern or a development architecture which is specifically used in developing dynamic web applications. It also can be used for static web applications. There are also other design patterns which are frame-worked for accomplishing specific development architecture. The MVC right now is used for implementing dynamic web applications, static web sites, desktop applications etc.

MVC Purpose

The major purpose of MVC design pattern is to segregate the code snippets based on their use.
  • M stands for MODEL in which specifically db and data related operations performed.
  • V stands for VIEW in which view related operations performed.
  • And finally C for CONTROLLER which co-ordinates between Models and Views.
So due to the separation of codes by above sections, team work becomes easy and code maintenance becomes easy.
The team works on view (HTML, CSS, Javascript and its frameworks etc.) doesn’t need to be familiar with the technologies and code used in model and controller, only work related to design and presentation is important.
The team works on controller and model doesn’t need to be familiar with client side/view related technologies, only work related to business logic and control logic is important.
So that’s why code maintenance and team work becomes easy.

Architecture in detail

The key part of MVC framework is that it has a single point where all requests comes. In PHP, its `index.php` (or any other file which is configured in `.htaccess`), in Sprinv MVC, its DispatcherServlet (The servlet from spring framework).
Based on the URLs, configurations and routing mechanism, the main entry point executes only those code stuff which is required.

Due to its single entry point, the developer can add code for securities, sanitization, validation and many more common operations on each request.

After a single entry point, there are 3 main parts included in that MVC, the configuration, routing and library which are as follows:

Configuration :
The configuration part (might be stored in db or in a file) contains the essential and optional settings with its default values (which can be modified by providing GUI or its source or by any custom tool which works on terminal). The configuration may include db configurations, view path, debugging level configuration, logging configuration etc.

Routing:
Routing's job is to detect the URL, and based on the URL path (like https://host/controller/action?parameter=value), load the appropriate controller's class and call its appropriate method for that action.

Library:
The library is nothing but collection of classes and methods for different common generic operations. e.g. encryption and decryption of data, FTP/SFTP management, file operations etc.

The above 3 parts, the controllers, models and views is bundled and MVC is formed.

Thanks.

Comments

Popular posts from this blog

Import multiple db files from folder into mysql db

Hello friends, Welcome back In the previous article, we've seen how to export database by table files, not the entire db file. Now in this article, here we're going to see the sample code for importing multiple sql files into same db. This also has been achieved by using a simple shell script. In this script, applied a for loop on list of files in a directory and by using that file name, mysql's import command is executed. The code is simple, you'll learn in just few minutes. Linux shell script: Execute above code in linux terminal to import all files into the given db. Hope this would help you. Thanks.

The final keyword in java

Hello friends, Welcome back 🙂. In this article, I'm going to give a short introduction to final keyword which would be helpful to know more about it. The final keyword in java has multiple uses. The main purpose of the final keyword is to add some restrictions on java elements (class, member and method). The restrictions have been described as below. Use of final keyword: 1. The final class : We can say the class is final when it declared as final. The restriction on final class is that the final class cannot be extended by any class. Rest of the behavior of the class remains same as any normal class. 2. The final method : The method declared using final keyword is to be said as final method. The restriction is that the final method cannot be overridden by derived class. This restriction applies to static method also. 3. The final member : The final member is the java class's member which is declared using final keyword. The restriction is that it can be initial...

XML tools on linux

Hello friends, Welcome back 🙂 In this article, we're going through XML tools which are useful for manipulation of XML. Recently I've worked on 3 tools so for now, adding those 3 tool's information, but as I get more, I'll update the article. These tools useful for validation and split/merge the XML. These tools available on both RHEL family and Debian family  linux which are same in use for both debian and RHEL. The tools are: 1. xmllint: This tool is used for xml validation. For some reason, we need to validate XML tags with its proper openings and closing i.e. syntactic validation, also we need to validate the data in the XML. The data can be different by its type which is defined in the XML's DTD, to detect this also, xmllint is useful. With this tool, there are multiple options we can use i.e. only syntactic validation, schema validation, DTD validation etc. When I was facing issue for validating the XML which having schema, I found this tool. H...