asp.net-mvc - 设计选择 : WCF or Service Stack?

标签 asp.net-mvc wcf web-services architecture

我有三个核心应用程序,它们有自己的业务功能(网络、事件目录和帮助台)。每个都运行 ASP.NET v2 或 v3,并拥有各自的数据库。但是,应用程序功能已经合并了一点,因此在每个应用程序和应用程序逻辑中都重新创建了模型。所以现在我有一些难以维护的代码。所以这是我的问题:

  • 将我的模型和存储库移植到 WCF 是这种架构的合理选择吗?
  • 使用诸如序列化 json 调用之类的服务堆栈是更好的选择吗?我想这会比设置中央 wcf 应用程序更快。

  • 我对 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/

    相关文章:

    c# - MVC - 根据用户的权限禁用大约一半的字段

    c# - 在 WCF 中调试自定义服务主机工厂

    java - com.sun.xml.ws.client.ClientTransportException : HTTP transport error: java. lang.ClassCastException

    c# - 基础连接已关闭

    wcf - 安全的 WCF 服务

    asp.net - 如何从 Controller 设置@Html.ActionLink 的动态标题?

    asp.net-mvc - 使用操作筛选器属性的ASP.Net MVC错误处理

    c# - 在 MVC View 中使用 Razor 循环模型属性

    c# - 请求中的错误 SOAP 操作 header 。为什么?

    wcf - 我可以在不更改服务的情况下更改 WCF ServiceContract 接口(interface)的命名空间吗?