自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 用MVC做WinForm客户端

昨天突然脑洞大开,觉得WinForm客户端也可以做成MVC!想到就做!于是把以前做的一个WinForm工程拉出来,选了角色权限模块先试个水。第一步:调整项目结构,调整后结构如下图:第二步:拆分逻辑原来整个窗体类里面包含了很多业务逻辑,这部分不用说,直接拆分到Controller里面,还有工具栏点击事件的处理逻辑,也同样分离出来放到Controller里面。拆分之后,窗体类就变成了一

2016-03-22 15:08:47 10045 3

原创 一个不怕机器识别的图形验证码方案

图形验证码是一项非常重要的防攻击防护手段。从最初的数字到12306的各种女优,现在已经是至少第4代技术了。每一次升级换代,似乎都是道高一尺魔高一丈,没多久就会被机器识别技术给攻破。第一代的图形验证码是简单图形验证,通过把数字/字母转化成图像,然后用户识别后还原为原始的数字/字母输入。系统通过比对用户的输入和原始数据,就可以返回是否通过验证的结果。由于简单地拼接固定的图形,所以是很容易进行机器识

2016-05-31 17:44:11 11607 4

原创 位图算法在用户验证上的应用

前几天在博客园看到一个帖子,讨论两个整数集合比较的算法问题。呵呵,其实任何整数集合的问题都是可以通过位图算法解决。简单地说,就是把值转化为数组下标,将O(n)复杂度降低到O(1)复杂度来获得最高效率。当然,会牺牲一点点空间。解决单纯的整数集合比较问题,只是纯理论的。实际上,位图算法可以应用在用户登录之后的接口验证上。服务端的设计其实也没什么复杂的地方,就是维护一个数组罢了。只不过这个数组并非是

2015-05-23 19:23:26 1539

原创 开发团队的合理结构

到了年底,不免各种总结。。。在团队组成上,感觉应该如下图所示:架构师的职责是设计好业务架构,指导工程师在业务框架中进行模块设计,并把控整体质量。另外,对新手进行方法论上的指导。如果是初创公司,可能还需要比较多地参与到重要模块的实现中去。工程师的职责是设计业务模块并实现,在初创公司,是不应该有码农这种生物存在的,工程师需要自己编码实现。另外,不时地给新手技术指导。如果是在成熟的规模较大的

2014-12-28 11:56:59 1955 1

原创 14年总结

启动了2个项目,一个大一个小。大项目还在进行中,目标是全面企业信息化管理解决方案。小的已经完成,目标是用最快的速度解决最紧急的问题,目前看来效果不错。在大项目里面,个人完成了2个公共模块;9个基础模块;4个主数据模块。这些模块全部上线运行,最早上线的模块已经无故障运行130天。对于系统的稳定性表示很满意。总共写了7500行代码,历时150天。平均每半个月完成一个模块,每天5

2014-12-27 15:03:30 1066

原创 需求之象

我们从小就知道“盲人摸象”这个故事,但我们很少意识到我们的用户经常扮演的就是故事中盲人的角色。一般来说,在企业开发过程中,用户方的项目负责人会描述一个整体的业务架构,然后各部门的业务人员会告诉我们业务的细节。看上去非常完美,我们没有理由也不敢相信最后会无法完成这个貌似明确的,简单的任务。是的,一开始我们非常明确用户需要的是一头什么样的大象,甚至我们可以知道这头大象应该有几条皱纹!然

2014-12-05 09:23:27 1323 2

原创 一个需求变更的故事

昨天我们的物流部门提了一个需求,希望我能为他们做一张出库明细报表,以便他们统计和核对数据。嗯嗯,这个很简单的说,复制一个类似的模板,替换下数据源,按日期分组,20分钟搞定!这里简单插一下,介绍下我们系统中的报表的实现。报表是采用的第三方控件FastReport,通过设计报表模板—>定义报表(选择模板、分期规则、会计主体、报送对象)—>生成报表(即时、按分期规则自动)。物流部的同事用即时报表

2014-12-04 09:12:25 2771

原创 DEV TreeList 刷新技巧

终于搞定DevExpress的TreeList控件的刷新数据源后恢复刷新前节点展开状态的问题。由于控件本身没有提供这种方法,所以只能手动实现了。实现的思路如下:1、保存刷新前节点状态,试过几种方法都不理想,最后采取的办法是用一个List保存Expanded属性为True的节点的KeyID。var ids = new List();treList.GetNodeList().FindAll

2014-11-27 15:14:08 7907 2

