web-dev-qa-db-ja.com

ASP.NET MVCとWeb APIのプロジェクト構造と命名規則に問題はありますか?

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
2
alcohol is evil

ASP.NET MVCおよびWeb APIには、コントローラーがプロジェクト構造内の特定のフォルダーに配置されるように制限する規則はありません。そうは言っても、必要に応じて、すべてを同じフォルダーに配置できます。それらを別々のフォルダーに置くのは良いことであり、良い例を挙げたので、名前が競合する可能性があります。

私はDALフォルダをいくつかのプロジェクトに分割しますが、そのほとんどは再利用を目的としています。しかし、それは私の好みです。

3
devnull