XCodeFactory

C#编程爱好者
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

XCodeFactory3.0完全攻略--简单示例

Posted on 2005-09-12 16:23  C#编程爱好者  阅读(2611)  评论(0编辑  收藏  举报

    下面就通过一个完整的示例来演示如何使用XCodeFactory3.0及其生成的数据层代码。这个例子仅仅涉及一个数据库(后续帖子中会有多数据库的示例),为了简单起见,这个数据库中只有两个表:Student和Mentor。至于这两个表之间的关系是每个student都有一个mentor。

1.新建一个VS项目,并做好准备。
(1)启动VS.NET,新建名为XcfTestProject的“windows应用程序”项目。
(2)打开解决方案资源管理器,在XcfTestProject下新建“DataAccess”文件夹,所有的数据层的相关类、文件都将放在该文件夹下。

2.打开XCodeFactory3.0,提取必要资源到XcfTestProject项目中。
(1)主菜单=》帮助=》获取DataAccess压缩包,解压到你的项目的当前目录,并将其"包含在项目中"。
(2)主菜单=》帮助=》获取EnterpriseServerBase.dll文件,并在你的项目中添加对其的引用。
(3)在VS.NET中编译项目,应该能通过。
    这时解决方案资源管理器中的目录结构如下:
    
 

3.打开SqlServer新建一个名为XcfTestFirstDb的数据库。然后在数据库中新建一个Student表,其结构如下:
    
 
4.在XCodeFactory3.0新建项目。
(1)主菜单=》文件=》新建项目
(2)修改左边树的根节点为我们的项目名称XcfTestProject
(3)在树控件上右键菜单=》加载数据库,弹出如下对话框:
    
 
(4)填写你的数据库连接信息,从下拉列表中选取刚刚新建的XcfTestFirstDb数据库。点击“加载”按钮,结果如下:
    
     这是演示从数据库=》XCF的操作。

(5)在树控件中的XcfTestFirstDb节点上右键菜单=》“新建数据库表”,则在XcfTestFirstDb节点下增加了一个名为“noname”的节点,修改其名为Mentor,然后在如下图所示的地方添加/编辑每一列:
    
 
    编辑Mentor表的结构如下:
    
 
(6)编辑完后,在树中选中Mentor节点,在如下图的代码生成区选中“当前表”的RadioButton,选中“写入DB”的CheckBox,然后点击“生成”按钮。这样就在你的数据库中插入了Mentor表。你可以到SqlServer中验证。
     
    这是验证从XCF=》数据库的操作。

5.保存XCodeFactory项目
   主菜单=》文件=》保存项目,可以将XCodeFactory项目保存为一个xcf文件,这样日后只要打开该文件,就可以对项目进行重新编辑、代码重新生成。

6.生成代码
(1)在代码生成区的命名空间中填入“XcfTestProject.DataAccess”,DAL目录则选择我们在步骤1新建的DataAccess文件夹的路径,选中“所有表”RadioButton,选中“数据层”CheckBox,结果如下图:
     
(2)点击“生成”按钮。
(3)回到VS.net的解决方案资源管理器,把DataAccess文件夹下的所有东东包含在项目中。
(4)编译你的项目,应该能通过。此时解决方案资源管理器显示的结构如下:
    
 
    DataAccess下的XcfDataAccess文件夹表明此文件夹及其下所有文件都是有XCodeFactory自动生成的。注意,XcfDataAccess文件夹下有一个XcfTestFirstDb文件夹,它是与我们的XcfTestFirstDb数据库对应的。在后面的多数据库示例中,会新加入一个XcfTestSecondDb数据库,这里也会多一个XcfTestSecondDb文件夹。
    在XcfDataAccess文件夹下有一个DataBaseInfoMgr.CS的文件,其内容如下:


using System;
using EnterpriseServerBase.DataAccess ;

namespace XcfTestProject.DataAccess
{
    
public class DataBaseInfoMgr : IDataBaseInfoMgr
    {
        
#region IDataBaseInfoMgr 成员
        
//可以从配置文件中读取连接信息
        public string GetConnString()
        {
            
return string.Format("Data Source = {0}; user id ={1} ;password = {2}; Initial Catalog ={3}" ,"127.0.0.1" ,"sa" ,"chenqi" ,"XcfTestFirstDb") ;
        }
        
        
public string GetConnString(string dbName)
        {
            
switch(dbName)
            {
                
case "XcfTestFirstDb" :
                {
                    
return string.Format("Data Source = {0}; user id ={1} ;password = {2}; Initial Catalog ={3}" ,"127.0.0.1" ,"sa" ,"chenqi" ,"XcfTestFirstDb") ;
                }
                
default :
                {
                    
throw new Exception("the {0} database name is invalid !") ;
                }
            }
        }
        
        
public event EventHandler DbConfigChanged;
        
        
public bool IsMultiDataBase
        {
            
get
            {
                
return false;
            }
        }
        
        
public DataBaseType GetDbType()
        {
            
return DataBaseType.SqlServer ;
        }
        
        
public void    ActivateDbConnChangeeEvent()
        {
            
if(this.DbConfigChanged != null)
            {
                
this.DbConfigChanged(this ,new EventArgs()) ;
            }
        }
        
        
#endregion
        
    }
        
}

    可以看到DataBaseInfoMgr类的目的就是为了提供数据库连接信息,并对多数据库提供了支持!

7.初始化DataEntrance。
    在Form1.cs文件中添加如下using引用

using EnterpriseServerBase.DataAccess ;
using XcfTestProject.DataAccess ;

在Main方法中加入下面代码:

IDataBaseInfoMgr dbInfoMgr = new DataBaseInfoMgr() ;
            DataEntrance.InitializeDBAccesserFactory(dbInfoMgr,
new XDBAccesserFactory()) ;

    其中,XDBAccesserFactory位于EnterpriseServerBase.DataAccess文件夹下。
    编译项目,应该能够通过。

8.使用数据层代码。
(1)最好的演示代码也可以自动生成,那就是可以生成简单的UI层。为了便于维护,XCodeFactory将UI类也放在了与每个表对应的文件夹中。在代码生成区,选中“UI层”CheckBox,点击生成按钮。将新生成的文件包含在项目中,编译项目,应该能够通过。
可以看到XcfDataAccess文件夹的结构如下:
     

    可以看到与每个表对应都有两个Form文件,如MentorForm就用于Mentor的信息显示和信息录入,而MentorManageForm用于显示所有Mentor,bing提供添加、删除、修改等按钮进行对应的操作。

(2)小试牛刀
    在Form1中添加using:

using XcfTestProject.DataAccess.XcfTestFirstDb ;

    在Form1上添加一个按钮,事件处理函数如下:

        private void button1_Click(object sender, System.EventArgs e)
        {
            StudentManageForm form 
= new StudentManageForm() ;
            form.Show() ;
        }

    运行程序,Form1界面出现后,点击按钮,弹出如下界面:
    
     现在,你就可以点击各个按钮试试功能了:)

(3)关于如何使用自动生成的数据层代码,可以分析一下上图中的各个按钮的事件处理函数中的代码。
    要指出的是,获取数据访问对象可以用:

IDBAccesser deal_Mentor = new MentorSqlDealer(conn) ;

但是最好用:

IDBAccesser deal_Mentor = DataEntrance.CreateDBAccesser(typeof(Mentor)) ;

    MentorManageForm中正式这样做的。这样做可以屏蔽数据库类型,到时切换数据库类型时,代码就不用修改了。

示例项目下载
示例xcf文件下载

XCodeFactory3.0完全攻略 目录