Home > Azure, Cloud, Developer, Sviluppo > La mia prima applicazione nel Cloud

La mia prima applicazione nel Cloud

Volevo provare il brivido del Cloud perciò ho deciso di cimentarmi con la prima applicazione di test da pubblicare su Windows Azure ed ho utilizzato una buona guida per sviluppare e deployare una applicazione Asp.Net MVC 3 con connessione a SQL Azure.

La guida step-by-step è disponibile a questo link:

https://www.windowsazure.com/it-it/develop/net/tutorials/web-app-with-sql-azure/

Il primo step è solo quello di creare una applicazione ASP.NET MVC 3 predefinita, cambiare il titolo e pubblicarla in Azure. Parto quindi da Visual Studio 2010 con un’applicazione MVC 3 in cui ho cambiato solo il titolo in .Layout.vbhtml e, dopo l’autenticazione, inizio il deployment in Azure direttamente da Visual Studio

contemporaneamente dalla console di Azure si vede l’inizializzazione del ruolo e dell’istanza

In Visual Studio è possibile seguire passo passo il deployment

e, fino a quando l’istanza in Azure non viene messa in “up and running”, sotto Visual Studio continuiamo a vedere un “unknown state” ma, dopo un po’ di minuti, otteniamo un “Complete” come mostrato qui sotto

e finalmente la “bozza” di applicazione è pubblicata nel Cloud.

A questo punto bisogna aggiungere il controller con il nome di HomeController e creare la nuova istanza di SQL Azure configurando opportunamente il firewall di Azure per permettere l’accesso all’istanza di SQL.

Fatto ciò è opportuno disporre delle due trasformazioni del file Web.config che introducono le variazioni della configurazione base qualora si stia provando l’applicazione in debug o si usi l’applicazione rilasciata in produzione.

Le due trasformazioni dovrebbero già essere presenti in un progetto MVC 3 con i nomi Web.Debug.config e Web.Release.config ma se non lo fossero è possibile crearle facendo tasto destro sul Web.config e scegliendo “Add Config Transforms”.

Purtroppo nel mio caso l’opzione “Add Config Transforms” era disabilitata e i file per inserire le trasformate di configurazione non erano disponibili.

Che fare ?

La soluzione è stata recuperata qui

http://stackoverflow.com/questions/3577931/web-config-transformation-option-is-greyed-out

ed è la seguente:

I couldn’t see the transform files because vb.net in its infinite wisdom decided not to natively show the associated config files. Apparently there is no choice but to select “show all files” in order to see them.”

Una volta visibile il file Web.Release.config ho potuto scrivere la trasformazione indicata all’interno del file stesso.

A questo punto ho preso in considerazione quanto indicato nella nota che riporto integralmente:

“Nota: l’utente amministrativo ha accesso a tutti i database nel server. Per creare un utente di SQL Azure con autorizzazioni più limitate, effettuare i passaggi in Aggiunta di utenti al database di SQL Azure. Modificare la stringa di connessione per poter utilizzare la password e il nome utente appena creati anziché la password e il nome utente di amministratore.”

Poichè SQL Azure non dispone ancora di sufficienti strumenti di amministrazione per la manipolazione di utenti, il blog-post linkato è perfetto per quanto riguarda le informazioni necessarie alla creazione di utenti e per l’attribuzione a questi utenti di uno o più ruoli nel database, purtroppo non è corretto nel link necessario a connettersi a SQL Azure usando Sql Server Management Studio infatti il link riportato rimanda qui

http://blogs.msdn.com/b/sqlazure/archive/2010/05/18/10014309.aspx

mentre ho trovato le informazioni necessarie e precise a questo link

http://blogs.msdn.com/b/ramaprasanna/archive/2009/09/04/connecting-to-sql-azure-from-sql-management-studio-2008.aspx

Ovviamente, affinchè la connessione vada a buon fine è necessario modificare ancora la configurazione del firewall a protezione di SQL Azure andando ad aggiungere tra gli indirizzi consentiti anche l’ip della vostra macchina di sviluppo su internet.

A questo punto ho potuto procedere alla pubblicazione facendo notare che le modifiche alla ConnectionString sono state apportate solo nella trasformata We.Release.config e pertanto la pubblicazione su Azure va modificata mettendo

  • Environment: Production
  • Build configuration: Release

Una volta pubblicata in Azure l’applicazione non funzionava ancora perchè purtroppo nella guida si sono dimenticati di precisare in questo punto

  1. Nella sezione <configuration> / <connectionStrings> sostituire tutti gli elementi come indicato di seguito. Sostituire il segnaposto <serverName> con il nome del server creato. Per <user> e <password> immettere la password e il nome utente di amministratore creati in precedenza.

<connectionStrings> <add name=”ToDoDb” connectionString=”data source=<serverName>.database.windows.net;Initial Catalog=ToDoDb;User ID=<user>@<serverName>;Password=<password>;Encrypt=true;Trusted_Connection=false;MultipleActiveResultSets=True” providerName=”System.Data.SqlClient”/> <add name=”DefaultConnection” connectionString=”data source=<serverName>.database.windows.net;Initial Catalog=ToDoDb;User ID=<user>@<serverName>;Password=<password>;Encrypt=true;Trusted_Connection=false;MultipleActiveResultSets=True” providerName=”System.Data.SqlClient”/> </connectionStrings>

che all’interno di ciascuna connectionsString modificata va aggiunto anche

xdt:Transform=”SetAttributes” xdt:Locator=”Match(name)”

e questo alla fine permette l’uso delle connectionStrings modificate quando l’applicazione viene pubblicato come “Build configuration: Release” nel Cloud infatti a questo punto ho potuto inserire la mia prima attività nella lista

Ciao e buon Azure a tutti.

Categorie:Azure, Cloud, Developer, Sviluppo
  1. Non c'è ancora nessun commento.
  1. No trackbacks yet.

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger cliccano Mi Piace per questo: