如何将服务层公开给 UI 组件

本文关键字:UI 组件 服务 | 更新日期: 2023-09-27 17:56:48

我们有一个应用程序,在其中创建了一个服务层,其中包含大多数业务逻辑和实用程序服务(日志记录,异常,缓存等)。我们必须提供一种方法来将此服务作为 API 公开给 UI 组件。以下是我们的一些要求:

  • 我们想创建多个基于服务的组件。
  • 我们希望第三方开发者使用我们的服务来创建他们的拥有组件或使用我们的数据。
  • 对于可扩展性,我们希望拥有a 安装在 上的多个实例不同的盒子。同样有可能不仅仅是相同的 UI 组件。

公开服务层的一种方法是将其托管在基于 REST 的 WCF 层下。

另一种方法是在 ASP.Net MVC 项目的模型层中托管服务。UI 组件将托管在其自己的 MVC 项目中。UI 组件视图中的 Javascript 将直接调用服务项目的控制器。

WCF应该是非常重量级的选择。另一方面,我不太相信MVC方法,因为我觉得这不是它的目的。

您能否向我推荐一种Microsoft世界公开我们的服务层的方法。

如何将服务层公开给 UI 组件

WCF似乎是这里的方式。尽管 WCF 最初(在我看来)是一头野兽,但多年来它通过更好的 HTTP 和 JSON 支持以及更少的自定义配置得到了驯服(尽管仍然允许您基本上对服务的每个小方面进行修改)。

将当前服务层公开为 REST 服务轻而易举,并允许您的客户/您自己在任何支持 HTTP 的设备上轻松使用它。

请参阅:http://codebetter.com/glennblock/2010/11/01/wcf-web-apis-http-your-way/

模型不是服务。模型是保存数据的 POCO。

可以通过 WCF 服务公开服务,并让 ASP.NET MVC 应用使用它。如果始终确定服务将与客户端应用在同一框中运行,则可以使用命名管道进行传输 - 则与优点相比,WCF 的开销最小。

WCF似乎是Microsoft朝着这个方向前进的方向,这是有充分理由的。 WCF 服务是此处的最佳选择,因为您提到了第三方开发支持。 由于这些 Web 服务由 WSDL 定义,因此它们是跨平台的,可由非 .NET 应用程序使用。

它完美地隔离了您的服务层以供任何组件使用。