ASP.Net  »  Articoli  »  Asp.Net MVC 

Spark, un View Engine alternativo per Asp.Net MVC

di: Francesco Camarlinghi     01 Ottobre 2008

Il nuovo framework Asp.Net MVC (attualmente alla Preview Release 5), è stato progettato per offrire un alto grado di estensibilità: ogni suo componente può essere modificato o interamente sostituito. In molti casi, come per il motore di rendering delle viste, è addirittura possibile far convivere un sistema personalizzato assieme a quello di default, caretteristica che rende possibile utilizzare funzionalità personalizzate senza rinunciare a quelle offerte dal framework.

In questo articolo realizzeremo un catalogo dei prodotti, uno fra gli esempi più classici per MVC, utilizzando un view engine alternativo, Spark.

Cos'è Spark

Spark, creato e seguito da Louis DeJardin, è un view engine relativamente giovane ed in continuo sviluppo che offre un alto grado di innovazione rispetto ad alternative quali WebForms, Brail o NVelocity. Vediamo subito un esempio:
<ul>
  <li each='var p in ViewData.Model.Products'>
    ${Html.ActionLink[[ProductController]](c => c.Detail(p.ProductID), p.ProductName)}
  </li>  
</ul>

Questo codice visualizzerà una lista di prodotti (contenuti nella collection Products dell'oggetto ViewData) tramite una lista non ordinata <ul>. Il codice C# è perfettamente integrato nel markup HTML attraverso la direttiva each del tag <li>.

Spark offre inoltre la possibilità di sostituire i pesanti tag <%= %> con una alternativa molto più leggibile: ${}. Il codice racchiuso nelle parentesi graffe è infatti ancora C# e visualizzerà un link attraverso l'extension method ActionLink dell'oggetto Html. L'uso delle parentesi quadre ([[ e ]]) per i generics si rende necessario per evitare problemi con il markup HTML.

Per finire è possibile utilizzare anche la sintassi LINQ all'interno delle nostre pagine.

Le viste Spark sono compilate al primo accesso come avviene per le pagine Aspx, procedura che aumenta notevolmente i tempi di risposta rispetto a soluzione interpretate come NVelocity.

Fra le altre caratteristiche di Spark sono inoltre da sottolinare il supporto alle master pages, alle viste parziali e alle macro. Queste ultime in particolare sono molti utili per creare frammenti di codice riutilizzabile:

<macro name="ShowMessage" message="string">
  <div>
    ${message}
  </div>
</macro>

Questa macro visualizza a video un messaggio di testo e può essere richiamata con la sintassi:

${ShowMessage("Ciao, Spark!")}

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Amministratore di Reti Windows Server 2008

20 Febbraio 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto