Skip to content

Instantly share code, notes, and snippets.

@AndyConlisk
Created March 2, 2017 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndyConlisk/c5359702e21f47a2bd3a8a74dfcd9bd5 to your computer and use it in GitHub Desktop.
Save AndyConlisk/c5359702e21f47a2bd3a8a74dfcd9bd5 to your computer and use it in GitHub Desktop.
Description on setting up MVC web projects
Application.Core
This namespace should contain all functionality that is not expansive enough to be in its own project but are required by multiple consumers/projects
- Logging and other cross access functions
- Generic helper classes for logging.
- Non-domain specific, independent functionality, and Profiling. Such as .NET Extension methods.
Application.Domain
This namespace contains the domain objects.
- Domain Objects (POCO), Shared data transfer objects, Models, ViewModels, etc
- Business logic for Validators, Filters, Factories, Regular expressions
Application.Data
This is the Data Access Layer. This is for accessing the persistence store.
- EntityFramework Context and mapping of domain objects. ORM setup
- Data access patterns
Application.Services
This is the Business Logic Layer. This should be the main area where business logic appears. This is where consumption of all the previous layers happens.
- Business Logic
- Connection of "lower" objects (Domain and Data)
- Example can be a thin layer for retrieving and storing data objects
- Integration with external services
Application.Web
This is where the web based project(s) are located.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment