BT

Applications Single Page en ASP.NET MVC 4

par Jonathan Allen , traduit par Dridi Boukelmoune le 05 mai 2013 |

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.

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

Donnez-nous votre avis

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

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

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

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

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

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Contenu Éducatif

Rien ne serait possible sans le soutien et la confiance de nos Sponsors Fondateurs:

AppDynamics   CloudBees   Microsoft   Zenika
Feedback Général
Bugs
Publicité
Éditorial
InfoQ.com et tous les contenus sont copyright © 2006-2014 C4Media Inc. InfoQ.com est hébergé chez Contegix, le meilleur ISP avec lequel nous ayons travaillé.
Politique de confidentialité
BT