我们如何为我们的软件实现独立于技术的Web界面?

时间:2011-02-10 10:17:11

标签: c# asp.net web-services

我们有一个用户登录和管理的网络软件。我们需要为他们提供一种编写脚本的方法,这些脚本可以自动执行他们执行的任务,这样他们就不需要使用Web表单登录。

我们使用ASP.net和c#作为技术。我们希望提供Web服务以允许它们连接并执行基本操作getusers(),updateListring()等。

我想知道的是,当您在c#中编写Web服务时,任何客户端都可以访问它吗?它只是技术独立吗?他们可以用php编写一个网站,用python甚至c ++写一个脚本,用肥皂套件调用网络服务吗?

如果没有,我可以选择让人们独立访问我们的.net软件技术吗?

WCF怎么样?我只把它当作.net。

2 个答案:

答案 0 :(得分:1)

互操作性程度在很大程度上取决于传入和传出的数据类型 - 如果您坚持使用简单类型/基元(如字符串/整数等),则其他客户端更容易访问它。如果返回.net特定对象(如数据集),则很难进行互操作。

此外,你需要考虑是否要保护这些。如果您使用WCF,例如这实现了WS-Security 1.1和SOAP 1.2 - 客户端需要熟悉这些标准

原则上,Web服务应该可以跨客户端进行互操作,但实际上您可以遇到可能导致问题的供应商特定问题(例如.net数据集示例)。

我建议构建一个简单的原型并在预期的客户端技术中创建许多测试客户端来证明互操作性(引用'实用程序员'来解雇一些tracer bullets

答案 1 :(得分:0)

我想补充一点,最好的通用解决方案是让webservice生成xml或json数据。然后,这将跨越技术boudaries,允许数据被php,java,.net或任何其他独立平台使用。如果安全/登录不是问题并且它是公共API,那么您可以将asp.net mvc用作纯粹的RESTFul Web服务,而不需要安全凭证。设置和监控非常简单。

你的最终游戏应该是实现“开放标准”,从而不会将消费者与特定技术联系起来。