wcf vs c#网络编程

时间:2012-08-20 07:13:33

标签: c# wcf network-programming

我想研究网络编程,在“C#简而言之”中有一个名为“网络”的章节,本章包含“WebClient”,“HttpClient”,“FTP”,“TCP”等。但是有些人告诉我学习WCF,我想知道WCF和c#网络编程之间的关系是什么,我记得我曾经看到WCF封装网络编程的地方,它更灵活方便,但效率不高。这是否意味着他们之间的关系,如ado.net技术与orm?我应该学习哪些,网络编程还是WCF? c#网络编程是否是一种过时的技术?

由于

3 个答案:

答案 0 :(得分:2)

“网络编程”通常指套接字,这是网络通信的最低级别,处理网络上的推送字节 - 所有其他通信系统都建立在套接字之上。

大多数项目不直接使用套接字,因为您可以使用简单的更高级别的系统,但我认为学习基础知识仍然是值得的,因为它不是那么复杂,它将帮助您处理这些更高级别系统中的问题。

下一个级别是WebClient和朋友,这些是相对简单的类,它们在套接字之上实现通信协议(例如HTTP)。

绝对值得花时间学习如何使用它们,因为它们非常简单且非常有用(例如,如果您想从互联网上提取文件或与第三方服务进行通信)。

在最高级别你有WCF,这是一个广泛的(并且在我个人看来过于复杂和过度设计)框架,它为你提供了一个基于外部网络的服务的类接口,同时尝试(不成功)隐藏所有沟通细节。

WCF在大型组织和“企业系统”中非常受欢迎,因此,如果您希望获得为大型组织开发企业系统的工作,学习WCF是一项非常聪明的职业转变。

所以,我的建议,从套接字开始,只学习基础知识 - 这将帮助您了解工作原理(当您必须调试网络问题时,这将变得非常有用)。

转到更高级别的课程,编写一个简单的程序,使用WebClient从互联网上读取页面让你对这个概念感到满意,不要打扰 有了所有高级选项,它们就在那里,您可以在以后需要时查看它们。

只学习套接字和WebClient的基础知识应该只花几个小时,之后(如果你想在大型系统上工作)学习如何使用WCF。

然后,您将拥有简历的WCF知识,并且您将知道如何在不使用巨大框架的情况下通过几行代码获取某些内容,而不需要它。

答案 1 :(得分:1)

如果您想学习网络编程,您需要阅读 套接字 和TCP / IP(如果您想要流式传输或更小的数据包,请阅读以后的UDP) 。套接字是大多数操作系统用来处理TCP / IP等协议的API。

您的比较是正确的。 WCF是.NET中网络层之上的框架。正如ORM是ADO.NET之上的框架一样。

答案 2 :(得分:1)

WCF不是所谓的网络编程。它们是两个有某种关系的概念。

通常,网络编程意味着套接字编程和TCP / IP。您应该熟悉协议,例如HTTP,FTP,SNMP等。然后,您可以编写充当协议服务器和客户端的程序。网络节目仍然很热门,虽然不再流行。

WCF是一个Web服务框架,它只是HTTP(主要是SOAP)。

如果可能的话,你应该学习两者,或至少知道两者。