Microsoft WebMatrix: uno sguardo

Da oggi tramite il Web Platform Installare 3.0 è disponibile la beta del nuovo Microsoft WebMatrix, con cui è possibile scrivere siti web in modo molto semplice. Questo tool non va a sostituire Visual Studio, ma è pensato per chi vuole usare un’ approccio ancora più semplice allo sviluppo web ed in cui Visual Studio sarà d’aiuto in una fase successiva. In particolare il modello di sviluppo utilizza un nuovo View Engine per ASP.NET, che sarà disponibile anche nella prossima versione di ASP.NET MVC.

In questo post vedremo una rapida guida. Installiamolo dal Web Platform Installer, selezionando la voce presente nel seguito.

Installazione

image

Questo installerà:

  • IIS Express
  • SQL Server CE 4.0 CTP
  • “Razor”, il nuovo View Engine che offre una sintassi semplice e compatta.
  • Il tool vero e proprio: Microsoft WebMatrix.

La prima applicazione – La sintassi @

Lanciamo ora WebMatrix, apparirà la schermata seguente:

image 

  • Possiamo creare un’applicazione PHP o ASP.NET partendo da un sito nella Web Gallery
  • Partire da un sito scegliendo un template.

Nel nostro caso selezioniamo quest’ultima opzione perchè mi dà modo di mostrarvi la nuova sintassi ASP.NET. Scegliamo tra i siti i template disponibili, io ho scelto “Bakery” e ho dato il nome MyBakery, come vedete nella figura seguente:

image

Ora avete un sito web già fatto, di cui potete ispezionare i file. Il sito è fatto usando il nuovo View Engine e potete usarlo per impadronirvi della nuova sintassi, che come vedrete richiede poco sforzo e soprattutto riutilizza le conoscenze di .NET che già abbiamo. Qui e qui trovate due esempi di dettaglio sulla sintassi, non tutti funzionanti nella beta attuale, ma che verranno aggiunti via via.

image

I file hanno estensione .cshtml e contengono una parte di codice in CS ed un parte di codice HTML. In particolare nella pagina Default.cshtml trovate un blocco di codice identificato dal simbolo @, ove viene definita la pagina che contiene la struttura del sito, la master-page se volete, associata alla proprietà LayoutPage e viene valorizzata la proprietà PageData[“Title”]. Dove verrà usata? Apriamo la pagina _Layout.cshtml.

image

In questa pagina, che contiene la struttura del sito, viene usato il valore impostato nella PageData[] utilizzando la sintassi @, questa volta non all’interno di un blocco di codice, ma per sotituire il valore impostato nella pogina Dafault.cshtml che abbiamo visto in precedenza. Come potete immaginare il risultato che arriverà al browser dell’utente sarà il “merging” delle due pagine.

Possiamo anche provare a fare una piccola modifica per visualizzare la data corrente. Nella Default.cshtml aggiungiamo il codice evidenziato in rosso dove uso la classe .NET DateTime.

image

Lanciamo ora l’applicazione usando il menù a Ribbon di WebMatrix che ci permette di scegliere tra alcuni dei browser che abbiamo installato per la preview, scegliamo IE.

image

Il risultato sarà:

image

Che conterrà la data che volevamo visualizzare. Il sito web creato vive in un folder locale all’utente e si trova in un path simile a questo: C:\Users\<user>\Documents\My Web Sites\MyBakery

Dove sta girando l’applicazione? IIS Express

Con WebMatrix è stato installato anche il nuovo IIS Express, trovate l’icona in basso nella system tray e se vi cliccate vedete i siti che sono in esecuzione.

image

IIS Express è una versione di IIS pensata per lo sviluppatore: da un lato offre le funzionalità di IIS 7.x tra cui il supporto a HTTPs e la possibilità di fare URL Rewrite, dall’atra parte la flessibiltà di un Developer Server, come quello al momento presente in Visual Studio. IIS Express consente di essere copiato su una macchina Windows, anche XP, non gira però come servizio e non richiede diritti amministrativi, ma deve essere lanciato come un semplice eseguibile, in questo caso lo fa direttamente WebMatrix. Inoltre ha una configurazione per utente che trovate nel folder “C:\Users\<utente>\Documents\IISExpress8”.

