对于一个项目,我必须在Web服务器上托管的数据库和互联网上的几个客户端之间实现通信。 在阅读了一些内容并观看了一些关于可能(微软)技术的介绍性视频之后,我发现我似乎有(至少)三种选择:
1)Windows Communication Foundation(WCF)
2)ASP.NET Web服务
3)ADO.NET数据服务
因为我不熟悉这三种技术中的任何一种,所以我必须深入学习(希望只有)其中一种技术 - 问题是:哪一种?
或者更确切地说:哪一个用于以下任务?
需要将数据从客户端上传到服务器/数据库,还需要下载其他一些数据。在客户端,这不会由在浏览器中工作的用户以交互方式发生,而是作为客户端上的自动进程定期运行(例如每2小时)。
a)在Web服务器端,将有:
b)客户方不太清楚,必须更灵活。在这里,我必须区分两个要求:
i)优先级一(就我可用于开发的时间而言):
ii)优先级较低,但必须是未来选项:
由于最后一点迫使开发人员在客户端使用.NET Framework不是一种选择。客户端的通信必须是可从各种平台和语言访问的任何“标准”技术。在我的小研究中,我正在阅读“SOAP”,“REST”或“AtomPub”等术语,这些似乎是一种标准协议或通信技术(不是微软的专有发明)。但我不确定也不知道哪种技术是“最新的”,具有“最佳未来”,是最常见和众所周知的,是最强大的还是最容易使用的(从其他可能的角度来看)开发人员!问题是我必须支持什么才能让大多数客户端开发人员满意。
最后一点:安全很重要!上传/下载数据必须限于专职人员。没有适当的凭证,就不可能使用或探索界面。
现在最好使用哪种技术? (1),(2)或(3)?你为什么推荐它?
非常感谢您提出任何建议!
答案 0 :(得分:10)
嗯,不。 (2)旧式的ASP.NET Web服务正在逐渐淘汰 - 它已经过时,不再被开发 - 它已被WCF取代。
所以这留下了选项1(直接WCF)和3(ADO.NET数据服务 - 最近重命名为WCF数据服务)。
两者都使用WCF作为他们的基本技术 - 所以在这两种情况下都必须学习和了解WCF。
使用直接WCF(选项1),您有更多选择 - 您可以自我托管,在IIS中托管您的服务,使用不同的协议和绑定等等。但随着选择变得复杂 - 你需要学习和了解所有这些 - 至少在某种程度上。您的客户需要能够与您交谈 - 几乎任何语言(当然,.NET,Java,Ruby,PHP - 您的名字)都可以用这种或那种方式谈论SOAP。
如果您最感兴趣的是将数据从数据库公开到外部客户端,我认为WCF数据服务确实是一个不错的选择。它基于REST,因此您可以使用浏览器访问WCF数据服务,看看会发生什么。它非常强大,甚至提供LINQ客户端支持 - 您可以制定LINQ查询,并将其转换为对数据服务的相应REST调用。
使用WCF数据服务,您的客户端只需要一个HTTP堆栈 - 甚至iPhone也有:-)但是使用.NET客户端,事情当然更好,更舒适,更高效。
我首先要查看WCF Data Service并查看是否满足您的需求 - 如果没有,请深入了解WCF。另请查看WCF Data Service at a glance了解简介。
<强>更新强>
马克,我能理解你吗? 服务器上的WCF实现了这一点 需求?和ADO.NET(WCF)数据 服务呢?
绝对。服务器端的WCF(普通或使用数据服务) NOT 以任何方式,形状或形式指示客户端。如果您真的喜欢它,您可以将iPhone连接到WCF数据服务:-) WCF从一开始就设计为非常可互操作 - 实际上,它是实现最多WS- *行业的一个平台跨平台通信标准。