c# - PHP 到 C#,反之亦然

标签 c# php

我在这个项目中:

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

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

有没有一种简单的方法可以使用 php 页面从我的类(class)获取/发送 C# 变量?我已经阅读了一些有关使用 XML 的内容,但我仍然摸不着头脑,是否有另一种更简单的方法来做到这一点?

最佳答案

您有多种选择。

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

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

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

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

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

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

关于c# - PHP 到 C#,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11208359/

相关文章:

c# - 使用存储在字符串中的 C# 对象初始化语法实例化匿名对象

c# - WPF MVVM 通过事件将 UserControl 从一个 ObservableCollection 移动到另一个 ObservableCollection

php&mysql fopen无法打开文件

php - 验证 unicode 文本区域的最小长度

php - Symfony 2,QueryBuilder,具有相同参数的多个andWhere

php - Paypal IPN 设置

c# - 如何在 JSON 中指定子类类型(在 REST Web 服务中)

c# - 如何修复“System.StackOverflowException”?

c# - 为什么.NET 的 Complex 类型被破坏了?

Php Mysql select查询问题和regexp