CODEFISH Keypoints

CodeFishKeyPoints

1.     存储过程的大面积使用

在开始那个版本里面对于一些更新,比如entity名称更新导致的propertyutility的前缀的更新的问题,都是从数据库中将数据取出来然后用代码更新,实际上是可以在存储过程里面更新的,用几个临时表和游标就行了,这样做方便了很多。还有就是关于2维关系的relation表的使用,也就是两个表存在多对多关系的时候,需要用一个relation表来记录,以及相关的级联删除的使用。

2.     关于两个listbox配合两个button的组合选择框的使用

这个东西属于批量修改,也就是在右侧选中框里面的东西首先要从数据库中delete然后再整体添加。Listbox本身不是容器,它只能做到显示,前端绑定displaymember,后端有valuemember,实际上容器本身是dataset, 这里面要用到两个datasetrow的交换问题,比如从unselect一侧移动到select一侧,需要相应的把unselectdatasetrow移动到selectdataset一侧,这样需要一个tmprow做介质传递,是一个object数组。

3.     menuitem的动态绑定

实现<最近打开的项目>这个功能需要动态的绑定menuitem到一个已经存在的menuitem上。

4.     窗体内部分割,实现横向移动

方法: 首先放入左侧的panel,dock设置为left,加入spliterdock设置为left,加入右侧的panel,doc设置为fill即可。注意顺序,还有就是不简单的设置控件的dock属性,一定要放入pannel!!

5.     关于一个windowsform的构架

首先代码要分割成如下构架

#region 默认代码

#region 私有成员

#endregion

 

#region 构造函数

#endregion

 

#region 其他

#endregion

#endregion

 

#region 功能函数

#endregion

 

#region 窗体事件

#endregion

 

私有成员声明所有的变量,注意要分清windows控件的声明和私有数据类型(简单数据类型或者实体类)的声明,注意要有一个formtype来确定该窗体是用来add还是用来update。构造函数要相当有技巧,要有效的区别add或者是update,这里统一用实体类的主键ID是否大于0来判断,注意,要初始化好实体类必要的一些信息,比如fatherID等等。其他部分放置windows窗体构架器等等。 功能函数部分必要的是ControlsInit也就是窗体初始化,根据formtype来初始化控件,注意在构造函数里面只是初始化数据,比如dataset等,不要对控件进行初始化。

6 关于项目的构架的一些理解

      对于一个解决方案,一般分成4个项目,表现层项目,控制层项目,数据层项目,还有接口层项目。对于接口的应用非常重要,因为一般来说mainform里面会有很多的功能,而且一个功能要有很多的方式来实现,比如toolbarbutton等,这时候加入接口层就有非常大的作用了。

7 变量命名的规定

对于一个cs文件里面声明的控件,首先缩写控件名,然后加上控件的作用名。对于声明的变量,首先要有New,然后加上类型比如DataSet,最后加上用途。如果是一个函数里面的临时变量,首先要有Tmp,然后加类型,最后加上用途。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值