繁体   English   中英

WCF,Web服务或ADO.NET数据服务:我应该使用什么?

[英]WCF, Web services or ADO.NET data services: What shall I use?

对于一个项目,我必须在Web服务器上托管的数据库和互联网上的几个客户端之间实现通信。 在阅读了一些内容并观看了一些关于可能(微软)技术的介绍性视频后,我发现我似乎有(至少)三种选择:

1)Windows Communication Foundation(WCF)
2)ASP.NET Web服务
3)ADO.NET数据服务

因为我不熟悉这三种技术中的任何一种,我必须深入学习(希望只有)其中一种技术 - 问题是:哪一种?

或者更确切地说:哪一个用于以下任务?

需要将数据从客户端上载到服务器/数据库,并且还需要下载一些其他数据。 在客户端,这不会由在浏览器中工作的用户以交互方式发生,而是作为客户端上的自动进程定期运行(例如每2小时)。

a)在Web服务器端,将有:

  • SQL Server数据库
  • .NET Framework 3.5 SP1
  • 表示数据库结构并使用ADO.NET Entity Framework建模的类库
  • (一个ASP.NET Web应用程序,它将在浏览器中显示数据库中的数据:我把它放在括号中,因为这个Web应用程序并不重要,因为上面提到的数据上传/下载不会通过浏览器GUI触发。)

b)客户方不太清楚,必须更灵活。 在这里,我必须区分两个要求:

i)优先级一(根据我可用于开发的时间):

  • 客户端在我的控制之下,这意味着:我在客户端上有任何Windows操作系统,我可以安装.NET Framework,我可以决定开发Windows服务,控制台应用程序,Windows窗体应用程序等等。 我对上面提到的类库有所了解和访问。

ii)优先级较低,但必须是未来选项:

  • 我需要公开任何类型的接口描述,允许其他开发人员构建自己的应用程序来上传/下载数据。
  • 其他人将开发的客户端可以使用任何类型的操作系统(Windows,UNIX,MacOS等)进行操作。 他们也应尽可能自由地选择自己喜欢的编程语言。

由于最后一点迫使开发人员在客户端使用.NET Framework不是一种选择。 客户端的通信必须是可从各种平台和语言访问的任何“标准”技术。 在我的小研究中,我正在阅读“SOAP”,“REST”或“AtomPub”等术语,这些似乎是一种标准协议或通信技术(不是微软的专有发明)。 但我不确定也不知道哪种技术是“最新的”,具有“最佳未来”,是最常见和众所周知的,是最强大的还是最容易使用的(从其他可能的角度来看)开发人员!问题是我必须支持哪些让大多数客户端开发人员满意。

最后一点:安全很重要! 上传/下载数据必须限于专职人员。 没有适当的凭证,就不可能使用或探索界面。

什么技术现在最好用? (1),(2)或(3)? 你为什么推荐它?

非常感谢您的任何建议!

好吧,不。 (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- *行业的一个平台跨平台通信标准。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM