Coup de coeur : Projet OR.net
Ca va faire un petit mois que j’ai découvert OR.net et que j’utilise de plus en plus dans mes développements perso. Je viens de voir ce matin qu’une nouvelle version vient de sortir (version 3.1) 🙂
Coté news, les versions 3.x (3.0 puis 3.1 très rapidement) apportent surtout le support d’autres providers pour pouvoir fonctionner sur des bases Oracle, DB2, etc.. et quelques corrections de bugs ce qui m’a un peu déçu pour une cette nouvelle version majeure (moi qui attendais une meilleure GUI et le support des procédures stockées, j’attendrais encore un peu 🙂 )
Enfin ça n’enlève rien que cet outil est vraiment génial sur le plan simplicité, flexibilité et surtout qualité du code produit 🙂
Pour le présenter rapidement, OR.net comme son nom l’indique est ORM (Object Relational Mapper) permettant à partir d’une base de donnée de générer tous les objets métiers ainsi que la DAL permettant de persister et récupérer des objets ou collections d’objets !
Ses fonctionnalité sont :
Class Definitions
- Composite Identity Keys
- SQL Server Identity Columns (database-managed columns)
- Nullable Types
Composite Relationships
- Foreign-Key Relationships
- Many-Many Mapping Table Relationships
- All .NET Collections (Generic and Non-Generic)
- Lazy Loading
Transaction Management
- Simple SQLTransaction
- TransactionScope Distributed Transactions
Miscellaneous
- Complete Visual Studio IntelliSense Documentation (generated with the libraries)
- Appropriate .NET data-types suggested for DBMS columns of any type
- Criteria objects providing for standard queries to be executed in a strictly OO manner
- Templates to allow for easy creation of custom, advanced queries
- Fine grained control to persist only certain, specific components of an object – minimizes DB traffic
- Ability to save, and later re-open a project in order to make changes, and re-generate code
Coming Soon
- Support for Stored Procedures
- Updated Back End (will support Oracle much more easily)
Je n’irai pas très loin dans ce post, mais je vous invite a lire cet article sur Code Project qui présente bien l’outil.
Et bien sûr, la documentation officielle à lire absolument pour ceux qui voudrais allez un peu plus loin dans l’utilisation de cet outil !
Pour donner mon avis :
Les PLUS :
- Utilisation très simple (GUI et code généré)
- ORM complet
- Full .NET 2.0 (utilisation des collections génériques)
- Code propre et pur (la seule assembly à référencer est System.Transactions)
- Gestion des transaction (SqlTransaction ou TransactionScope)
- Classes de critères pour la recherche
- Code documenté
- Méthodes d’exemple (squelette) pour pouvoir rajouter nos propres méthodes très simplement
- Gestion de la persistance de l’objet seul, complet ou des tables de relation seulement.
Les MOINS :
- GUI bien que simple n’est top top. Il faut tout définir…
- Pas de génération des procédures stockées
- Beaucoup beaucoup de lignes de code générées (enfin comme c’est du beau code…. ça passe 🙂
Bref, je n’ai qu’un mot, développeur .NET : ESSAYEZ LE !! Ca en vaut la peine 🙂
Petite précision de dernière minute : l’outil est gratuit et open-source ! Enjoy 🙂