“个人设立”设计思路
发布时间:2011-07-03 07:06:34 文章来源:www.iduyao.cn 采编人员:星星草
“个人设置”设计思路
系统中用户可以自己定义页面宽度,待办事项列表显示行数,是否自动弹出提醒窗口,审批意见默认项,下面我就这一需求实现思路进行描述。
一、在.config文件中定义“用户自定义属性”栏目的数据结构及默认值。
<userSettings>
<applications>
<add name ="OAPortal" description="门户应用">
<programs>
<add name ="Portal" description="门户">
<properties>
<add name ="UnCompleteTaskListPageSize" description="待办事项单页显示条数" valueType="Integer" category="列表展示" defaultValue="10" minValue="1" maxValue="100"/>
<add name ="UnReadTaskListPageSize" description="通知单页显示条数" valueType="Integer" category="列表展示" defaultValue="10" minValue="1" maxValue="100"/>
<add name ="CompletedTaskListPageSize" description="已办事项单页显示条数" valueType="Integer" category="列表展示" defaultValue="10" minValue="1" maxValue="100"/>
<add name ="SearchPageSize" description="全文搜索单页显示条数" valueType="Integer" category="列表展示" defaultValue="10" minValue="1" maxValue="100"/>
<add name ="CommonOpinion" description ="常用意见" valueType ="String" category="公共设置" defaultValue="同意 不同意 已阅"/>
<add name ="AutoShowNotify" description ="是否自动弹出日程提醒窗口" valueType ="Boolean" category="公共设置" defaultValue="true"/>
</properties>
</add>
</programs>
</add>
</applications>
</userSettings>
配置信息中包含如下一些信息:
1、应用名称,applications,在大项目中,一个系统可能有多个应用。
2、程序名称,programs,一个应用可能有多个程序。
3、属性,properties,一个属性包含,name(名称),description(描述),valueType(值类型),category(属性类型),defaultValue(默认值)
二、在数据库建入相应表,用于存储用户的自定义设置信息,数据结构如下:
[USER_ID] [nvarchar](36) NOT NULL,
[APPLICATION_NAME] [nvarchar](36) NOT NULL,
[PROGRAM_NAME] [nvarchar](36) NOT NULL,
[PROPERTY_NAME] [nvarchar](36) NOT NULL,
[PROPERTY_VALUE] [nvarchar](512) NOT NULL
三、数据读取
数据读取需要考虑如下方面:
1、数据读取频繁(必须用缓存来解决)
2、用户还没有设置“个人设置”(所以取用户的“个人设置”数据前,先要取.config文件中“个人设置”数据项及其默认值来初始化个人设置数据实体对象。
3、取出数据库中“个人设置”项,更新当前“个人设置”数据实体对象,但更新之前需要判断数据库中某项设置,在定义项中是否还存在,或许某一项“个人设置”已经从.config文件中删除了。
public static UserSettings GetUserSettings(string userID)
{
ExceptionHelper.TrueThrow<ArgumentNullException>(userID == null, "userID");
UserSettings us;
//先从Cache中读取,若已过期,则重新构造,并写入Cache
lock(thisLock)
{
if (UserSettingsCacheQueue.Instance.TryGetValue(userID, out us) == false)
{
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
网络信息安全技术和网络安全技术有什么不同
请问:网络信息安全技术和网络安全技术有什么不同,如果自学网络信息安全技术/网络安全技...
-
请教一域名解析到多个共享IP
新买一个域名 17mf8.com
现有两个空间,里面分别放着一个论坛程序,一个主网站程序.两个空间都是共享I...
-
刷客动力搜索引擎seo刷流量刷百度下拉列表刷广告软件的用法(配图)
先看官方的介绍:
刷客动力网络营销系统工具是由好耶网络(...
-
CryptAcquireContext和CPAcquireContext有什么区别?
最近在搞CSP的开发,一直用CryptAcquireContext这个函数获取句柄,后来看了一些资...
-
冰天雪地裸体腾空360° 跪玻璃 求一个收费的长期的稳定快速的VPN
冰天雪地裸体腾空360° 跪玻璃 求一个收费的长期的稳定...
-
全国大学生信息安全竞赛
我是一位大二的信息安全专业的学生,想参加明年的全国大学生信息安全竞赛,不过不知道选什么课题之类的,比较...
-
网址能ping通,但是打不开网页
今天遇到这么一个问题。
网页打不开,提示说“载入页面时到服务器的连接被重置”,也不知道是怎么回事,但...
-
对Nfsen和Nfdump比较熟的来指点我下
假如我想抓网络信息,用Nfdump将nfcapd抓的信息解析出来可以存入一个文本,然后在nfsen图形界面...
-
不装杀毒软件电脑会有多大的危险?
装了个卡巴斯基,结果用个word它都查杀,杀毒能力强,但这是宁可错杀一千,不能漏网一个的手段,感觉这软...
-
笔记本装了win7通过无线路由上网,虚拟机装了fedora。fedora 无法ping通win7
笔记本装了win7通过无线路由上网,虚拟机装了fedora。fe...