5、 连接池:(无法对比,因为PB没有此功能。此处只是说明连接池的创建,移除过程。)
创建:OLE DB .NET 数据提供程序使用 OLE DB 会话池来自动管理连接池,当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。连接池是为每个唯一的连接字符串创建的。当创建一个池后,将创建多个连接对象并将其添加到该池中,以满足最小池大小的要求。连接将根据需要添加到池中,直至达到最大池大小。
移除:如果连接生存期已过或者池管理程序检测到与服务器的连接已被断开,则对象池管理程序将从池中移除该连接。请注意,只有在尝试与服务器进行通讯后,才可以检测到这种情况。如果发现某连接不再连接到服务器,则会将其标记为无效。对象池管理程序会定期扫描连接池,以查找已被释放到池中并标记为无效的对象。找到后,这些连接将被永久移除。在编程过程中尽可能短的时间使用连接,要及时的关闭连接。关闭连接后,自动放入连接池。
6、 事务处理
PB必须手工实现事务处理,如回滚等。
ADO.NET 中有两种事务处理方法:
手工事务:用SqlConnection.BeginTransaction 方法来启动事务,返回关联的SqlTransaction 对象。将事务对象关联到参与事务的命令上,用SqlTtansaction.Commit 方法提交事务,用SqlTransaction.Rollback 方法来回滚事务。此过程与PB相同。
自动事务:自动事务是COM+ 提供的一个服务,如果要使用此服务,类需要遵从:1、必须直接或间接从SystemEnterpriseServicedComponent派生。2、将TransactionAttribute 应用此类来控制类的事务行为。3、使用强名称为组件签名。4、将[AutoComplete] 特性(属性信息)应用于类中的方法。如果含有[AutoComplete] 特性的方法调用完成而没有错误,则事务被提交,否则被回滚。
测试过程记录:
开始用时c#做自动事务测试实例,在使用强名为组件签名时,编译时出现“重复属性[assembly: AssemblyKeyFile("f:\\complusexample1.snk")]”错误。用vb.net 做测试实例,一切正常。
仔细研究C# 发现工程中自己生成的文件:AssemblyInfo.cs中已经包含[assembly: AssemblyKeyFile("")]条目,把此条目改为:[assembly: AssemblyKeyFile("f:\\complusexample1.snk")],同时,去掉在ComPlusExample1 中的对应属性信息。
using System;
using System.EnterpriseServices ;
using System.Reflection ;
///[assembly: AssemblyKeyFile("f:\\complusexample1.snk")](此部件属性信息要放到AssemblyInfo.cs文件中。)
[assembly:ApplicationName("ComPlusExample1")]
namespace ComPlusExample1
{
[Transaction(TransactionOption.Required )]public class ComPlusExample1 : ServicedComponent
{
public ComPlusExample1():base()
{
}
[AutoComplete] public string DoTrans()
{
return "my god!";
}
}
}
7、远程访问:
ADO 的 远 程 数 据 访 问(RDS) 功 能 是能 够 通 过 一 个 往 返 传 输 将 数 据 从 服 务 器 移 动 到 客 户 端 应 用 程序 或Web 页 中, 然 后 在 客 户 端 对 数 据 进 行 操 作, 最 后 将 更 新 数 据 返 回服 务 器。
而ADO.NET是一种非连接型的数据架构,数据从数据库取出,缓存在本地机器中,所以从ADO.NET的架构本身就很好的支持远程数据访问。
4. 总体结论
VS.NET 的WINDOWS FORMS 在用户界面开发上比PB有明显的快捷性,高效性,而且更丰富。在代码量方面,VS.NET 稍强于PB;在速度与数据表现形式方面,VS.NET 稍微逊色于PB。
由于体系结构上的差异,VS.NET的功能更为强大。VS.NET在数据库连接方面,通过自动管理连接池,配合数据适配器,数据集等,提供了更加灵活,更加强大,更加适合分布式/多层软件系统的方法。事务处理不但支持常用的手工处理方式,同时还提供了自动事务处理机制,降低了开发人员出错的概率。
查看本文来源