Distribuzione del sito tramite Visual Studio (C#)

di Scott Mitchell

Scarica il PDF

Visual Studio include strumenti per la distribuzione di un sito Web. Altre informazioni su questi strumenti in questa esercitazione.

Introduzione

L'esercitazione precedente ha illustrato come distribuire una semplice applicazione Web ASP.NET in un provider di host Web. In particolare, l'esercitazione ha illustrato come usare un client FTP come FileZilla per trasferire i file necessari dall'ambiente di sviluppo all'ambiente di produzione. Visual Studio offre anche strumenti predefiniti per facilitare la distribuzione in un provider host Web. Questa esercitazione esamina due di questi strumenti: lo strumento Copia sito Web, in cui è possibile spostare i file da e verso un server Web remoto tramite FTP o le estensioni del server FrontPage; e lo strumento Pubblica, che copia l'intero sito Web in una posizione specificata.

Nota

Un altro strumento correlato alla distribuzione offerto da Visual Studio è il componente aggiuntivo Progetti di installazione Web . Progetti di installazione Web crea un pacchetto dei contenuti e delle informazioni di configurazione di un sito Web in un singolo file MSI. Questa opzione è più utile per i siti Web distribuiti all'interno di una intranet o per le aziende che vendono un'applicazione Web pre-pacchetto installata dai clienti nei propri server Web. I progetti di distribuzione Web Add-In sono un Add-In di Visual Studio che facilita la specifica delle differenze di configurazione tra le compilazioni per gli ambienti di sviluppo e gli ambienti di produzione. I progetti di installazione Web non sono descritti in questa serie di esercitazioni; I progetti di distribuzione Web sono riepilogati nell'esercitazione Differenze di configurazione comuni tra sviluppo e produzione .

Distribuzione del sito tramite lo strumento Copia sito Web

Lo strumento Copia sito Web di Visual Studio è simile a quello di un client FTP autonomo. In breve, lo strumento Copia sito Web consente di connettersi a un sito Web remoto tramite FTP o le estensioni del server FrontPage. Analogamente all'interfaccia utente di FileZilla, l'interfaccia utente Copia sito Web è costituita da due riquadri: il riquadro sinistro elenca i file locali mentre il riquadro destro elenca tali file nel server di destinazione.

Nota

Lo strumento Copia sito Web è disponibile solo per i progetti di siti Web. Visual Studio offre questo strumento quando si usa un progetto di applicazione Web.

Si esamini ora l'uso dello strumento Copia sito Web per pubblicare l'applicazione Book Review nell'ambiente di produzione. Poiché lo strumento Copia sito Web funziona solo con i progetti che usano il modello Progetto sito Web, è possibile esaminare solo usando questo strumento con il progetto BookReviewsWSP. Aprire il progetto.

Avviare il progetto dello strumento Copia sito Web facendo clic sull'icona Copia sito Web nel Esplora soluzioni (questa icona è cerchiata nella figura 1). In alternativa, è possibile selezionare l'opzione Copia sito Web dal menu Sito Web. Entrambi gli approcci avviano l'interfaccia utente Copia sito Web illustrata nella figura 1; viene popolato solo il riquadro sinistro nella figura 1 perché è ancora necessario connettersi a un server remoto.

L'interfaccia utente dello strumento Copia sito Web è suddivisa in due riquadri

Figura 1: L'interfaccia utente dello strumento Copia sito Web è divisa in due riquadri (fare clic per visualizzare l'immagine a dimensione intera)

Per distribuire il sito, è necessario prima connettersi al provider host Web. Fare clic sul pulsante Connetti nella parte superiore dell'interfaccia utente Copia sito Web. Verrà visualizzata la finestra di dialogo Apri sito Web visualizzata nella figura 2.

È possibile connettersi al sito Web di destinazione selezionando una delle quattro opzioni a sinistra:

  • File system : selezionare questa opzione per distribuire il sito in una cartella o in una condivisione di rete accessibile dal computer.
  • IIS locale : usare questa opzione per distribuire il sito nel server Web IIS installato nel computer.
  • Sito FTP : connettersi a un sito Web remoto tramite FTP.
  • Sito remoto : connettersi a un sito Web remoto usando le estensioni del server FrontPage.

La maggior parte dei provider di host Web supporta FTP, ma un minor numero di opzioni offre il supporto dell'estensione del server FrontPage. Per questo motivo, ho selezionato l'opzione Sito FTP e quindi ho immesso le informazioni di connessione, come illustrato nella figura 2.

Screenshot della finestra di dialogo Apri sito Web, che mostra che le informazioni di connessione vengono inserite nei campi di testo.

