The Vanguard Framework is a framework for developing database driven web applications and web services. It combines a set of design patterns and best practices to kick start your project.
By using the Vanguard Framework and following its design patterns you ensure that your code is of good quality, can be maintained easily and extended without a lot of hassle.
The Vanguard Framework is based on the following design patterns.
- Domain Driven Design (DDD)
- Domain Events
- Repository Pattern
- Command Query Responsibility Segregation (CQRS)
- Inversion of Control (IoC)
The Vanguard Framework is built with a n-tier architecture in mind. The Vanguard Framework takes the following layers into account.
- Data Access Layer
- Business Layer
- Service Layer
- User Interface Layer
The data access layer is based on the entity framework. It is possible to build it around another framework but this would mean that you have to do some customization.
In the business layer the data/domain entities are located. The data entities can be accessed via repositories and the data entities can raise Domain Events.
The business layer contains all business logic like commands, queries, validator and event handlers.
The service layer is based on ASP.NET Web API 2.0 and make functionality available via JSON REST service. The service layer consists of little to no functionality. It passes all request to the business layer. The reason for this is that we want the application logic reside in one location, the business layer. It also makes it easier to change the service layer framework to something else like Windows Communication Foundation (WCF).
The framework for the user interface layer has not been identified yet because the Vanguard Framework is work in progress. As soon as the functionality for the other layers are finished we will decide on this. For now we are leaning towards AngularJS 4.0 but this is not set in stone.
Take a look at the Wiki for more documentation.