XCodeFactory

(下载地址:http://xcodefactory.cnblogs.com/Files/XCodeFactory/XCodeFactory3.0Setup.rar)
posts - 16, comments - 60, trackbacks - 0, articles - 0
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

    每个程序员都有自己的编码习惯,但是为了更好的使用XCodeFactory生成的代码,有些风格/习惯最好遵循XCF约定。接受限制极少的XCF约定,你将从XCodeFactory获得极大的回报!

XCF约定如下:
(1)请确保所有的数据库表的第一个字段为主键,并且主键名为“ID” 。
如果你不同意每个表都有一个ID主键,可以留言和我讨论。如果你同意,那么请严格用“ID”命名,而不要用类似“StudentID”。

(2)如果有与“ID”对应的“名称”、“名字”字段,请使用“Name”命名。
自动生成的每个数据对象类(与一个数据库表对应),都重载了ToString方法,如果有Name字段,则返回“ID Name”格式的字符串,否则返回ID的值。这样做的好处在后续的介绍中会提到。

(3)数据库的名字、数据库表的名字及其字段的名字请遵守骆驼命名法。
如DataServer数据库中的Student表中的BirthDate字段

(4)没有了,等有了再补充:)

    而XCodeFactory生成的代码也遵从如下约定:
(1)数据对象类的名字与数据库表的名字完全一致,如Student表对应的数据对象类名也是Student。

(2)数据访问类的名字的格式是: 数据库表名 + 数据库类型 + Dealer
    如StudentSqlDealer、StudentOracleDealer、StudentOleDealer

(3)数据对象类的属性与数据库表的字段完全一致。
    如Student数据库表有一个BirthDate字段,则对应的Student类就有一个BirthDate属性和一个birthDate私有变量、以及一个名为_BirthDate的const string变量,_BirthDate存在的目的会在后文中解释。

(4)对应每一个数据库表都有一个同名的文件夹与之对应,并且其中包含两个文件--数据对象类cs文件和数据访问类cs文件。
如Student文件夹下就有Student.cs和StudentDealer.cs两个文件。如果选择了生成UI界面的话,则还会有另外的两个UI类文件StudentForm.cs和StudentManageForm.cs。

    下面就通过一个简单的Student例子来看看生成的数据对象类,Student表描述如下: 
字段名          类型            长度      是否主键   注释(中文名)
ID                   int                   4           True           自动编号
Name             nvarchar      20           False          姓名
Age               int                   4           False          年龄
Description  nvarchar      50           False          描述

生成的数据对象类的代码如下:


//XCodeFactory 代码自动生成器 V3.0 Beta1  作者:zhuweisky

using System; 
 
namespace XcfExample.SkyExample
{
    
public class Student 
    {
        
public Student()
        {
        }
        
        
#region FieldName ,用于强化静态检查
        
public const string _ID = "ID" ;
        
public const string _Name = "Name" ;
        
public const string _Age = "Age" ;
        
public const string _Description = "Description" ;
        
#endregion
    
    
        
#region ID
        
private int iD = 0 ; 
        
/// <summary>
        
/// 自动编号
        
/// </summary>
        public int ID
        {
            
get
            {
                
return this.iD ;
            }
            
set
            {
                
this.iD = value ;
            }
        }
        
#endregion    
    
        
#region Name
        
private string name = "" ; 
        
/// <summary>
        
/// 姓名
        
/// </summary>
        public string Name
        {
            
get
            {
                
return this.name ;
            }
            
set
            {
                
this.name = value ;
            }
        }
        
#endregion    
    
        
#region Age
        
private int age = 0 ; 
        
/// <summary>
        
/// 年龄
        
/// </summary>
        public int Age
        {
            
get
            {
                
return this.age ;
            }
            
set
            {
                
this.age = value ;
            }
        }
        
#endregion    
    
        
#region Description
        
private string description = "" ; 
        
/// <summary>
        
/// 描述
        
/// </summary>
        public string Description
        {
            
get
            {
                
return this.description ;
            }
            
set
            {
                
this.description = value ;
            }
        }
        
#endregion
    
        
#region ToString 
        
public override string ToString()
        {
            
return this.ID.ToString() + " " + this.Name.ToString() ;
        }
        
#endregion
    }
}

    关于XCF约定就这么多,在XCF约定的基础上,XCodeFactory才能高效地进行工作!XCodeFactory3.0完全攻略 目录

Feedback

#1楼    回复  引用  查看    

2005-09-11 21:53 by zitiger      
骆驼命名法
晕倒,不要随便用中文哦!~~~

#2楼    回复  引用  查看    

2005-09-11 21:57 by zitiger      
生成的代码怎么样随便你,可是你怎么可以让别人根据软件来设计数据库呢?

#3楼    回复  引用  查看    

2005-09-11 22:22 by XcodeFactory      
to zitiger :
你说的很有道理,不应该干涉使用者如何设计数据库,但是如果没有共同的约定,就无法进行有效的交流。欢迎你和我讨论这些约定的力度和范围是否合适。
每个人都有权利在使用XCodeFactory的时候不遵守XCF约定,就像有权利在写代码的时候不遵守编码规范一样,但是到头来自己并不会得到任何益处!

#4楼    回复  引用  查看    

2005-09-25 11:21 by zitiger      
(1)请确保所有的数据库表的第一个字段为主键,并且主键名为“ID” 。
如果你不同意每个表都有一个ID主键,可以留言和我讨论。如果你同意,那么请严格用“ID”命名,而不要用类似“StudentID”。

一般数据库里很少直接用ID的,比如Students表中用StudentID
你可以让用户指定(上策)哪个列是你说的ID列的功能,或者自动检测,检测PK,或者自动增长列.

(2)如果有与“ID”对应的“名称”、“名字”字段,请使用“Name”命名。
自动生成的每个数据对象类(与一个数据库表对应),都重载了ToString方法,如果有Name字段,则返回“ID Name”格式的字符串,否则返回ID的值。这样做的好处在后续的介绍中会提到。

一般数据库里很少直接用Name 的,比如Students表中用StudentName
你可以让用户指定

(3)数据库的名字、数据库表的名字及其字段的名字请遵守骆驼命名法。
如DataServer数据库中的Student表中的BirthDate字段

看你的意思,好像这个不是Camel命名方法,而是Pascal方法

Camel 大小写形式:标记名的第一个字符是小写的,任何后面连接单词的第一个字母是大写的。
Pascal 大小写形式:第一个字符是大写的,任何后面连接单词的第一个字母也是大写的。
(参考 ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconformatofconfigurationfiles.htm)

#5楼    回复  引用  查看    

2006-06-07 21:09 by 阿飞.NET      
同意zitiger的看法。。。ID、Name这种在有些数据库系统中是属于系统关键字,至少在我们公司所有的表字段命名都不赞成用数据库系统中的一些关键字来命名,微软、Oracle等厂家在自己的数据库系统范例中的类似字段都不会采用ID、NAME这种字段命名。




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2005-09-12 11:40 编辑过
Google站内搜索

相关文章:

相关链接: