TechDays 2010 – Jour 1 – Les nouvelles technos d’accès aux données
Par Mathieu Pellegrino, mardi 16 février 2010 à 00:31 :: .Net :: #151 :: rss
Cette session, présentée par Roch Baduel (MCNext), Pierre Couzy (Microsoft) et Mathieu Mezil (Access it), avait pour but de répondre à la question suivante :
> Quelle technologie d’accès aux données doit-on utiliser dans un contexte donné ?
Cette question est effectivement cruciale et peut avoir des conséquences sur un développement que l’on viendrait d’entamer. Mieux vaut donc éviter les erreurs. Afin de ne pas commettre d’impairs et de faire le bon choix, les intervenants ont ainsi parcouru les techniques d’accès aux données, depuis le Framework 1.1 à nos jours, en expliquant leurs avantages et inconvénients.
Leur argumentation était découpée en 3 parties correspondant aux différents modes, à savoir : connecté, déconnecté, Http pure. En effet, le mode de connexion est la première contrainte à prendre en compte !
# Le mode connecté :
On note que ce mode n’a pas vraiment évolué depuis le Framework 1.1 et qu’il reste simple. Eh oui, il est courant d’avoir déjà utilisé les DataAdapter, SqlCommand etc… Ces classes avaient comme inconvénient de faire diminuer la productivité des développeurs mais augmentaient significativement les performances de l’application. Toutefois, ce mode a subi de légères améliorations avec la version 2.0 du framework comme par exemple avec TransactionScope qui permet de rendre un bloc de code transitionnel.
Avantages :
- Empreinte mémoire des curseurs,
- Scénarios pilotés par la base de données,
- Scénarios d’écriture intensive et/ou concurrente.
# Le mode déconnecté :
On peut distinguer deux types dans cette catégorie : le dataset et le mapping Objet/Relationnel
a. Le dataset
Un DataSet est une mini-structure déconnectée de la base de données qui est représenté par un ensemble de lignes et de colonnes sur une ou plusieurs tables avec des relations et/ou des contraintes (un peu comme dans une base de données normale). Son gros avantage à l’heure actuelle est qu’il permet d’agréger des données provenant de plusieurs SGBD (SqlServer, Oracle etc...) dans une seule et même structure, tout en ajoutant des contraintes !
D’un autre coté, il n’est malheureusement pas exempt de tout défaut :
- Gourmand en mémoire,
- Aucune intelligence,
- Sérialisation inefficace,
- Pas d’interopérabilité,
- Impossibilité à mapper hors de .Net.
b. Le mapping O/R
Dans cette partie, on nous a brièvement présenté LinqToSQL. Ce dernier est en fait un miroir 1-1 et est seulement limité à sqlserver. Il reste néanmoins supporté par Microsoft mais ne connaitra plus aucune évolution. En effet, aujourd’hui, les efforts de Microsoft se portent sur Entity framework 4 ou V2 (www.develop.com/entityframework4) qui est en pleine évolution. Il tend effectivement de plus en plus à se rapprocher de la rapidité d’exécution de Linq To SQL tout en étant multi-bases (ce qui n’est pas le cas de LinqToSQL).
Que retenir de entity Framework 4 ?
+ extensible,
+ outillage,
+ meilleure consommation mémoire que le dataset,
+ excellente intégration a linq -> imbrication de critère
+ optimisation du flux de requête vers la base
- peu de contrôle sur les requêtes générés
- peu de maîtrise sur l’enchaînement des transactions de MAJ
- verrouillage trop optimiste ( réglage par défaut)
- Performance -> consommation mémoire importance sur le parcours des listes
# Le mode http pure :
Par manque de temps dû à des démos quelque peu hasardeuses :), cette partie a été très succinctement balayée. On y retrouve tout de même :
- REST qui n’est pas spécialisé pour les données,
- WCF data services : ex-Astoria,
- WCF RIA Services
En conclusion, voici les critères à prendre en compte par ordre d’importance avant de choisir sa techno d’accès aux données :
- Connectivité souhaitée
- Performance vs productivité
- Intégration avec la plateforme
- Courbe d’apprentissage

Commentaires
1. Le lundi 15 février 2010 à 22:45, par Mathieu Pellegrino
2. Le vendredi 2 avril 2010 à 04:23, par nike shoes
Ajouter un commentaire