Sla*_*uma 6 wcf web-services wcf-data-services
对于一个项目,我必须在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)?你为什么推荐它?
非常感谢您的任何建议!
mar*_*c_s 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数据服务,看看它是否满足您的需求 - 如果没有,请深入研究WCF.同时查看WCF数据服务一目了然.
更新:
Marc,我是否理解您服务器上的WCF是否满足此要求?和ADO.NET(WCF)数据服务呢?
绝对.WCF(平原或与Data Services)在服务器端确实不规定以任何方式,形状或形式的客户端.如果您真的喜欢它,您可以将iPhone连接到WCF数据服务:-) WCF从一开始就设计为非常可互操作 - 实际上,它是实现最多WS-*行业的一个平台跨平台通信标准.