概述:我们希望编写一个C#用户界面来选择Web应用程序的各个部分。这是针对非常俘虏的受众的(例如内部)。

我们的Web应用程序使用Apache作为Web服务器以PHP和/或Python编写。

为什么?经过深思熟虑的本机Windows界面有时可能比使用Web浏览器强加的规则要有效得多。

问题:使用HTTPS在C#和PHP / Python之间进行通信的最佳方式是什么?我主要讲的是每种语言中驻留的各种数据类型的序列化/反序列化和转换。

理想情况下,我们将使用强类型化的结构或对象来在C#中使用,并为此而在PHP / Python中创建适当的数据结构来使用。代码生成器很好。

我查看过Apache Thrift,考虑过扩展我们的内部数据库,查看了Google的Protocol Buffer等。


将开发人员的开销保持在最低水平至关重要。
确保性能合理(尤其是在服务器端)非常重要。


欢迎对XMLRPC,SOAP或其他相关技术的有用性发表评论。

有指针吗?

最佳答案

我没有使用PHP的实际经验,但是我已经做了很多前端客户端使用各种语言和环境使用的Python后端Web服务。在我尝试过的所有技术中,SOAP是唯一的一种使我口中难受的技术-过多的“仪式” /开销。 (在很久以前,我还尝试过Corba,当我试图在不同语言的独立实现之间进行互操作时,感觉并没有什么不同;-)。

XML-RPC,JSON和协议缓冲区对我来说都非常有用。

协议缓冲区是我们通常在Google内部使用的协议,我不确定您对它们的了解程度如何,因此对它们的文档记录不足-请提出具体问题,我将为改善我们的文档(正式或非正式地)提供解决方案!它们的主要优点是它们在电线上是如此“紧密”-开销最小,灵活性最高。 JSON也很棒-不仅是为了在Javascript客户端中易于使用,有时:当根本不涉及JS时,有时我也将它用作不同语言之间通信的默认格式!

设置好网络应用程序以发出(例如)协议缓冲区后,就不难使它能够应要求发出XML或JSON了-GET请求中只需一个?outputformat = JSON额外的参数,并选择正确的输出序列化器非常容易(在Python中,但是我敢肯定,在PHP中也是如此)。

在我看来,在C#端“获取强类型对象”是您最好在端的C#层中完成的一项工作。对此没有直接的经验,但是,例如,我将C ++中协议缓冲区的接收包装到了工厂类中,这些工厂类喷出了结构完美和静态类型化的对象(或在传入数据在语义上不正确时引发异常);我知道使用JSON或XML不会困难,而且我非常怀疑使用Java,C#,Python或在现实世界中可以使用的任何其他语言会更困难!-)

关于c# - 将C#(前端)连接到apache/php/python(后端),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1023187/

10-09 15:25
查看更多