mercredi 14 octobre 2015

Placement of interfaces in ASP.NET design pattern [on hold]

Below is the design pattern that I came up with and would like to use as I develop future .NET web applications:

4 LAYERS:

  • Business - C# Class Library
  • Data - C# Class Library
  • Model - C# Class Library
  • WebUI - MVC5 Application

Model

This layer will contain all of my business entities and all of their properties. i.e. Customer, Project.

  • References: None

Data

This layer will contain all of my data access functions. I usually create a Repository for each main entity in the system. i.e. CustomerRepository, ProjectRepository.

  • References: Model

Business

This layer will contain all of the business logic in the application. This project will contain interfaces for each class in it: i.e. ICustomerManager, IProjectManager and additionally interfaces for each repository in data: i.e. ICustomerRepository, IProjectRepository.

  • References: Model, Data

WebUI

This layer consists of an asp.net MVC5 application. It will be using dependency injection in the controllers. It will call functions in Business as needed.

  • References: Model, Business

My concerns:

I would like to know if I am putting my interfaces in the correct projects. As of now all of my interfaces are in Business. Does this make sense? Or should my repository interfaces be in Data?

Additionally should my business interfaces be in the MVC5 project rather than Business?

Any other comments/suggestions on this design besides just where I should place the interfaces would be helpful. Any good books or tutorials that may help with this topic would be helpful also.

Aucun commentaire:

Enregistrer un commentaire