BT

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

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Votre profil est-il à jour? Merci de prendre un instant pour vérifier.

Note: en cas de modification de votre adresse email, une validation sera envoyée.

Nom de votre entreprise:
Rôle dans votre entreprise:
Taille de votre entreprise:
Pays/Zone:
État/Province/Région:
Vous allez recevoir un email pour confirmer la nouvelle adresse email. Ce pop-up va se fermer de lui-même dans quelques instants.