摘要: 最近客户部署了某著名公司的工作流软件,我也顺便研究了一下,发现了一些问题。目前的工作流系统,从结构体系看都是相似的,主要包括: - 工作流引擎 - 图形化的流程设计器 - 表单设计器 如果从企业数据角度来看,我们分析一下各个组件的含义 工作流引擎当然是处理具体的业务数据(或叫流程实例)的节点状态流转,保存的是节点状态数据表单当然保存了业务数据,由于不同流转步骤需要的数据不同,表单里面也存在着非常多的脚本信息,这些脚本中以字段名的方式标识着数据计算公式。 流程设计器保存的是业务流程流转的规则,由于很多流程跳转是有条件的,因此这里面就产生了大量的脚本,而流程跳转条件又多与表单中的字段有关,因此脚本 阅读全文
posted @ 2011-04-13 18:16 窗户纸 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 最近客户在安装某款国内著名ERP管理软件时,我在现场指导过程发现了一个有意思的问题,虽然该软件是由具有数十年经验,并占有财务软件绝对市场控制权的企业开发的,但是从其安装过程看,还是有很多漏洞的。 其系统安装时需要MS SQLSERVER的SA帐号进行配置,厂商的安装人员想都没想就配置了个空SA密码,经提醒后倒是设了个密码,不过设置完后发现已经在客户端安装的软件都没法用了,又无奈改回了空SA密码... 从其安装过程看,作为C/S架构的软件,其最起码有如下问题: 1. 这种现象说明其在安装过程中没有创建数据库专用管理账户,而是使用了数据库服务器的最高管理员账户。如果数据库服务器存在多个软件系统的数 阅读全文
posted @ 2011-04-09 13:21 窗户纸 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 权限管理是所有网络软件都无法逃避的功能,只要是多用户使用,就必须为特定的用户访问特定的功能设置权限,从目前的技术上看,无非如下几种:【只设置允许权限】针对特定组或用于,只对于授权访问的功能设置记录,这样在权限计算时,只要登录人有在权限清单中出现,则具有权限,这样处理编程比较简单,但对于配置权限的人就会非常痛苦,尤其是组织结构复杂时,如某个功能对于小组所有成员都可访问,但x除外,这样在设置时就要增加多个组,对于不太熟悉逻辑思维的日常管理人员,这样做无疑是灾难,他们宁可一个一个人用户的添加删除,也不愿用设置后自己也不知是否正确的组技术。其结果往往是放弃权限管理,大家谁都能用,或者不能用。【可以设置 阅读全文
posted @ 2011-03-19 09:32 窗户纸 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 经过一段时间的研究,渐渐的感觉如果使用得当,bindinglist还是很有用的,其中同步的方式两种都可以: 方式1: 在界面层使用 datagridview.Refresh()方法。 方式2: 在对象层使用BindingList.ResetBinding()方法。另外,如果需要处理删除对象的事情,可以重写bindingList的RemoveItem()方法, 比如有一个类为: public class Class1 { string _Name; public string Name { get { return _Name; } set { _Name = value; } } int We 阅读全文
posted @ 2011-03-06 17:53 窗户纸 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 在Datagridview控件利用下拉菜单进行数据输入可以使用户操作更加方便,在配置COMBOX控件时,只要设置了datasource, displaymember,valuemember,即可实现comboxbox的数据输入,如: 有一个类如下: public class Class1 { string _Name; public string Name { get { return _Name; } set { _Name = value; } } int _Weight; public int Weight { get { return Weight; } set { Weight = 阅读全文
posted @ 2011-03-05 19:00 窗户纸 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 软件开发项目具有风险大,周期长的特点,由于行业的复杂性,对于很多开发小组,人员的更替是十分频繁的,而软件开发项目的特点又恰恰是需要统一定义的信息非常多,包括组件名、对象名、变量名、界面、版本号、配置文件、功能清单等等,而人员的更替往往带来的结果是是新成员需要长时间的适应项目规范、定义等,而由于定义混淆而造成的编码错误占软件开发错误很大比重,因此,软件项目组如果能有一个很好的规范定义体系,可以大幅度提高软件开发的效率及软件质量。 由于面向对象的软件开发模式在减少代码冗余,解除项目组成员过多耦合等软件项目管理问题中具有特殊的优势,现代的绝大多数软件开发项目都采用了此种模式进行开发。 在此种模式下. 阅读全文
posted @ 2011-01-23 10:08 窗户纸 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 目前IBM等大公司推销其云计算概念搞得火热,骨子里就是2000年时就开始出现的分区技术,不管是PPAR还是LPAR,总之就是把一台高性能的小型机分割成多个性能可调的逻辑计算机。 在当时情况下,这种技术更多的考虑是安全性因素,因为每个逻辑计算机只跑一个关键应用时,应用造成了问题后,只需要重启这台逻辑计算机即可,不会对服务器的其他逻辑计算机上的应用造成问题。 随着云计算的“风起云涌”,分区技术在经过包装后被赋予了更多职能,但其还是面临着无法解决的问题:如果物理的服务器硬件坏掉了,所有应用都将完蛋。于是乎,还要处理分区技术下的备份问题、灾难恢复问题,一方面其技术难度远高于备份一台逻辑服务器,另一方面 阅读全文
posted @ 2011-01-21 18:49 窗户纸 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 俺家铃铛16个月了,天天由姥姥姥爷看着, 但最早却先叫的爸爸,现在只要我一进门,他就赶紧跑过来大声的叫“爸爸”,别人一概没这待遇,于是所有人都骂他“没良心”,因为我既不抱他,他摔了也不服他, 但有一条,他愿意干啥就干啥,我从来就默许。 阅读全文
posted @ 2011-01-21 13:21 窗户纸 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 在现代的编程技术中,客户端以对象的方式调用服务器上的数据及处理方法,可以大幅的简化分布式系统的开发难度,在.net世界中,人们在此广泛使用了Remoting技术,目前微软也在大力的推广其WCF技术,但这两种技术也存在着一定的先天缺陷。虽然WCF号称速度快过Remoting,但是底下的众多程序员却不太认同,其底层采用XML的通信机制决定其难以超越Binary方式传输的方式, 网上有一些专家自测的测试结果,如http://geekswithblogs.net/marcel/archive/2007/04/12/111542.aspx。 而Remoting也有他的一些问题,其断线重连似乎总是不太稳定 阅读全文
posted @ 2011-01-20 21:47 窗户纸 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 使用了对象映射转换层确实可以大幅简化开发工作,但最近研究了各家数据层的有缺点后,我发现自己开发数据层可能更划算些:1. 向Hibernate等著名ORM产品号称缓存的命中率达90%以上,但如果应用时分布到多台服务器上,甚至是客户端时,其缓存命中率会差得一塌糊涂, 于是乎大家都在说建立在其上建立应用缓存,但应用缓存会带来脏读、冲突等诸多问题。而自己编制数据层就可有选择的处理缓存问题,显著提高效率。2. 面向对象编程一个很突出的特点就是其支持继承,而继承的实现在数据库设计中有两种方式: 1) 父子类使用同一张表,特点是效率较高,但多个对象数的据在一起会浪费部分空间2) 父子类使用不同的表,并用相同 阅读全文
posted @ 2011-01-18 23:36 窗户纸 阅读(209) 评论(0) 推荐(0) 编辑