我可以使用什么架构和模式在 WPF 和 ASP.NET MVC 应用程序之间共享最多的模型和逻辑代码?
我试图在这里实现更多目标,而不仅仅是将我的数据实体与两个演示项目分开。还有很多共同点,例如关于在什么条件下显示什么、何时需要某些内容等的 UI 逻辑,我希望保留在共享代码中。
ADDED:我刚刚开始真正喜欢独立于驱动演示的实体模型的视图模型的概念。虽然其中使用的一些注释位于特定于 MVC 的程序集中,但提供的元数据实际上都不是特定于 Web 的。我非常想探索使用我的 MVC 视图模型作为绑定到 WPF 视图的数据源。在这方面的任何建议将不胜感激。
我个人最喜欢的配置类似于 Adam King 上面建议的配置,但我喜欢将逻辑 DLL 作为 Web 项目的一部分。我运行一个名为CT终端 https://github.com/chevex-archived/CT-Terminal遵循这种模式。我的 Terminal.Domain 项目包含所有应用程序逻辑,并且仅返回一个CommandResult
具有充当指示的属性的对象,告诉 UI 项目要做什么。用户界面完全是愚蠢的,只处理域项目告诉它的内容。
现在,按照 Adam King 的方法,我会将该域 DLL 放入 WPF 应用程序中,然后对 UI 进行编码以遵循我返回的说明CommandResult
目的。然而,我更喜欢不同的方法。我编写了 MVC 3 UI 来公开 JSON API。任何应用程序都可以使用此 API。 JSON API 很简单,因为它基本上是我的 Terminal.Domain 项目的包装器CommandResult
目的。返回的 JSON 将具有相同的基本属性。通过这种方式,我将编写 WPF 应用程序来使用此 API 而不是 DLL。现在,如果我对内部应用程序逻辑进行微小的更改,我只需将 Web 项目部署到实时服务器即可。所有使用 API 的客户端都会自动获取这个新逻辑。
显然,如果所做的更改会影响从 API 返回的属性,则需要发布新的客户端代码,但至少对于内部逻辑,您不必这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)