【.NET】WCF〜Windows通信基盤技術【通信】
■ このスレッドは過去ログ倉庫に格納されています
.NET Framework 3.0 における新しい通信サブシステムであり、
アプリケーション同士をネットワーク経由で接続する仕組みである。
wikipediaより
<関連URL>
■Windows Communication Foundation (WCF)
http://msdn.microsoft.com/ja-jp/netframework/aa663324.aspx
0002デフォルトの名無しさん
2009/10/14(水) 23:18:050003デフォルトの名無しさん
2009/10/15(木) 00:52:39信じる者は救われる〜〜〜〜みたいにw
0004874
2009/10/15(木) 01:48:050005デフォルトの名無しさん
2009/10/15(木) 01:49:530006デフォルトの名無しさん
2009/10/15(木) 02:06:19でも、ここってMicrosoft教WCF宗派が集うスレじゃね
0007デフォルトの名無しさん
2009/10/16(金) 01:16:070008デフォルトの名無しさん
2009/10/16(金) 16:22:15ちなみにアプリ間の通信に関しては
他にどんな宗派があるの?
0009デフォルトの名無しさん
2009/10/16(金) 17:43:09まず業界標準のOMG/CORBAがある。
また、CORBAと互換性(相互運用性)があるのか否かが最大の注目点。
もし無ければ、ブリッジ(or ゲートウェイ)が標準提供される必要がある。
このブリッジはプログラミングレスであることが重要。
さもなければ、MSの宗教(MS教.NET宗WCF派)であると見なす。
0010デフォルトの名無しさん
2009/10/16(金) 19:09:50WCF vs xml-rpc
WCF vs SOAP
WCF vs socket
WCF vs RPC
0011デフォルトの名無しさん
2009/10/16(金) 19:18:15ちなみにWCFは通信プロトコルじゃないよ。
WCFのモデル上で各種通信プロトコルが実装される。
Webサービスとかその他諸々。
CORBA対応するとしてもそういうイメージ。
0012デフォルトの名無しさん
2009/10/16(金) 19:20:28単一のプログラミングモデルで扱えるようにするのが目的だから。
0013デフォルトの名無しさん
2009/10/16(金) 20:27:27>CORBA対応するとしてもそういうイメージ。
・CORBA対応は後発であるWCF側で対応する
・その対応により、既存システム側に変更は不要
・上記はMSが保証する
>>12
>元々あらゆる通信プロトコルを
>単一のプログラミングモデルで扱えるようにするのが目的だから。
・その「あらゆる」という言葉には、当然、CORBAも含まれている
・.NET系以外のシステムであっても、相互運用可能である
・上記はMSが保証する
これらは、すべてYESですか?もしそうであれば宗教扱いを止めます。
0014デフォルトの名無しさん
2009/10/16(金) 23:18:39− 再利用方法:分散環境でのコンポーネント、部品再利用
− 再利用環境:同じ開発環境および同じぷラットフォーム
− 代表する技術:ActiveX、COM/DCOM、JavaBeans、EJB、CORBA/COM
− インタフェイス定義:IDL
− 問題点:特定プラットフォームへ依存、ファイヤウォールの透過は困難
↓
・サービス指向アーキテクチャ
− 再利用方法:分散環境でのサービスの再利用
− 再利用環境:サービス指向アーキテクチャ環境
− 代表する技術:SOAP Webサービス、*WCP*
− インタフェイス定義:WSDL
− 問題点:業界共通の定義は、まだ存在しない
「これからはじめるWCFプログラミング」(秀和システム)より
0015デフォルトの名無しさん
2009/10/16(金) 23:20:57A:アドレス
B::バインディング
C:コントラクト
0016デフォルトの名無しさん
2009/10/17(土) 00:02:03CORBAとかその辺がやってたことを再実装して売り出すというやつですか。
0017デフォルトの名無しさん
2009/10/17(土) 00:05:43>− 代表する技術:ActiveX、COM/DCOM、JavaBeans、EJB、CORBA/COM
> − インタフェイス定義:IDL
> − 問題点:特定プラットフォームへ依存、ファイヤウォールの透過は困難
問題点が特定プラットフォームへ依存ってあるけど、それはActiveX、COM/DCOMのこと?
Windowsシステム上でしか動かないし、他のシステムと相互運用性ないし。
自分から原因を作っておきながら、さも全体に問題があるように語るの?
もしも、それでWCFを拝んでいるようなら、やっぱ MS教.NET宗WCF派 だよwww
>− 代表する技術:SOAP Webサービス、*WCP*
えーと、"WCP" って、まさか Windows Communication Protocol じゃないよね。
今時、特定プラットフォームへ依存するプロトコルなんてありえないし。
0018デフォルトの名無しさん
2009/10/17(土) 02:47:55サービス指向の考え方がわりと根底にあるっていう特徴はあるにしても。
メインはWebサービスだし、MS教とか関係ないっつの。
WCFに関してはね。
0019デフォルトの名無しさん
2009/10/17(土) 03:08:01通信プロトコルではないの意味が分かってないのか?
.NETでは通信のプログラムはこういうモデルで書こうというだけの話に、
宗教もくそもない、既存の標準のしくみを置き換えるものでも何でもない。
002014
2009/10/17(土) 06:41:53× WCP
○ WCF
0021デフォルトの名無しさん
2009/10/17(土) 07:33:20すべての宗教、思想、道徳をあたたかくつつみこんでくれるわけですね。
しかし、それはいっいどんなものなのでございましょう?
0022デフォルトの名無しさん
2009/10/17(土) 12:52:330023デフォルトの名無しさん
2009/10/17(土) 23:46:03>メインはWebサービスだし、
というよりも、WCFはWindowsプラットフォーム上でしか緊密な相互運用性が保証されず、
他のプラットフォームとの間は、Webサービス(SOAP)みたいな粗結合な仕掛けでしか
相互運用できないってのが事実だろが。まったく信者はこれだから....。
>19
>.NETでは通信のプログラムはこういうモデルで書こうというだけの話に、
で、そのモデルとやらは、Windows以外のプラットフォームを包含しているのか?と指摘しているんだよ。
漏れはMSを全否定する気はない。特に、MSの持つXML関連の技術は、高く評価している。
たとえばWPFは、MSらしいXML応用技術だ。そして、WPFはWindowsプラットフォーム(.NET)上で
閉じているから、その世界の中で信者達が信仰している分には、何をしようと無問題だ。
でもな、MS教がネットワーク、あるいは分散システムに進出するとなれば、話は大きく変わるんだよ。
それが何度も言っている「他プラットフォームとの相互運用性」という課題。
0024デフォルトの名無しさん
2009/10/17(土) 23:59:180025デフォルトの名無しさん
2009/10/18(日) 00:25:08DCOMもCORBAも共にインターフェイス定義にはIDLを採用してた。
では、DCOMとCORBAとの相互運用は可能だったのか?
WSDLは相互運用性を実現する技術要素の一つでしかない。
WSDL採用だけでは相互運用性は保証されないんだよ。
まったく、これだから信者は始末に負えない。
教祖MS様の言う事は、全て正しいと思い込んでる。
0026デフォルトの名無しさん
2009/10/18(日) 00:33:170027デフォルトの名無しさん
2009/10/18(日) 00:47:28>>13の前段を嫁
0028デフォルトの名無しさん
2009/10/18(日) 00:59:44CORBAやってるやつはそれをすててWCF使えばいいってのも同様に十分条件となるってことだな
まあ、、、時間を無駄にした
0029デフォルトの名無しさん
2009/10/18(日) 01:24:57>>23でWPFを例えにしたけど、WCFも同じ。
Windowsプラットフォームだけの閉じたシステムを構築するなら、WCFでも無問題。
ただし、CORBAでもなんでもいいが、他のプラットフォームが存在しているシステムにWCFベースの
Windowsサブシステムを追加しようとした場合、相互運用性が課題になる。
既存の(メインフレーム/UNIX/Linuxで動く)基幹システムを、すべてWindowsに置き換えろってか?
笑われるぞ。もしそれを正気で言ってるとしたら、それこそMS教の狂信者だぜ。宗教って怖いね。
>>28がWindowsだけで閉じた世界に生きているなら、時間の無駄だよ。
というか、相互運用性という言葉の意味を知らずにカキコしているのか?
0030デフォルトの名無しさん
2009/10/18(日) 01:27:370031デフォルトの名無しさん
2009/10/18(日) 01:37:56>>25嫁
0032デフォルトの名無しさん
2009/10/18(日) 03:12:56他の環境でWCFのプログラミングモデルを使う必要などない
という大前提をなんで無視するの?
ってかなんでそんな大げさな仕組みと思いたがるの?
勝手に思い込んで信者とか?
もう気色悪いんだよ。
しんでもCORBAがい言ってんならそういうのはWebサービス信者に言えよ。
0033デフォルトの名無しさん
2009/10/18(日) 03:14:41何回いわせるんだよ。
0034デフォルトの名無しさん
2009/10/18(日) 07:23:47だからこれからMSも他プラットフォームもWSDLを使っていこうってことなんだよ。
MSはCOM/DCOMをすてる。他のプラットフォームにいるやつもCORBAをすてる。
今からWSDLに集結しましょうっていう話だと思うよ。
CORBAを使いたがってるやつは、その行為自体も相互運用性を保障するものではないってわっかってんのかね?
0035デフォルトの名無しさん
2009/10/18(日) 15:25:57誰も言ってないことを妄想語り。
これだから基地外は。
0036デフォルトの名無しさん
2009/10/18(日) 15:29:21基幹のシステムをみんなWebサービスに置き換えるのか、とか言って。
0037デフォルトの名無しさん
2009/10/18(日) 15:36:39Windows上で構築したり呼び出したりするときは、
WindowsではWCFのプログラミングモデルを使って構築する。
Windows同士のネイティブな通信でもWCFを使う。
Windows以外のシステムではそちらで都合のいいプログラミングモデルを使って
やっぱりWebサービスやCORBAやその他要件に合わせた技術で構築する。
これの一体どこにMS信者とか狂信者とかそんな言葉が出てくるんだか。
0038デフォルトの名無しさん
2009/10/18(日) 18:14:07標準的な通信方式でもネイティブなローカルな方式でも
デファクトになってきた新しい方式でも
今後新しい方式が出てきても、
基本的にプログラミングモデルは変えなくて良い。
ただ対応するプロトコルスタックを提供するだけ。
まあそういう考え方はは昔からないわけではないが、
実質的にあまりうまくいかなかった。
何でだろうな。
0039デフォルトの名無しさん
2009/10/18(日) 18:21:280040デフォルトの名無しさん
2009/10/19(月) 09:56:050041デフォルトの名無しさん
2009/10/19(月) 10:46:32つ WindowsDNAでも使ってろ!HailStormでも使ってろ!
0042デフォルトの名無しさん
2009/10/19(月) 23:14:260043デフォルトの名無しさん
2009/10/20(火) 02:58:40.NET で閉じてるうちは自由にトランスポート層を選択できるけど、
非.NET な世界と会話しようとした途端に
WebService を選択せざるをえなくなって、
それ以降は WebService と言う制限を受ける。
サービス実装が透過してるから
「速度が重要になったらあとでソケットにしよう」
なんてことが設定レベルで出来るはずだったのに
そのうまみがまったくない。
だったら外と通信する部分は最初からソケットで組めって話になる。
0044デフォルトの名無しさん
2009/10/20(火) 03:44:43リクエスト&レスポンス(コール&リターン)しか使えないRPCと大差無しという事。
MS/DCOM、OMG/CORBA、それにOSF/DCEさえ満足に使えないプログラマが大半だったのに、
それが教祖MSの考案した新教典WCFだからという理由だけで、
>>37,38みたいな能天気な発言で盛り上がれるんだから、
ここのミサに集っている連中の宗教狂いレベルも分かる。
ましてや>>39なんて狂信者の発言なのに、それを誰も咎めない。
やっぱりMS/WCFは宗教だろ。wwwww
004544
2009/10/20(火) 04:40:58引き合いに出すのは不適切だった。>>44のカキコから削除する。失礼した、ゴメソ>>38
逆に、>>44へ追加するのは>>32,34あたりか。
0046デフォルトの名無しさん
2009/10/20(火) 07:52:47>Webサービス(SOAP)前提ってことは、要するにセマンティクスとして
>リクエスト&レスポンス(コール&リターン)しか使えないRPCと大差無しという事。
SOAPってリクエスト&レスポンス(コール&リターン)前提だったのか。
初めて知ったよw
0047デフォルトの名無しさん
2009/10/20(火) 08:45:42詰まるところ何が言いたいの?
最初からみんなソケットで組めってか?
0048デフォルトの名無しさん
2009/10/20(火) 08:47:32つまり何が言いたいのか分からない。
お前らみんな狂信者だって言ってるだけだな。
0049デフォルトの名無しさん
2009/10/20(火) 08:50:50Windowsでの汎用的な通信プログラムが
それなりに楽な共通プログラミングモデルでできるってだけの話に
一体何を言ってるんだ?
0050デフォルトの名無しさん
2009/10/20(火) 15:24:55とっとと具体的な話題に入らない方も悪いと思う。
で、議題募集。
前にでてるパフォーマンスとかいいんじゃない?
あとこんなの作ってみたとか、作り方教えてとか、ここがうまくいかないとか。
手を動かさないと始まらないよ。
0051デフォルトの名無しさん
2009/10/20(火) 17:52:13MSの宣伝ではRemoting以上の速度(つまり、パフォーマンスはかなり良い)って事になってるね。
実際、使ってみてパフォーマンスで困るような事はなかった。
ただ、ChannelFactory<T>を使う場合は動的コード生成を行うせいか、初動が遅かった。
(といっても、1秒程度だが、コマンドラインツール等で使用すると微妙に気になるかも)
svcutilで生成したコードはを使えば、動的コード生成なし使えるかもしれないが、
そこは試していないので不明。
0052デフォルトの名無しさん
2009/10/20(火) 18:00:22「silverlightに対応しているから」
この一点に尽きる。
現状では、
.Net3.5とsilverlightの両方に対応したコードで使える通信フレームワークというと
WCFしか選択肢がない。
0053デフォルトの名無しさん
2009/10/21(水) 13:20:44何を開発しているのか書いてくれないと、だから何?って感じでつ
0054デフォルトの名無しさん
2009/10/23(金) 15:01:190055デフォルトの名無しさん
2009/10/23(金) 21:54:59.NET Framework4.0なんて夢のまた夢…。orz
0056デフォルトの名無しさん
2009/10/24(土) 14:22:09何を作ろうとして、つかえてないの?
0057デフォルトの名無しさん
2009/10/24(土) 23:21:480058デフォルトの名無しさん
2009/10/25(日) 00:37:00いや、そういう話だろ。
2000じゃなかったらWFCで作れるプロダクツがこの世に存在するってことはまだあたりまえのことじゃないからな。
0059デフォルトの名無しさん
2009/10/25(日) 06:48:390060デフォルトの名無しさん
2009/10/25(日) 19:53:14006155
2009/10/25(日) 23:04:35宣伝になるから嫌だけど。
一応成果物はあるんですがね。
http://intra-master.giga-works.com/
社内or客先に2000がまだあるから .NET2.0 -> .NET3.5/.NET4.0 に移行出来ないってだけで。
ttp://community.giga-works.com/windows/wcf-apache-cxf-ws-security.html
ttp://community.giga-works.com/c-sharp/wcfgzipwcf-client-apache-cxf-pjl-comp-filter.html
ttp://community.giga-works.com/c-sharp/wcfgzipwcf-client-apache-cxf-pjl-comp-filter---2.html
なんで自前で暗号化実装しないとダメなのよ。WCFで良いやん…みたいなね。
んで、2000から7までカバーしろとか。もうね…。orz
SQLServerもExpressEditionですら使わせてくれないしー。Silverlightも出る前だったしー。
データの受け先もApacheCXFにしちゃったしね。あーあ。
開発は全部一人でやってますよ。えぇ。DB設計から画面設計から何から何までね。
ちなみにボランティアですな。ははっ。本業はプログラマーじゃないです。
0062デフォルトの名無しさん
2009/10/25(日) 23:31:01でも、そういう環境って貴重だよ。
あたりまえにできそうなことができるってわかっただけでも貴重な情報。
こまかなトラップいっぱいあるからね。この世界。
006361
2009/10/25(日) 23:54:11乙ですね。
落とし穴…いっぱいありましたよ。
スレ違いになるからコレ以降はカキコしませんが。
ActiveDirectory環境下でWindowsサービス使ってログオンをHookする時とかに、うぎゃーとか。
Apacheで展開する時に、SSLとVirtualHostを同時に運用しないといけなくて、うぎゃーとか。
最初は鯖側をASP.NETで作成してたのですが、ソースをIISへ転送しないとダメで、
こりゃ実装としてマズーでうぎゃーとか。
Javaで再実装後、1台のJ2EEサーバーで同一アプリを同時展開するために、うぎゃーとか。
んで、本業じゃないんで漏れの睡眠時間がうぎゃーとか。www
プログラマーじゃないんです、ハンコ屋なんですとか言っても信じてもらえないし。
えぇ。友人のためにボランティアで作りました。
0064デフォルトの名無しさん
2009/10/28(水) 17:26:450065デフォルトの名無しさん
2009/11/21(土) 08:54:040066デフォルトの名無しさん
2009/11/30(月) 21:54:230067デフォルトの名無しさん
2009/12/09(水) 21:10:230068デフォルトの名無しさん
2009/12/13(日) 03:38:09プロトコルや通信路によってコードを変えなくていいのが良い。
0069デフォルトの名無しさん
2009/12/15(火) 23:26:01JavaのRMIのシステムをWCFで再構築しなおすことってできますか?
0070デフォルトの名無しさん
2009/12/15(火) 23:49:01RMIに相当する機能(オブジェクトのマーシャリング)は含まれていない。
WCFは、RMIよりもSOAP/DCOM/CORBAと類似性のある仕掛け。
RMIと違い、提供するサービスを明示的に記述する必要がある。
遊びで触るくらいなら動かせると思うけど、ある程度の規模の
RMI応用システムを想定しているのなら、かなり苦労することになるだろね。
少なくとも上に書いた三つの類似技術のどれか一つを、
概念的にでも理解できていないと、WCFは使いこなせないよ。
結論:苦労してWCFを勉強しても、三つの類似技術と同様、普及することなく
忘れ去られる技術だから、WCFを勉強しても無駄になるだけ(笑
0071デフォルトの名無しさん
2009/12/16(水) 01:05:060072デフォルトの名無しさん
2009/12/16(水) 12:35:37WCFの勉強自体に苦労はない。WCFによるサービスをシステムを構築する上で
IISでどうホストするかが重要。セッションとか。
0073デフォルトの名無しさん
2009/12/17(木) 19:56:01他人のレスに文句つけるくらいなら、質問者(>>69)に適切なレスしてみればいい。
システムをxxxからWCFへ移行したいなんて要望は、この先ありふれた質問になるよ。
底辺プログラマには無理な注文かな(笑
0074デフォルトの名無しさん
2009/12/17(木) 23:30:330075デフォルトの名無しさん
2009/12/18(金) 02:06:50お前WCFが何か分かってないだろ。
分かってたらそういう反応にはならない。
0076デフォルトの名無しさん
2009/12/18(金) 10:44:36うるせーよ底辺。
早く質問者(>>69)に回答したら?
0077デフォルトの名無しさん
2009/12/18(金) 11:45:160078デフォルトの名無しさん
2009/12/24(木) 23:50:190079デフォルトの名無しさん
2010/01/01(金) 05:08:11残念。私は高さだ。
さしずめ君は÷2かな。
0080デフォルトの名無しさん
2010/01/01(金) 15:49:020081デフォルトの名無しさん
2010/01/01(金) 18:22:550082デフォルトの名無しさん
2010/01/01(金) 18:49:300083デフォルトの名無しさん
2010/02/19(金) 10:38:32ttp://www.gizmodo.jp/2010/02/windows_mobile.html
0084デフォルトの名無しさん
2010/05/05(水) 20:37:19もう他じゃ無理w
0085デフォルトの名無しさん
2010/05/07(金) 14:24:390086デフォルトの名無しさん
2010/05/23(日) 17:54:10実際の通信にHTTP使ってる場合も多いし
0087デフォルトの名無しさん
2010/05/23(日) 20:49:090088デフォルトの名無しさん
2010/08/08(日) 03:45:38BindingでCustomBindingを指定して、GZip有効にすると3.5でOKなのに4.0だとエラー吐くとか、もうね。orz
# SP1待ちか?
とりあえず3.5止まりッス。うぇうぇうぇ。
0089デフォルトの名無しさん
2010/09/16(木) 13:09:510090デフォルトの名無しさん
2010/09/17(金) 20:41:41PostgreSQLのDBサーバ〜クライアントライブラリ間は、TCP/IP上の「独自プロトコル」で会話している。
これはMySQLやDB2のような他のRDBも同じ構造。そして、この独自プロトコルをWCFのサービス定義に
対応付ける(マッピングさせる)ことは技術的に非常に困難だから、(対Linuxプラットフォームに限らず)
・WCFで外部世界のDBと直接通信する「汎用的な方法」は存在しない。
次に、現実に要望があった場合、実際にはどうやって実現させるについて。一般的な言い方をすれば、
・PostgreSQL上で構築されているデータモデルにSOAPサービスを追加実装&公開し、
このSOAPサービスをWCF(Windows)側からアクセスさせる
ことによって実現できる。注意すべきは、個別のデータモデルごとにSOAPサービスを定義&実装する
必要があるということ(汎用的な方法は存在しない)。SOAPサービスの実装方法については、
Linuxであれば、たとえばRubyを使うのことを勧める。Rubyなら標準ライブラリにSOAPサーバ機能(SOAP4R)が
含まれているし、あるいはRuby on RailsのActiveResourceと呼ばれるSOAP向けフレームワークを利用できる。
などと、ここまで説明してきたけど、かなり面倒だよ。WCFは「Windows諸島という絶海の孤島」で
Win同士が会話することに特化して異常進化したものだから、外部世界との通信の実装には高いスキルが要求される。
だから、素直に(WCFではなく)C#向けPostgreSQL APIを使って開発するのが、単純/簡単/高速/トラブル無しで済む。
言い換えると、ガラパゴス諸島へ移住する気がないのなら、WCFの勉強は無駄・無駄・無駄www
0091デフォルトの名無しさん
2010/09/18(土) 09:00:120092デフォルトの名無しさん
2010/09/19(日) 17:47:13まあ直接やった方が楽ではあるな
0093デフォルトの名無しさん
2010/10/28(木) 07:40:06単なるRESTフレームワーク化するらしいw
0094デフォルトの名無しさん
2011/06/26(日) 22:15:14.590095デフォルトの名無しさん
2011/10/02(日) 15:54:18.62基本的にはユーザー側のアップロードが出来ない仕様でトップダウンという
形でファイルだけを受け取れる様にしたいです。
色々独自で調べたのですがいまいちピンと来ないです。
0096デフォルトの名無しさん
2011/11/20(日) 14:25:48.38■ このスレッドは過去ログ倉庫に格納されています