1

我有一个场景,我们有一个客户拥有一个 linux 托管的 php 应用程序(joomla),他们希望与一些为“姐妹”站点创建的后端 asp.net mvc 功能集成。基本上,mvc 站点具有价格和库存可用性方法,这些方法(在姊妹站点中)填充下拉列表和页面上的其他“订单”样式信息。我的任务是查看集成选项以允许 php 站点将此信息用作“服务”。(和以往一样,这些人正在考虑拥有成本、维护等,所以这是他们的首选路线)

有没有人做过类似的成功?我想(很像姊妹网站)将使用大量的 ajax 来按需填充页面的某些部分。因此,这可能会影响您可能提出的任何建议。此外,被调用的方法最终会填充相同的数据库,因此在不同平台之间关联 ID 没有问题。

如果可能的话,我真的不想走任何“iframe”类型的路线,但现实可能会将此作为一种选择。我可能(天真地)想象我可以简单地直接从 php 应用程序调用 mvc 函数,并传递某种“会话”变量进行身份验证。

相当高的顺序或相当直截了当?

干杯

吉姆

[编辑] - 由于 joomla 站点的现有结构,不太可能实施,使用 openID 帐户是否有助于将两个站点“粘合”在一起?

另外,发现这篇小文章“可能”与我的想法有所不同:http: //www.jeffancel.com/archive/2009/04/05/70.aspx

4

2 回答 2

1

最好的办法是创建提供所需信息的 asp.net Web 服务或 wcf 服务。然后,您可以从您的 php 站点使用这些服务。如果您已经有提供数据的类和方法,那么将它们公开为 Web 服务真的很容易。

于 2010-05-23T11:02:50.060 回答
1

如果身份验证是一个因素,您可以使用 API KEY 告诉 .net 应用程序您是谁,此外,他们可以添加仅允许使用某些资源的过滤器。在 PHP 中,您可以通过多种方式使用 .net 服务,就像我已经做过多次一样。如果您从服务器端调用(实际的 PHP),那么您会希望它们公开您在 xml 或 json 中使用的数据;所以你可以在 PHP 中解析它并以你想要的方式使用它。以下是我可以建议的几条路线:

1.) Ajax 或请求进入您的 PHP 应用程序,该应用程序又使用 PHP 来使用您姊妹站点的服务;在最坏的情况下,您可能必须直接解析 html,但我建议让他们使用 RESTful 服务打开 XML 或 JSON 对象(如果您不介意在您的控制器)。

2.) Ajax 使用 jsonp 请求从您正在与之通信的站点中获取 html 小部件。这也需要姐妹网站的一些工作,但这是非常可行的。如果你走这条路,那么他们必须进行我在那篇文章中提到的跨域更改(尽管那是 .net mvc 1.0)。

最后,它归结为您对选择什么的具体要求。我个人选择路由 1 并从服务器端使用大多数服务,因为它可以抽象 API-Keys 和其他我不希望用户看到的东西。由于个别浏览器的行为(即与 firefox 等相比),从 PHP 而不是 javascript 处理 XML 也更容易。

于 2010-05-23T14:44:36.780 回答