首页 新闻 会员 周边

WPF开发框架选择

0
悬赏园豆:20 [已解决问题] 解决于 2021-01-25 09:17

WPF开发一般都用什么框架啊。

小的话 我用的MVVMlight

稍微大点的 模块比较多的,并且还想有IOC和 AOP功能 ,模块化和IOC的话 可以用Prism.Unity ,但是里面没有AOP功能。新的好像不支持AutoFac了。

想用.Net5 建项目 不在framework上

有大佬解答一下嘛。。

prism项目我是这么建的

PrismDemo.Shell
PrismDemo.Services
PrismDemo.Common
PrismDemo.Styling
PrismDemo.AModule
PrismDemo.BModule

飞翔的猪小猪的主页 飞翔的猪小猪 | 初学一级 | 园豆:3
提问于:2021-01-08 10:10
< >
分享
最佳答案
0

不能带来效率(开发和运行)和管理的框架对我来说没多大意义,

使用框架我比较谨慎,没有必要动不动就上框架。

最近刚好在做wpf客户端工具(增加了多媒体3d、全景等的组态),既然上图了 —— 也强调一下代码即注释的原则(当然还有代码即配置的原则等等)

 

对了,里面服务器因为一些场景(比如不需要FileHandler等等),也不用框架,

为什么没用第三方的——或许太壮,或需要更繁杂的代码写法;

wcf也没用—— 因为下一个版本走core,代码不能继续用(怕时间来不急,太多控件组件自己去适配core不划算,因此暂时用framework)。

 

对比资源管理,winForm的资源管理更好一点或者更习惯一些(更接近游戏这种资源多管理统一的方式),不过基本上也就是Icon和登录(产品装样子)两张图,其余除Loader(转圈圈那个东西),均使用TTF。(下图是 窗口类 和 窗口的零件Loader,为什么这么写 ——方便下次一次性拷贝,不用去做资源管理)

 

WindowScada->WindowEx{Loader}->WindowBasic

 

这个WindowBasic生产过两个产品,正在第三个产品中,LServiceBase(当初兼容的是Wcf,一直维持着Open Close)就更多了,应该存活了差不多10多年了。

 

由于Thread、Task、STA、WPF...,活了几代(也不断调账的)的DoLoadWork,终于这代补加了async

 

 

Log4这个时间比LServiceBase更久远

 

这些东西都是累积,每一次项目第一件事就是 Nuget,Copy,他们早已经成为不同产品的一部分(有分支,如做服务器,视图的部分通常是不需要的)。

最后展示一下这个LModule的一部分,

收获园豆:20
花飘水流兮 | 专家六级 |园豆:13560 | 2021-01-08 14:32

也给你一个Bind建议 eg:

colorBorder.SetBinding(Border.BackgroundProperty, new Binding(ClassEx.GetPropertyName<Primitive图表读取器.Bean>(t=>t.Color)){Converter = new ColorToBrushConverter()});

好处是智能化,且编辑时即可报错,尽量避免一切需要手动 的字符串化的编程。

xmal不是万能,写法可以多参见ms内部实现。

花飘水流兮 | 园豆:13560 (专家六级) | 2021-01-08 14:55

@花飘水流兮: 谢谢讲解。我做客户端时间不长。要做成模块化插件化的。所以就想了解一下目前都有哪些好用的框架。。这个不比做网站 一搜一大堆。。

飞翔的猪小猪 | 园豆:3 (初学一级) | 2021-01-08 16:06
其他回答(1)
0

core自带ioc,你想替换成autofac,也可以自己实现
aop你用attribute自己就可以实现一个

不知道风往哪儿吹 | 园豆:2035 (老鸟四级) | 2021-01-08 10:19

attribute 实现 我已经写了一个 autofac的话 我也写了一个 都能用。。不过这不是用上Prism.Unity了么。 想着有什么好用的

支持(0) 反对(0) 飞翔的猪小猪 | 园豆:3 (初学一级) | 2021-01-08 10:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册