Figura 2: Specificare il sito Web di destinazione (fare clic per visualizzare l'immagine a dimensione intera)

Dopo la connessione, lo strumento Copia sito Web carica i file nel sito remoto nel riquadro destro e indica lo stato di ogni file: Nuovo, Eliminato, Modificato o Non modificato. È possibile copiare un file dal sito locale al sito remoto o viceversa.

Aggiungere una nuova pagina al progetto BookReviewsWSP e quindi distribuirla in modo da poter vedere lo strumento Copia sito Web in azione. Creare una nuova pagina ASP.NET in Visual Studio nella directory radice denominata Privacy.aspx. Chiedere alla pagina di usare la pagina Site.master master e aggiungere l'informativa sulla privacy del sito a questa pagina. La figura 3 mostra Visual Studio dopo la creazione di questa pagina.

Aggiungere un nuovo codice>denominato <pagina Privacy.aspx</codice> alla cartella radice del sito Web

Figura 3: Aggiungere una nuova pagina denominata Privacy.aspx alla cartella radice del sito Web (fare clic per visualizzare l'immagine a dimensione intera)

Tornare quindi all'interfaccia utente Copia sito Web. Come illustrato nella figura 4, il riquadro sinistro include ora i nuovi file e Policy.aspxPolicy.aspx.cs. Inoltre, questi file sono contrassegnati con un'icona a forma di freccia e uno Stato nuovo, che indica che esistono nel sito locale ma non nel sito remoto.

Lo strumento Copia sito Web include il nuovo <codice>Privacy.aspx</tabella codici> nel riquadro sinistro

Figura 4: Lo strumento Copia sito Web include la nuova Privacy.aspx pagina nel riquadro sinistro (fare clic per visualizzare l'immagine a dimensione intera)

Per distribuire i nuovi file selezionarli e quindi fare clic sull'icona a forma di freccia per trasferirli nel sito remoto. Al termine del trasferimento, i Policy.aspx file e Policy.aspx.cs sono presenti nei siti locali e remoti con lo stato Non modificato.

Oltre a elencare nuovi file, lo strumento Copia sito Web evidenzia tutti i file che differiscono tra i siti locali e remoti. Per visualizzarlo in azione, tornare alla Privacy.aspx pagina e aggiungere altre parole all'informativa sulla privacy. Salvare la pagina e quindi tornare allo strumento Copia sito Web. Come illustrato nella figura 5, la Privacy.aspx pagina nel riquadro sinistro ha lo stato Modificato che indica che non è sincronizzata con il sito remoto.

Lo strumento Copia sito Web Indica che il <codice>Privacy.aspx</tabella codici> è stato modificato

Figura 5: Lo strumento Copia sito Web indica che la pagina è stata modificata (fare clic per visualizzare l'immaginePrivacy.aspx a dimensione intera)

Lo strumento Copia sito Web indica anche se un file è stato eliminato dall'ultima operazione di copia. Eliminare dal Privacy.aspx progetto locale e aggiornare lo strumento Copia sito Web. I Privacy.aspx file e Privacy.aspx.cs rimangono elencati nel riquadro sinistro, ma hanno uno stato Eliminato che indica che sono stati rimossi dall'ultima operazione di copia.

Pubblicazione di un'applicazione Web

Un altro modo per distribuire l'applicazione Web da Visual Studio consiste nell'usare l'opzione Pubblica, accessibile tramite il menu Compila. L'opzione Pubblica compila in modo esplicito l'applicazione e quindi copia tutti i file necessari fino al sito remoto specificato. Come si vedrà a breve, l'opzione Pubblica è più sfocata rispetto allo strumento Copia sito Web. Mentre lo strumento Copia sito Web consente di esaminare i file nei siti locali e remoti e di consentire di caricare o scaricare singoli file in base alle esigenze, l'opzione Pubblica distribuisce l'intera applicazione Web.

Oltre a copiare tutti i file necessari nel sito remoto specificato, l'opzione Pubblica compila in modo esplicito l'applicazione. Dato che i progetti di applicazioni Web devono essere compilati in modo esplicito, non dovrebbe sorprendere che l'opzione Pubblica sia disponibile per i progetti di applicazioni Web. Ciò che può sorprendere è che l'opzione Pubblica è disponibile anche per i progetti di siti Web. Come indicato nell'esercitazione Determinazione dei file da distribuire , i progetti di siti Web possono essere compilati in modo esplicito tramite un processo denominato pre-compilazione. Questa esercitazione è incentrata sull'uso dell'opzione Pubblica con progetti applicazione Web; Un'esercitazione futura esaminerà la pre-compilazione, a questo punto si tornerà a esaminare l'uso dell'opzione Pubblica con progetti sito Web.

Nota

Anche se l'opzione Pubblica è disponibile in Visual Studio per progetti di siti Web e progetti di applicazioni Web, Visual Web Developer offre solo l'opzione Pubblica per progetti di applicazioni Web.

Si esamini ora la distribuzione dell'applicazione Recensioni libro usando l'opzione Pubblica. Per iniziare, aprire BookReviewsWAP (progetto applicazione Web) in Visual Studio. Dal menu Pubblica scegliere il progetto Build BookReviewsWAP. Verrà visualizzata una finestra di dialogo che richiede la posizione di destinazione, tra le altre opzioni di configurazione (vedere la figura 6). Analogamente allo strumento Copia sito Web, è possibile immettere un percorso che punta a una cartella locale, a un sito Web locale in IIS, a un sito Web remoto che supporta le estensioni del server FrontPage o a un indirizzo server FTP. È possibile scegliere se sostituire i file nel server Web remoto con i file distribuiti o eliminare tutto il contenuto nel sito remoto prima della pubblicazione. È anche possibile specificare se copiare:

  • Solo i file nel progetto necessari per eseguire l'applicazione, che omette il codice sorgente non necessario e i file correlati al progetto.
  • Tutti i file di progetto, inclusi i file di codice sorgente e i file di progetto di Visual Studio, ad esempio il file della soluzione.
  • Tutti i file nella cartella del progetto di origine, che copia tutti i file nella cartella del progetto di origine indipendentemente dal fatto che siano inclusi nel progetto.

È anche possibile caricare il contenuto della App_Data cartella.

Screenshot della finestra di dialogo Pubblica web, che mostra le caselle di controllo Elimina tutti i file esistenti prima della pubblicazione e Solo i file necessari per l'esecuzione.

Figura 6: Specificare il sito Web di destinazione (fare clic per visualizzare l'immagine a dimensione intera)

Per l'applicazione Book Review il sito remoto contiene i file distribuiti durante la copia del progetto BookReviewsWSP tramite lo strumento Copia sito Web. Di conseguenza, si avrà l'opzione Pubblica per iniziare eliminando tutto il contenuto esistente. Inoltre, è sufficiente copiare i file necessari invece di ingombrare l'ambiente di produzione con file di progetto e codice sorgente non necessari. Dopo aver specificato queste opzioni, fare clic sul pulsante Pubblica. Nei prossimi secondi Visual Studio distribuirà i file necessari nel sito di destinazione, visualizzandone lo stato nella finestra Output.

La figura 7 mostra i file nel sito FTP dopo il completamento dell'operazione di pubblicazione. Si noti che sono stati caricati solo le pagine di markup e i file di supporto sul lato client necessari.

Solo i file necessari sono stati pubblicati nell'ambiente di produzione

Figura 7: Solo i file necessari sono stati pubblicati nell'ambiente di produzione (fare clic per visualizzare l'immagine a dimensione intera)

L'opzione Pubblica è uno strumento meno sfumato rispetto allo strumento Copia sito Web. Mentre lo strumento Copia sito Web consente di esaminare i file nei siti locali e remoti e verificare la differenza, l'opzione Pubblica non fornisce tale interfaccia. Inoltre, lo strumento Copia sito Web consente di apportare modifiche occasionali, caricare o eliminare singoli file. L'opzione Pubblica non consente un controllo con granularità fine; pubblica invece l'intera applicazione. Questo comportamento presenta vantaggi e svantaggi. Sul lato più, si sa quando si usa l'opzione Pubblica non si dimentica di caricare un file importante. Tuttavia, considerare cosa accade se è stata apportata una piccola modifica a un sito Web di grandi dimensioni, con l'opzione Pubblica non è possibile aggiornare la pagina o due che sono state modificate, ma è necessario attendere mentre Visual Studio distribuisce l'intero sito.

Non è raro che esistano determinati file il cui contenuto differisce tra gli ambienti di produzione e di sviluppo. Un esempio chiave è il file di configurazione dell'applicazione, Web.config. Poiché l'opzione Pubblica copia in modo cieco i file dell'applicazione Web che sovrascrive i file di configurazione personalizzati dell'ambiente di produzione con la versione nell'ambiente di sviluppo. L'esercitazione successiva illustra ulteriormente questo argomento e offre suggerimenti per la distribuzione di un'applicazione Web in presenza di tali differenze.

Riepilogo

La distribuzione di un sito Web comporta la copia dei file necessari dall'ambiente di sviluppo all'ambiente di produzione. L'esercitazione precedente ha illustrato come trasferire file usando un client FTP come FileZilla. Questa esercitazione ha esaminato due strumenti di distribuzione in Visual Studio: lo strumento Copia sito Web e l'opzione Pubblica. Lo strumento Copia sito Web è simile a un client FTP in quanto dispone di un'interfaccia a due panoramica che elenca i file nel computer locale e un computer remoto specificato che semplifica il caricamento o il download di file tra i due computer. L'opzione Pubblica è uno strumento più sfocato che compila il progetto in modo esplicito e quindi distribuisce l'intera applicazione nella destinazione specificata.

Buon programmatori!

Altre informazioni

Per altre informazioni sugli argomenti descritti in questa esercitazione, vedere le risorse seguenti: