Tempi di costruzione per piccole modifiche incrementali alle applicazioni Web C #

4

Recentemente mi sono allontanato dai siti Web ASP.NET in favore delle applicazioni Web. Più in particolare, recentemente ho acquisito MVC come alternativa allo sviluppo di siti Web ASP.NET Forms.

Qualcosa che trovo altamente frustrante è il costante processo di build- > change- > re-build quando si testano piccole modifiche al codice compilato. Mi trovo a "raggruppare" diverse modifiche tra le build solo per evitare di aspettare 20-25 secondi affinché Visual Studio eseguisse il crunch attraverso il processo di compilazione. Ho creato un progetto MVC 4 pulito dal modello VS e ho cronometrato la build dopo aver modificato il codice di una singola riga, ci sono voluti 19 secondi.

Quando si apporta una modifica al code-behind in un sito Web ASP.NET, ho sempre trovato che la pagina è apparentemente ricompilata al volo quando si colpisce la pagina. Questo mi sembrerebbe un ambiente migliore per lo sviluppo web piuttosto che forzare VS un'intera ricostruzione dopo ogni piccolo cambiamento di codice.

In passato ho apprezzato il lusso di apportare modifiche, di aggiornare il browser e di attendere 1-2 secondi per il mio risultato. È realizzabile con le applicazioni Web create con Visual Studio?

    
posta Red Taz 12.12.2013 - 13:10
fonte

2 risposte

1

Sembra che abbia trascurato l'utilità dell'opzione "Modifica e continua" (Tools -> Options -> Debugging -> Edit and Continue) dopo aver lottato per superare il messaggio di dialogo infernale:

Changes are not allowed in the following cases:

  • When the debugger has been attached to an already running process.
  • The code being debugged was optimized at build or run time.
  • The assembly being debugged is loaded as domain-neutral.
  • The assembly being debugged was loaded through reflection.

Nonostante l'opzione selezionata nelle opzioni VS devi abilitarla per ciascuna applicazione web separata. Nella pagina delle proprietà è nella scheda Web quando scorri verso destra in basso "Abilita modifica e continua".

Apportare piccole modifiche usando Modifica e Continua non è esattamente la stessa cosa che fare modifiche al codice dietro un progetto di un sito Web, tuttavia è molto più appetibile del riavvio dell'app per ogni cambiamento di codice.

    
risposta data 16.12.2013 - 17:24
fonte
1

Puoi modificare le tue visualizzazioni MVC mentre il sito è in esecuzione. Il codice per i controller e tutto il resto deve essere ricompilato dopo una modifica. Hai scritto tutto in .aspx quando usi ASP.NET?

Ad ogni modo, 20 secondi sono abbastanza lunghi per una build incrementale dopo aver cambiato una singola riga di codice (anche se potrebbe dipendere da cosa hai cambiato, potrebbe passare in cascata attraverso alcuni assembly). Proverò a risolvere prima le velocità di compilazione. Perché ci vuole molto? Ripristino pacchetto NuGet? Copia di molti assiemi? Lenta unità disco, CPU e poca memoria?

D'altra parte sembra che la tua pratica di sviluppo sia un po 'sub-ottimale. Potresti voler impiegare lo sviluppo basato su test, in cui scrivi un test per mostrare quali sono le tue intenzioni, dopodiché inizi a lavorare sull'implementazione. In questo modo non dovrai nemmeno attendere l'avvio del web server di sviluppo e del browser; esegui i test da Visual Studio.

    
risposta data 12.12.2013 - 14:07
fonte