It's a simple ASP.NET web application for forum, which uses EF, AspNet.Identity, OWIN and Ninject. It is separated into six main projects (or assemblies):
- DataContract - class library, that represents data access layer, this class library contains interfacess, that interact directly with the database using Entity Framework. Hierarchical data is loaded using lazy loading - the simplest way to load data (navigation properties are virtual like here)
- DataAccessServices - library, that contains implementations of DataContract interfaces
- BusinessContract - library with business interfaces, these interfaces use DataContract to interact with the Database. They provide availible interaction with the database and they also provide validation
- BusinessServices - implementations of BusinessContract interfaces
- DependencyInjection - library, which provides dependencies resolving between interfaces and implementations
- Web - ASP.NET MVC project, the web part of the whole solution. It handles the HTTP requests and it is responsible for the presentation part of the web application
- MVC Web API project
- Second client part of application, using Angular 7