2009-07-29 11 views
16

Vogliamo dividere la nostra grande applicazione web asp.net mvc in più progetti di Visual Studio in modo che ciascun team possa indipendentemente nel proprio progetto di studio visivo.Più progetti ASP.NET MVC che vengono creati come applicazione ASP.NET MVC singola

struttura desiderata è:

  1. applicazione ASP.NET MVC che è responsabile per l'interfaccia utente di base
  2. Modulo 1 - VS Progetto (Fa questo bisogno di essere un ASP.net MVC App o .dll?)
  3. modulo 2 - VS Progetto (Fa questo bisogno di essere un ASP.net MVC App o .dll)
  4. così via ....

Ogni modulo dovrebbe contenerla'? s proprio controller & viste che sono responsabili per il funzionamento del modulo. T

Come suddividere l'applicazione ASP.NET in più progetti e quindi unirli come un singolo sito Web durante il processo di compilazione?

risposta

8

ASP.NET MVC V2 ha una funzione detta Aree che consente per avere progetti separati a cui fa riferimento l'applicazione principale. Controlla ScottGu's post.

+1

Per quanto posso dire, questo non è più supportato in MVC3. –

+1

Le aree sono difficili da gestire se abbiamo 100 punti di vista nel sito. Fondamentalmente quando abbiamo 1000 file caricati in Visual Studio, il processo di compilazione fa schifo. Ci vuole troppo tempo per costruire. Quindi abbiamo diviso il nostro sito in più progetti asp.net e li abbiamo uniti nel processo di creazione come ho detto nel commento qui sotto: http://stackoverflow.com/questions/1200424/multiple-asp-net-mvc-projects-that-builds -as-single-asp-net-mvc-application/1362621 # 1362621 – Gopinath

2

Uno strumento che può essere interessati a guardare è chiamato ILMerge

Questo è uno strumento che vi permetterà di unire più assembly .NET in una singola DLL. Potrebbe essere utilizzato per combinare l'output di diversi progetti in una singola DLL per l'implementazione.

Non l'ho mai provato con Asp.Net MVC e non ho familiarità con l'architettura MVC per dire se funzionerà o meno per la situazione. Ma probabilmente vale la pena provare.

0

Se l'app non richiede aree e il tuo obiettivo è solo quello di consentire l'indipendenza del team, perché non utilizzare un sistema di controllo del codice sorgente migliore? A meno che tu non abbia dei moduli veramente indipendenti, sembra appropriato gestire i rami attraverso la sovversione.

3

il problema è risolto da solo la creazione di più progetti MVC e la fusione l'uscita al termine dalla semplice copia incolla & :)

qui è la struttura che abbiamo seguito:

  • MyApp.Web. Shell (solo contiene temi, css, js & immagini necessarie per la web app)
  • MyApp.Web.Home
  • MyApp.Web.UserManagement
  • MyApp.Web.DeviceManagement
  • MyApp.Web.ContentManagement
  • ..... ecc ...

Alla fine stiamo usando gli script di unire l'uscita di tutti i progetti e generare il file necessari per l'esecuzione dell'applicazione web totale.

Se avete bisogno di aiuto nell'attuazione soluzione simile, entrare in contatto con me al link text

0

Un modo abbiamo gestito questo nel mio lavoro precedente era quello di costruire un'applicazione master 'controller'. Questa app è stata distribuita ed era rivolta al pubblico. Il suo compito consisteva nel leggere l'URL in arrivo e, in base a una serie di regole di mappatura nei file di configurazione, mappare quell'URL ad altre applicazioni MVC in esecuzione sullo stesso server. Questo ci ha dato un sacco di opzioni come essere in grado di eseguire le app di supporto su server diversi nella farm se volevamo fare il bilanciamento del carico grezzo. Devi gestire cose come l'autenticazione tra più app (se stai usando l'autenticazione).

Questo fondamentalmente ti dà la possibilità di avere il maggior numero di applicazioni MVC diverse, come è necessario in esecuzione sui server tutti con lo stesso front controller (essenzialmente)

0

Si potrebbe semplicemente usare un buon controllo del codice sorgente e chiedere ai rispettivi team di verificare su cosa devono lavorare.

In questo modo si ha solo una dll in fase di compilazione ...