Reason for creating a separate project:
When we create a project of type Class Library, after assembly, the MSbuild process produces an assembly / dynamic linked library or .DLL file. This dll file can be referenced in any project in the same or another solution. This supports code reuse.
The general rule for web structure (ASP.Net MVC) is as follows:
- Create a domain model project (class library project type)
- Create data access level (class library project type)
- Create a service level project (class library project type)
- Create a user interface level project (ASP.Net MVC project type)
Create unit test projects (class library project type) for each project listed above.
Hope this helps.
source
share