BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Applications Single Page en ASP.NET MVC 4

Applications Single Page en ASP.NET MVC 4

Favoris

News originale publiée le 24 février 2012

La beta d'ASP.NET MVC 4 inclue un projet expérimental pour le développement "d'applications single page". Connu sous le nom ASP.NET SPA, ce type de projet se base sur des bibliothèques open source et le pattern MVVM rendu populaire par WPF et Silverlight.

Dans le navigateur

Du côté du navigateur, tout repose sur la très connue bibliothèque jQuery avec un Ajax discret, jQuery UI et les plugins jQuery de validation.

Au dessus on trouve Upshot, censé être une bibliothèque d'accès aux données et de cache qui s'appuie sur jQuery et Knockout. Dans le code d'exemple, un view-model compatible avec Knockout est automatiquement généré. A l'intérieur on trouve des fonctions basées sur Upshot pour gérer les communications avec la couche de service. Il contient aussi du code pour piloter l'IHM. (Comme dans les technologies XAML, il semble qu'un view-model SPA peut rapidement devenir un dépotoir pour toutes sortes de code.)

Le data binding à la MVVM se fait à l'aide du framework Knockout. Comme dans les technologies basées sur XAML, Knockout offre un data binding déclaratif. De même, il est plus efficace lorsque les données et les modèles des vues sont basées sur des observables, qui exposent des événements de changement des propriétés. Cependant, pas besoin de déclencher explicitement ces événements, même pour les propriétés calculées. Plutôt que de définir une propriété DataContext sur un contrôle on appellera ko.applyBindings. Cela n'empêche pas d'avoir des contrôles enfants avec un contexte de données différent, ils nécessiteront simplement un binding "with" ou "foreach". Le binding "with" est similaire au binding du DataContext d'un contrôle à une propriété du modèle d'une vue, tandis que le second crée effectivement un contrôle d'éléments.

Au sommet on trouve nav.js, une nouvelle bibliothèque de chez Microsoft.

Sur le serveur

Côté serveur, le cadre de l'application est représenté par une page MVC normale. Les différentes vues dans l'application sont représentées sur le serveur par des pages partielles. Dans l'exemple, le binding de Knockout est utilisé pour les montrer et les cacher dynamiquement.

La plupart des accès de données côté serveur sont gérés par la classe abstraite DataController. Elle hérite de la classe ApiController d'ASP.NET Web API et offre des méthodes de base pour la transmission d'une ChangeSetEntry entre le client et le serveur. Les développeur préférant utiliser des procédures stockées ou un ORM tiers peuvent directement étendre DataController, ceux ayant un penchant pour l'Entity Framework peuvent utiliser DbDataController. Le support du scaffolding dans Visual Studio permet de générer automatiquement l'utilisation du DbDataController avec les opérations CRUD de base.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT