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

Il primo progetto Windows Azure

La struttura un progetto Windows Azure e gli strumenti necessari per creane uno e lavorare in locale
La struttura un progetto Windows Azure e gli strumenti necessari per creane uno e lavorare in locale
Link copiato negli appunti

In questo primo code snippet vedremo all'opera Visual Studio 2010 per la creazione di un progetto da testare in locale utilizzando il simulatore del sistema operativo.

L'obiettivo è introdurre l'ambiente di sviluppo ed esaminare i componenti di un progetto Windows Azure per poi costruire, negli snippet successivi, una piccola applicazione. Come accennato da Mario Fontana nell'introduzione, in questo breve corso costruiremo una semplice applicazione per avvicinarsi al mondo del cloud computing partendo da zero.

La prima cosa da fare per iniziare a seguire questo snippet è dotarsi di Visual Studio, versione 2008 SP1 o, ovviamente, 2010. È possibile utilizzare anche le versioni Express di entrambi gli ambienti. Prima di installare l'SDK necessario allo sviluppo e al test di applicazioni Windows Azure è fondamentale seguire i passi di installazione per Internet Information Service.

L'ambiente locale di simulazione sfrutta, infatti, IIS per esporre l'applicazione o i servizi che inseriremo nel progetto Windows Azure sul protocollo HTTP. L'elenco dei prerequisiti e i componenti da installare sono disponibili su Windows Azure SDK using Microsoft Visual Studio. Come potete notare nella prima riga del secondo passo di installazione è disponibile un link verso le istruzioni.

È disponibile anche una versione standalone dell'SDK che fornisce le API, gli esempi e la documentazione per sviluppare per Windows Azure. Questo snippet utilizza la versione 1.3 dell'SDK che ha introdotto alcune componenti che avremo modo di analizzare nei prossimi articoli.

Una volta installato il componente è sufficiente aprire Visual Studio con un account amministrativo per creare e testare un progetto. Purtroppo, è richiesto un account amministrativo poiché Visual Studio deve interagire con componenti di sistema per poter avviare e gestire l'ambiente di simulazione locale.

Si procede con il classico File -> New Project e, una volta scelto "Cloud" nei template installati, si può assegnare un nome al progetto e alla solution. Niente di nuovo in questo primo passaggio:

Figura 1. Creare un progetto Cloud
(clic per ingrandire)


Nuovo progetto Azure

Come si nota dall'immagine precedente, l'unico template disponibile nella sezione Cloud è "Windows Azure Project DevLeap.AzureBookManager

Il nome del progetto e della solution non hanno alcuna relazione con il nome dell'applicazione che, in sequito, pubblicheremo su Windows Azure ok

Figura 2. ASP.NET Web Role
(clic per ingrandire)


ASP.NET Web Role

È possibile scegliere diverse tipologie di progetto in base al tipo di applicazione che vogliamo realizzare: WCF Service Web Role è il template per creare una applicazione che espone servizi WCF, ASP.NET MVC 2; Web Role

La nostra scelta ricade su ASP.NET Web Role

Anche il nome del progetto ASP.NET Web Role non ha relazione con gli indirizzi che utilizzeremo per pubblicare il progetto su Windows Azure. Per Web Role si intende una 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 DevLeap.AzureBookManager.FrontEnd

Il risultato che otteniamo in Visual Studio è il seguente (da notare che sto usando il controllo sorgenti come è possibile fare per qualunque progetto Visual Studio):

Figura 3. Il nostro progetto in VisualStudio
(clic per ingrandire)


progetto ASP.NET Web Role VisualStudio

Il progetto selezionato è un classico progetto ASP.NET Web Form che non contiene niente di diverso tranne un file (WebRole.cs Windows Azure SDK

Il progetto DevLeap.AzureBookManager progetto Windows Azure

Per capire meglio il ruolo di questo progetto proviamo a fare doppio click nella sezione "Roles" del progetto cloud e poi doppio click sul progetto contenuto nella sezione. Appare la definizione del progetto per Windows Azure:

Figura 4. Impostazioni progetto Windows Azure
(clic per ingrandire)


Impostazioni progetto Windows Azure

Come si può notare in questa prima maschera di configurazione è possibile descrivere il livello di trust della nostra applicazione

La configurazione contiene altri 5 tab che andremo ad analizzare non appena utilizzeremo una feature corrispondente.

In questo primo esempio non modifichiamo nessun parametro di configurazione: modificheremo solo la pagina di default per ottenere l'ora corrente ed eseguiremo l'applicazione nell'ambiente di simulazione locale.

Modificare il codice della pagina Default.aspx

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" Inherits="DevLeap.AzureBookManager.FrontEnd._Default" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <h2>
        Welcome to DevLeap Azure Book Manager
    </h2>
    <p>L'ora corrente nel cloud è <asp:Label ID="lblTime" runat="server" /></p>
</asp:Content>

Nel codice del code behind, esattamente come faremo in una normale applicazione ASP.NET, valorizzeremo la label lblTime con l'ora corrente:

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

Rispetto al template proposto da Visual Studio ho utilizzato l'evento Page_PreRender per valorizzare la label. È fuori dallo scopo di questa serie di articoli analizzare le best practice o le modalità di scrittura di applicazioni ASP.NET

Non ci resta che premere F5, controllando che il progetto impostato come startup project

Il risultato, visibile da qualunque browser utilizzando la porta 81 è il seguente:

Figura 5. Avviamo il progetto nella cloud di Windows Azure
(clic per ingrandire)


Avviamo il progetto nella cloud di Windows Azure

Viene utilizzata la porta 81 in quando la 80 è già occupata da Internet Information Services.

Come si può notare, ho modificato anche il titolo nella master page; ho evidenziato il bold la riga corrispondente alla semplice modifica nel listato seguente:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="DevLeap.AzureBookManager.FrontEnd.SiteMaster" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
  <title></title>
  <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
  <asp:ContentPlaceHolder ID="HeadContent" runat="server"></asp:ContentPlaceHolder>
</head>
<body>
  <form runat="server">
  <div class="page">
    <div class="header">
      <div class="title"><h1>DevLeap Azure Book Manager</h1>
    </div>
    <div class="loginDisplay">
      <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false">
        <AnonymousTemplate>
          [ <a href="~/Account/Login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> ]
        </AnonymousTemplate>
        <LoggedInTemplate>
          Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>!
          [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/"/> ]
        </LoggedInTemplate>
      </asp:LoginView>
    </div>
    <div class="clear hideSkiplink">
      <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal">
        <Items>
          <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home"/>
          <asp:MenuItem NavigateUrl="~/About.aspx" Text="About"/>
        </Items>
      </asp:Menu>
    </div>
  </div>
  <div class="main">
    <asp:ContentPlaceHolder ID="MainContent" runat="server"/>
  </div>
  <div class="clear"></div>
</div>
<div class="footer"></div>
</form>
</body>
</html>

Nel prossimo snippet capiremo meglio Windows Azure Compute Emulator

Figura 6. Windows Azure Compute Emulator
Windows Azure Compute Emulator

Ti consigliamo anche