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

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...

Initialization blocks in Java

Hello friends, Welcome back. Today in this article, I'm going to explain you about the static block and initializer block. As the Java language is pure OOP language, whatever the code we write is only in classes. So whenever we use class to represent a real life entity, we use members in the class as the attributes or properties of that entity. To initialize those properties or members, we can use one of the way i.e. Constructor Setter method Inlinie Blocks I'm assuming that you are familiar with all methods. Here about first three methods, I'm just giving a short description. The first three methods are : we initialize member in constructor by using a parameterized constructor. Setter methods is a java standard which denotes that class's member should be private and it should have setter method so that the member can be initialized. Third method is inline i.e. when we declare a member or variable, at the same time, we set its value. In this article, we...

Static Keyword in Java

Hello friends, Welcome back 🙂 In this blog, I'm going to cover shortly about static keyword in Java. I'm assuming that you're familiar with the static keyword in java. Because I've written this blog in such a way that here only revision of the use of static keyword and the important points about static keyword which are rarely disclosed. So the first part will just be short description of static keyword, and second part will be the points about which, most of the new-bee or intermediate developers not familiar with. Please comment if anything is missing or not covered in this blog. 1. static member :     All the non-static variables/member objects of a class are scoped at object level i.e. we can access a class's variable by using instance of that class. But in Java, we can create a class level scoped variable by using static keyword. The static variables can be accessed by using class name i.e. ClassName.staticVar . To declare variable as static, we ju...