我有三个核心应用程序,它们有自己的业务功能(网络、事件目录和帮助台)。每个都运行 ASP.NET v2 或 v3,并拥有各自的数据库。但是,应用程序功能已经合并了一点,因此在每个应用程序和应用程序逻辑中都重新创建了模型。所以现在我有一些难以维护的代码。所以这是我的问题:
我对 asp.net mvc web 应用程序之间的通信不太熟悉,所以请指出正确的方向。
最佳答案
我建议开发一个 service layer per the design pattern described by Fowler .该服务层封装了各种域模型和存储库,并处理不同域/模型之间的交互。这将是一个程序集,而不是 WCF 或任何其他类型的 Web 服务。如果您需要 WCF Web 服务,那么它将是一个非常薄的层,基本上具有模仿服务层的契约(Contract),唯一目的是提供 Web 服务接口(interface)或 API。
MVC 应用程序可以通过多种方式与您的服务层进行交互。如果您在 Controller 中创建 View 模型,那么它可以直接访问服务层程序集。通过 Web 服务调用它会增加开销,在这种情况下很可能不需要。使用这种方法,服务层几乎就是 MVC 三重奏中的模型。
访问服务层的另一种方法是从 View /客户端使用 AJAX 为富客户端。在这种情况下,您将使用 MVC 在服务层之上放置一个 REST API,以便您可以使用 JQuery 之类的东西直接将 AJAX POST 发送到 Web 服务,以更新和检索网页的数据。
请注意,使用此架构,您可以结合使用这两种方法。您可以直接从 Controller 访问服务层以呈现一些初始页面,然后在用户交互期间使用 Web 服务 REST 接口(interface)进行 AJAX 调用。
关于asp.net-mvc - 设计选择 : WCF or Service Stack?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210640/