C# PHP+。用于数据访问的Net Web服务-错误的设计选择?

C# PHP+。用于数据访问的Net Web服务-错误的设计选择?,c#,php,web-services,C#,Php,Web Services,该公司有一个PHP应用程序,其状况非常糟糕。他们想开始计划在.NET中重新设计它,但是他们需要使用当前的设计,因为各种各样的原因,我在这里不谈这些 他们希望对当前的设计进行一些增强,但这样做的方式是,当.NET版本出现时,这些增强可以部分地被重用。这样做的一个想法是使应用程序的数据和业务逻辑部分作为一个.NET Web服务驻留,PHP端将使用它 我的问题是,这会导致PHP出现问题吗?PHP能否快速高效地使用.NETWeb服务?或者这仅仅是一个糟糕的设计决策?Web服务的主要优势在于它的互操作性,

该公司有一个PHP应用程序,其状况非常糟糕。他们想开始计划在.NET中重新设计它,但是他们需要使用当前的设计,因为各种各样的原因,我在这里不谈这些

他们希望对当前的设计进行一些增强,但这样做的方式是,当.NET版本出现时,这些增强可以部分地被重用。这样做的一个想法是使应用程序的数据和业务逻辑部分作为一个.NET Web服务驻留,PHP端将使用它


我的问题是,这会导致PHP出现问题吗?PHP能否快速高效地使用.NETWeb服务?或者这仅仅是一个糟糕的设计决策?

Web服务的主要优势在于它的互操作性,或者说它能够被独立于语言的其他人使用。PHP应该有一些允许它使用Web服务的东西,以便;没什么大不了的。缺点是它可能会稍微慢一点,但这是您必须测试的内容,以查看它对您的总体解决方案有多大的影响。一般来说,大多数解决方案并非天生正确或错误,您必须根据您的具体情况测试它们的有用性。

PHP可以很好地使用.NET web服务,只要您远离基于WSHTTP的web服务并使用基本HTTP。为了安全起见,您可以使用SSL保护基本HTTP web服务

当您在Visual Studio 2008中打开一个ASP.NET(可以是MVC,也可以不是MVC)项目时,右键单击该项目并选择“添加新项目”。您将在Web下看到一个称为Web服务的内容。这将创建一个.asmx文件,您可以找到有关如何创建这些基本web服务的教程

另一种选择是使用Windows通信基金会,它有很多有用的类,但是它可以更复杂。WCF服务的默认配置是WSHTTP,但也可以使用WCF创建基本的HTTP web服务

我的问题是这会导致什么 PHP中的问题?PHP可以使用.NET吗 快速高效的web服务? 或者这只是一个糟糕的设计决策

我有两个想法。首先直接回答你的问题。我不认为这是一个糟糕的设计,如果.NET服务与书面语言无关,那么应该没有什么问题


第二个想法是“希望”。我希望选择使用.NET框架不是因为PHP编写得很糟糕。在我看来,由于糟糕的实现而改变语言是设计失败的地方。与公司选择重新编写PHP相比,转换为新语言需要付出更多的努力,最终结果将是一个具有内置遗留支持的统一语言库。但是我是一个PHP爱好者。

要让PHP快速使用.NET Web服务,您需要使用PHP5本机SOAP客户端API,使缓存能够在本地存储WSDL。如果您使用PHP4,您可以使用Nusoap,但它没有本机类快。

拥有一个web服务的全部意义在于各种开发平台之间的互操作性。例如,twitter是一个基于rails的网站,它的服务通过RESTfulWebAPI被用.NET、java、python等编写的各种桌面和web应用程序所使用。据我所知,脸谱网是PHP和C++,还有多少网络应用程序通过API来消费它的服务。所以我不认为这是个坏主意。问题是如何实现此Web服务。也就是说,你是想用一次,然后扔掉它,还是想起诉它很久。如果第二个选项是真的,请确保在设计webservice api时考虑到这一点。PHP还可以轻松使用XML-RPC和SOAP。我使用了两者(由基于Perl的服务提供),没有任何问题,也没有对性能造成很大影响

我认为使用.NET从PHP迁移并不是最明智的选择,但这有点主观。根据我的经验,它几乎总是以杀伤力过大、设计不好、维护成本更高、车辆更多而告终——这是因为野兽的本性

附言:
我不是PHP爱好者,但我不相信为了转换而转换到.NET。另外,维护.NET基础设施的成本更高,而且劳动强度也更大。

根本不是什么问题,只需调查一下您的选择即可

Web服务可以以多种格式输出数据。SOAP/XML是默认值,但没有理由不能使用YML、XML序列化对象或我当前最喜欢的JSON(这使得从浏览器调用它非常容易)

再看看WCF服务,我相信它们应该取代Web服务格式

最后,如果你正在寻找最佳实践,请查看S。这是一个广泛而多样的领域,这正是他们谈论的事情