Fonctionnalités fournies par System.Transactions

Cette section explique comment utiliser les fonctions fournies par l'espace de noms System.Transactions pour écrire votre propre application transactionnelle et votre gestionnaire de ressources. Plus précisément, cette section explique comment créer et participer à une transaction (locale ou distribuée) avec un ou plusieurs participants.

Vue d'ensemble de System.Transactions

L'infrastructure fournie par les classes de l'espace de noms System.Transactions rend la programmation transactionnelle simple et efficace, grâce à la prise en charge des transactions initiées dans SQL Server, ADO.NET, Message Queuing (MSMQ) et MSDTC (Microsoft Distributed Transaction Coordinator). L’espace de noms System.Transactions fournit à la fois un modèle de programmation explicite basé sur la classe Transaction et un modèle de programmation implicite utilisant la classe TransactionScope, dans lequel les transactions sont gérées automatiquement par l’infrastructure. Pour plus d’informations sur la création d’une application transactionnelle en utilisant ces deux modèles, consultez Écriture d’une application transactionnelle.

L'espace de noms System.Transactions fournit également des types vous permettant d'implémenter un gestionnaire de ressources. Un gestionnaire de ressources gère les données durables ou volatiles utilisées dans une transaction et travaille en collaboration avec le gestionnaire de transactions pour garantir l'atomicité et l'isolation de l'application. Le gestionnaire de transactions fourni par l'infrastructure System.Transactions prend en charge les transactions impliquant plusieurs ressources volatiles ou une ressource durable unique. Pour plus d’informations sur l’implémentation d’un gestionnaire de ressources, consultez Implémentation d’un gestionnaire des ressources.

Le gestionnaire de transactions fait également remonter de façon transparente les transactions locales vers les transactions distribuées en s'associant avec un gestionnaire de transactions basé sur un disque, tel que le DTC, lorsqu'un gestionnaire de ressources durables supplémentaire s'inscrit à une transaction. L'infrastructure System.Transactions offre deux façons principales d'obtenir des performances améliorées.

L'espace de noms System.Transactions définit trois niveaux de confiance (AllowPartiallyTrustedCallers (APTCA), DistributedTransactionPermission (DTP) et confiance totale) qui permettent de restreindre l'accès aux types de ressources qu'il expose. Pour plus d’informations sur les différents niveaux de confiance, consultez Niveaux de confiance de sécurité dans l’accès aux ressources.

Contenu de cette section

Écriture d'une application transactionnelle

L'espace de noms System.Transactions fournit deux modèles de création d'applications transactionnelles. Implémentation d’une transaction implicite en utilisant uen étendue de transaction explique comment l’espace de noms System.Transactions prend en charge la création de transactions implicites en utilisant la classe TransactionScope.

Implémentation d’une transaction explicite en utilisant CommittableTransaction explique comment l’espace de noms System.Transactions prend en charge la création de transactions explicites en utilisant la classe CommittableTransaction.

Pour des rubriques traitant de l’écriture d’une application transactionnelle, consultez Écriture d’une application transactionnelle.

Implémentation d'un gestionnaire des ressources

Pour implémenter un gestionnaire de ressources qui peut participer à une transaction, consultez Implémentation d’un gestionnaire des ressources. Cette section traite de l'inscription d'une ressource, de la validation d'une transaction, de la récupération après défaillance et des meilleures pratiques d'optimisation.