2009-03-08 7 views
1

J'utilise une solution de stockage tierce à distance qui ne prend pas en charge les transactions. Je souhaite implémenter ma propre pseudo-ACIDité dans .NET pour cette solution en essayant simplement de réécrire/supprimer les insertions/mises à jour d'entités non défaillantes pour obtenir un état d'anciennes données mais de bonnes données lorsque d'autres insertions/mises à jour échouent dans un contexte de transaction. Est-il utile ou plus facile d'intégrer l'espace de noms System.Transactions (quelqu'un a-t-il des histoires d'horreur ou de réussite, est-ce compatible avec l'idée générale de ce que j'essaie de faire?) Ou devrais-je créer mes propres classes Transaction? interfaces?Meilleures options pour implémenter mon propre fournisseur de transactions

Modifier: J'ai trouvé Implementing a Resource Manager sur MSDN pour l'intégration avec System.Transactions, est-ce la voie à suivre? Ou devrais-je juste modéliser un personnalisé sur ce modèle? Edit: Lecture docs de Hibernate, c'est exactement le modèle que je vais vouloir. Dois-je simplement télécharger NHibernate et couper tout le code SQL ou utiliser ses classes de base et ses interfaces et implémenter mon code CRUD personnalisé ou est-il très dépendant de SQL? Je me suis déjà presque déjà réécrire certaines de mes méthodes pour se conformer à sa documentation.

Répondre

1

;-) J'ajoutais juste ce lien quand j'ai vu votre montage.

J'explorerais probablement cette option en premier. Chaque fois qu'un cadre extensible est disponible, vous devriez hésiter à en créer un vous-même.

1

Vous devez implémenter un gestionnaire de ressources, oui. Obtenir le support de System.Transaction n'est pas une mince affaire. Cela permettra à vos développeurs, par exemple, de valider des mises à jour de votre ressource ainsi que d'Oracle, dans la même unité de travail. Vous obtenez cela gratuitement si vous construisez votre bibliothèque de sorte qu'il est un gestionnaire de ressources.

Questions connexes