C# WPF-MVVM体系结构(VisualStudio解决方案和项目)
我正在MVVM模式下开发一个Windows应用程序WPF项目。目前,这个应用程序有点简单(不能真正解释产品的本质),但最终它有望发展成一个更复杂的应用程序C# WPF-MVVM体系结构(VisualStudio解决方案和项目),c#,.net,wpf,mvvm,architecture,C#,.net,Wpf,Mvvm,Architecture,我正在MVVM模式下开发一个Windows应用程序WPF项目。目前,这个应用程序有点简单(不能真正解释产品的本质),但最终它有望发展成一个更复杂的应用程序 wpf winapp有一个本地数据库,还连接到REST服务 开发时间并不是最重要的问题;但是可维护性和可测试性 将使用IOC容器和DI 计划执行1视图模型是1视图 我不想使用任何WPF/MVVM框架,因为这是我第一次使用WPF-MVVM应用程序(就像第一次使用裸DOM javascript编码一样,即使有jquery) 我决定使用多个项目
- wpf winapp有一个本地数据库,还连接到REST服务
- 开发时间并不是最重要的问题;但是可维护性和可测试性
- 将使用IOC容器和DI
- 计划执行1视图模型是1视图
- 我不想使用任何WPF/MVVM框架,因为这是我第一次使用WPF-MVVM应用程序(就像第一次使用裸DOM javascript编码一样,即使有jquery)
提前感谢:)您可以根据需要组织组件,但我更喜欢以下结构: -为项目中的每个屏幕创建2个类库(dll)(其中一个具有此屏幕的视图+视图模型,另一个dll具有此屏幕的业务逻辑),以便您可以将视图和视图模型与其他业务逻辑一起使用,也可以更改,在每个屏幕业务/视图中分别更新,当您替换dll时,更新将起作用
- 使用除以下组件之外的所有组件: Product.Windows.ViewModels Product.Windows.Models
实际上,人们永远不会在另一个应用程序中重新编译相同的视图和相同的视图模型。您的视图是为您的表示模式定制的,您的视图模型是为您的应用程序逻辑和数据模型定制的。在应用程序之间几乎没有共享的空间。好的,在我的例子中,我在应用程序之间共享屏幕视图,但是你可以为每个屏幕使用一个dll(视图+视图模型+业务)。我有超过25个不同的视图。我真的想要25个DLL吗?@Gusdor是的,视图的数量决定DLL的数量似乎不正确s@WaelGamal-我已经将模型和ViewModels组合到主WPF应用程序中(很像ASP.NET MVC项目中的控制器),感谢@flo_badea的想法:)p2-很好,我们在数据和服务客户端方面达成一致。p3-是的,计划在公共区域设置安全设施。我可能仍然会继续使用关于utils和helpers的DI(对于将来可能的多个实现)p4-感谢您考虑将它们结合起来。我也会想一想的,p5-这方面的想法很棒!p6-是的,计划在th中为每个部件添加文件夹