ASP.NET MVCおよびWeb APIプロジェクトで使用するプロジェクト構造と命名規則に問題はないかと思います。これらのテクノロジーは私にとって非常に新しいので、私にはまだ独自の基準がありません。
コントローラーとビューのデフォルトの規則は変更しません。 Modelsディレクトリ名をViewModelsに変更します。すべてのビューには、必要に応じて独自のViewModelがあります。エンティティセットをビューモデルとして使用しません。インフラストラクチャフォルダーには、DIクラスとHTMLヘルパーを配置します。
短い例:
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
Identityを使用する場合、ユーザーのリポジトリを作成しませんが、それを必要とするすべてのコントローラークラスに、UserManagerとRoleManagerのプライベートプロパティがあります。
1つのプロジェクトで両方のテクノロジーを使用しているときに、MVCコントローラーとWeb APIコントローラーを分離する方法がわかりません。たとえば、MVCがクライアントにビューを送信し、残りがWeb APIを使用して動的に読み込まれる場合などです。それらを別のフォルダに配置することは良い考えですか?
Controllers
MVC
UsersController.cs
WebAPI
UsersController.cs
ASP.NET MVCおよびWeb APIには、コントローラーがプロジェクト構造内の特定のフォルダーに配置されるように制限する規則はありません。そうは言っても、必要に応じて、すべてを同じフォルダーに配置できます。それらを別々のフォルダーに置くのは良いことであり、良い例を挙げたので、名前が競合する可能性があります。
私はDALフォルダをいくつかのプロジェクトに分割しますが、そのほとんどは再利用を目的としています。しかし、それは私の好みです。