WPF app - Model object placement / project structure (in a MVVM scenario)
我正在使用 Prism v4 和 MEF(MVVM 模式)开发 WPF 单击一次应用程序。我有多个模块驻留在自己的程序集中。
我正试图找出放置模型对象的位置。
您会将它们放在主要使用它们的程序集中(即使它们可以在其他程序集中使用),还是会创建一个程序集来容纳所有模型(以便更容易在其他程序中使用) ?我倾向于后者,但这带来了下面的下一个问题......
您将如何明确分离从不同数据库/服务器填充的模型对象 - 您是将它们全部聚集在同一个程序集/命名空间中还是将它们分成不同的命名空间/程序集?我正在努力防止由于启动此项目的错误决定而导致的问题,并感谢任何人的反馈。
我将模型对象放在它们自己的程序集中。这促进了重用和分离,因为它更难用与演示相关的代码"污染"模型。
关于你的第二个问题:
How would you go about distinctly separating model objects, who are populated from different databases / servers - do you clump them all together in the same assembly / namespace or separate them into different namespaces / assemblies?
如果您计划从多个来源填充模型,我会亲自将模型定义放在一个程序集中,然后对每个数据源使用 DAL(在单独的程序集中)。这使模型定义与数据访问分开,而数据访问仍然是表示中立的。
如果模型总是从单个数据源填充,那么将它们放在一起(但通过命名空间分开)可能是一个更简单的选择。