因为Winform够简单、速度足够快,作为生产软件,我们追求的不是界面多么花哨,而是尽可能提高速度,显示更多数据。所以winform是最佳选择,至于控件丑,可以靠自己来实现一套UI库解决问题。
我一直不明白微软,为什么总喜欢来一套全新的方案,然后里面是毛胚,啥都要自己来。为什么总让我学完新东西,然后生产力却没有提升。
开发者要的不多,只是一套完善的UI控件库而已啊,不是让你天天革自己的命!!!!
比如我的ERP软件,功能太多了,订单多开,数据自适配排版,只能靠自己来实现UI库,那同样都是自己画,自然选择速度快的,WPF能做的,Winform都能实现。虽然2024年了,但你永远无法想象,客户的机器有多烂。
从WPF到WebForm,微软特别喜欢让程序员做美工的活,额外学习很多界面的语法。
WPF那么好,那么有多少商业软件是WPF开发的?太多WPF初学者,总喜欢拿练手的项目来说明WPF多么强大,但可惜,稳定、高效、低成本才是工业要求,WPF人都不好招。
就算是炫技,你WPF的所有效果,包括动画,我用winform都能实现,就是时间问题,所以,我没必要废掉自己全部重来,只是一套UI库的事,不需要换框架。
现在都把WPF吹上天,其实它炫是够炫,效率并没有想象那么高。我个人认为:
开发灵活性上 wpf > winform,但开发效率上 winform > wpf,定制灵活,不代表效率高。
要承认 UI 就是一件很专业的事情,觉得可以灵活改造,所以就能做出好界面来?不要欺骗自己,只用现成的控件,每个就算都好看,组在一起也搭配不好。不如简单点、效率高点来得实际。
项目稍大一点,要讲究统一模式,批量生产。我程序几千个表单,用WPF手都要写残了。理论上你可以重用控件,但每个表单都有差异,实际上能重用的不多,还是拖放布局快。
评论区有人说winform代码不好管理,其实我觉得还是旧思维,限制了你的想象力。
Winform要的是所见即所得,包括变量和数据,贴一个我的控件在设计器里的状态。
最省力的排版,是样式统一,流布局(和网页一样),自动排版(我总不能逐个调大小、对齐、调间距吧),绿字是控件名称,红字是控件的Field(赋值字段名),给值只给容器一次,会自动根据Field名把类的字段值给各个控件,按名字赋值,比绑定更灵活,容器套几层都没关系,可以递归逐级向下赋值(或者收集值用于提交),只要Field名字对得上类的字段名(或Attribute属性名,因为可能多个类都要给容器,而它们的字段名都叫Name,不唯一)。
名称粗体表示它是必填项,控件外框是紫色,表示它的值永远提交(否则值改变才会提交)。右侧的小数字,是控件最大内容长度(50表示最长50个字符)
调整次序只需在文档大纲中拖动位置,它会自动在容器中对齐,只靠Margin和Padding来决定间距和位置,虚线框是控件所占范围。
比如 商品视频:这种标注,都是控件的属性了(不再拖Label),右侧的点击链接,全是复合属性,只需要写值,设置Icon就好(可以多个链接,加就是了)。
还有很多其它细节,比如设计时,虚线画外框,表示这个控件Visible设置为false不可见
生产力就是所见即所得(可视化),拖个表单,也就是几分钟的事。排版自动化(xaml是什么鬼,我排个版还要写代码,嫌我头发太长?)
关于代码思想,随便贴一个我自己的ORM框架,可以直写SQL,简单明了。
一句就写完,它的结果是 子公司 和 所有人员(如下图),缓存分析可以全写在框架里,你只要会写SQL,就会写代码(Section和Login这两个表都不需要在一台服务器上,会有边界检查)
新时代,我们更应该注重数据关系(对象的表达太局限了,非要脱离SQL是错误的做法)。
-End-
关心.NET社区大事?学习C#顶阶技术?请加入下述技术讨论群。向大佬学习、探行业内幕、享时代机遇。进名企+拿高新!