Developpez.com

Le Club des Développeurs et IT Pro

Microsoft ADO.NET Entity Framework adopte le versionnement sémantique

Son équipe s'engage à modérer la cadence de ses mises à jour

Le 2011-08-17 23:50:44, par Idelways, Expert éminent sénior
Depuis le lancement de .NET 4, Microsoft s'est engagé à accélérer le rythme de lancement des nouvelles versions des librairies .NET, dans le but d'apporter de nouvelles fonctionnalités plus souvent aux développeurs.

Si cette intention a été saluée dans le milieu DotNET, ses premiers pas se sont avérés maladroits, notamment pour l'ADO.NET Entity Framework, positionné par Microsoft comme le remplaçant définitif de toutes les autres solutions .NET pour accéder aux bases de données.

En juillet dernier, Microsoft avait lancé l’« Update 1 » de l'Entity Framework 4.1, une version tellement mineure, avec ses quelques nouvelles classes accessoires et correctifs, qu'elle n'a même pas eu de bêta publique.

Raison pour laquelle un bogue pénalisant n'a été détecté que tardivement, alors que cette nouvelle version entrait en production chez ses utilisateurs.

En réponse à cette mésaventure embarrassante, l'équipe ADO.NET s'engage cette fois à modérer la cadence de lancement de sa librairie et promet de sortir à l'avenir des bêta, même pour les plus petites des releases.

En ce sens, la bêta d'Entity Framework 4.2 devrait être disponible dès cette semaine sur le gestionnaire de packages NuGet.

Par ailleurs, l'équipe adopte le concept de « versionnement sémantique » qui a pour but d'apporter une réelle signification aux numéros de versions de sa librairie.

Sur une nomenclature en trois niveaux (X.Y.Z), le z (version de patch) doit être incrémenté en cas de correction de bogue. Ce dernier est défini en tant que changement interne qui corrige un comportement erroné.

Le numéro Y doit être incrémenté si de nouvelles fonctionnalités sont introduites dans l'API publique tout en respectant la rétrocompatibilité. Il peut être incrémenté aussi en cas d'améliorations où d'introduction de nouvelles fonctionnalités substantielles au sein du code privé, et peut inclure des changements de niveau de patch.

Enfin, le numéro de version majeur (X) ne doit être incrémenté que si des changements qui rompent la rétrocompatibilité sont introduits dans l'API publique. Une telle version peut inclure aussi bien des changements mineurs (Y) que des patchs.

Entity Framework est pour mémoire un outil permettant de créer une couche d'accès aux données (DAL pour Data Access Layer) liée à une base de données relationnelle.

Il propose la création d'un schéma conceptuel composé d'entités qui permet la manipulation d'une source de données, sans écrire une seule ligne de SQL, grâce à LinQ To Entities.

Comparé à d'autres solutions de mapping objet-relationnel (ORM), Entity Framework assure l'indépendance du schéma conceptuel (entités ou objets) du schéma logique de la base de données, c'est-à-dire des tables. Ainsi, le code produit et le modèle conceptuel ne sont pas couplés à une base de données spécifique.

Source : plus de détails sur le bogue de l'Update 1 d'Entity Framework
  Discussion forum
5 commentaires
  • Hellwing
    Membre chevronné
    Envoyé par Thorna
    Ca sera sans doute intéressant !
    Mais 1/3 de l'article consacré à l'explication du versionnage "à la Microsoft"... c'est à se demander si Mozilla n'a pas raison de vouloir "simplifier" le système...
    En quoi le versionning X.Y.Z est-il "à la Microsoft" ? L'article fait juste un rappel de la définition du versionning sémantique, pratiqué par énormément de projets depuis des lustres.
  • Arnard
    Membre émérite
    Ce qui est dit dans le blog est qu'à enchainer les update sans différencier les versions, cela devenait un casse-tête pour s'y retrouver.

    X.Y, X.Y.Z, ou X.Y.Z.W, on s'en tape, du moment qu'on sait que cette version correspond à telles fonctionnalités et ne risque pas d'être confondue. Et n'allez pas confondre avec le débat de mozilla. Eux font ça pour simplifier vis-à-vis des utilisateurs lambdas, le développeur n'entre pas dans cette catégorie.
  • bacelar
    Expert éminent sénior
    Enfin, vous enflammez pas trop sur le versionning.
    En .NET le versionning c'est avec 4 éléments X.Y.Z.W.
    X et Y c'est comme sur un versionning à 3 éléments.
    Mais en versionning à 4 éléments Z est le numéro de Build et W est le numéro de HotFix qui ne s'applique que sur une version X.Y.Z.

    P.S. : C’est une guerre de religion et comme toute guerre de religion, elle est sans fondement.
  • Freem
    Membre émérite
    Envoyé par bacelar
    Enfin, vous enflammez pas trop sur le versionning.
    En .NET le versionning c'est avec 4 éléments X.Y.Z.W.
    X et Y c'est comme sur un versionning à 3 éléments.
    Mais en versionning à 4 éléments Z est le numéro de Build et W est le numéro de HotFix qui ne s'applique que sur une version X.Y.Z.

    P.S. : C’est une guerre de religion et comme toute guerre de religion, elle est sans fondement.
    Selon l'article, il semble qu'ils aient utilisé un versionning à 2 chiffres, pourtant?

    Envoyé par Thorna
    Ca sera sans doute intéressant !
    Mais 1/3 de l'article consacré à l'explication du versionnage "à la Microsoft"... c'est à se demander si Mozilla n'a pas raison de vouloir "simplifier" le système...
    [joke inside]
    Et justement, MS, qui sont, c'est bien connu, très mauvais en programmation et n'ont aucune expérience de la communication vont tomber dans le piège dont mozilla essaie de sortir?
    [/joke inside]

    Plus sérieusement, l'article dis justement qu'en gros microsoft ayant voulu accélérer le cycle de versions (comme mozilla) ils ont commis des erreurs avec un système de versionning trop improvisé, peu robuste.
    Ils contrent dont le problème en utilisant le versionnement sémantique et à ralentir un peu.

    Sinon, qu'un tiers de l'article soit dédié au rappel du système adopté n'est pas surprenant:
    _ l'article n'est pas si gros, donc 3 phrases de 2 lignes (en fait, 7 lignes pour moi sur cet écran) ça remplit vite un tiers.
    _ le système de version est justement le titre, et par la même, le sujet de cet article!
  • Thorna
    Membre éprouvé
    Ca sera sans doute intéressant !
    Mais 1/3 de l'article consacré à l'explication du versionnage "à la Microsoft"... c'est à se demander si Mozilla n'a pas raison de vouloir "simplifier" le système...