Il Database con SQL Server CE 4.0

L’applicazione d’esempio utilizza anche un database, se cliccate nel menù in basso potete vederlo in modo più esplicito anche se si trova nell’usuale (per ASP.NET) folder AppData.

image

Da WebMatrix potete creare semplicemente un Database; creare, cancellare tabelle e campi. Il risultato finale sarà un semplice file con estensione .sdf. WebMatrix installa anche il nuovo SQL Server CE 4. Questa nuova versione di SQL Server CE offre nuove funzionalità: tra cui il supporto per l’utilizzo server-side di dababase in memoria, che gireranno appunto sul server in contesti altamente multi-threaded. Inoltre questo modello offre la semplicità di fare la copia del file sdf su un server sul quale non è necessarimanete richiesto di installare un DBMS per poter far funzionare l’applicazione. Potete ben immaginare come questo approccio sia adatto a soluzioni a basso traffico, ma in caso vogliate, potete poi migrare verso un prodotto che offra scalabilità maggiore e migrare il database direttamente da WebMatrix.

Per vedere come l’applicazione accede al database aprite il file Order.cshtml:

image

Come vedete per aprire la connessione al database basta usare l’API Database.Open e passare come parametro il nome del database, il resto è a carico di ASP.NET, non poteva essere più semplice di così. Vi ricordate, l’obiettivo di questo prodotto è la semplicità, e non la flessibilità di usare la strategia di accesso ai dati migliore, che spesso va a scapito della prima, ma che in altri contesti sarebbe un requisito irrinunciabile.

Ad ogni modo dalla request viene recuperato il parametro productId e poi viene eseguita una query tramite la chiamata .QuerySingle in cui mi aspetto venga ritornato un unico record dal database.

Report e analisi per SEO

L’utima funzionalità che vi voglio mostrare di WebMatrix è la possibilità di fare analisi del sito relativamente alle problematiche di Search Engine Optimization (SEO). Queste analisi possono essere molto utili nel momento in cui vogliamo che il nostro sito sia visibile su internet.

Nel mio caso o fatto qualche modifica al sito, come rimuove il tag Title dall’ Header della pagina HTML, in questo caso:

image

In questo caso ho un report con warning ed errori veri propri, che mi avvertono di problemi in cui posso incorrere e che impediscono ad un motore di ricerca d’ indicizzare correttamente il sito. Cliccando sull’errore avrete anche maggiori dettagli:

Conclusione

Il nuovo WebMatrix è rivolto agli sviluppatori di siti web che cercano un modello semplice e lineare per integrare ad una pagina HTML/CSS/Javascript l’interazione e la dinamicità necessari al funzionamento di un sito web, lasciando però aperti gli occhi a sviluppi e modelli futuri...

ASP.NET si arricchisce di una nuova sintassi semplificata rivolta a chi parte sviluppando pagine HTML e successivamente aggiunge dinamicità. La nuova sintassi è lineare e semplice da imparare e fa uso di .NET, offrendo quindi un linguaggio compilato e strongly-type. Il nuovo View Engine viene usato per la prima volta con WebMatrix ma ne verrà esteso il funzionamento a Visual Studio 2010 e alla prossima versione di ASP.NET MVC in particolare ne costituirà una possibile scelta.

Inoltre come avete visto da poco sono disponibili IIS Express e SQL CE 4.0 in preview, strumenti che possiamo comunque pensare di utilizzare con Visual Studio 2010 e che verranno in seguito integrati.

Potete trovari una serie di post molto dettagliati su questi argomento sul blog di ScottGu qui, qui, qui e qui.

Download

Potete scaricare WebMatrix e installarlo da qui.