I wonder if project structure and naming convention which I use in ASP.NET MVC and Web API projects are ok. These technologies are quite new to me, so I don't have my own standards yet.
I don't change default convention in controllers and views. I change Models directory name to ViewModels. Every View has it's own ViewModel, if it's needed. I don't use entity sets as view models. In Infrastructure folder I put DI classes and HTML helpers.
Short example:
DAL
Abstract
IUnitOfWork.cs
IGenericRepository.cs
Concrete
UnitOfWork.cs
GenericRepository.cs
AppContext.cs
AppUserManager.cs
AppRoleManager.cs
Entities
AppUser.cs
Other.cs
ViewModels
Users
ListViewModel.cs
CreateViewModel.cs
EditViewModel.cs
ChangePasswordViewModel.cs
Account
LoginViewModel.cs
When I use Identity, I don't create repository for users, but in every controller class which needs it I have UserManager and RoleManager private property.
I don't know how to separate MVC and Web API controllers when I use both technologies in one project. For example when MVC sends view to the client and the rest is loaded dynamically using Web API. Is it good idea to put them in different folders?
Controllers
MVC
UsersController.cs
WebAPI
UsersController.cs