ASP.NET Dynamic Data
J'ai pas mal de sujets dans le pipe mais aujourd'hui je vais parler de ASP.NET Dynamic Data dont une nouvelle preview vient justement de sortir. Bon d'accord j'ai quelques jours (semaines?) de retard. En fait, je voulais déjà nous en parler la dernière fois mais souvenez-vous, j'ai eu un contre temps.
La première question qu'on se pose naturellement lorsque nous découvrons une nouvelle technologie c'est :
"A quoi ça sert?"
Cette question la n'est pas des plus compliquée et, dans le cas de ASP.NET Dynamic Data, la réponse est très simple :
"créer un back office rapidement et simplement"
Mais de cette première question en découle une deuxième :
"A quoi ça va ME servir?"
Et là, la question est plus difficile à aborder dans un post de blog. Concrètement, ASP.NET Dynamic Data va vous permettre de créer un back office rapidement car -> dynamique. Il va se générer automatiquement en fonction d'un modèle de données. Dans ce cas-ci le modèle de données sera un fichier DBML (LINQ to SQL) ou un modèle LINQ to Entities (EDM). Pas de soucis pour ceux qui ne connaissent pas LINQ, je pense sincèrement que ce n'est pas une connaissance requise pour pouvoir utiliser ASP.NET Dynamic Data d'autant plus que depuis la dernière preview, vous avez un wizard intégré à Visual Studio pour générer vos modèles. Par contre, inutile de le dire mais vous avez besoin du framework .NET 3.5 pour pouvoir les utiliser.
Pratique aussi lorsque vous avez besoin de tester votre base de données et donc que vous avez besoin d'ajouter, éditer, supprimer des données. Donc, que pour des tests? Non! Depuis la première release de ASP.NET Dynamic Data il y a eu pas mal d'évolution notamment au niveau de la possibilité de personnaliser complètement les interfaces et les règles métiers. On pourrait donc imaginer un site full dynamic data. Pourquoi pas? ASP.NET Dynamic Data n'est donc pas à confondre avec le scaffolding de Ruby On Rails. Je ne rentrerai pas dans trop de détail... maintenant :p.
En plus de se baser sur un modèle de données, ASP.NET Dynamic Data génère des interfaces basées sur des pages templates. Ces templates sont de simples pages ASPX que nous pouvons bien entendu personnaliser à souhait. On retrouve dans cette page des contrôles bien connus comme le GridView ou encore le DetailsView. Vous serez donc dans votre élément pour pouvoir personnaliser ces templates. Vous pouvez naturellement définir des règles assez précise pour déterminé quel template sera utilisé pour telle table. Par défaut, vous avez la même interface pour le back office de toutes les tables, mais vous pouvez bien entendu aller plus loin dans la personnalisation. Bien évidement, comme nous sommes dans un modèle complètement dynamique, nous avons besoin de rester générique dans les templates. Nous ne pouvons pas, par exemple, savoir quel type de données sera affiché dans tel colonne étant donné qu'un template peut correspondre à plusieurs tables. Nous avons donc également un système de template pour les types de données. Vous pouvez par exemple afficher un slider (Ajax) pour les données de type "int" ou encore une Map Virtual Earth (Mon bon Nicolas est en ébullition) à la place d'un champ correspondant à une adresse -> Adjugé vendu! Je ferai ça pour l'article technique.
ASP.NET Dynamic Data gère également les règles métiers définies dans la base de données. Si par exemple, vous avez indiqué qu'un champ de ne peut pas être "null" alors cette règle sera reprise dans le modèle de données dont se sert Dynamic Data afin de pouvoir lancer une exception si cette règle n'est pas respectée. Encore une fois tout cela est dynamique. Il y a en fait un validator qui catch toutes les exceptions lancées à partir de notre modèle de données (LINQ to SQL ou LINQ to Entities). En plus des règles définies dans la base de données, vous avez la possibilité de définir les vôtres.
Pour voir comment cela fonctionne techniquement je vous encourage à... patienter :-). Je reviendrai vers vous avec la total : webcasts, articles etc.
A suivre :
- Trois webcasts
- Un article complet présentant l'utilisation de Dynamic Data
- (Un article de comparaison avec Ruby On Rails... Même si il n'y a pas trop de comparaison)
- Un post de blog de conclusion
Alors? Impatient?
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :