系统之间接口的可移植性考虑
摘要:前些年公司各个系统之间的接口大多通过数据库链接服务器来相互之间推数据或者拉数据,因为这些系统的数据库都部署在公司到内网中,且属于同一网段,使用视图来提供数据源,通过作业来执行存储过程取数,设置好作业到执行频率来控制执行频次。这些年过去了,系统之间到接口越来越多,同步作业也是越来越多,也越...
阅读全文
WPF与winform与silverlight的区别
摘要:收到了一封学生的邮件: =========================== 金老师您好: 最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分。但是我目前对于.NET的WinForm、wpf、silverlight这三者的关系弄的不是很清楚,一般书中很少介绍wpf和...
阅读全文
WPF与WinForm开发有什么区别?
摘要:WPF与WinForm开发有什么区别?2010-11-06 21:43WPF开发于WinForm之后,从技术发展的角度,WPF比WinForm先进是不容置疑的。我觉得WPF相比于WinForm有下面的一些较好的特性:解决Window Handle问题在Windows GDI或WinForm开发中复杂...
阅读全文
适配器模式的随想
摘要:前段时间关注设计模式比较多,看了很多设计模式的书和案例,其中适配器模式让我想起了我们生活中的各种案例,比如充电转换器,多用途转换器等等。现在科技发展到了这个地步,尤其是我们的软件的发展,很多都是借鉴了我们硬件发展的思路来的,比如这个适配器就是从硬件发展起来的。 还有我们软件的接口概率也是从硬件这边起源的。可以这么说,各个行业的发展的思想是可以相通的,所以我们的软件技术发展到了今天,其实是融合了多方面可成熟经验到里面的。尤其是软件的设计模式,更是集各种思想之大成的。正所谓触类旁通也是这个道理。 形而上者谓之道,形而下者谓之术,我们中国人在古代往往重道而轻术,结果导致几千年遥遥...
阅读全文
引用一个网络图片作为样式的致命悲剧
摘要:昨天下午一直运行良好采购系统突然出现了致命问题,采购订单无法新建和编辑了,刚开始我们以为只是个别客户的电脑配置和浏览器设置有问题。但是很快就有大面积的用户反映采购功能都无法正常使用了。这下让我们不得不重新审视这个问题了,于是我们登录生产环境打开采购画面发现了同样的问题。 我们发现在采购订单页面请求数据的时候出现了一个在向xxx.com网站请求数据,于是我们马上进入服务器上查找那个文件中有这样的代码,终于我们在一个css文件中发现有一个样式引用了一个xxx.com/photo的图片。 这种低级错误现在居然爆发了,而且影响很大,后果很严重,由于该网络图片突然无法访问,导致整个系统的采购功能有3个小
阅读全文
那些代码中我们常犯的错误你有木有。。。
摘要:写了这么多年代码,遇到的Bug和看到Bug,相信已经很多了,想必大家对于取数据,截断数据,拼接数据之类的操作应该是非常熟悉的了。先列出如下几个例子:示例1: int BillID=DsData.Table[0].Rows[0]["BillID"].ToString(); 示例2: string strNo=strSno.substring(0,strSno.Length-6); 示例3: string strDateTime=txtDate.Text.trim();DateTime dt=DateTime.Parese(strDateTime); 以上3个例子都没有考虑异常
阅读全文
长假引起的系统审批流的变更的思考
摘要:马上就要到国庆长假了,今天突然有经销商用户询问,关于以往的一些业务审批和审核流程的时间点的问题了。原来费用报销的时间点是每月7日前完成,但是由于10月国庆7天长假,根本不可能完成提交,更别论审批了啊。所以用户纷纷来电询问此事,是否要考虑延期之类问题,或者是否要求提前开始提交。 用户的担心是实际的,但是是多虑的。因为系统中有日历即每年的工作日历都有保存,只要你将今年的工作日历保存到系统了,并且设置好了各个审批等流程节点的工作日设置,那么无论放假还是正常情况都会由系统自动帮助调整并提示用户完成各项预定工作了。 所以在考虑设计系统之初关于工作日历的设置就要包括在功能性的规划中,这样对于系统后期的修改
阅读全文
手机端系统提交数据的创建时间验证的问题
摘要:今天查看系统时,发现手机端系统提交的数据中存在一些日期特别离谱的数据。比如创建时间为1978年和2019年的数据都出现了。果真是穿越了半个世纪了。于是我马上将问题提交出来,安排同事处理,并分析产生数据的原因,并且寻找解决方案。 经过一番验证终于发现了其中的蹊跷,原来手机系统只是在应用系统登录时会验证时间,而且如果是断网状态是不会验证的。由于在断网状态下可以编辑保存数据,而且上传手机端系统的数据到服务器时也不会验证创建时间,那么这些数据产生也不足为奇了。 而且以前的系统是不会将创建时间差的离谱的数据显示在前台,所以一直也没有人关注。而且业务员在手机上提交数据如果发现没有显示到PC系统上时也会以为
阅读全文
系统功能的可配置性设想
摘要:系统功能分步上线,比如先一步步试点上线。分批次的上线一些业务功能。这样的设计大家考虑过没有啊?最近在配合SAP做一个项目时,SAP的同事突然提到,新项目的上线希望能够分批次按照功能点来多次上线,以保证新的业务功能有一个试点观察的时间。这下可把我们其他几个相关系统的负责人搞 了。有些业务的功能点分批上线没有什么大的问题,但是要做到灵活可配置的按照行政区域或者不同分公司不同时间使用这些功能就麻烦了。但是SAP中确实可以做到这样的灵活配置。不得不顶下SAP,能做到如此灵活。但是我们这些系统就没有这么灵活了。虽然我们也可以通过系统参数配置一些个性化的功能,但是如同SAP那样灵活的配置还是做不到的...
阅读全文
利用业务中的主动和被动巧妙的驱动用户遵守规则
摘要:最近的半年里总是会在财务对账期间接到一些人为失误导致的业务问题。财务对账这个功能已经上线了半年多了,业务也很稳定了,但是每个月都会有分公司的财务人员出现漏审批对账信息或者忘记审批的现象。同时经销商也会有忘记对账的情况。虽然我们系统和SAP都对对账业务的期限做了很严格的管控,并且过期不候,但是意外的几率还是一如既往的会出现。不得以我们只得从买家和卖家的心里来做一个分析了。当你发生了交易时,是买家关心对账单还是卖家关心呢?一般而言买家应该更关心些,因为我已经付钱了,而卖家已经收到了钱,钱在我手上了,错了等几天改也没有关系。就比如银行的信用卡中心多收了5000元前,你看到账单后是否马上就会去...
阅读全文
一时失误的权限设计
摘要:最近接到一个需求需要增加一个功能的权限控制点。以前由于设计时没有考虑权限这块,这是允许管理员进行操作,但是随着业务的发展和实际需要,使用管理员账号来做相当的不便。所以决定加上这个权限控制点。具体来说说我们这个需求吧,其实也不难。就是要给客户批量导入,客户批量修改,客户批量更新增加一个新增和修改的权限。刚开始我也认为很简单,接到需求后,我了解清楚,并和BA确认完毕后,就将任务交代给另外一个同事进行开发。自然这个任务也没有想象的那么难,很快就完成了开发和单元测试。但是经过测试人员的测试发现了一个诡异的Bug,就是批量新增和批量修改的权限同时选择时,会相互覆盖,也就是说,你如果同时选择新增和修改..
阅读全文
闲谈企业管理--执行力的问题
摘要:最近由于了解到公司业务系统中关于财务和费用报销方面的后台运维处理的案例特别多。总结起来有如下几类: 1.财务对账到了审核日期没有审核的,过了对账日期但是没有对账提交的。2.费用报销申请都过期了还没有提交的,有的甚至长达半年,只好补录了。3.排班和考勤也是过了提交日期没有提交,只好补录。 4.本来系统严格进行控制其他业务流程也是,很多时候不得不后台帮助处理。 其实针对这些情况,业务上已经做了明确的规定,过期不候,只能通过系统上单处理,然后让运维和技术支持人员来手动处理,有些是要通过脚本处理,有些是要后台业务功能实现。 这样做有时候风险不可控,而且造成了相当大的工作量,实在是徒劳无功。但是对于这.
阅读全文
执行力的不够的系统解决方案
摘要:前几天我写了一篇文章讲述了执行力的问题--系统的无奈。那我们今天来从另外一个角度来看待这个问题,怎样使用的系统来解决这个执行力的问题。 其实上次提到的需求问题无非是由于数据需要整理,但是为了防止分公司不按时交作业,或者欺骗领导,不得以采取了交作业的方式来解决问题。但是其实我们还是可以使用系统来解决这个监督问题。 怎么解决呢?由于我们是想检查下面的文员是否能够进行了资料的修改,并且能够看到修改前后的资料的关键信息,即要求能够记录下来每次修改的值,记录每次修改的日志。然后能够查询处理这些修改记录,所以这个需求的源泉找到了,那么解决方案也可以出来了,使用一个基础资料修改日志的报表来解决监督的问题。.
阅读全文
SAP接口设计的扩展性考虑
摘要:由于现在的系统和SAP的接口出现了几次变更,因此需要对系统进行设计改造。由于系统中和SAP交互的接口不止一处,而且也是在不同的时间段进行开发,并由不同的人员来完成的,因此我在维护升级的过程中,发现了以前设计的可借鉴之处和缺点。 首先是财务对账接口的修改,由于需要在SAP中查看报表中多增加几个字段,本来应该是很容易搞定的事情,但是我查看了下接口的代码和配置文件发现,这个居然要更改接口的代码。本来可以通过配置搞定的事情一下就变复杂了。 接口代码还是用VS2003开发的,因为以前是使用的.net中自带的SAP .NET Connector 2.0进行开发的,还得在VS2003中进行修改,但是现在已.
阅读全文
异常情况监控系统的设计随想
摘要:最近这段时间由于机房调整,硬件更新,网络改造等工作不断实施,引起很多问题,比如服务器不稳定,网络经常故障等等。结果导致系统问题频出。如系统服务器宕机,数据库服务器宕机,网络超级卡等等。用户的意见很大,我们也疲于应付这些问题。 前几天在处理完一次异常事故后,我们进行了探讨建立公司的系统异常故障的预警信息发布平台的可能性。考虑到公司的应用系统比较多,而且分布在多台不同的服务器上,而且服务器也在不同的地方,为了有效及时的管理,建议建立一个比较规范的异常信息预警发布平台。如果服务器和硬件设备故障,则预警发布系统将收集到的异常信息通过短信及时发给系统开发和配置及维护的人员,这样保证第一时间收到问题,解.
阅读全文
系统之间的接口测试
摘要:应用系统之间相互交换信息,一般都得通过接口来实现。实现方式也有多种多样,webservice,wcf,remoting等等,但是实现这些接口后,测试可能就需要几个系统联动才行,但是有时候如果都是在生产环境的时候,恐怕不是很方便。特别是考虑到生产环境的特殊性,有时候在测试环境都OK,但是上了生产环境就趴窝的情况也很多,但是有时候还不是那么容易发现问题。 最近公司的接口进行了些小调整就出现了这种问题,由于在测试环境测试非常顺利,而且改动也不大,所以大家都以为很顺利,但是等到上线后才暴露出来问题。对于上线时,一般我们会在上线后自己内部登陆系统去进行一些测试,但是此次由于跨了几个系统,所以没有动员那.
阅读全文
基础数据的来源的统一
摘要:临近清明节的这几天,请3天假可以连着休息8天,对于上班族来说,这真是一个难得的休假机会。因此这几天休假的同事比较多,因此我也就暂时代理了几天的二级运维的工作。从这几天接收到运维工作来看,基础数据同步的问题占的比例较大。就拿一个销售组织对应关系的例子来说明下。某经销商下了个采购订单,传送到SAP发现对应的销售组织不对,马上给返了回来,要求重新检查后再传送,经销商于是重新审核后再次传送发现还是不对啊,于是和一线运维纠结了起来,一线运维又将问题反馈给了我,于是我在后台进行了对比,发现我们这边的数据对应关系没有问题。同时我也检查了我们系统基础数据的来源地,上游的基础数据平台系统,那里也是正确的。于是.
阅读全文
导入Excel数据时对数据校验提示方法
摘要:最近在工作中经常遇到客户反映批量导入数据时,提示导入的数据出错后,不能非常方便的定位到那些行的具体那些列的数据出现了错误。 于是公司专门组织了一次专题的讨论会议,想集思广益解决该问题。有一位同事做了一个用VS2012做了一个插件安装后会在Excel文件中显示出来,可以通过该插件对Excel中的数据进行校验,并对出现错误的行和具体的数据项进行标示,方便用户定位错误。对于B/S架构的系统这样做的确可以比较好的解决这一问题。但是如果是C/S架构的程序,我们可以直接在导入Excel时,对数据进行校验,然后将错误的数据也用类似的方法在导入的Excel中进行标示出来。这样也可以达到同样的效果,而且还不用让
阅读全文
数据精度问题的处理
摘要:数据精度这是一个很小的问题,在.net中都有专门的函数来进行处理,System.Decimal.Round,可是你知道System.Decimal.Round(a,2),System.Decimal.Round(a,2)和System.Decimal.Round(a,2,MidpointRounding.AwayFromZero)这2个函数的区别吗,还有在SQLServer数据库中 Round(a,2)的取值是怎么样的吗? 一般情况下,我们在日常生活中是使用4舍5入来进行计算的,但是现在国际的有的就是使用4舍6入5成双的算法,即在C#代码中取小数时采用System.Decimal.Round(
阅读全文
基础数据错误的痛苦
摘要:前段时间系统的基础数据进行了几次变更,根据公司的要求将部分数据进行了修改,也导入了部分新的数据。当时虽然也进行了审查,但是一段时间后后果才表现出来,有的业务单据的单位出现了问题,有的转换系数出现了,有的产品代码出现了重复,而且我们系统和SAP及其他系统都有接口,其他系统的基础数据出现问题时,也将数据传给了我们的系统,导致我们本来没有问题的数据也出现了问题,现在状况十分糟糕,乱象十足啊。 已经有同事处理了一个月有余还没有搞定,因为上面经常发给我们一些数据,要求更新,但是这些数据是否会导致问题却没有人考虑很到,而且即使审查了也不能保证就一定正确,因为可能需要一段时间才能将错误暴露出来,而且目前是多
阅读全文