Domanda

Ho sempre distribuito le mie applicazioni web via FTP (a volte anche xcopy) e quindi eseguivo manualmente gli script del database.

Ho iniziato a distribuire in questo modo negli anni '90, ma ultimamente ho visto alcune app Web con programmi di installazione. Sto iniziando a chiedermi se sono bloccato in un processo obsoleto. Sono un consulente, le mie app sono in genere interne, quindi non mi preoccupo di distribuirle e di farle installare da altri.

Ma sono curioso; qualcuno crea programmi di installazione per distribuire applicazioni web asp.net interne?

Se sì, perché? (Volontariamente, obbligatorio o parte di un processo di automazione)

E hai avuto problemi a farlo in questo modo?

È stato utile?

Soluzione

assolutamente. Lo usiamo per fare tutte le nostre app. In questo modo creiamo il programma di installazione e lo eseguiamo negli ambienti qa e uat per testare e sappiamo esattamente cosa accadrà nella produzione. Non ci sono ipotesi sull'ordine in cui qualcuno potrebbe fare qualcosa o se manca un passo. Rende le cose molto più facili.

Ooh, ho dimenticato anche il processo automatizzato. Disponiamo di sistemi (Ant Hill Pro) che lo distribuiscono automaticamente negli ambienti corretti. Le persone di qa non devono aspettare che qualcosa sia fatto, perché è tutto fatto alle 2 del mattino. Se hanno bisogno di rieseguire la build con gli aggiornamenti, gli sviluppatori controllano il codice e noi premiamo un pulsante, e viene automaticamente distribuito. Nessuna attesa per l'ingegnere di costruzione, perché è in riunione o malato o altro.

Altri suggerimenti

Vuoi sempre avere un modo automatico di compilare e distribuire - riduce notevolmente le possibilità di un errore una tantum se dimentichi un determinato passaggio. Inoltre, ti consente di scaricare facilmente la distribuzione su qualcun altro senza dover insegnare loro 100 passaggi personalizzati. Indipendentemente dal fatto che il progetto sia interno o meno, tutte le applicazioni dovrebbero seguire le migliori pratiche.

Personalmente sono un po 'come l'OP; in genere eseguo semplicemente la distribuzione tramite FTP, ma nel dire che in genere le mie applicazioni sono interne o, nel caso di altri progetti, gestite al 100% da me.

Tuttavia, ci ho pensato anche recentemente e ho iniziato a pensare a come l'utilizzo di una corretta distribuzione possa migliorare il processo: dover documentare un processo di installazione dettagliato può essere una vera seccatura.

Uso Powershell e ho trovato davvero facile da automatizzare molte attività. Probabilmente troverai un po 'diverso all'inizio ma alla fine vedrai che si tratta solo della potenza delle librerie .NET !!!

Ho usato il " Progetto di installazione Web " per creare un MSI che ha installato l'output di un " Progetto di distribuzione Web & Quot; per un'app interna. Il nostro amministratore del server non era in grado di eseguire un'installazione manuale in 50 passaggi. Per la mia app attuale, al mio amministratore del server non piace la sensazione di "scatola nera" degli installatori MSI e preferisce ottenere una pila di file e un manuale di distribuzione in 50 passaggi. (Vedi uno schema qui? Chiedi al tuo amministratore del server cosa vuole.)

Il progetto di installazione Web non rende immediatamente ovvio come installare su qualcosa di diverso dal " Sito Web predefinito " ;, a parte questo, ha reso il processo di installazione ripetibile e ha creato un modo di rollback (semplicemente eseguendo il programma di installazione da 1 versione fa).

Questo ovviamente presuppone che la tua directory virtuale non contenga alcun contenuto modificato dall'utente: non mi fiderei di un MSI per unire correttamente i file creati dall'utente e i nuovi file.

Usiamo il " XCopy " distribuire il modello qui, poiché le persone Ops hanno il loro metodo per impostare la sicurezza su una nuova applicazione Web sul server.

Tuttavia, dovevamo installare un programma di installazione quando dovevamo installare un'applicazione Web che utilizzava una versione più recente di Crystal Reports poiché doveva fare qualcosa di speciale con una chiave e non avevamo una versione completa di CR sul server stesso. Quindi tienilo a mente quando lavorano con app di terze parti, potrebbe essere necessario fare una sorta di modulo di unione che MSI gestisce facilmente.

Sì ... abbiamo un'app che necessita di molti prerequisiti impostati ... servizio web, servizio windows, account utente, sicurezza, creazione di cartelle, bit GAC ecc .... Ho fatto tutto in un bel MSI con azioni personalizzate che possono essere installate e disinstallate in modo pulito. Risparmio di circa un'ora di lavoro da distribuire su una nuova scatola.

Molte delle altre app più piccole vengono distribuite eseguendo Pubblica sito Web in una cartella locale, quindi eseguendo l'ftp del contenuto sulla destinazione.

Dipende molto dalle dimensioni del progetto, dall'ambiente e dalla base di utenti interni. Raramente eseguo la distribuzione con un MSI perché un'operazione troppo piccola per avere più ambienti (ad eccezione di SharePoint, è completamente diversa). Sviluppiamo e utilizziamo VS per distribuire app Web in una casella di sviluppo, supponendo che siano approvate, quindi utilizziamo nuovamente VS per distribuirle nella live box.

L'unica condizione è che abbiamo più copie del web.config (aggiunto con test, dev e live) e quindi eliminiamo il suffisso dal file pertinente a seconda di dove è stato distribuito.

Probabilmente non è la migliore metodologia (so che non lo è), ma funziona e aiuta a implementare rapidamente soluzioni di piccole e medie dimensioni in un ambiente utente su piccola scala.

F5ToDebug ...

Stai dicendo che va bene prendere scorciatoie se non hai tempo di farlo correttamente?

" chi testerà il codice nell'ambiente di test? " Hai detto tu stesso che hai i file di configurazione per _test - perché non sarebbe un test adatto?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top