L'unica cosa che ho difficoltà a capire con lo sviluppo di una piattaforma applicativa estensibile in ASP.NET MVC 3 è come modulare tutto in un modulo facile da aggiornare e distribuibile.
La soluzione ideale che penso sarebbe quella di essere in grado di comprimere tutto è un file compresso come zip / rar / tar (ma avendo ancora il codice sorgente e le viste compilate in un file dll) e costruire nella piattaforma principale un modo per consentire una selezione non tecnica del file compresso e installarlo automaticamente.
L'unica cosa che riesco a compilare in un file .dll separato sono i controller, le classi e le visualizzazioni del rasoio ( con l'aiuto di un post sul blog ). Ora questo problema è che i progetti .dll non hanno accesso alle viste condivise dal progetto principale (o non riesco a trovare il desiderio di accedervi) e devo copiare le viste condivise dal progetto principale in tutti i progetti separati che tengono ciascun modulo (per non parlare dei file di configurazione devo anche copiare).
Se apporto una modifica alle viste condivise che altri moduli stanno utilizzando (che altre persone stanno mantenendo), dovrebbero aggiornare il loro modulo per copiare nella nuova versione delle viste condivise e questa è solo una soluzione che non sembra molto gestibile.
Sto cercando di vedere come altre persone configurano applicazioni C # ASP.NET MVC 3 estensibili.
EDIT - Nuova soluzione ideale
Ho sbagliato nella mia soluzione ideale iniziale. Come sottolineato da Tungano, la mia soluzione ideale iniziale avrebbe ucciso qualsiasi tipo di memorizzazione nella cache che il server / browser sarebbe stato in grado di fare su css, javascript, immagini, ecc.
La mia nuova soluzione ideale è l'intera idea di installazione di file compressi. Puoi avere la dll compilata con il codice sorgente e le viste al suo interno insieme a tutti i file separati css, javascript, images, ecc. Nel file compresso. Quindi attraverso l'applicazione stessa si seleziona il file compresso e l'applicazione gestirà il posizionamento di tutti i file nella posizione corretta. Qualsiasi link su come creare questo tipo di funzionalità sarebbe fantastico.