2015-04-02 57 views
3

我目前正在开发一个已经开发和构建的大型WPF项目,并且预计将会增长。但是它没有任何MVVM模式体系结构组件。是否正确将一个项目拆分为两个独立的MVVM子项目

我们现在的一个目标是重构包含的UI以支持MVVM模式组件。

由于MVVM视图层开发分离的设计,几乎消除了所有UI“代码隐藏”,我们提出了上述想法。

上述想法利用了重组到未来的发展,所以我们认为,目前该项目分为两个:

  • UI项目 - 包含和管理当前和未来的UI代码(查看和的ViewModels) 。

  • 逻辑项目 - 包含和管理现在和将来的逻辑代码(模型)。

应用这种分割是否正确?将来对于未来的开发,调试和测试会有些过火吗?

+0

嘿,我们使用棱镜,我们有我们的意见和viewmodel拆分成5个单独的项目,更不用说其他项目(基础设施,数据层等)。我们使用棱镜来管理他们5个(其中4个是棱镜模块 - wpf类库),其中一个是将其他人加载到shell中的主要wpf项目。 – adminSoftDK 2015-04-02 08:07:52

回答

4

我在你提出的建议中没有看到任何问题。如果您正确地遵循MVVM模式,那么它应该提供视图和ViewModels之间的完全分离。因此,将所有视图放在一个单独的项目中放到ViewModels中也是有意义的。你的ViewModels 应该都没有视图完美运行,给你一个真正干净的UI生产任务和逻辑生产任务之间的分离。您的视图可以利用设计时间数据来模拟ViewModels的行为,而无需实际存在任何逻辑。

+0

我继续开发你的答案与三个独立的项目(视图,ViewModel,模型)。你的想法给了我一个完整的分离,这样如果我不小心写视图代码内部的ViewModel类可能会打破MVVM模式,它不会发生,我会得到编译错误,因为我的ViewModel项目实际上并没有适当的引用视图代码。非常感谢您的回答。 – Eido95 2015-05-12 16:47:29

2

将业务逻辑分解为另一个项目,这将被构建到DLL中是一个非常好的主意。在此之后,您可以在其他前端应用程序(例如Web项目)中重用所有业务逻辑。在此之后,您可以利用MVVM模式来替换前端部分并重用逻辑部分。

未来发展

这是未来发展拆分项目更好,因为可以不接触UI项目进行业务逻辑的变化。

调试

调试工具,今天可以处理这个问题,没有任何限制。

测试

通常你可以做测试相同的分裂。如果您为逻辑项目中的所有功能进行单元测试,除了用户界面之外,所有内容都会被覆盖。

这意味着,拆分项目总是更好的选择。

2

我们使用棱镜,我们有我们的观点和viewmodel拆分成5个独立的项目,更不用说其他项目(基础设施,数据层等)。我们使用棱镜来管理这5个(其中4个是棱镜模块--WPF类库),其中一个是主要的wpf项目,将其他项加载到一个shell中。

相关问题