在同一个域下使用asp.net mvc和php

时间:2010-05-23 10:38:53

标签: .net php asp.net-mvc interaction

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

有没有人做过类似成功的事情?我想(就像姊妹网站一样)将采用自由剂量的ajax来按需填充部分页面。因此,这可能与您可能提出的任何建议有关。此外,被调用的方法最终会填充相同的数据库,因此在不同平台上关联ID没有问题。

如果可能的话,我真的不想下去任何'iframe'类型的路线,'现实可能会指示这是一个选项。我可能(天真地)想象我可以直接从php应用程序调用mvc函数,并传递某种“session”变量进行身份验证。

相当高的订单还是挺直接的?

欢呼声

吉姆

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

另外,发现这篇小文章'可能'在某种程度上改变了我的想法: http://www.jeffancel.com/archive/2009/04/05/70.aspx

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

1。)Ajax或请求进入您的PHP应用程序,而PHP应用程序又使用PHP来使用来自您姐妹站点的服务;在最坏的情况下,你可能需要直接解析html,虽然我建议让他们使用RESTful服务打开XML或JSON对象(如果你不介意在你的方法中添加几个方法,这是一个相当容易的修改控制器)。

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

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