原创 RBAC权限模型及数据权限扩展的实践

话说大家对RBAC权限模型应该是耳熟能详了,但真正用的好的并不多。而且原始的RBAC模型并不包含数据权限的管理,网上也几乎没有相关的文章可以参考。本人经过几个项目的实战,在其基础上扩展出一套可行的、简单的数据权限模型,希望能够帮助大家解决数据权限管理上的老大难问题。至于什么是数据权限,请移步我的其他文章,这里不再敷述。1、关于角色的继承:在上图描述的模型中,并没有实现角色的继承。既

2014-11-12 12:53:09 5980 1

原创 改进版本的精确数据权限定义和实现

由于工程实现上的某些小问题,为了达到方便实现如图效果,对数据结构做了一点点的调整。新的数据结构如下图:第一个图片的数据源视图:IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(N'RoleDataPermit') AND OBJECTPROPERTY(id, N'ISVIEW') = 1)DROP VIE

2014-10-25 21:29:44 2141

原创 高精度数据权限定义和实现

一个精确数据授权方案,可实现例如授权某人自己和指定某人的数据可读写,部门其他人的数据可读这样的权限描述。本文通过思维导图对数据权限进行分析和定义,进而提供相应的数据库表结构的设计。

2014-10-25 07:33:46 2206

原创 WCF方法重载精要

1、接口类中给操作方法定义别名:就是

2014-08-25 12:14:53 1558

原创 无配置WCF客户端的一个简单到令人发指的实现方法

废了好几天的时间,看了无数的文章,啥都不说了,贴

2014-08-18 14:48:02 1558 1

原创 DEV TreeList 节点图标重绘的小技巧

在用户界面开发中,我们往往希望在TreeList上实现

2014-07-19 22:55:33 5781

原创 一个软件系统的架构到底应该包含些什么?

从事企业信息化系统开发已经3年,回顾这3年

2014-07-10 17:26:47 3999

原创 功能权限和数据权限管理的实现

1      引言权限,可分为“功能(操作)权限”和数据权限两种,在系统中,两种权限应当同时有效。例如,在windows系统中,某用户具有新建一个文件的功能权限,该用户在C盘没有写权限,但在D盘有写权限;则该用户不能把他创建的文件保存在C盘而只能保存在D盘。在上述例子中,能否创建文件是由功能权限来控制的,能否保存文件是由数据权限进行控制的。只有两者同时有效,用户的业务才能顺利进行。简单

2014-04-09 18:00:35 35572 2

原创 浅谈数据权限的实现方法和作用机制

在企业开发中,往往对权限的控制有较高的要求,其中也经常会被要求实现对业务数据操作进行权限控制。在这里,分享一下本人在企业开发中的数据权限的实现经验。本文所用的方法和实例,可在CSDN的代码托管平台找到。需要的童鞋可点击:https://code.csdn.net/xuanbg/starx-bip自行查看或下载。要想管理数据权限,首先得定义数据的归属和用户对数据的访问范围,和功能权限相比,这一点

2014-03-07 13:03:22 6616 2

原创 sql 查询条件中需要使用 != 情况下的优化

随手写了段代码: join BB_BizObjects HC on HC.Id = HR.ForeignKey join BB_BizObjectValue_String ST on ST.ObjectId = HC.Id and ST.PropertyId = '75ecbb0f-b52c-4d47-8e0d-b360cd

2013-05-18 12:29:44 1242

原创 通用权限设计

1      引言权限,可分为“功能(操作)权限”和数据权限两种,在系统中,两种权限应当同时有效。例如,在windows系统中,某用户具有新建一个文件的功能权限,该用户在C盘没有写权限,但在D盘有写权限;则该用户不能把他创建的文件保存在C盘而只能保存在D盘。在上述例子中,能否创建文件是由功能权限来控制的,能否保存文件是由数据权限进行控制的。只有两者同时有效,用户的业务才能顺利进行。1.

2012-07-23 13:19:31 2170

原创 通用数据查询分析器设计

1    定义数据查询分析器的目标,是提供用户可自定义的、多维度的观察和分析目标数据的工具。实现用户对业务数据进行动态查询、分组、筛选、汇总的需求。数据查询分析器,实际上是一个简化版本的BI应用。所以,他也需要定义ETL(数据的抽取-转换-装载)过程。在这里,我们设计为通过数据模型文件来定义这一过程,用户可以通过选择不同的数据模型来加载所需要观察的数据,然后通过模型中定义的切片方向(观察维

2012-07-23 13:16:07 1223

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除