【问题标题】:Architecture for a .NET platform with Rest API具有 Rest API 的 .NET 平台架构
【发布时间】:2012-04-09 13:49:36
【问题描述】:

我有一个需要向不同客户端(ASP.NET MVC、iOS 和 Android)公开的 .NET 平台,我将自己开发这些客户端,而不是第三方。

目前我有一个业务层,它执行一些逻辑并使用实体框架将数据保存到 SQL DB 中,我现在想的是让 ASP.NET MVC 客户端直接访问业务层并让另一个(非 . NET)客户端使用 REST API 使用业务层,这是一个好方法吗?还是我需要使用服务层使所有客户端访问 biz 功能。

【问题讨论】:

    标签: .net ios web-services rest architecture


    【解决方案1】:

    首先,非常好的问题!对我来说,我使用 ASP.NET MVC 访问服务层,这不是暴露给(非 .NET)的层,而是该层下的层,我将描述告诉你为什么在 MVC 中需要服务层,这是 MVC(瘦控制器)中良好设计的一个方面,要做到这一点,你需要服务层,否则控制器将成为受害者,所以你可以将它用于两者.

    【讨论】:

    • 请在您投反对票时发表评论,以帮助我和社区为什么您真的认为这是一个不好的答案,而您的好答案是什么!?
    【解决方案2】:

    您有一些业务逻辑或功能想要提供给客户。这些客户端是:将通过 ASP.NET 应用程序 (html/js/css UI) 获得访问权限的人类用户以及将通过 Web API 获得访问权限的其他应用程序。对吧?

    MVC 部分和 Web API 部分是接口,这是转换器,它们将客户端的请求转换为业务逻辑调用,然后将结果转换回 HTML/js/ccs 用于用户或 xml/json/whatever 到客户端应用程序。

    真正的问题在于您表达概念的方式,您 让您的 ASP.NET MVC 客户端直接访问业务层并拥有其他(非 .NET)使用 REST API 使用业务层的客户端!您所做的是提供两个接口,一个用于人机交互,另一个用于客户端应用程序交互。

    你的方法没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多