对.Net平台开发实践的总结(5)
五、对象实例的申请与释放
.Net平台的垃圾回收机制,可以自动的dispose不再引用的对象实例,所以很多开发人员并不主动释放申请的对象资源。事实上,在对象的生命周期结束之前是不会被释放的。
但是,很多时候当对象处于生命周期之内时,我们不再使用它,以便释放资源提升系统效率。因此,主动释放申请的资源显得很有必要。
永远不要把力所能及的事情交给操作系统,及时释放不再使用的资源是一个好习惯。
六、数据库访问
数据库访问永远是系统的瓶颈,选择高效、稳健的数据库访问模式是产品性能的基础保证。
永远不要假设你的应用系统构建与某个数据库之上,因此必须有统一的、透明的数据库访问机制。
采用ADO.Net访问数据库
基于效率和稳定性的考量,采用微软平台原生的数据库访问模式ADO.Net。使用ADO.Net可以通过OLEDB和ODBC两种模式访问数据库,我们建议使用数据库厂商提供的OLEDB模式,这种模式绕过了ODBC,使得数据库的游标性能大大提升,效率更佳。
不使用第三方的数据持久层使用类似于Nhibernate之类的第三方数据持久层工具虽然可以提高开发的效率,但是却降低了系统的性能和弹性。性能对于产品而言,远远比开发效率重要的多,况且基于VS2005的开发,效率不是问题。请记住:第三方的工具永远不能成为你的产品核心技术;数据访问机制是系统的效率瓶颈,对
使用自主产权的数据对象
直接采用ADO.Net封装最底层的数据访问方法:插入、删除和更新,以及事务管理等;客户端和服务器端采用相同的数据访问机制,并设立连接缓冲池提升数据访问效率。
七、分布式事务管理
对于多层分布式应用而言,数据库事务呈现出“远程、分布”的特色,导致事务难以管理。
对于Ado.Net而言,事务绑定了数据库连接,因此必须在数据访问对象中对每一个数据库连接管理各自的事务或嵌套事务。如果要访问数据库,服务器上的数据访问对象将自动分配一个特定的连接,根据该连接ID执行数据操作;无论该事务分布于多少个远程客户端进程,服务器数据对象只需要锁定连接ID即可轻松进行事务管理。
八、智能客户端
智能客户端是易于部署和管理的客户端应用程序,它综合了瘦客户端和胖客户端的优点,通过统筹使用本地资源和到分布式数据资源的智能连接,提供快速响应的和丰富的交互式体验。
智能客户端分为Windows Form,Office Client,Mobile Client三种类型,具有如下特点:
利用本地资源
利用网络资源
支持偶尔连接的用户
提供智能安装和更新
提供客户端设备灵活性
.NET 框架基类库内嵌了支持智能客户端的丰富程序集,通过使用公共语言运行库 (CLR),可以利用任何受到 .NET 支持的语言来开发智能客户端。
智能客户端是瘦客户段的强大替代品,也是微软推荐的客户端模式。尽量使用智能客户端而不要使用浏览器。如果可以,请把你的客户端系统构建在Office平台上,如Outlook。