时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码)  已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主,采用MVVM模式(有小部分没有修改过来),小巧.使用方便. 具体功能与更新如下: 计划助手:本软件由m.sh.lin0328@163.com开发与维护,免费使用,如有好的意见或建议,可发送邮件到m.sh.lin0328@163.com,谢谢使用!注(功能与特色):1.本软件使用方便.操作简便:2.…
原文:[原创].NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略 .NET 业务框架开发实战之九 Mapping属性原理和验证规则的实现策略 前言:之前的讨论一直关注在怎么从DAL中获取数据,以及数据的Mapping问题.实际上,一个业务框架最主要的作用就是简化业务逻辑的编写和开发. 本篇的议题如下: 框架的借鉴 综合考虑 系列文章链接: [原创].NET 分布式架构开发实战之一 故事起源 [原创].NET 分布式架构开发实战之二 草稿设计 [原创].NET 分布式架构开…
原文:[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略 .NET 业务框架开发实战之八 业务层Mapping的选择策略 前言:在上一篇文章中提到了mapping,感觉很像在重新实现NHibernate.其实文章的本意是想反映出Richard在思考的时候的一些选择:利用现有的,还是最后自己用别的方式实现.如果一上来就说什么什么好,那太武断了,也很片面,系列文章反复的在强调一点:技术有它的适用场景,没有完美的技术.很多的朋友说本系列在近似的开发一个ORM,其实不是:ORM就是把…
前言 这篇文章是WPF框架系列的最后一篇,在这里我想阐述一下我对框架设计的理解. 我对框架设计的理解是这样的: 框架设计不应该局限于任何一种设计模式,我们在设计框架时,应该将设计模式揉碎,再重组:这样设计出来的框架才具有一战之力. 框架设计应该根据项目团队成员水平量身定制. 我上一篇文章<我们都知道,如何不被淘汰.>中谈到,开发人员分为程序员和代码工人两种. 这两种开发人员的技术实力差距是巨大的:如果框架设计时不考虑团队成员的技术实力,那么框架很难发挥出最高战力. 比如,如果开发人员大多是代码…
前言 我想,有一部分程序员应该是在二三线城市的,虽然不知道占比,但想来应该不在少数. 我是这部分人群中的一份子. 我们这群人,面对的客户,大多是国内中小企业,或者政府的小部门.这类客户的特点是,资金有限,人力有限. 什么意思呢?就是你如果敢给他安一台Linux服务器,客户的信息员和测试员会把你堵在墙角问候你全家安好,他们Window都用不明白呢,你给安Linux,要疯啊. 所以,Core对我们而言,没有意义,因为大家都是Windows. 关于业务 在二三线城市的我们,立身之本不是写算法,也不是各…
MVVM的特点之一是实现数据同步,即,前台页面修改了数据,后台的数据会同步更新. 上一篇我们已经一起编写了框架的基础结构,并且实现了ViewModel反向控制Xaml窗体. 那么现在就要开始实现数据同步了. DataContext—数据上下文 在实现数据同步前,我们要了解一个知识点——DataContext. WPF中每个UI都有一个Content和一个DataContext,那么Content和DataContext是什么呢? Content:Content是指页面内容,即我们编写的代码,或者…
这世上,没人能一次性写出完美无缺的框架:因为,任何一个框架都需要项目的淬炼,然后才能升华,趋近完美. 所以,框架是个反复修改的东西,最终形成的东西. 如果你学了一点技术,觉得自己可以写出框架了,觉得自己有架构师的能力,然而自己总是怀才不遇——那一定是你的错觉. 因为,你框架没有经过项目淬炼:而淬炼过框架的人都了解,设计的再好的框架,最终会被业务需求打的细碎,然后被开发人员搅和再一起. 所以细节决定成败,没有细节的框架就是扯淡. DataControl—数据控件 上文我们已经编写出来了WPF的MV…
前言 这个框架写到这里,应该有很多同学发现,框架很多地方的细节,其实是违背了MVVM的设计逻辑的. 没错,它的确是违背了. 但为什么明知道违背设计逻辑,还要这样编写框架呢? 那是因为,我们编写的是框架,是使用MVVM的概念编写框架,而并不是要完美的实现MVVM设计. 两者有什么区别呢?区别就是前者是实战,后者只是个理念. 在实战架构中,并不是UI的东西都一定要放在UI层写,逻辑的东西放在逻辑层写的.因为,架构的目的是让程序员更好的写代码,而不是让代码死死的固定在某一层. 所以,我们在编写框架时,…
jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数据以htpp请求格式拼接成字符串.serialize确实是能够解决一般的提交数据.但是有时我们需要的是一个object对象,而不是字符串(比如jqgrid reload时设置查询条件参数,就需要object对象).方法如下: (function(window, $) { $.fn.serializeJson…
一懒起来就好久没更新文章了,其实懒也还是因为忙,今年上半年的加班赶上了去年一年的加班,加班不息啊,好了吐槽完就写写一直打算继续的自动化开发 目前各种UI测试框架层出不穷,但是万变不离其宗,驱动PC浏览器的基本上底层都是selenium,驱动无线app和浏览器基本是appium.monkey之类的,底层都是基于官方支持的自动化测试框架开发而来,然后上层又做了各种封装 首先在开始计划开发自动化时,第一步是了解目前已有的自动化开发技术,上面说了,最底层的就那几种,根据实际要去测试的业务需求选择合适的自…