2

ネットワークプログラミングを勉強したいのですが、「C# の概要」に「ネットワーキング」という章があり、この章には「WebClient」「HttpClient」「FTP」「TCP」などが含まれています。しかし、誰かが私に WCF を勉強するように言っています。私は WCF と c# ネットワーキング プログラミングの関係を知りたいのです。WCF がネットワーク プログラミングをカプセル化していることをどこかで見たことを思い出しました。それはより柔軟で便利ですが、効率的ではありません。これは、ado.net テクノロジーと orm のような関係を意味するのでしょうか。ネットワークプログラミングとWCFのどちらを勉強すればいいですか? C# ネットワーク プログラミングは時代遅れのテクノロジですか?

ありがとう

4

3 に答える 3

2

「ネットワークプログラミング」は通常、ソケットを指します。これはネットワーク通信の最低レベルであり、ネットワーク上でバイトをプッシュすることを扱います。他のすべての通信システムはソケットの上に構築されています。

使用できる単純な高レベルのシステムがあるため、ほとんどのプロジェクトはソケットを直接使用しませんが、それほど複雑ではなく、それらの高レベルのシステムの問題に対処するのに役立つため、基本を学ぶことはまだ価値があると思います。

次のレベルはWebClientとその仲間で、これらはソケット(HTTPなど)の上に通信プロトコルを実装する比較的単純なクラスです。

それらはシンプルで非常に便利なので(たとえば、インターネットからファイルをプルしたり、サードパーティのサービスと通信したりする場合)、それらの使用方法を学ぶことは間違いなく時間をかける価値があります。

あなたがWCFを持っている最高レベルでは、これは広範な(そして私の個人的な意見では過度に複雑で過度に設計された)フレームワークであり、すべての通信の詳細を(失敗して)隠そうとしている間、外部ネットワークベースのサービスのクラスインターフェイスを提供します。

WCFは、大規模な組織や「エンタープライズシステム」で非常に人気があります。したがって、大規模な組織向けのエンタープライズシステムの開発に就職したい場合、WCFを学ぶことは非常に賢明なキャリアの動きです。

だから、私のアドバイスは、ソケットから始めて、基本だけを学びます-これは、物事が内部でどのように機能するかを理解するのに役立ちます(これは、ネットワークの問題をデバッグする必要があるときに非常に役立ちます)。

上位レベルのクラスに進むよりも、WebClientを使用してインターネットからページを読み取る簡単なプログラムを作成して、概念に慣れ、すべての高度なオプションを気にしないでください。それらはそこにあり、検索できます。後で必要になったときに。

ソケットとWebClientの基本を学ぶのに数時間かかるはずです。その後(大規模なシステムで作業する場合)、WCFの使用方法を学びます。

そうすれば、履歴書に関するWCFの知識が得られ、必要のないときに巨大なフレームワークを使用せずに、数行のコードでインターネットを介して何かを取得する方法を知ることができます。

于 2012-08-20T08:08:44.713 に答える
1

ネットワークプログラミングを研究したい場合は、ソケットとTCP / IPについて読む必要があります(ストリーミングまたはより小さなパケットが必要な場合は、後でUDPについて読む必要があります)。ソケットは、ほとんどのOS:esがTCP/IPなどのプロトコルを処理するために使用するAPIです。

あなたの比較は正しいです。WCFは、.NETのネットワーク層の上にあるフレームワークです。ORMがADO.NET上のフレームワークであるのと同じように。

于 2012-08-20T07:19:05.017 に答える
1

WCFは、いわゆるネットワークプログラミングではありません。これらは、いくつかの関係を持つ2つの概念です。

通常、ネットワークプログラミングはソケットプログラミングとTCP/IPを意味します。HTTP、FTP、SNMPなどのプロトコルに精通している必要があります。次に、プロトコルサーバーおよびクライアントとして機能するプログラムを作成できます。ネットワークプログラミングはまだ人気がありませんが、まだ人気があります。

WCFは、HTTPのみ(主にSOAP)であるWebサービスのフレームワークです。

可能であれば、両方を学ぶか、少なくとも両方を知っておく必要があります。

于 2012-08-20T07:19:51.730 に答える