.net:设计一个桌面应用
写程序和拼积木是一样的,首先要知道我们这堆积木中都有那些基本模块,然后再非常清晰知道自己这次要拼一个什么东西,那接下来就是拼搭环节,在拼搭过程中,有时还会拆除,重新来搭。
其实开发软件也是一样的,这篇先理一下desktop框架下“搭积木”的思路。
desktop框架:desktop在.net世界里面有两种框 架,winform框 架和wpf框架。winform是基于GDI+,WPF(windows presentation foundation)是晚一些出来的桌面UI渲染框架,可以说WPF能用标签(mark)代码来渲染UI,与web中的html相似,但GDI+,就不一样了,虽然在winform中,每个控件都是一个类型 ,也可以用代码(c#,vb.net)来代表,但改变不了控件是GDI+绘制呈现的本质。对于winform和WPF框架之后的其他类库就相同了。
数据库:这个要根据客户(收费免费,是否有对应的维护人才),开发团队(是否熟悉技术),项目特点(业务类型是否适配数据库)来选型了。
框架:再小的程序,再简单的程序,也得有个基本框架,那怕是最简单的三层(UI展示层,BLL业务逻辑层,DAL数据访问层)也应该有,这样利人利已,因为谁都不能保证这个程序在N久之后,再去增加加或变更一个功能,那怕是看在节(fei)操(yong)的份上。
ORM:为了节省时间,提高效率,就得找一套好的ORM,让应用层和数据简单,轻便,即使更换数据库也不是多么困难。
本地化:大部分本地化应用不会做本地化,因为大部分桌面应用的业务场景是定制的或是一个行业内的,业务不具有国际通用性,但还是有一部分要考虑要本地化的。老外再不说,那么也得考虑少数民族(即使都懂汉语)。这里的意思就是如果把全球化和本地化的点(比如时间,货币,UI表现语言 ),通过分层处理好,即使现在只在一种本地化,那也维护和变更起来也要方便的多(分层的前提是需要点时间)。
三方UI和三方库:这个要根据每种应用来取舍了,很大程度上我们要使用三方库的,三方库的选型中,license是很重要的着眼点(本着有节操的原则,因为我们也不想别人窃取我们的成果),nuget是很好用的包管理工具,对于自己或公司开发的包,应该搭建自己内部的nuget包管理服务。
日志:救命的功能,总是在我们一头雾水或“自信无比”时,给我们清晰提示,告知我们是谁的锅,也是让补锅人安静下来补锅的铁证(前提是好的日志框 架,正确的时间,正确的地点,正确的记录日志)。回想一下,是不是雄赳赳气昂昂的拿着日志告诉操作人员:“看,是谁,什么时间,做了一个操作,这是一个错误的操作”,这时操作人员收起了是一个Bug的眼神,静静的陷入思考……
异常处理:异常发生就像人生病了,正常状态好是不会生病的,肯定是没有按套路出牌(有可能是人为,有可能是电脑,网络本身异常引起),这里就要作整体的异常处理设计,什么样的异常?该怎么处理?该怎么样展示?怎么样排除?不能异常一报,程序挂了。其实还有一个常见,又是程序员最尴尬的异常:“未将对象引用到实例(空引用) ”,都是泪,得想想怎么避免。
其他:其实还有一些组件,比如要不要异常通知,要看应用的类型 ,有没有必要报警;还有,是不是要出报表,需要引入报表组件(好的报表组件,一般都是收费的)等等,这里就不作展开了。
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524