我正在为少数WPF/C#应用程序完成MVVM UI框架的处理,我们预计这将开始.仅仅为了实现这个想法,这些应用程序通常可以基于一些可量化的权重(例如,屏幕的总数等等)分类为小/大.
我认为Caliburn Micro建议用于小型和PRISM用于大型.这背后的基本原理是避免重量级框架,因为这些应用程序是低延迟系统(时间限制),我试图削减所有过度杀伤的角落.
但这是我被困的地方,因为很有可能将个别类别提升或减少到其他类别.在这种情况下,我可能有时会为更大的应用程序(当我们将类别从小型提升到大型时)或更小的应用程序的更大框架(当我们将类别从大型减小到小型时)具有轻型框架.我不太自信地采用我的方法(两种不同类型的框架),因为我依赖于两个不同的框架来实现这一点而没有切换的灵活性.
问题:是否有任何框架具有卸载组件的弹性,我在申请中不需要?
如果你不使用它,一个大框架并不一定会减慢你的速度.此外,如果您没有正确使用它,任何框架都会降低您的速度.我以前在Caliburn Micro遇到了可怕的速度问题因为我做错了 - 当你做对的时候它们会消失,但当然我们都会犯错误.
对不同类别的应用程序使用两个不同的框架听起来像是等待发生的灾难.正如您已经意识到的那样,某些东西会改变类别,即使在可以想象的最佳结构化代码中,更改框架也是一个非常耗时的过程.选择一个并将其用于所有事情,除非您有令人信服的证据表明它不适合特定目的.就个人而言,我真的很喜欢ReactiveUI,这是相当不寻常的,但确实让事情变得比Caliburn容易得多.
无论你使用什么,你都必须非常非常小心WPF以确保它能够满足你对显示时间的要求,并且使用异步函数做很多工作来保持UI线程可用于渲染.