以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 Dot NET,C#,ASP,VB 』 (http://bbs.xml.org.cn/list.asp?boardid=43) ---- 个人开发框架总结 (http://bbs.xml.org.cn/dispbbs.asp?boardid=43&rootid=&id=78130) |
-- 作者:卷积内核 -- 发布时间:11/9/2009 5:12:00 PM -- 个人开发框架总结 在开发过程中,大家可能都发现,形成一套个人开发风格是相当重要,这也可以延伸为整个团队的开发模式,甚至形成一个有形的开发框架。 我经过这一两年的摸索,不断的完善,现在大体形成了几个东东,自己感觉还不错,所以想贴出来与大家一起分享,如有需要的朋友,可以直接与我联系。 大体有以下几个类库: FaibClass.Data 数据访问库 FaibClass.Common.Windows WinForm框架库 FaibClass.Windows.Forms WinForm控件库(目前只有TreeList及一些TextBox控件) FaibClass.Update 在线更新库 在以后的几天里将分别做一些介绍 一、FaibClass.Data 主要是提供数据访问操作的类库,可支持SqlServer、Oracle、及各种OleDb数据库。 DataHelper 核心类 提供各种数据访问方法。先说一下它的几个方法和属性: ExecuteDataTable 填充数据到DataTable,共12种重载 ExecuteNonQuery 执行Sql语句 ExecuteReader 执行查询语句返回IDataReader ExecuteScalar 执行查询,返回当个结果 FillDataset 填充DataSet,共12种重载 FillModelList 填充DataList,共12种重载 Update 更新DataTable或DataSet,共6种重载 BeginTransaction 开始事务,支付分布式事务 CommitTransaction 提交事务 RollbackTransaction 回滚事务 CreateParameters 创建参数集,因为使用存储过程时SqlServer和Oracle的参数名称不一样,故用这个方法生成 OpenUpdateBag 打开更新开关,在使用Update前,要使用这个方法把相应的sql语句保存到内存中,以在Update时能够更新到数据库 CloseUpdateBag 关闭更新开关
|
-- 作者:卷积内核 -- 发布时间:11/9/2009 5:12:00 PM -- ParameterPrefix 当前数据操作的存储过程参数名称的前缀,如SqlServer的@和Oracle的: 下面是具体的操作类型,SqlServer、Oracle、OleDb都是继承自DataHelper的,但并未为每一个操作类都写出各种数据操作的方法,这也主要是为了好维护,这几个类同时实现IDataProvider接口,这个接口就是为每种类型提供DbConnection、DbParameter、DataAdapter、DbCommand等。如SqlServer里是这样写到的: public class SqlServer : DataHelper, IDataProvider IDbDataAdapter IDataProvider.GetDataAdapter() IDataParameter IDataProvider.GetParameter() IDataParameter[] IDataProvider.GetParameters(int Count) IDbCommand IDataProvider.GetCommand(IDbCommand command) void IDataProvider.GetCommandBuilder(IDbDataAdapter DataAdapter, DataTable DataTable, DataViewRowState dataViewRowState)
|
-- 作者:卷积内核 -- 发布时间:11/9/2009 5:12:00 PM -- 这样,每一个类就好维护了,Oracle就使用OracleConnection,OleDb就使用OleDbConnection。 Parameter 存储过程参数类,这跟System.Data里的差不多,都是实现同样的一个功能,只是说使用这个的时候,ParameterName不用具体的加入@或:这样的前缀。 ParameterCollection 存储过程参数集合类,这里面特别的有几个方法 FromDataModel 从模型转换为存储参数。可以根据具体的模型,将所有属性转换为存储过程参数,以为添加或修改作准备。 Format 可以格式化Sql查询语句,比如在使用添加或修改的时候,可以这样使用 dataHelper.ExecuteNonQuery(params.Format("insert into table({0}) values({1})"), params); dataHelper.ExecuteNonQuery(params.Format("update table set {0}"), params); BaseModel 数据模型基类,所有的数据模型都是继承这个类,如TB_BUY_BILL.cs using System; namespace WindowsApplication1 public override DataColumn GetDataColumn(string ColumnName) case "BUY_BILL_ID": case "BILL_TYPE": case "BILL_NO": case "DEPARTMENT_NAME": case "SALED_AMOUNT": case "CONTRACT_AMOUNT": } #region 字段常量 public static string _BUY_BILL_ID = "BUY_BILL_ID"; #region 成员 private string m_BUY_BILL_ID; #region 属性 public string BUY_BILL_ID public BILL_TYPE BILL_TYPE public string BILL_NO public string DEPARTMENT_NAME public decimal SALED_AMOUNT public decimal CONTRACT_AMOUNT #endregion public enum BILL_TYPE public enum BILL_STATE /// <summary>
|
-- 作者:卷积内核 -- 发布时间:11/9/2009 5:13:00 PM -- 上面已经提到DataModelList这个类了,实际就是一个List<T>泛型,没有什么特殊的属性和方法。 BaseDataAccess 数据操作类,这里面就整合了一些发新建实体、修改实体等方法。 Create 新建实体 Update 更新实体,共4种重载 Delete 删除实体 DeleteBy 删除多个实体 Get 获得实体,共7种重载 IsExitst 判别实体是否存在,共4种重载 Select 查询实体集,共9种重载 NewEntity 新实体 PageArgs 分页参数 相关的例子TB_BUY_BILL_DA.cs using System; namespace WindowsApplication1 /// <summary> DataColumn 数据列映射类,主要标明数据字段的各种属性,比如数据类型等,在以上代码中,已经看到GetDataColumn方法了。
|
-- 作者:卷积内核 -- 发布时间:11/9/2009 5:13:00 PM -- EnumTextAttribute 枚举说明特性类,主要是添加在枚举上的,方便数据查询显示时直接转为中文说明。 GetText 获得枚举值下的中文说明 GetValue 根据中文说明获得对应的枚举值 QueryBuilder 查询构造器类,主要是构造查询条件,where后面的,使用方法类似StringBuilder。 Append 追加查询条件 BeginBracket 添加一个左括号 EndBracket 添加一个右括号 下面是Configuration下的几个类,主要提供连接串的存储方式 AppConnectionConfig 连接串是存储在App.setting文件中的 BinaryConnectionConfig 连接串是存储在bin文件里的,读或写的时候key取"a"...."h"。 RegConnectionConfig 连接串是存储在注册表里的 SysXmlConnectionConfig 连接串是存储在系统目录里的xml文件里的 XmlConnectionConfig 连接串是存储在任意位置的xml文件里的 好了,Data这个类就介绍到这里了,相关的例子在以后的文章中会给出的,下一篇介绍一下Common.Windows类库了。
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
5,636.719ms |