MVC5 Solution Template With Onion Architecture
Onion Architecture with MVC5 integrated by SimpleInjector. Usage of EntityFramwork6.0 Code First Migration. You can use it as your company solution template

The branch OnionMvcWith_EFCodeFirst gives you the highly decoupled solution based on Onion Architecture. "SangaiTech.Xxxxxxxx" is the pattern used for naming which can be renamed simply by using the tool SangaiTech.TemplateCustomization.Tool.exe provided.
"SangaiTech.Abstractions" & "SangaiTech.Core" belongs to "Application Core". The word Abstractions indicates that you should only create abstract items in this project (Not even a single if-else here). Abstractions like Interface, entity classes, enum, struct, abstract classes, constants, etc.

"SangaiTech.Core" should contain the implementations of the business logic where interfaces are defined in Abstractions.
"SangaiTech.Infrastructure" contains the implementations of data fetching repositories, EntityFramework datacontext, etc.. The domain entities were defined in Abstractions.
"SangaiTech.Bootstrap" is only to register interfaces and implementations.
"SangaiTech.Mvc" is an MVC5 application which only coupled with Abstractions and Bootstrap. The rest of the implementations are Injected in the controller by using SimpleInjector Dependency Injection framework from NuGet.

*How to quickly create your solution from the given template?* Run the "SangaiTech.TemplateCustomization.Tool.exe" and provide your solution name (for example MyCompany.Banking).
Quickly create your solution from the template

Last edited Jun 2, 2015 at 4:30 AM by irabanta, version 7