8

我在这个项目中:

前端公司人员将使用该网页从 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 的内容,但我仍然在摸不着头脑,还有另一种更简单的方法吗?

4

1 回答 1

12

你有选择。

  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(). C# 逻辑可以但不必公开公开。换句话说,您可以使其只能从应用程序的防火墙内访问,这样就不可能进行匿名公共访问。另一方面,您的架构可能要求从 3rd 方或用户应用程序访问相同的 API。在这种情况下,它需要公开。

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

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

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

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

于 2012-06-26T15:12:28.567 回答