Attualmente sto sviluppando un'applicazione ASP.NET abbastanza ampia che utilizza SQLExpress come database sottostante. Il progetto è attualmente in fase di strong sviluppo ed è coperto dai test delle unit test e della regressione . Subversion (SVN) viene utilizzato come sistema di controllo della versione. Questi test sono molto importanti, dobbiamo assicurarci che ogni test ritorni con successo.
Il nostro flusso di lavoro corrente ha il seguente aspetto:
- Qualcuno commette le modifiche al codice nel nostro repository svn
- I colleghi aggiorneranno il loro repository locale ed eseguiranno uno script di build che si muove costruendo alcuni progetti di Visual Studio e spostando le DLL intorno
Tieni presente che i test non devono essere attivati automaticamente!
Quindi, ecco le mie domande:
Come si usa l'integrazione continua in questa configurazione? Ho trovato Jenkins.io dopo alcune ricerche. Strumenti come TravisCI o CircleCI sembrano non funzionare con le applicazioni ASP.NET (correggimi se sbaglio). Jenkins è adatto per eseguire test asp.net su ogni commit SVN?
Sono aperto a ogni idea e suggerisco come gestire i CI / test automatici in questa situazione.
La seconda domanda riguarda l'utilizzo dell'applicazione: Come si distribuiscono le applicazioni asp.net nel 2017?
Fyi ci sono due modi per usare la nostra piattaforma / sito web:
- L'applicazione che include il database verrà distribuita sul server di un cliente
- Il cliente utilizza il nostro server in cui viene distribuita l'app e si connette a esso
La nostra attuale configurazione è basata su uno script PowerShell che crea database con tabelle e dati iniziali, distribuisce il progetto asp.net, modifica i file di configurazione e infine configura il server Web IIS.
L'installazione basata su container come Docker è la soluzione giusta? E come gestiresti il "caso di aggiornamento"? L'aggiornamento del software non è un problema sui nostri server, ma come gestiresti questo se il nostro software si trova sul server del cliente? Sono pronto per ogni idea. :)