Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Un progetto Windows Azure per .NET

Visual Studio e gli altri tool per creare applicazioni .NET da distribuire nel cloud
Visual Studio e gli altri tool per creare applicazioni .NET da distribuire nel cloud
Link copiato negli appunti

Iniziamo il nostro viaggio con i linguaggi tra le nuvole di Windows Azure. Con questa lezione iniziamo a scoprire come realizzare applicazioni scritte in .NET, la tecnologia più vicina alla piattaforma cloud di Microsoft.

In questa lezione vedremo subito come creare un progetto per Windows Azure con Visual Studio 2010.

Installare Visual Studio e tutti i tool necessari

Per prima cosa occorre installare Visual Studio 2010, anche in versione Express per poi aggiungere l'SDK necessario allo sviluppo e al testing di applicazioni per Windows Azure. È necessario installare anche Internet Information Service in quando il simulatore locale sfrutta IIS per esporre applicazioni o i servizi in fase di testing.

Da Novembre 2011 è disponibile un setup omnicomprensivo degli strumenti. Dalla home page di Windows Azure, accedere alla sezione sviluppo per poi scegliere .NET dal menù degli SDK disponibili. È disponibile anche SDK per node.js, uno per java, e uno per php: questa guida comprende articoli su ognuna di queste piattaforma/ambienti di sviluppo.

Una volta scelta la sezione .NET si può accedere al download tramite il pulsante "Installa" che riporta "Ultimo aggiornamento: novembre 2011" al momento della scrittura di questo articolo. Il pulsante avvia il download di WindowsAzureToolsVS2010.exe che potete poi lanciare direttamente o decidere di salvare e avviare in un secondo momento.

Questo strumento sfrutta il Web Platform Installer 3.0 che presenterà le informazioni per il setup come si può notare dall'immagine seguente:

Figura 1. (clic per ingrandire)


È consigliabile chiudere Visual Studio 2010 nel caso in cui già installato (e aperto) sulla macchina in cui si effettua il setup. È sufficiente premere il pulsante Install per avviare il setup completo che, nel caso in cui non sia già installato, proporrà anche l'installazione di Visual Studio 2010 SP1, un file di configurazione per Internet Information Service 7, e ASP.NET MVC 3.

Se l'installazione prevede il download di componenti non installati precedentemente, il setup prosegue con l'accettazione delle condizioni di licenza "free":

Figura 2. (clic per ingrandire)


Al termine viene presentato l'elenco delle componenti disponibili e necessarie al funzionamento dell'SDK. Ad esempio, sulla mia macchina il setup si presenta così:

Figura 3. (clic per ingrandire)


Da notare come i prerequititi IIS 7 Recommended Configuration e Visual Studio 2010 SP1 siano già installati.

Per l'utilizzo dell'emulatore dello storage necessario a simulare in locale lo Storage Account disponibile sul sistema operativo cloud è necessaria una versione (perfetta anche la Express) di SQL Server 2005 o 2008.

Una volta installato l'SDK è sufficiente aprire Visual Studio con un account amministrativo per creare e testare un progetto: questa operazione è necessaria in quanto Visual Studio deve interagire con componenti di sistema quali Internet Information Service per gestire l'ambiente di simulazione locale.

Tramite File > New Project si accede al classico wizard di creazione di un progetto che, come sempre può essere ospitato in una solution soggetta o meno a controllo sorgenti.

Accedere alla sezione Cloud e seleziona Windows Azure Project come mostrato nell'immagine seguente:

Figura 4. (clic per ingrandire)


Non è importante il nome assegnato alla solution o al progetto rispetto al deployment che andremo a fare sulla piattaforma cloud: nel nostro caso ho usato DevLeap.TimeService in quanto l'applicazione, stile "hello world" presentetà l'ora corrente in questo primo semplice progetto.

Dopo aver premuto il pulsante ok, l'interfaccia ci presenta il secondo passo del wizard:

Figura 5. (clic per ingrandire)


È possibile scegliere diverse tipologie di progetto in base al tipo di applicazione che andremo a realizzare: ASP.NET MVC 2 o 3 Web Role sono i template per la crazione di una applicazione web ASP.NET seguendo il pattern MVC., Worker Role rappresenta una tipologia di progetto non esposta per default sul protocollo http, e WCF Service Web Role è il template per creare una applicazione che espone servizi WCF.

Scelto ASP.NET Web Role (per questo semplice esempio non fa differenza scegliere la versione MVC) si procede con l'aggiunta tramite la freccetta all'elenco dei progetti da aggiungere alla Windows Azure Solution rappresentata dalla lista a destra del dialog. Nell'immagine precedente, come si può notare, ho scelto TimeService per il nome del web role. Anche questo nome non ha relazione con gli indirizzi che utilizzeremo per pubblicare il progetto su Windows Azure.

Prima di proseguire un chiarimento: "Un Web Role è una macchina virtuale su cui verrà installata la nostra applicazione che per default viene esposta pubblicamente sulla porta 80 dall'infrastruttura: normalmente utilizzeremo questo tipo di progetto per realizzare il front-end di una applicazione"

Il risultato che otteniamo in Visual Studio è il seguente:

Figura 6. (clic per ingrandire)


Il progetto TimeService è un classico progetto ASP.NET Web Form (infatti abbiamo scelto questo template) che non contiene niente di particolare tranne il file (WebRole.cs) che descriveremo nei prossimi articoli. Il progetto contiene la pagina di default che, gentilmente, Visual Studio ci ha aperto anche nell'editor.

Modifichiamo la pagina per contenere una sola label denominata lblTime all'interno del tag h2 come nel codice seguente:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="TimeService._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        <asp:Label ID="lblTime" runat="server" />
    </h2>
</asp:Content>

Inseriamo una riga di codice nel code behind per valorizzare la label con l'ora corrente come nel seguente listato:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TimeService
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            lblTime.Text = DateTime.Now.ToString();
        }
    }
}

In questo semplice esempio non ci interessa modificare altro, ma restano valide tutte le regole di buona programmazione ASP.NET come disabilitare le sessioni, impostare la sicurezza sul progetto, utilizzare magari il metodo PreRender al posto dell'evento Page_Load, o utilizzare il pattern MVC per la gestione della user interface.

Il secondo progetto presente nella solution è invece un progetto Windows Azure e rappresenta la definizione dell'applicazione che Windows Azure utilizzerà per effettuare il deploy dell'applicazione stessa sul cloud.

Per capire meglio il ruolo di questo progetto proviamo a aprire la sezione "Roles" del progetto cloud e poi doppio click sul progetto TimeService in esso ontenuto. Appare la definizione del progetto per Windows Azure:

Figura 7. (clic per ingrandire)


Avremo modo di parlare di configurazione nelle prossime pagine, ma è importante notare l'impostazione del numero delle istanze che desideriamo ricevere da Windows Azure durante il deploy, così come la dimensione della macchina virtuale che per default è Small.

Lanciamo l'applicazione con il solito F5. Il risultato, visibile da qualunque browser utilizzando la porta 81 è il seguente:

Figura 8. (clic per ingrandire)


Viene utilizzata la porta 81 in quando la 80 è già occupata da IIS. Stoppando il debugger o chiudendo il browser viene fermata l'esecuzione nell'emulatore e eliminata la configurazione da IIS.

Ti consigliamo anche