2010-03-18 55 views
0

我正在构建一个WPF应用程序并使用MVVM模式。可以自由地引用.Net程序集吗?

我在我的解决方案中有4个项目,3个类库,Data,Model和ViewModel以及WPF可执行视图。

模型引用WindowsBase有什么问题,以便我可以使用ObservableCollection <T>例如,或者我可以直观地使用我需要的内容,而不用担心框架中类的原始目的,例如收集数据绑定。

回答

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有这么多的问题,使用更少的事实,较大的项目可能会更好。

+0

这很有趣,我猜我认为,因为你可以添加几个组件到解决方案,而不是这样做肯定是件好事。我必须承担更少,并学习更多:),谢谢。在我的情况下,这只是我的代码和框架没有第三方组件,所以也许我可以重新组合一切。 – Grokodile 2010-03-18 18:57:15

相关问题