摘要:
背景 前期在做一个装配线系统自动化扫描打标应用时,系统要求操作实时性比较强,所以没有用ORM之类的工具,可是开发组成员设计的数据库操作类显得有些复杂,调用代码量大,可扩展性低下,更不用说灵活性了,换个数据库类型,这个组件就废掉了。 我自已尝试封装了个数据库操作帮助类,自认为还算简单。 同时,考虑到将来可能涉及到其他项目不同数据库类型也有同样的需求,在设计方面也提供了扩展的接口,总之,尽量使之... 阅读全文
摘要:
发布一款开源用户界面和布局的套件,请朋友们多提提宝贵建议! XiaoCai.WinformUI主要是解决用户界面和布局的套件,能够快速进行合理性布局,美化用户界面。 因为之前发布到谷歌里,好多朋友都说没办法下载到源码,在此表示歉意,现在补充上。 希望喜欢的朋友,有发现bug的,能修正的给我改善的参考意见喔。 源码下载的地址:https://github.com/aganqin/XiaoCai.WinformUI 阅读全文
摘要:
使用背景 最近写一个打标的配置文件读取,让客户能够更改配置档的功能,我考虑用了INI档或修改App.config。 概述 INI档 INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主要存放的是用户所做的选择或系统的各种参数.INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如:[Section1] KeyWord1 = Value1 KeyWord2 = Value2 ...[Secti 阅读全文
摘要:
我的源码分享 曾经,看到别人漂亮的系统界面,合理的布局,可是却没有提供源码,道理很简单,就是有偿提供,实际上对于有些技巧的东西也并没有多么难,只是不懂原理,感觉到困难罢了。 而对于刚毕业的我,求知欲强烈的我试着问过拥有者,有的是出口就是5K,少则3K,几百,对此我迷茫过,也许是这个社会就这样,金钱的年代。 主要的功能有:仿Office2007的按钮效果,鼠标经过等效果,Office Outl... 阅读全文
摘要:
为什么要开源? 有句:“赠人玫瑰,手有余香。”,在园子里学习有些一时间了,得到了很多人的帮助,我自已练习做了一套基于Winform的管理类小软件《小菜用户权限管理软件》,只当学习用,今天汇总一下开源分享给大家。 我这个框架集成了好几个有用的框架:WeifenLuo.WinFormsUI.Docking.dll布局组件,分页组件,皮肤套件等,我在整体色调等方面做了些优化,让整个系统看起来比较协调... 阅读全文
摘要:
前言在个人成长过程中外部环境因素固然重要,但决定个人命运的其实却是自身不安于现状,勇于超越自我的求变精神。“我应该朝哪个方向发展?我真正的追求在哪里?我不做这个还可以做什么?”这是师弟们常问我的问题,但我也常常被同样的问题困扰。消极的或是不愿改变的人可能会说:我还能做什么啊,不会别的,只能做这个了,其实我认为一个IT人还是有很多出路的,比如:可以钻研技术以成为技术专家、从项目管理成长为职业经理人、从需求分析过渡为咨询师、售前支持、从投标讲标谈判变为销售经理,你做乙方也许也会被甲方看中,转成客户方的技术人员,转行也是一个方向(好像最近网络上那个地产美女还是程序员出身),如果你的客户是做外贸的,也 阅读全文
摘要:
为啥用MongoDB?赶NoSQL时髦? Auto-shard等激动人心的特性? •No! 08年,还都是浮云。 最初的想法是寻找一个可靠的分布式K/V解决MySQL的问题。NoSQL(NoSQL = Not Only SQL ),意即反SQL运动,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于目前铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。 所以说,NoSQL不仅仅是产品,更是一项运动! 原来的架构•MySQL(Percona),Master-Master-Slaves•H... 阅读全文
摘要:
背景 到TL有整整一年了,在这一年中公司从无到有,完成了两个自动化系统整合项目,老板一直强调模块化设计这个理念,可是由于团队基础实在是薄弱,很多规范没办法执行起来,以致于这两个项目的源码惨不忍睹,代码写得很乱,可以重复利用的模块实在是太少。所以今年我主要的精力投在软件开发规范化这一块,以系统可扩展,模块化,可复用性为原则。 虽然自已技术还是个小菜,但只要有思想就应该是简单的问题,那么我从一个“用户登录模块”设计开始,把这个模块抽离出来,让所有子系统都能够复用这个登录组件,并且降低模块与主框架之间耦合。 在制造业的系统架构中,一般分为好几个工作站,每个工作站都有一个子系统,每个子系统... 阅读全文
摘要:
背景 最近要求项目组成员开发一个通用的分页组件,要求是这个组件简单易用,通用性,兼容现有框架MVVM模式,可是最后给我提交的成果勉强能够用,却欠少灵活性和框架兼容性。 设计的基本思想 传入数据源,总页数,当前页码,每页记录数,达到分页显示数据的功能。 优化 我把原本不支持MVVM的源码改善了一下,可能还可以再优化得好些,支持MVVM模式,较果如下图: 添加一解决方案:... 阅读全文
摘要:
应用场景 我想把View层的一个布局控件和功能按钮传到ViewModel层,达到动态变更布局,同时灵活获取功能按钮的属性,让View和ViewModel完全分离,而不受View层影响。 最后我想到使用IMultiValueConverter实现多参传入ViewModel层来解决,不知道还有没有更好的办法? 基本原理:要将值转换器与 MultiBinding 关联,请创建一个实现 IMulti... 阅读全文
摘要:
应用场景 我要做一个系统登录功能,需要传用户名和密码到ViewModel中,可是PasswordBox传值到ViewModel中好像跟TextBox等控件不一样。这里需要用到附加属性。 附加属性:一个属性本来不属于某个对象,但是由于某种需求而被后来附加上,即把对象放入一个特定的环境后才具有的属性。 作用就是将属性与数据类型(宿主)解耦,让数据类型设计更加灵活。 本质还是依赖属性,二者仅在包装... 阅读全文
摘要:
应用场景 我现在做一个系统登录功能,要求在PasswordBox上输完密码后回车,能够响应Enter事件,并执行ViewModel中对应的方法。如果登录成功则隐藏当前窗口显示主窗体,登录失败则焦点返回到用户名TextBox中,并全选文字,方便用户再重新输入。 这个在我们制造业自动化流程控制中,做防呆功能是很明显的,因为没有人为去参与。 如果像Winform一样的开发模式,就相对很简单了,现在... 阅读全文
摘要:
一个系统框架除了功能菜单导航,有系统内容显示区域,系统状态栏。Silver:Blue:Black:系统界面设计,就不进行技术细节介绍了,主题以框架设计为主,Xaml源码参考: ... 阅读全文
摘要:
AvalonDock 是一个.NET库,用于在停靠模式布局(docking)中排列一系列WPF/WinForm控件。最新发布的版本原生支持MVVM框架、Aero Snap特效并具有更好的性能。AvalonDock 2.0版本已经发布了,新版本是用MVVM框架重新编写,似乎也用了Command(命令)模式。2.0版的文档尚未发布,但你可以参考Avalon.TestApp 或者2.0版源码中的Avalon.MVVMTestApp文件夹来查看新的API。前一篇博文有介绍关于AvalonDock使用-《Docking For WPF–AvalonDock》还有一篇也是同类的关于多文档界面设计《基于WP 阅读全文
摘要:
应用场景 我们基础的框架已经搭建起来了,现在整合MVVM框架Prism,在ViewModel做一些逻辑处理,真正把界面设计分离出来。 这样方便我们系统开发分工合作,同时提高系统可维护性和灵活性。 具体的Prism安装和Microsoft.Practices.Prism.dll获取,在这个网址:http://compositewpf.codeplex.com/ 原始的模式(Winform) ... 阅读全文
摘要:
Fluent/Ribbon是微软在其最新桌面操作系统Windows 7中使用的图形用户界面。 Windows平台的进化,伴随着系统图形界面的重新设计。从Windows XP到Windows Vista,最大的革新就是Windows Aero的引入。在Windows 7 中,Aero被保留下来。 但是,在未来,Windows 7的图形用户界面将朝着Office 2007相同的方向,名称为Fluent/Ribbon。现在,我们用WPF作为用户界面开发语言,来做一个简单的实例作为学习的开始。准备工作:需要下载第三方组件为:Fluent.dll,下载网址:http://fluent.codeplex. 阅读全文
摘要:
为什么系统框架设计使用Ribbon导航模式? 这得从Office软件的演变说起。微软为什么最后选择使用Ribbon,也许就是很多系统设计要使用Ribbon做功能导航的原因。你是否还记得曾经使用过的Microsoft Office界面?自Microsoft Office诞生之日起,工具栏和菜单栏主导着用户的软件使用操作。并在Microsoft Office 2.0中引入了嵌入式对话框。随着Microsoft Office版本的更新,功能的增加,菜单栏和工具栏的数量也随之增多。在Microsoft Office95中,工具栏已曾加至9个。而在Microsoft Office 97版本中,增加了诸多 阅读全文
摘要:
前些时间研究了WPF的一些框架,感觉基于Prism框架的MVVM模式对系统的UI与逻辑分离很好,所以就按照之前Winform的框架设计,用WPF做了一套,感觉比Winform要强很多。MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。3. 阅读全文
摘要:
征服世界的将来是这样一些人:开始的时候试图找到梦想中的乐园,最终,当他们无法找到时,就亲自创造了它。 有一果大树,在树的不同部位分别人7个人,代表了7种不同的人:在大树底下睡大觉--坐享其成,不能把握自已;从大树根上往上爬--认真仔细踏实,靠自已的辛勤劳动努力争取;通过梯子往上爬--喜欢走人生捷径,聪明但危险;自已在爬时还拽着一个人--有能力看重合作,处于主动领导地位,但不顾别人的感觉,强加于人;被拽的人--依赖别人,希望别人能帮一把;在树上睡大觉--人生已走过一段,取得了一定的成功,可以休息了;在树上看风景--取得成功后开始新的迷茫。这7类人都存在,许多人都是第六七类人,而这是最危险的。因. 阅读全文
摘要:
桌面程序的应用,不可避免的就会用到大量的布局控件,之前的一个项目也想过去做类似于Visual Studio的那种灵活的布局控件,也就是界面上的控件能够实现拖拽放置、隐藏、窗口化等一系列的操作,但由于开发时间以及需求的原因,没有太严格要求这方面功能的实现,也就只能算是想过一下而已,实际用的时候还是固定布局,但是最近接触到新的项目,需要这方面的应用就不得不自己动手查找和做这样的东西了。 有朋友推荐RadControls里了控件——RadDocking,下载安装RadControls后,发现他里边的控件的确做的很不错,而且Demo也很详细,RadDocking也能满足我的需求,使用也还算方便,但是. 阅读全文