0

我在这里非常怀疑我的应用程序的设计.....

这是我的应用程序的图表

我的应用程序图

这是正确的吗 ??o 我需要改变一些东西...

我会详细说明图表....:

公共库:它包含类错误代码、实用程序类等
记录器:记录框架
异常处理:处理异常的框架

视图:包含:用户控件、Windows、弹出窗口等视图的所有不同 XAML

ViewModel :包含不同视图的 ViewModel。

模型:包含不同的层,如......业务层、数据访问层等

实体层:包含实体对象,如员工、公司等...

文件框:它指定从文件/数据库中读取/写入....

4

1 回答 1

2

很难说出你想对你的问题做什么,但在我看来 MVVM 层应该是这样的:

  • 模型:原始数据和原始数据验证。也许INotifyPropertyChanged也是,但没有别的

  • ViewModel:业务逻辑、数据访问、基于业务规则的高级验证等

  • Views:漂亮的 UI 层,允许用户与 ViewModel 交互。没有其他的。

例如,模型可能有一个File属性,但它不应该负责显示文件对话框、将文件保存到数据库或验证文件是否具有 .pdf 扩展名。这类东西是 ViewModel 的工作。

编辑

我看到你对你的问题所做的更新。这是一个好的开始,但这是我遇到的问题:

  • 您的模型应该是原始数据对象。它们不应包含比验证属性长度等更高级的内容。

  • 老实说,我不建议将视图、模型和视图模型分成 3 个单独的层。我这样做过一次,结果证明这是一场维护噩梦。现在我把所有相关的对象放在一起。例如,我将FileModel, FileViewModel, andFileView放在一起,and SearchModel, SearchViewModel, andSearchView放在一起

  • 我将创建一个数据访问层,负责对数据库进行所有读/写数据(我想这可能是您的“实体层”)。

  • 对于小型项目,我倾向于使用我的实体对象作为我的模型,因此模型成为我的 DAL 层的一部分,尽管我知道不推荐这样做。

  • 不要忘记,使用 MVVM,您的 ViewModel 是您的应用程序,而不是您的视图。View 应该反映 ViewModel 中的内容,反之亦然。

于 2011-10-20T13:10:58.297 回答