vendredi 18 janvier 2008

Pistes pour migrer sous Visual Studio 2008 - Part I

Au-dela des gains de productivités annoncés, des améliorations du langage C#3 qui sont traités dans différents blogs, l'arrivée de VS2008 avec le framework 3.5 apporte des pistes intéressantes dans certains contextes projets:


Part I : Application centrée données dans un modèle Off-shore

Délocaliser des applications centrées sur les données peut poser des problèmes simples de compréhension entraînant une perte de productivité:
Dans le cas d'un développement avec le design pattern Active Record par exemple, le développeur manipule des objets avec une terminologie qu'il ne maitrise pas, voir une langue qu'il ne connait pas, dès lors qu'il travaille avec des bases de données existantes.

Le retour d'expérience montre que ce point n'est pas à sous-estimer, même s'il n'apparait pas dans les publications sur l'offshore (lire le livre blanc Publication du Cigref sur le retour d'experience du modèle OffShore par exemple), sur l'appropriation du code et les anomalies fonctionnelles.

Sans avoir à passer par un framework externe type NHibernate (lire le débat NHibernate vs Linq sur le blog de Maximilian Beller) pour mettre une couche d'abstraction entre la base de données et le code, LinqToSql et surtout Entity Framework, en bon framework ORM, permettent un mapping déclaratif entre l'applicatif (avec des classes et des propriétés en anglais) et le schéma de la base (avec des noms des tables/vues, colonnes en français par exemple).





Sans parler ici de l'apport d'un ORM ni de sa limitation (pas de modélisation UML, approche plutot data centric malgré la souplesse apportée par le mapping des vues et des procédures stockées), il permet aux développeurs de travailler avec une terminologie plus fonctionnelle que technique et en anglais, et tout ça natif et standard .Net. Le cout d'apprentissage peu élevé (grâce au modelleur graphique) est surtout lié au langage de requêtage linq.

Comme nous le verrons également dans la seconde partie de la note, l'idée est bien de bénéficier des apports d'un ORM intégré à l'IDE tout en restant centré sur les données.

LinqToSql apporte moins d'abstraction qu'Entity Framework, comme je l'ai déjà souligné ici, puisqu'il est spécialisé SQLServer.

Pour avoir plus d'info sur sa mise en oeuvre.

Pour les applications utilisant déjà NHybernate, des providers voient le jour pour bénéficier de linq, plus précisement de la syntaxe de requêtage objet.

Aucun commentaire:


Laurent Morisseau, auteur de ce blog, pour me contacter