WPF 应用程序 - 模型对象放置/项目结构(在 MVVM 场景中)

标签 wpf mvvm model data-modeling models

我正在使用 Prism v4 和 MEF(MVVM 模式)开发 WPF click once 应用程序。我有多个模块驻留在自己的程序集中。

我试图找出放置模型对象的位置。

您会将它们放在主要使用它们的程序集中(即使它们可以在其他程序集中使用),还是会创建一个程序集来容纳所有模型(以便更容易在其他程序中使用)?我倾向于后者,但这带来了下面的下一个问题......

您将如何明确分离从不同数据库/服务器填充的模型对象 - 您是将它们全部聚集在同一个程序集/命名空间中还是将它们分成不同的命名空间/程序集?我正在努力防止由于开始这个项目的错误决定而导致的问题,并感谢任何人的反馈。

最佳答案

我将模型对象放在他们自己的程序集中。这促进了重用和分离,因为它更难用与演示相关的代码“污染”模型。

至于你的第二个问题:

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(在单独的程序集中)。这使模型定义与数据访问分开,而数据访问仍然是呈现中立的。

如果模型总是从单个数据源填充,那么将它们放在一起(但通过命名空间分开)可能是一个更简单的选择。

关于WPF 应用程序 - 模型对象放置/项目结构(在 MVVM 场景中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5436353/

相关文章:

c# - comboBox 中的 selectedIndex 在某些情况下不返回正确的整数

MVVM 依赖注入(inject)

routing - 如何在带有 Rails 3 的模型中使用路由助手?

python - Django 1.6 无法显示模板中模型中的多域字段

wpf - 将 WPF InkCanvas 保存为 JPG - 图像被裁剪

c# - WPF 路径以某种大小消失

android - 是否有必要在 mvvm 模式中为 android 实现命令

django - 在 django 中将数据从一个模型批量复制到另一个模型

c# - 使功能区最小化时显示功能区 ContextualTabGroups

javascript - Vue.js $emit 和 $dispatch 有什么区别?