C'è qualcosa di sbagliato nella mia struttura di progetto e nella convenzione di denominazione in ASP.NET MVC e Web API?

2

Mi chiedo se la struttura del progetto e la convenzione di denominazione che utilizzo nei progetti ASP.NET MVC e Web API siano ok. Queste tecnologie sono abbastanza nuove per me, quindi non ho ancora i miei standard.

Non cambio le convenzioni di default nei controller e nelle viste. Cambio il nome della cartella Models in ViewModels. Ogni View ha il proprio ViewModel, se necessario. Non uso set di entità come modelli di vista. Nella cartella Infrastructure inserisco classi DI e helper HTML.

Breve esempio:

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

Quando utilizzo Identity, non creo repository per gli utenti, ma in ogni classe controller che ne ha bisogno ho proprietà privata UserManager e RoleManager.

Non so come separare i controller MVC e Web API quando utilizzo entrambe le tecnologie in un progetto. Ad esempio, quando MVC invia la vista al client e il resto viene caricato in modo dinamico utilizzando l'API Web. È una buona idea metterli in cartelle diverse?

Controllers
    MVC
        UsersController.cs
    WebAPI
        UsersController.cs
    
posta alcohol is evil 23.11.2016 - 11:50
fonte

1 risposta

3

ASP.NET MVC e Web API non hanno una convenzione che vincola i controllori a essere collocati in una cartella specifica all'interno della struttura del progetto. Detto questo, puoi metterli tutti nella stessa cartella, se vuoi. Averli in cartelle separate è buono e, dato il buon esempio, puoi avere nomi in conflitto.

Vorrei separare la cartella DAL in diversi progetti, principalmente per scopi di riusabilità. Ma questa è solo la mia preferenza.

    
risposta data 23.11.2016 - 13:26
fonte

Leggi altre domande sui tag