[SQL Server] Clé primaire de type GUID (UNIQUEIDENTIFIER) ou autoincrémentée (IDENTITY) ?

Cela fait depuis 2005 que j’interviens pour du conseil, architecture, tuning et formation sur des bases de données SQL Server. Et Il n’y a pas un mois qui passe sans que survienne le fameux débat d’experts et d’architectes sur le choix du type de colonne pour les clés primaires. On retrouve le plus souvent sur la table deux choix possibles qui sont :

  • Le type GUID (UNIQUEIDENTIFIER en SQL)
  • Le type auto-incrémentée (INT ou BIGINT avec l’option IDENTITY en SQL)

Alors quel type de colonne est le plus performant ?

Continuer la lecture

[.NET] Comment réaliser des tests unitaires sur une couche d’accès aux données qui utilise une base de données ?

Lorsque l’on développe sa couche d’accès aux données (à la main, via Entity Framework ou tout autre ORM) il est nécessaire comme tout code de le tester ! Beaucoup de développeurs ne testent pas leur couche d’accès aux données car ils considèrent que « cela ne se fait pas ». Or, pour moi, tout code qui est pondu par un développeur doit être testé sans exception ! Un code non testé est un code dont le développeur ne peut garantir son fonctionnement…

Cet article a pour vocation de vous montrer différentes stratégies qui existent et qui sont utilisés (que j’ai déjà rencontré à travers différentes missions) avec leurs inconvénients. A la fin de cet article, j’expliquerai une stratégie simple que j’applique systématiquement depuis 8 ans pour tester les couches d’accès aux données via des tests unitaires.

Continuer la lecture