.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
基于Grove的.NET应用程序开发提示

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

 

基于Grove的.NET应用程序开发提示

 

1.       尽量避免新增映射实体类,主要表现在关系映射实体。当程序需要查询符合某种条件的记录时,往往需要通过关系映射实体进行查询,当该关系实体在其他调用者使用时,有时又因为缺少某些字段而需要向该关系映射实体新增查询字段或重新建立实体,所以在关系实体建立的时候,应尽量考虑其他调用者的需求,这样可以有效的避免关系映射实体的重复或因关系实体的改变而导致的其他不安定因素。

2.       避免在数据操作层中出现同样的功能(方法),尽管这些功能可能不属于同一个管理类。当调用者需要新增或修改(包括删除)一个实体(非关系实体)时,应首先检查Façade层中是否已经有该功能的存在,这要求数据操作层中所有管理类的编写者明确的注释好每一个方法的功能描述,要排除歧义。

3.       在实体映射时,如果该实体映射某个主表,一般应明确该主表对应的子表映射项。如主表表名为Main,子表表名为Sub,对应的映射实体为Main.classSub.class,该Main实体应申请子表项如下(例):

ArrayList _childs=null;

public ArrayList Childs

{

       get{

              if(this. _childs==null)

              {

                     //oo的初始代码

                     this._childs=new ArrayList();

                     this. _childs=oo.RetrieveChildObjects(this.id,this._ childs,typeof(Sub));

                     //oo的释放代码

}

return this. _childs;

}

       set{this._childs=value;}

}

4.       实体操作的定义,主子表关系应有事务支持,如下:

public void AddMain(Main m)

{

//oo的初始代码

       oo.BeginTransaction();

       try{

              oo.InsertObject(m);

              oo.InsertObjects(m.Childs);

              oo.Commit();

}

catch(Exception e)

{

   oo.Rollback();

   throw e;

}

       oo.Dispose();//oo的释放代码

}

5.       层间数据的传入传出,当某个功能需要实现通过某个实体的KeyField返回该实体时,传入的应是该实体的KeyField;当某个实体的新增或更新时,应传入该实体的实例。

6.       逻辑层Rule的定义

 

待续...


相关文章

相关软件