Step by Step Solution Structure for ASP.NET MVC Project with EF

Ajitsamal Afinoz
3 min readDec 26, 2019


Posted by abhish on August 14th, 2019

The ASP.NET MVC web application framework which is based on Model-View-Controller provides a designing pattern integrating the principle of SoC (Separation of Concerns). This is mainly a modular approach to design and separating the information that is essential to perform a particular functionality of the computer program within the module which is responsible for the concern.

The Model portion of doing any ASP.NET MVC project is implemented through C# classes that define different properties and methods of the data objects controlled by the application. These class objects are referred to as entities when they are instantiated. They are also referred to as POCO’s (Plain-Old Class Objects) as each object is just a C# Class.

Model-View-ViewModel (MVVM):

Now, the Model-View-ViewModel that is MVVM design pattern differentiates the models that represent the data objects of ASP.NET MVC project as per the conceptual form from the implementation of the model classes used to create Views and to perform CRUD (Create, Retrieve, Update, and Delete) operations on different data entities. The View model mainly reflects the necessities of the View rather than any conceptual objects which are being affected by the View.

Entity Framework (EF):

Entity Framework is an object-relational mapper (ORM) which provides another layer of SoC by preparing an interface between persistent storage of data in a Relational Database (RDB) and the model objects of the MVC Framework. The developers can easily write class objects as EF enables Code First Database design which can be translated into SQL data definition language (DDL) that will ultimately create and modifies the underlying database to keep the data store in sync with the Model through migrations. Entity Framework mainly added to the ASP.NET MVC project through NuGet package.

Repository Pattern:

The Repository pattern of designing model separates the logic that stores and retrieves data from business logic which are working on the data. Through this, a developer can get numbers of benefits including elimination of any duplication of code and assisting testing. Repository pattern in web application facilitates the writing of short and well-defined Controller actions to act on the data types of objects.

Structuring the Solution:

Now, if all code can be incorporated in one ASP.NET MVC project, the project directory will include the folders and files for:

  • Controllers
  • Views
  • View Models
  • Entity Models
  • Repositories
  • The Data Context
  • EF Migrations

Also, you will get additional fi8les for application startup, configuration, fonts, routing, scripts, and style sheets (CSS) and utility classes. So, any changes made in one area, the code for the whole section has to be redeployed. Using any separate projects on ASP.NET MVC solution, the developers can also create a greater separation of concerns and integrate the development, debugging, testing and deployment process. Different Layers of Web Applications can be divided into projects as follows:




Controllers, Views


Models, View Models


Data Context, Repositories


Utility functions, Enumerations

You can also go for ASP.NET Core with live projects and gain more knowledge of ASP.NET

There are some more complex solutions which can have separate projects for financial transactions, logging and other functionalities. So, to work on multiple projects, ASP.NET provides selective loading of projects for solutions up to 30 projects.

Top SearchesTrending SearchesNew ArticlesTop ArticlesTrending ArticlesFeatured ArticlesTop Members

Copyright © 2019

659,241 total articles and counting.

Originally published at



Ajitsamal Afinoz

I am a diligent and motivated self-worker with 3+ years of experience working in credit review and loan processing within the financial tech industry.