组件的最大的优点在于不断改进完善,重复利用。我们开发项目时,经常会遇到,系统默认每页显示50条记录,但是用户
A用的显示器分辨率比较小,他希望默认是显示30条记录,显示效果正常。用户B用的是最新的,最大的显示器,他希望默
认能看到每页200条记录。还有可能他们关注的重点不同,希望系统默认登录系统的主页显示都不一样。
? 菜鸟可能会想到,这是需求互相冲突嘛,无法实现嘛,其实类似的需求会很多,这时候,我希望能有一个配置参数的服务
方法,默认采用系统的配置参数,若用户设置了自己的个性化需求,就按客户的设置显示数据。
? 当然我希望这个参数服务类,有非常简单的2个方法,一个是SetParameter只要调用就可以,会将参数写入到数据库,
若已经存在这个设置,他会进行覆盖,是比较智能化的,还有一个就是读取的方法GetParameter,很方便能读取设置。
? 当然我们的参数服务,可以将设置保存到本地文件中,也可以保存到运程的数据库服务器上,可以通过WebService、
Remoting或者WCF等方式运行是比较理想的。
? 有一些方便灵活的软件组件,开发软件会轻松一些,不用每个人都摸索、开发、测试,分工明确,责任明确会大大提
高软件的产量、质量,对于组件来说,功能定位明确也至关重要,可以不断完善提高这个组件的重复利用,提高服用率、
提高生产率。
? 以下是参考页面,及样例代码。
设置参数

读取参数效果,当然也可以保存其他类型的数据,例如URL等。

代码效果:(主要目的是非常方便调用,最好只是一行代码就可以了,代码太多了,就没有组建的意义了,不是简化调用了)
BaseSystemInfo.UserInfo 为当前操作员的信息,谁破坏了系统,是谁干的,总需要有个依据吧,最起码能有个IP地址吧。
若是谁搞破坏了,警察叔叔来抓,还好有个依据。
?1

private
?
void
?btnSet_Click(
object
?sender,?EventArgs?e)
?2



{
?3
??//?本地模式
?4
??ParameterService.Instance.SetParameter(BaseSystemInfo.UserInfo,?"Application",?"ApplicationPeerPage",?"PeerPage",?this.txtSetApplication.Text);
?5
??ParameterService.Instance.SetParameter(BaseSystemInfo.UserInfo,?"User",?"UserAPeerPage",?this.txtSetA.Text);
?6
??ParameterService.Instance.SetParameter(BaseSystemInfo.UserInfo,?"UserBPeerPage",?this.txtSetB.Text);
?7
?8
??//?远程模式,采用接口、反射、工厂模式实现
?9
??ServiceManager.Instance.ParameterService.SetParameter(BaseSystemInfo.UserInfo,?this.txtSetApplication.Text);
10
}
11

12

private
?
void
?btnGet_Click(
object
?sender,?EventArgs?e)
13



{
14
??this.txtGetApplication.Text?=?ParameterService.Instance.GetParameter(BaseSystemInfo.UserInfo,?"PeerPage");
15
??this.txtGetA.Text?=?ParameterService.Instance.GetParameter(BaseSystemInfo.UserInfo,?"PeerPage");
16
??this.txtGetB.Text?=?ParameterService.Instance.GetParameter(BaseSystemInfo.UserInfo,?"PeerPage");
17
}
当然以上代码,不管是B/S,C/S运行模式下,都是可以调用的。
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。
评论
1360025#2楼 回复 引用 查看 ??
与君共勉之。#3楼 回复 引用 查看 ??
嗯 受益。非常希望能够提供源码,会有很好的学习作用。
#4楼 回复 引用 查看 ??
当用户A一直用的高分辨率显示器,习惯了一页200条,当一天他到分辨率小的上时,就显示不了了,当他调过来,但他下一次到原来的高分辨率机器上时又挂掉了....IP地址应该也无效,好多是DHCP..,不是DHCP换机器也很正常,总不能换个显示器,换个分辨率就要重新设置一下吧..#5楼[楼主] 回复 引用 查看 ??
很少碰到经常换电脑的,当然不是所有的系统都适合这么设计,但是,在机关工作的工作人员,很少天天换显示器,我已经2年没换电脑了,
天天用这个宽屏的显示器,当然软件有记忆功能比较好,不能每次都
跑到后台设置去设置每页显示几条,而是能记录用户的当前选择是比
较友善的。
宝马车,夏利车都是车,他们都有4个轮子,4个门,但是他们的差别
在于每个细节上。
为什么 cnblogs 比其他博客好用,大家也应该有所体会。
#6楼 回复 引用 查看 ??
要设置的参数有好多好多,比如同一个列表列表,有人想看1、3、5列,有人想看2、4、5、6列,这些都能作参数吗?#7楼[楼主] 回复 引用 查看 ??
金色海洋:你好,这些,可以按权限来处理或者按参数来处理要看你的实际需求,
若是列表里,有些人想看1,3,5,有些人想看 2、4、6,我以前是
按参数来处理的,
1:true,
2:false,
3:true,
4:false,
5:true.
6:false
我会这么处理,程序中读取参数配置情况,然后设置列表的Visible属性。
当然参数也可以进行批量操作保存,批量读取,一个个读取那效率是低一些。
#8楼 回复 引用 查看 ??
那么如果想要自定义显示顺序呢?#9楼[楼主] 回复 引用 查看 ??
金色海洋(jyk):我平时,很注重数据的排序问题,我的很多数据都有一个字段
叫 SortCode,可以对数据进行排序用的,这个字段里可以保存
参数的排序顺序,与我的序列组件可以组合起来用的。
#10楼 回复 引用 查看 ??
不是数据的排序,而是显示的字段的顺序,比如“产品名称”是放在第一列还是第二列,还是放在最后。可能每个人的习惯都不太一样。#11楼[楼主] 回复 引用 查看 ??
这个要看你了,我以前实现过这个功能,是弹出一个页面,设置列的顺序及是否显示,然后结果保存到参数里实现的。
#12楼 回复 引用 查看 ??
我怎么感觉,其实就是底层的方法多个参数。而这个参数怎么获取多了一些技巧。感觉这个就叫组件,有点牵强。关注吧,希望有好的思路。#13楼[楼主] 回复 引用 查看 ??
你说我们还能做出什么厉害的组件?又不是科学家,也不是技术牛人, 只能是最普通老百姓的技术,搞几下而已了。