Je joue au début d'un projet personnel en C# et MySQL.C# et MySQL - Gentle Framework alternatives
Je suis familier avec l'utilisation de Gentle Framework (en utilisant MyGeneration pour générer les classes, basé sur le modèle de données). Voici ce que j'aime chez Gentle;
- Simple d'utilisation [classe] .Retrieve (id)/[object] Sémantique .Persist() avec typage fort de champs;
- Je commence par le modèle de données DB et je choisis quand générer de nouveaux fichiers de code;
- MyGeneration permet des «sections de code manuelles» qui sont conservées d'une génération à l'autre ...
- ... et des classes partielles me permettent d'ajouter du code permanent dans des fichiers parallèles, par ex. de simples propriétés en lecture seule (comme «FullName» des membres Prénom et Nom pour un objet Personne) - ou je pourrais utiliser l'héritage;
- Je trouve que c'est un moyen tolérable et rapide de créer un DAL, et d'y ajouter certaines fonctions de type Business-Object-Layer.
Malheureusement, pour interroger efficacement, je finis à l'aide de requêtes/SqlCommands un peu juste, et repose sur des références faiblement typés pour les noms de colonnes, etc., et semble risquer esquivant le courtier d'objets et donc la mise en cache des avantages. En tout cas, Gentle n'est plus développé, et il semble que le moment soit propice pour envisager des alternatives.
Alors, que dois-je considérer?
- génération d'ADO datasets est fortement typées possible, mais il semble que ce sera difficile d'y ajouter (par exemple, cette colonne virtuelle « FullName ») d'une manière qui persistera après les mises à jour de la structure de table régénération de l'ensemble de données. NHibernate semble avoir beaucoup de fans ... mais mon premier regard sur elle semble suggérer que la définition de données XML est roi, pas le modèle de données existant dans la DB. Il semble également assez lourd sur les dépendances; La démo de SubSonic semble suggérer qu'il génère des fichiers, et dans la démo de WebAppProjects, il semble qu'il pourrait générer des fichiers d'une manière que je pourrais ajouter ou hériter de;
- Les outils MySql Connector.Net ne semblent pas prendre en charge la génération de l'ensemble de données pour Linq (par exemple par glisser-déposer), et je suppose qu'il s'agit d'un besoin clé pour un accès aux données fortement typé.
Vos pensées seront grandement appréciées! Merci d'avance ...
Plusieurs années après avoir posé la question, j'ai finalement marqué cette réponse comme «acceptée», parce que j'ai continué à essayer SubSonic. – Nij