Cercare di raccogliere alcune opinioni su come una applicazione web (o eventualmente una serie di applicazioni web) dovrebbe essere divisa (per il progetto) ... fondamentalmente l'intera cosa sarà una sito grande, ma il problema sorge perché ha una varietà di moduli che hanno ciascuno i propri cicli di sviluppo/rilascio.Rompere una web application asp.net
Il problema che si pone è che dividendoli diventa un mal di testa con il tentativo di rendere la condivisione sessioni tra i siti e incorporare le risorse condivise nella DLL, ma il loro mantenimento come un unico grande progetto è un incubo dal punto di vista fonte di controllo.
I possibili modi per fare questo che mi viene in mente sono:
- Avere una sola applicazione e il ramo come un matto per il lavoro di ogni modulo: Su base stile fondamentale questo sembra giusto, ma sarebbe un sacco di rami e la fusione rami di nuovo in tutto il tempo sarebbe un incubo ...
- renderli tutte le applicazioni separate: lo svantaggio è che tutti condividono le loro pagine master e un sacco di controlli personalizzati (implementato in ascx). So come inserirli in una DLL (utilizzando provider di percorsi virtuali), ma è una soluzione abbastanza disordinata. Oltre a ciò, passa la sessione avanti e indietro tra le applicazioni essenzialmente costruendo una soluzione di sessione homebrew ...
Un'altra cosa che ho cercato di scoprire se potevo fare ma che ho fallito era in qualche modo avere un " cartella virtuale "di sorta nel csproj in modo che ad esempio la cartella" ModuleA "effettivamente mappata a" ../../../ModuleA/Trunk/ ". Sono relativamente convinto che questo non può essere fatto senza l'utilizzo di alcuni script pre-compilazione, ma speravo in qualcosa che potesse essere caricato in modo appropriato in Visual Studio, quindi penso che questa idea sia un no-go ...
Qualcuno ha qualche consiglio su quale modo dovrei andare con questo (se è uno dei precedenti o qualcosa che non ho considerato)? Voglio assicurarmi di non spararmi ai piedi qui perché è probabile che sia un progetto a lungo termine con molti miglioramenti/manutenzione futuri ...
Il tuo punto di vista sembra più o meno allineato con le conclusioni a cui sono arrivato quando ho cercato di capire come sistemarlo. Sono d'accordo sul fatto che condividere direttamente la sessione come descritto in alcuni di questi link è un trucco sporco, tanto che scriverò il mio controller di sessione prima di implementare tali soluzioni. Per quanto basta a rendere i moduli abbastanza modulari da non condividere dati, ogni modulo è separato al 100% da qualsiasi altro modulo, ma sono abbastanza intrinsecamente legati a un'applicazione centrale che verrà eseguita nel webroot (che è fondamentalmente solo un framework i moduli si collegano in). – fyjham
PS: Non accetterò ancora questo - vorrebbe dargli un po 'più di tempo per vedere se qualcuno ha un'opinione/approccio alternativo. Se nessun altro rintocca entro un giorno o due, probabilmente accetterò questo. – fyjham