在Windows平台上,事务的概念最开始出现在关系型数据库中,但是随着.net平台的发展,事务包括的的范围也越来越宽,先一睹为快,
在关系型数据库中的事务是通过begin transaction,rollback transaction, commit 等关键字来实现事务的。
System.Transactions名称空间下的事务,是.net的主推事务。
第一节,我们都用代码把事务实践了一把,那还有必要来说事务的概念和事务在运行过程中涉及到的对象呢?如果你想深入了解事务,这一步是必须的。
1,什么是事务:它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。
银行转款是事务的经典示例,可能因为钱与银行扯的上关系,一提到银行,大家都精神倍爽,为了不另类,所以我也决定用银行转款来说事务的四大特性。
2.2:一致性:给朋友转款888元RMB作为婚礼的礼金,但是朋友只收到777元RMB。这时你不爽了,你朋友也不爽,所以转款要必须保证数据的一致性。
2.4:持久性:转款这个操作被银行记录起来,过很多年后,你都还能查询到转款这个记录。这就是持久性。
1,资源:应用程序存储和获取数据的地方,可以是数据库,文件,也可以是内存。如果是应用程序的事务块代码中涉及到的数据库,文件,内存,那这些资源就称为事务型资源。
2,资源管理器:在事务模型中,应用不是直接访问资源,而是通过中间介访问资源,这个中间介就叫资源管理器。资源分为可持久化资源(对应了持久化资源管理),易失资源(对应了易失资源管理器)。
要认识事务提升,必须要弄清楚事务管理器的类型。如下作了非常详细的介绍:
轻量级事务管理器,内核事务管理器都只支持本地事务。本地事务相对简单,这儿不作重点简述。
在MSDN上对文件事务有详细的阐述 使用文件系统事务增强您的应用程序 我们如果是仔细阅读这篇文章不难发现他提供了一个.exe类型文件的下载。先把这个TxF2007_07.exe文件下载到本地硬盘,执行它,可以得到一个关于 c#的 KtmIntegration.csproj 的项目,我们用visual studio来打开这个项目,并且重新重成这个项目,可以得到一个KtmIntegration.dll文件。在你要实现的文件事务的项目中引入这个.dll文件,那你就可以很顺利的实现文件事务的操作了。具体代码:
在.net平台上,主要是通过WCF的手段来实现程序的分布式开发。在WCF事务体系:主要解决了事务在服务中的流转,以及解决服务内部直接或间接访问事务型资源的协作。
用WCF来演示事务的时候,要选择好WCF的绑定类型,有一部份绑定是不支持WCF的事务传播的。我们选择wsHttpBinding 来做WCF的事务演示。
此时我们WCF演示事务的五步曲就完成了。我们做敏捷开发都知道,可运行的代码高于详细的文档。如果还有不太明白的地方,可以在网上搜索,也可以留言问我。
联系客服