关闭。这个问题是opinion-based .它目前不接受答案。
想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它.
7年前关闭。
Improve this question
我正在开发一个 MVVM 模式的 Window-App WPF 项目。目前,该应用程序有点简单(无法真正解释产品的性质),但最终它有望成长为更复杂的应用程序。
我决定使用多个项目,这就是我到目前为止的想法:
我只想问:
先感谢您 :)
最佳答案
我目前正在开发具有类似结构的应用程序。项目结构看起来不错。在我的项目中,我做的事情有点不同。
Data 和 ServiceClients 程序集可能代表您的 DAL。很好,这些在不同的组件中是分开的。在数据程序集中,您将拥有存储库,在 ServiceClients 中,您将拥有服务代理。实体和契约(Contract)程序集可能代表您的 BL。在这里,我认为您可以使用单个程序集。此程序集应由两个 DAL 程序集引用。
单独实现日志记录很好,如果您有安全性,这也应该在 Common 中实现。根据我最近读到的一本好书,.NET 中的依赖注入(inject),实用程序和帮助程序是设计不佳/不完整的结果。这些类通常包含静态方法。但我认为这与讨论无关。
在我的项目中,我通常在与 View 相同的程序集中实现 VM。这包括 RelayCommand(ICommand 实现)和实现 INPC 的 ViewModelBase。
我最近看了罗伯特马丁的演讲。据我所知,他说过应用程序的架构应该尖叫应用程序的功能。类不应分组在称为(MVC 或 MVVM)的项目或文件夹中。这并没有告诉我们该应用程序的功能。类应该按照它们所做的事情、它们实现的特性来分组。我还没到这个阶段。我仍在对像你这样的东西进行分组:)。
我看到你只有一个测试项目。如果您在此项目中为您计划测试的所有程序集添加目录,这也可能很好。如果您不这样做,则很难找到特定程序集的测试。您可能希望为计划测试的每个程序集添加测试项目。
关于c# - WPF - MVVM 架构(Visual Studio 解决方案和项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24646706/