Il nostro prodotto è un'applicazione Web ASP.Net. Attualmente, utilizziamo progetti di siti Web in Visual Studio, ma abbiamo cercato di utilizzare i progetti di applicazioni Web per parecchio tempo. Attualmente sto facendo ricerche su di loro in modo che possiamo migliorare il nostro processo di implementazione.Struttura e distribuzione applicazioni Web
Abbiamo un sito Web di base condiviso e comune tra diversi client, e quindi lo estendiamo con funzionalità specifiche del client in progetti di siti Web client. I progetti client estendono la base e quindi fanno affidamento sui suoi contenuti. Per creare il prodotto completo, prima distribuiamo il sito Web di base, quindi lo sovrapponiamo al contenuto del progetto client.
Nell'osservare la conversione in progetti di applicazioni Web in Visual Studio, speravamo di poter creare il progetto di base, quindi creare progetti client e impostare riferimenti alla base. Questa struttura sembra funzionare correttamente, ma quando si tenta di distribuire l'applicazione dal progetto client utilizzando MSDeploy, viene pubblicata solo la dll dal sito Web di base. Questo va bene per alcune cose, il riferimento al codice compilato è utile, ma ci sono altri elementi come immagini, pagine js, htm, ecc. Che sono ancora sorgenti necessarie per il funzionamento dell'applicazione client. Abbiamo bisogno di più del codice compilato dal nostro sito web di base.
Che tutti Detto questo, mi viene in mente un paio di opzioni qui:
- Continuare a distribuire in 2 fasi. Prima il sito Web di base, quindi il sito Web del cliente per creare il prodotto completo.
- Modificare il processo di distribuzione per copiare i file di origine richiesti dal progetto di base
- Re-architect il nostro modello per supportare questa relazione base-cliente in un modo diverso. Non sono sicuro di come funzionerebbe e sarebbe l'opzione meno praticabile.
- ??
Esiste un'altra opzione che mi manca? Sto facendo qualcosa di sbagliato nel modo in cui sto configurando i miei progetti? C'è di più per fare una Web Application fare riferimento a un'altra applicazione Web oltre a condividere il codice compilato? Se questo è il caso, perché non dovresti semplicemente usare una libreria di classi condivise? O forse mi manca qualcosa con il processo di MS Deploy?
Sono aperto a suggerimenti qui perché sento che mi manca qualcosa. Non penso che il nostro modello per le nostre applicazioni web sia troppo unico.
Aggiornamento: il processo di doppia distribuzione funziona, ma si sente un po 'caotico. Qualche altro input?
BTW, sì, il tuo modello è insolito. Ma scappare dai "progetti" del sito web in ogni caso. Sono unici e non in senso buono. –
Ya abbiamo saputo per un po 'che i progetti di siti Web sono .. umm, "speciali" in vari modi. È difficile a volte risolvere qualcosa che non è rotto. Cosa rende la nostra struttura così unica? Un'altra opzione plausibile è che ogni progetto contenga la fonte completa dell'applicazione e configuri una sorta di branching di origine. L'abbiamo già fatto prima e diventa molto difficile mantenere i cambiamenti. – yourbuddypal
Non ho mai pensato di utilizzare la ramificazione in questo scenario, ma, a ragione, la ramificazione in TFS 2010 è molto più semplice da utilizzare rispetto al passato. Vale la pena dare un'occhiata. Inoltre, ti consiglio di separare e isolare con attenzione le parti specifiche del client della tua applicazione dalle parti comuni. Crea punti di estensibilità e personalizzazione specifici all'interno dell'app. Ciò renderà più facile vedere come implementarlo al meglio. Ci sono anche trucchi divertenti che puoi giocare con MSDEPLOY. Vedi http: //www.amazon.it/Inside-Microsoft-Build-Engine-Foundation/dp/0735645248 –