集成PHP和asp.net / asp.net-MVC的最佳方法(Best way to integ

2019-07-05 03:54发布

通过一些巧合这个问题又拿出了两次在最后一周。

一个客户有他们想保持现有的PHP网站。 他们也已经或将很快有一些ASP.net的网页,他们希望融入现有的网站,因为它表现为一个单一的网站的方式。

我们虽然以下可能性:

  • 用iframe
  • 所有的HTML /菜单复制到新的网站和网站之间的链接,网站之间的用户移动,但不会注意到,如果他不看网址
  • 使用Web服务从asp.net网站读取信息和写在PHP网站的HTML。
  • 使用WSRP(Web服务远程Portlet)。 已经测试这在Java的网站上显示的SharePoint的WebParts,都没有用PHP进行测试。

有没有人尝试过这些? 有一个更好的建议? 有什么我们应该definatly避免?

谢谢

西拉

Answer 1:

这真的取决于一体化的可接受水平为。 您原来的建议,有许多与可维护性的问题,我不会建议他们使用一个面向公众的互联网网站。

如果我有完全的控制,我可能会考虑在PHP站点迁移到IIS和部署ASP.NET页面的网站旁边的PHP文件。 这取决于如何在PHP网站已建成相当棘手。 你可能会遇到的问题包括:

  • 在PHP应用程序,无论你在Windows上合适的替代使用mod_rewrite的。 这种情况是在写作的时候好了很多,但你可能需要调试现有配置。
  • 扩展。 都是你需要的PHP库和扩展的适用于Windows?
  • 性能。 有些人反映Windows下PHP的不可接受的性能。 我敢肯定有合适的性能调整,你可以的东西等同于您的旧网站提供,如果这是一个连的问题。

在您建议的选项

  • 用iframe。 这是可行的,但有点麻烦,它可能会变成是有问题的,如果你需要的东西,如代码库之间的SSL或JavaScript交互。
  • 网站之间的联系 。 这是可行的,但也可能有问题,如果SEO对你很重要。 有时有远远不止这些,你需要考虑太多菜单的链接。
  • 使用Web服务来读取ASP.NET页面 。 这是唯一真正可行的,如果你有一个具有零个相互作用或回传非常简单的网页。 如果您需要处理回发,视图状态等你将有麻烦。 使用ASP.NET MVC为您提供了更多的控制和更简单的体验这样合并。 我个人的看法是,它是非常哈克,只有东西,我会为单页做(如果它真的很重要)。
  • 使用WSRP(Web服务远程Portlet)。 我不知道,这是与普通ASP.NET的选项,我一直以为这是与SharePoint的附加功能。


Answer 2:

所有这些选项是完全落水!

简单的解决办法是让托管seperately,分别阿帕奇和IIS的解决方案。 和处理集成通过路由。 认证可以通过使用“曲奇”被处理

我们对于没有问题的一个客户最近处理了这个

web前端基于WordPress的与MySQL和整个报告模块是基于SQL Server 2008 R2的MVC 3/4为主。

我们只是使用子域名.IE www.somecompany.com网站和reports.somecompany.com的报告。

然后,我们只是写了一个简单的WordPress的扩展,存储到含有相关信息来创建报告链接数据。 的用户和报告类型等即ID的Guid

这本质上只是呈现在用户与页面包含一些报告的选项,他们可以运行-超链接<a href="http://reports.somecompanyurl.com/bill/{some guid}>You Monthly Bill</a>

即每月的账单

这两个网站共用一个共同的主题,这并携带一些维护的负担,但没有比通常的Web项目的更多。 即.. MVC和PHP主题文件做有一定的差异,但在一般的CSS文件是相同的。

我认为我们做定制饼干一点,但是这是不是真的任何困难,因为这两种解决方案只是使用相同的cookie名称和Cookie加密。

综合来看,这是一个相当容易集成项目,因为大多数通信是通过路由处理。

我们已经没有任何问题,运行此6个月。



Answer 3:

可以把整个站点运行IIS的Windows计算机上? 因为IIS可以作为PHP页面以及asp.net。 这样,你可以在页面混合和匹配在一起,实现无缝连接。

另一个更“脏”的选择是使用PHP来“读”直接从远程asp.net页面的HTML输出。 你必须为每个相应的asp.net页面一个PHP文件,然后你可以使用PHP的通过HTTP“读”它file_get_contents方法:

$content = file_get_contents('http://www.example.com/remotepage.aspx');

你可能会想在本地缓存结果,以提高效率。



文章来源: Best way to integrate PHP with asp.net / asp.net-mvc