3

我必须做出一个相当大的设计决定,并想向有经验的人寻求一些建议。

我正在使用 WCF 开发 SOA 服务(包括登录 + 用户帐户管理、客户数据库、公司不同产品线的介绍)。

我现在必须决定要使用哪种前端技术来生成用户可以在浏览器中查看的 HTML。

合乎逻辑的答案是:ASP.Net。但是,我想知道其他选择。我正在考虑使用 PHP 服务(因为我想学习这种语言)。我可以想到这样的场景: - 最终用户通过 HTTP 访问 PHP 服务,PHP 服务通过 SOAP 对 WCF 服务执行一些业务逻辑调用,然后将结果返回给用户。

这至少产生了用户会话管理必须在 PHP 服务一侧的问题,因为 WCF 服务仅由 PHP 服务调用。

那么,有没有一种更简单的方法可以在我的 WCF 服务前面获取一些(动态)HTML 表示层(忽略 ASP.net,最好使用 PHP)?

4

1 回答 1

0

对于大约 6 个月前我参与的一个小项目,我们的情况非常相似。我们有一个网站和 3 个移动应用程序,它们与托管在 Windows Azure 中的 WCF 服务进行通信。移动应用程序开发人员与 WCF 服务通信没有问题,但网站是另一回事。

我们使用了 ASP.Net 前端,但由于它在 Azure 中托管为不同的项目,因此它必须通过 HTTP 访问 WCF 服务。

我认为一旦你决定这是你想要设置的方式,无论你选择 ASP.Net 还是 PHP 都不再重要(除了托管成本等)。本质上,您的前端变成了一个瘦代理,它将请求路由到 WCF 服务并返回到浏览器。您可以使用 PHP 和 ASP.Net 轻松完成此操作。

现在回顾这个项目,我会主张在同一个项目中托管 WCF 服务和前端,但使用两个单独的 Web 角色。这完全消除了让您的前端进行 HTTP 调用所涉及的延迟。此外,您的前端和 WCF 服务可以使用相同的类库来访问业务逻辑。理想情况下,您的前端和 WCF 服务都将成为瘦包装器,它们都与所有业务逻辑的相同类库接口。

这是我可以看到 HTML 表示层变得更容易的唯一方法。如果您的前端位于其他地方并通过 HTTP 与您的业务逻辑接口,那么 PHP 和 ASP.Net 都同样适合该任务。就会话管理而言;这将非常容易,因为您指出用户帐户管理和登录都由 WCF 服务处理。然后,您的 PHP 或 ASP.Net 会话可能只保存服务提供给您的会话令牌,服务负责会话超时等。

于 2013-02-11T15:02:51.340 回答