【问题标题】:PHP to C# and Vice versaPHP 到 C#,反之亦然
【发布时间】:2012-06-27 19:57:19
【问题描述】:

我在这个项目中:

前端公司人员将使用该网页从 SQL DB 查询和更新数据。 我正在使用 Visual Studio,后面的代码(C#)几乎完成了,所以 SQL 和 C# 之间的交互还可以。 我最初的想法是使用我熟悉的 ASP.NET,但这是不可能的。我必须切换到 PHP。 所以,今天是我学习 PHP 的第一天,检查了http://php.net/manual/en/index.php,很多东西看起来和 ASP.NET 很相似,所以我想这不会那么难。

无论如何,一些问题很快就出现了,因为我想编写除“hello world”之外的其他内容。

有没有一种简单的方法可以使用 php 页面从我的班级获取/发送 C# 变量?我已经阅读了一些关于使用 XML 的内容,但我仍然摸不着头脑,还有其他更简单的方法吗?

【问题讨论】:

  • 也许可以创建一个 C# WebService 并通过 PHP 使用它。
  • 将调查您的第二个选项,非常感谢您的理智。
  • 无需重新启动 PHP 中的所有内容...我第二次将 c# 重新部署为 Web 服务...如果您不想将代码打包,这是您唯一的选择...为了简化 PHP 的工作,我会采用 RESTfull 方法来处理 Web 服务。
  • 查看这个问题的答案:stackoverflow.com/questions/441161/…

标签: c# php


【解决方案1】:

你有选择。

  1. 直接集成。 PHP 可以实例化和使用 .NET 对象。请参阅 PHP 中的 DOTNET 库。因此,如果您在 Windows 上运行 PHP,并且根据 PHP DOTNET 基础架构的要求公开您的 .NET 逻辑,那么您可以直接从 PHP 调用 .NET 类。一些限制: PHP 是为与 .NET 2.0 运行时集成而构建的。您无法构建 .NET 4.0 对象并从 PHP 连接到它们。

  2. 同步网络协议。正如其他人建议的那样,您可以通过 aREST 或 Web 服务接口公开您的 C# 逻辑,然后使用 curl 库或 file_get_contents() 从 PHP 调用这些服务。 C# 逻辑可以但不必公开公开。换句话说,你可以让它只能从你的应用程序的防火墙内访问,这样就不可能进行匿名的公共访问。另一方面,您的架构可能要求从 3rd 方或用户应用程序访问相同的 API。在这种情况下,它需要公开。

    无论是公共的还是私有的,您都需要使用 WCF 或 ASPNET MVC 来公开这些用 C# 实现的服务。

  3. 异步机制。 PHP 可以连接到 MSMQ。见Using PHP to Open MSMQ Queues。当然 C# 也可以这样做。您可以使用 MSMQ 作为两个世界之间的缓冲通信机制。为此,您需要为放入和获取队列的消息提供数据序列化协议。 JSON 或 XML 将是合适的选择。

  4. 数据库。如果您担心使用 MSMQ,因为它是“要管理的另一个基础架构”,您还可以使用数据库作为中间人。 PHP 和 C# 都可以访问共享数据库,并将其用作消息队列或通信管道。 PHP 在 MySQL 表中插入消息,C# 应用程序可以读取和处理它们,然后将回复消息放在不同的表中。这需要您进行一些工作来设计消息格式、协议、索引和请求/回复相关机制。但它依赖于您已经知道如何使用的经过验证的现有技术。

  5. 最后是法拉格。这使您可以将 PHP 编译到 .NET Framework 上。这意味着 C# 和 PHP 之间的集成将很简单。我没有尝试过,但它可能会满足您的要求。

【讨论】:

  • 非常感谢您的回答,它们似乎都是好主意,但我想我会先尝试 dotnet 库,因为我对 .net 没问题。再次感谢!
  • 仅使用 2.0 运行时的限制是否仍然有效?
猜你喜欢
  • 2013-08-16
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 2013-02-16
  • 2014-11-08
  • 2012-02-16
  • 2017-02-05
  • 2012-12-01
相关资源
最近更新 更多