Progetta il sito MVC in modo tale che lo sviluppatore dell'interfaccia utente possa lavorare senza accedere al livello dati? [chiuso]

0

Sto lavorando su un sito MVC di ASP.NET (utilizzando il servizio Team Foundation per il controllo del codice sorgente) che ho diviso in alcuni progetti separati in un'unica soluzione:

Project.WebAPI (Main entrypoint, contains "Views","Scripts" folders
Project.Data (abstract interfaces for backend data access)
Project.Data.SqlServer (concrete implementations for data access)

Perché il mio designer dell'interfaccia utente funzioni, non dovrebbe aver bisogno di accedere a molto. Praticamente l'unica cosa su cui sta lavorando sono le cartelle "Visualizzazioni" e "Script" del progetto principale. Ma "Project.WebAPI" prende i parametri che vivono in Project.Data, quindi c'è una dipendenza lì.

L'app è in stile SPA, quindi ho potuto facilmente archiviare un payload JSON falso che eliminerebbe completamente la necessità di accedere e di estrarre dati reali. Il mio obiettivo finale sarebbe quello di essere in grado di condividere un sottoinsieme della fonte con il progettista dell'interfaccia utente permettendogli di controllare le modifiche direttamente nel progetto generale piuttosto che creare un'istanza separata solo per il suo lavoro che dovrei fondere manualmente. Qualcuno hai qualche esperienza con questo tipo di cose?

Modifica: per chiarezza: lo scopo è proteggere la proprietà intellettuale della soluzione in modo che gli sviluppatori front-end non abbiano accesso all'intera soluzione. Spero che aiuti ...

    
posta BenjiFB 08.04.2014 - 17:23
fonte

1 risposta

1

Vuoi utilizzare la classe DependencyResolver.

link

Nel tuo asax globale, puoi impostare il resolver e collegare finte implementazioni di interfacce che il tuo livello di accesso ai dati impone anche

Quindi nel tuo controller, crei 2 costruttori

public Controller() : this(DependencyResolver.Resolve<IPersonDataAccessLayer>()) {} public Controller(IPersonDataAccessLayer layer) { __layer = layer; }

Quindi puoi configurare un'implementazione falsa nel tuo global.asax sul tuo computer dei designer.

    
risposta data 08.04.2014 - 18:37
fonte