.Net平台开发实践的一些总结。

来源:互联网 发布:罗马2全面战争优化视角 编辑:程序博客网 时间:2024/05/21 17:56

.Net平台开发实践的一些总结。
一、代码规范
实义命名
类型、变量、常量、方法等标识符一律采用对应的英文实义;如果涉及到两个独立的实义单词,则中间用

下划线间隔或者单词首字母大写(两种方式都可以);如果标识符的长度超过了30个字母,则基本上以英

文单词发音的重读音节取选出三个字母,如Repeater用rpt。

 
二、数据库设计规范
表格分类与命名
u       所有表格命名一律以字母“T”开头(Table),并且用实义单词以下划线“_”间隔。
u       系统表   系统表前缀为:TSYS_
u       业务表前缀为:TBIZ_
n         不要使用日期字段,改用字符串char(19)替代,如:2008-12-09 12:22:08。
n         对于确定长度的串,请固定字段类型的长度,如char(80),不要采用varchar。
n         对于值类型字段,请使用对应的数据库值类型,而不要用字符串。
三、Com和.Net互操作规范
.NET支持运行时通过COM、COM+、本地WinAPI调用与未托管代码的双向互操作性,要实现互操作性,必须

首先引入.NET Framework的 System.Runtime.InteropServices命名空间。
C#的语法为:
using System.Runtime.InteropServices;
(1).NET访问API
.NET允许C#访问未托管的DLL的函数。如要调用Windows User32.dll的MessageBox函数:
int MessageBox(HWND hwnd,LPCTSTR lpText, LPCTSTR lpCaption,UINT uType)
可以声明一个具有DLLImport属性的static extern方法:
using System.Runtime.InteropServices;
[DllImport(“user32.dll”)]
static ertern int MessageBox(int hwnd,string text,string caption,int type);
然后在代码里面直接调用就可以了。这里要注意在调用返回字符串的API中使用StringBuilder对象。
(2).NET访问COM组件
从.NET调用COM组件比较容易,只要使用tlbimp.exe产生COM的装配形式的WarpClass,然后在.NET项目中

调用即可。
注意COM的类型信息通过Type Library文件描述,.NET装配件是自描述的。Tlbimp的作用是从COM组件及其

类型信息中产生自描述的装配件。
1.编写Com组件
编译生成一个ComAccount.dll。
2. 产生.NET可访问的包装类(assembly),使用TlbImp.exe产生.NET装配件。
TlbImp /out:NetAccount.dll ComAccount.dll
3.在.NET代码中访问
.NET代码只需引用NetAccount.dll,就可以像访问.NET的装配件一样访问COM组件。
四、异常处理
异常处理的原则

推荐如下异常处理模式:
void ReadFromFile ( string fileName )
 {
 try
 {
   // 读文件.
 }
 catch (FileIOException ex)
 {
   // 记载异常日志
   // 重抛具有针对性的异常信息
   throw;
 }
 }
 
五、对象实例的申请与释放
.Net平台的垃圾回收机制,可以自动的dispose不再引用的对象实例,所以很多开发人员并不主动释放申

请的对象资源。事实上,在对象的生命周期结束之前是不会被释放的。
但是,很多时候当对象处于生命周期之内时,我们不再使用它,以便释放资源提升系统效率。因此,主动

释放申请的资源显得很有必要。
永远不要把力所能及的事情交给操作系统,及时释放不再使用的资源是一个好习惯。
六、数据库访问
n         采用ADO.Net访问数据库                基于效率和稳定性的考量,采用微软平台原生的数

据库访问模式ADO.Net。使用ADO.Net可以通过OLEDB和ODBC两种模式访问数据库,我们建议使用数据库厂

商提供的OLEDB模式,这种模式绕过了ODBC,使得数据库的游标性能大大提升,效率更佳。
n         不使用第三方的数据持久层              使用类似于Nhibernate之类的第三方数据持久层工

具虽然可以提高开发的效率,但是却降低了系统的性能和弹性。性能对于产品而言,远远比开发效率重要

的多,况且基于VS2005的开发,效率不是问题。请记住:第三方的工具永远不能成为你的产品核心技术;

数据访问机制是系统的效率瓶颈。

七、分布式事务管理
对于多层分布式应用而言,数据库事务呈现出“远程、分布”的特色,导致事务难以管理。
对于Ado.Net而言,事务绑定了数据库连接,因此必须在数据访问对象中对每一个数据库连接管理各自的

事务或嵌套事务。如果要访问数据库,服务器上的数据访问对象将自动分配一个特定的连接,根据该连接

ID执行数据操作;无论该事务分布于多少个远程客户端进程,服务器数据对象只需要锁定连接ID即可轻松

进行事务管理。
八、智能客户端
    智能客户端是易于部署和管理的客户端应用程序,它综合了瘦客户端和胖客户端的优点,通过统筹使

用本地资源和到分布式数据资源的智能连接,提供快速响应的和丰富的交互式体验。
智能客户端分为Windows Form,Office Client,Mobile Client三种类型,具有如下特点:
n         利用本地资源
n         利用网络资源
n         支持偶尔连接的用户
n         提供智能安装和更新
n         提供客户端设备灵活性
    .NET 框架基类库内嵌了支持智能客户端的丰富程序集,通过使用公共语言运行库 (CLR),可以利用

任何受到 .NET 支持的语言来开发智能客户端。

 

原创粉丝点击