6
votes

I am pretty confused about the ASP.NET MVC project architecture. In ASP.NET WebForm I am normally for small to medium size project using following Project pattern

DAL <-- communicate through DTO/reader/dataset -- > BL <--> UI

I think in MVC application should be like

DAL <-- communicate through DTO/reader/dataset --> BL is Model <--controller --> UI is View

        OR

DAL <--communicate through DTO/reader/dataset--> BL <-- communicate through Model --> controller <--> UI is View

where Model is some business object

I would appreciate if anybody would be able to (including Jeff maker of stackoverflow) give any production level experience with ASP.NET MVC.

4

4 Answers

9
votes

Comparing traditional 3 tier ASP.NET Web App to ASP.NET MVC, the following becomes the corresponding elements:

Business Logic Layer and Data Access Layer together is the Model

ASPX file is the View

Code-behind (ASPX.CS) is the Controller

Have a look at these links for more discussion on the same topic on SO:

ASP.NET MVC Web application vs ASP.NET Web Application

How does the MVC pattern differ, if at all, from the DAL / BLL design pattern?

1
votes

I've already started to a ASP.Net MVC project. In my architecture, layers almost like yours.

There is an Entity Layer corresponds to your Data Access Layer and Business Layer as a separated project to easy to plug to another project in corresponds to your Business Layer. And there are Modal Layer accessors in Modal part of the MVC application.

Here is a reference from Asp.Net Mvc Documentation that gives a little advice of application structure.

0
votes

If you don't want to bother to create your architecture from scratch, you should consider using Neos-SDI MVC4 Template, it would be a very good start. It's a template for visual Studio 2010 and 2012, the website will help you to install and use it.

0
votes

Check Nido Framework

Nido is a code framework (a common project, architectural pattern) written on .NET framework 4.0, Entity framework 6.0 and few other additional libraries to encourage you (we developers) to develop our systems adhering to good architectural disciplines.

link: https://nidoframework.codeplex.com/