Alternatives pour faire du SQL avec .NET et C#

Lorsqu’il est venu le temps du choix de choisir le moyen de stocker les données de son application, le temps est à la mode de délaisser les bases de données relationnelles pour leur équivalent NoSQL.

Dans le monde .NET, il est possible d’utiliser des technologies comme MongoDB ou même RavenDB qui est de plus en plus populaire chez les programmeurs.

Une base données NoSQL comme RavenDB ne convient pas nécessairement à tous les scénarios de développement. Qu’en est-il de ceux qui désirent utiliser une base de données SQL? Est-ce qu’il y a des alternatives à l’utilisation de la classe SqlCommand?

Pour ces scénarios, j’ai arrêté mon choix à deux candidats qui font leur marque en utilisant deux approches différentes. Tout en ayant comme but de faciliter l’accès à vos bases de données.

Massive

Massive est une librairie développée par le très populaire Rob Conery. Cette librairie se vend comme l’outil vous permettant de résoudre la majorité de vos besoins d’accès de données avec un seul fichier de 673 lignes.

La simplicité de conception de Massive.cs est son principal atout. Il suffit d’intégrer le fichier source à votre application et vous serez en affaires. Notez qu’il vous faut une Connection string de proprement configurée à votre application.

Tel que décrit par son créateur, il faut concevoir Massive comme un Wrapper vous permettant d’accéder à vos données SQL. Son design vise une approche rapide sans dépendances pour accéder à vos donnés

Son utilisation est très simple et par les exemples disponibles sur la page d’accueil du projet GitHub permettent d’emblée de constater que Massive est conçu autour des dynamics ajoutés dans .NET 4.0.

Par exemple, il est possible de faire des requêtes à votre base de données en demandant à Massive de deviner vos intentions par convention.


//tiré de https://github.com/robconery/massive#code-please
dynamic table = new Products(); //"dynamic" is important here – don't use "var"!
var productsFour = table.Find(CategoryID:4,columns:"ProductName");

view raw

gistfile1.cs

hosted with ❤ by GitHub

Cette requête va retourner, sous une liste d’éléments, le résultat de la colonne ProductName de la table Products appartenant au CategoryID 4.

Selon la documentation, en plus de pouvoir faire des requêtes directes à vos données, vous pouvez arriver à :

Il est possible d’utiliser Massive avec les bases de données suivantes :

Simple.Data

Simple.Data se présente comme outil d’accès aux données dynamique ayant des fonctionnalités retrouvées dans un ORM plus classique.

Tout comme Massive, la composante dynamic de .NET 4.0 est au cœur de l’architecture de Simple.Data. Les requêtes que le développeur va construire seront décodées par convention afin d’y extraire les actions ainsi que les informations qui y sont désirées.

Simple.Data se veut comme un langage dédié (Un DSL pour ceux qui sont plus familiers avec l’anglais). Les requêtes sont, d’une certaines façon, paraphrasées en mots et interprétées par la librairie au moment de l’exécution.  À titre d’exemple, une requête permettant de retrouver un utilisateur par son identifiant courriel serait la suivante : Database.Open().Users.FindByEmail(email);.

Simple.Data support une un vaste éventail de plateformes. Autant des bases de données relationnelles traditionnelles que des bases de données NoSQL. Voici la liste :

Du point de vue des fonctionnalités, Simple.Data est assez complet et permet d’effectuer une gamme assez vaste de commandes et d’opérateurs vous permettant d’accéder à vos données. Bien entendu, l’insertion, la mise à jour ainsi que la suppression de données est permise.

D’ailleurs, sa nature dynamique permet à Simple.Data d’être un candidat de choix pour faire des tests unitaires. Un adaptateur de données uniquement en mémoire permettant de faire des requêtes sans avoir à accéder à une base de données réelle.

Conclusion

Les deux librairies ne sont pas réellement en compétition l’une envers l’autre. À mon avis, elles répondent à un besoin bien spécifique selon le genre d’opérations que vous désirez compléter.

Massive me semble pratique lorsqu’il est temps d’accéder à rapidement à des données sans trop se soucier de la réutilisation ou de l’architecture de votre couche d’accès aux données. On voit souvent cette application dans un contexte de preuve de concept.

Simple.Data se veut comme une alternative à un ORM que vous pouvez utiliser à toutes les sauces dans votre système lorsqu’il est temps de gérer l’accès à vos données. On remarque cette tendance par le soucis de testabilité de Simple.Data.

Publicité

Auteur : Pascal Paradis

Je suis les mains et le cerveau derrière http://frenchcoding.com. Je développe des microservices chez @UbisoftMTL. Amateur de Hockey et j'aime la technologie, en général.

Laisser un commentaire

Entrer les renseignements ci-dessous ou cliquer sur une icône pour ouvrir une session :

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

%d blogueueurs aiment cette page :