Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9283083
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 18, 20262026-06-18T18:32:27+00:00 2026-06-18T18:32:27+00:00

I developing a 3 tier architecture for an MVC4 webapp + EntityFramwork5. I want

  • 0

I developing a 3 tier architecture for an MVC4 webapp + EntityFramwork5.
I want to keep separete the layer, so only DAL knows that I’m using EF, for example.

Actually I have a lot of classes to manage that:

DAL

  1. Entity POCO
  2. Entity DataContext : DbContext
  3. Entity Repository

BL

  1. Entity ViewModel
  2. Entity Service(instantiate Entity Repository)

WEB

  1. Entity Controllers (instantiate Entity Service)

This is working but is quite hard to mantain. I was thinking to remove the Entity Repository in DAL and use directly the DataContext (if I’m not wrong, after all DbContext has been desingned to be a Repository and a Unit of Work), but that will force me to add a reference to EntityFramework.dll in my BL. Is not a big issue, but I0m not sure it is the best choice.

Any advice?

(I hope I gave enough informations, if you need more, just ask)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-18T18:32:28+00:00Added an answer on June 18, 2026 at 6:32 pm

    You can use this this and this article.

    An experienced Architect does not need to go through every single step in the book to get a reasonable design done for a small web
    

    application. Such Architects can use their experience to speed up the
    process. Since I have done similar web applications before and have
    understood my deliverable, I am going to take the faster approach to
    get the initial part of our DMS design done. That will hopefully
    assist me to shorten the length of this article.

    For those who do not have experience, let me briefly mention the general steps that involved in architecturing a software below...
    
    Understand the initial customer requirement - Ask questions and do research to further elaborate the requirement
    Define the process flow of the system preferably in visual (diagram) form. I usually draw a process-flow diagram here. In my
    

    effort, I would try to define the manual version of the system first
    and then would try to convert that into the automated version while
    identifying the processes and their relations. This process-flow
    diagram that we draw here can be used as the medium to validate the
    captured requirements with the customer too.
    Identify the software development model that suite your requirements
    When the requirements are fully captured and defined before the design start, you can use the ‘Water-Fall’ model. But when the
    requirements are undefined, a variant of ‘Spiral’ can be used to deal
    with that.
    When requirements are not defined, the system gets defined while it is being designed. In such cases, you need to keep adequate spaces
    in respective modules, which later expansions are expected.
    Decide what architecture to be used. In my case, to design our Document Management System (DMS), I will be using a combination of
    ASP.NET MVC and Multitier Architecture (Three Tier Variant).
    Analyze the system and identify its modules or sub systems.
    Pick one sub system at a time and further analyze it and identify all granular level requirements belonging to that part of the systems.
    Recognize the data entities and define the relationships among entities (Entity Relationship Diagram or ER Diagram). That can
    followed by identifying the business entities (Some business entities
    directly map with the classes of your system) and define the business
    process flow.
    Organized your entities. This is where you normalize your database, and decide what OOP concepts and design pattern to be used
    etc.
    Make your design consistent. Follow the same standards across all modules and layers. This includes streamlining the concepts (as an
    example, if you have used two different design patterns in two
    different modules to achieve the same goal, then pick the better
    approach and use that in both the places), and conventions used in the
    project.
    Tuning the design is the last part of the process. In order to do this, you need to have a meeting with the project team. In that
    meeting you need to present your design to your team and make them ask
    questions about it. Take this as an opportunity to honestly evaluate/
    adjust your design.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have been developing applications that have a three-tier architecture and mostly using MVC
I am developing application in N-Tier Architecture. as we all know that we need
I am used to developing with N-Tier architecture, i.e. Data Access Layer, Business Logic
What is difference of developing a website in MVC and 3-Tier or N-tier architecture?
I am developing a web app but is not satisfied with is architecture that
I'm developing a multi-tier app using EF CF . I managed to delete a
I am developing a two-tier java application that basically displays mySQL database results in
We're developing a middle-tier to replace an existing business logic/data access layer. One of
Developing mobile apps is a challenging job. Customers want to be present not only
I am developing a 3-tier application (not 3-layer!) with a client application running on

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.