我正在构建一个WPF应用程序并使用MVVM模式。
我的解决方案中有4个项目,3个类库,数据,模型和ViewModel以及WPF可执行文件视图。
模型引用WindowsBase有什么问题,以便我可以使用ObservableCollection< T>例如,或者我可以只使用我直觉所需要的东西,而不必担心框架中类的原始目的,例如集合数据绑定。
答案 0 :(得分:1)
没问题,除非你是保守派;)
所以不,使用这些没有真正的问题,特别是如果它们是框架dll就像你引用的那样。在你担心这个之前你应该担心一千件事,比如一般的WPF性能,数据绑定是通过反射,事件开销等。如果它使你的应用程序更易于维护并提供你需要的功能,那么使用任何部分您需要的系统一旦你创建了实例,一切都会好起来的。
现在......如果你正在加载大量的外部dll,那么这可能只是一个问题,只是来自分页,但通常甚至没有办法轻易避免这种情况。我们的个别项目每个项目大约有35-40个参考文件......您只能在第一时间完成加载操作。
"They" say you should do one big assembly if you can。通常你不能,所以建议甚至不适用。
To help reduce your application's working set,您应该更喜欢单个较大的装配而不是多个较小的装配。如果有多个程序集始终一起加载,则应将它们组合在一起并创建一个程序集。
与多个较小的组件相关的开销可归结为以下几点:
*为较小的程序集加载元数据的成本。 *触摸CLR中预编译图像中的各种内存页面以加载程序集(如果它是使用Ngen.exe预编译的)。 * JIT编译时间。 *安全检查。
如果您只使用自己的代码,那么只是出于理智而VS.Net有这么多问题的事实,使用更少,更大的项目可能会更好。