タグ付けされた質問 「wcf」

Windows Communication Foundationは、サービス指向アプリケーションを迅速に構築するための統合プログラミングモデルを提供する.NET Frameworkの一部です。

12
WCFとWeb APIの技術的な議論を管理するにはどうすればよいですか?
私は現在15人の開発者から成るチームを管理していますが、WCFとWeb APIの使用について議論している2つの完全に反対のチームに分かれる技術を選択する段階で立ち往生しています。 Web APIの使用をサポートするチームAは、次の理由を提示します。 Web APIは、サービスを記述するための単なる最新の方法です(ウィキペディア) WCFはHTTPのオーバーヘッドです。TCP、Net Pipes、およびその他のプロトコルのソリューションです [DataContract]&[DataMember]およびそれらの属性のため、WCFモデルはPOCOではありません SOAPはJSONほど読みやすくて便利ではありません SOAPは、JSON(HTTPを介したトランスポート)と比較してネットワークのオーバーヘッドです メソッドのオーバーロードなし WCFの使用をサポートするチームBは次のように述べています。 WCFは複数のプロトコルをサポートします(構成を介して) WCFは分散トランザクションをサポートします WCFには多くの良い例と成功事例があります(Web APIはまだ若いです) デュプレックスは双方向通信に最適です この議論は継続しており、今何をすべきかわかりません。個人的には、正しい使用場所にのみツールを使用すべきだと思います。言い換えれば、HTTP経由でサービスを公開したいが、TCPとDuplexの場合はWCFを使用する場合は、Web APIを使用した方がよいでしょう。 インターネットを検索しても、確実な結果を得ることができません。WCFをサポートするための多くの投稿がありますが、それどころか、人々がそれについて不満を持っていることもわかります。この質問の性質は議論の余地があるように聞こえるかもしれませんが、決定するにはいくつかの良いヒントが必要です。偶然テクノロジーを選択すると、後悔する可能性があります。目を開いて選びたい。 私たちの使用は主にWebのためであり、HTTP経由でサービスを公開します。場合によっては(たとえば5〜10%)、分散トランザクションが必要になる場合があります。 私は今どうすればいい?この議論を建設的な方法で管理するにはどうすればよいですか?
49 wcf  decisions  web-api 

2
JSONからProtobufに移行します。その価値はありますか?
XMLまたはJSON(WCF)を提供できるREST Webサービスがあります。Protobufsを実装するというアイデアをいじっています。どうして? 長所 サーバーの負荷が少ない。 メッセージサイズが小さい-トラフィックが少ない。 後で切り替えるよりも、すぐに切り替える方が簡単です。 短所 実装する必要がある デバッグ用のメッセージのトラブルシューティング/スニッフィングが難しくなります。 サーバーでGZipを有効にすると、JSONは同じ量のトラフィックを消費します これについてのあなたの提案や経験は何ですか?

5
MVC、WCF、EF、LINQ-それは私だけですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 8年前に閉鎖されました。 ...または、より複雑になっていますか? 最近、MS Webアプリを「適切に」開発するには、多くのことを知る必要があるように思えます。よくわからない悪い昔、データベーステーブル、ASP.NET、ADO.NETがあり、比較的単純な概念を使用してWebアプリを構築しました。 最近では、「正しい」ことを「手助け」するためのフレームワークがたくさんあるように見えますが、これがすべてをより簡単に、より良くすることを確信していません。私はこの感情でかなり小さな少数派になるだろうと感じていますが、物事が少し狂っていると思う他の誰かがそこにいますか?

3
どの.NET RESTアプローチ/テクノロジー/ツールを使用すべきですか?
RESTful Webサービスと、主にSilverlightにあるいくつかのクライアントアプリケーションを実装しています。APIのサーバー側とクライアント側の両方を開発するための多数のオプションを見つけていますが、どちらが最善のアプローチかはわかりません。私は、安定性と、数か月後に存在し続けるプラットフォームについて心配しています。 .NET 3.5でRESTスターターキットの使用を開始しましたが、.NET 4.0への更新時に新しいWCF Web APIに移行しました。すべてのドキュメントは、WCF Web APIがRSKの代替品であることを示しています。ただし、Web APIはPreview 4のみにあり、SilverlightまたはWindows Phone 7クライアントのサポートはまだ含まれていません。 WCF Web APIは、System.ServiceModel.Webライブラリで提供されるWCF WebHttp Servicesの上部のラッパーのように見えるため、組み込みのものを使用する方が簡単かもしれませんが、Web APIにはいくつかの素晴らしい機能があります。 クライアント側に最適なコースを決定しようとして、私は特に縛られています。私の主な要件は、クライアント側オブジェクトへのデシリアライズを迅速かつ簡単にサポートする必要があることです。Web APIは優れたクライアントライブラリを提供しますが、Silverlightバージョンはありません。 最新のアプローチと、積極的に開発およびサポートされているツールセットを使用したいと思います。 REST Starter Kitは本当に時代遅れですか? WCF Web APIツールキットの実装に成功した人はいますか? にある組み込みのWCF WebHttpサービス機能でこれらのいずれかを使用するメリットはありSystem.ServiceModel.Webますか? どのクライアント(Web、Silverlightなど)でも機能する単一のソリューションはありますか? どのような提案がありますか?
16 .net  rest  wcf 

3
ASP.NET MVCとREST API + Webページの使用のためのWCF
プログラムによるサービス指向の使用と人間の相互作用の議論は明確だと思います。 しかし、プログラムAPIと同じAPIで接続されたデータを使用するWebサイトの両方を使用するアプリケーションを作成する場合、ASP.NETのみを使用する方が有利でしょうか? ASP.NETとWCFを統合して同じアプリケーションで動作させるのはどれくらい簡単ですか?

2
WCFからNserviceBusにスワップする必要がありますか
さまざまな場所のクライアントネットワークにある多数のPCからメッセージを送受信する中央サーバーがあります。これを容易にするために、現在、証明書で保護された二重通信を使用して、TCPNetBindingsでWCFを使用しています。 現在、これにはいくつかの問題があります。主に、「切断モード」をサポートするように求められています(フォールトトレラントである必要があります)。私が知っていることから、WCFスタックを使用してこれを行う簡単な方法はありません-何かを実装し、おそらくmsmqを使用する必要があります。私は最近NServiceBusを見てきましたが、法案によく合っているように見えます-フォールトトレランス、シンプルなhttpゲートウェイなどを介してインターネット経由でメッセージを送信することができます。私はそれを調べることからその理由を見ることができます。 だから、私の質問は... NServiceBusを採用することは賢明なアイデアのように聞こえますか、またはこれに関連する他の提案/現実世界の経験がありますか?比較的あまり知られていない新しい技術を導入することや、セキュリティの確保、信頼できる方法ですべてをセットアップすること、途中で問題を起こすことなどの問題に直面することを心配していると思います。アーキテクチャにメッキを施し、WCFに固執してそれをうまく機能させるのではなく、実装で行き詰まってしまうような光沢のあるものを選択します。 ありがとう!

3
WCFからJava Webサービスへの相互運用には、驚くほど問題があるようです。良いリソースはありますか?
最近のプロジェクトでは、当社の.Netベースの開発チームは世界中のJavaベースのWebサービスのホスト全体と統合することを任されており、驚くべきことに(もちろん、これ以上驚くことはありません)大量の問題がありましたWCFによって生成されたXMLはJavaサービスによって受け入れられないためです。 また、我々はヤロンネーブの優れたWCFのブログから、いくつかの良いヒントを得ている多くの良い情報が被写体に見つけることが本当に存在していないようですhttp://webservices20.blogspot.com、また、MSDN WCFのフォーラムで はhttp: //social.msdn.microsoft.com/Forums/en-US/wcf/threads。 ここに本当に自分がこれを倒したと感じ、主題に関する決定的なリソースを知っている人はいますか?書籍、ブログ、またはWebサイトに関するヒントに興味があります。 編集: 2つのベストアンサーのそれぞれにいくつかの価値があるため、このスレッドで受け入れられた回答を設定するのに 困惑しています。 2.しかし、WCF Express Interop Bindings 1.0も非常に賢明なヒントでした。
13 java  wcf 

2
WCF / SOA-単純な要求のパラメーターオブジェクトを作成する理由
当社はかなり大規模なSOAイニシアチブを開始しています。私たちは多くのことを正しくやっています。良いコミュニケーションがあります。必要に応じてツールの費用。そして、移行に役立ついくつかの優れた専門知識をもたらしました。 私たちはグループとして従うことができる標準を開発しようとしていますが、提案されている標準の1つが私をかなり悩ませています。 すべての操作が要求オブジェクトを受け取り、応答オブジェクトを返すパターンを標準化しました。 私はこれが多かれ少なかれ多くの人々にとって標準的なアプローチであることを理解していますが、なぜ私は気にする必要があるのでしょうか?(私は受け取った知恵があまり得意ではありません。なぜか必要です)。 私が提供するサービスのほとんどは、単純な組織メタデータの取得です。たとえば、特定のユーザーのセキュリティポリシーを見つけます。これにはユーザーIDのみが必要です。標準では、この要求をオブジェクトにラップし、返されたポリシーを応答オブジェクトにラップする必要があると説明されています。 私の不安は、契約から生成されるWSDLを見ると増幅されます。WCFは要求および応答メッセージを自動的に生成し、要求/応答オブジェクトもラップします。 複雑なリクエストを行う場合は、複雑な入力オブジェクトが必要であることを完全に理解しています。これは、サービスが関与していなくても行うことです。 私の質問は、次の場合に要求と応答を自動的にラップする必要がある理由です。 シンプルなサービスの表現力が低下します とにかく複雑なサービスのためにそれをするでしょう とにかくWCFは要求/応答メッセージを作成します このアプローチを支持する次の議論を見つけました。 オプションのパラメーターを要求オブジェクトに組み込むことにより、バージョン管理をサポートします。 当時、私はかなりの量のCOMを実行していましたが、これはバージョニングのほぼアンチパターンと考えています。いくつかの点で、私はそれが助けになると思いますが、それが助けになる場所では、とにかく既にパラメータオブジェクトを持っていると期待しています。 共通のデータと動作を基本クラスに分離できます これは私にいくらかの重さをもたらします。 RPCスタイルの動作からメッセージング動作に人々を誘導します マイクロソフトのサイトでこれを読んで、教祖から聞いたが、それが何を意味するのか、なぜそれが価値があるのか​​、まだはっきりとはわからない。自然に見えるインターフェースは、人々がリモートサービスを呼び出していることを忘れがちなのでしょうか? おそらく300のメソッドのシグネチャをリファクタリングすることを検討しているので、これは些細なことではありません。私は実装における一貫性の大ファンですので、私は喜んで痛みを引き受けます。それは最終的にすべての価値があることを知るのに役立ちます。
12 soa  wcf 

1
モジュラーサービスアプリケーションの設計
本質的に非常にモジュール化された新しいソリューションの設計を検討しており、その設計をサポートする構造を作成して、将来の拡張、懸念の明確な分離、モジュールごとのライセンス付与などを可能にします。 Webで発見されたモジュラーアプリケーションまたは複合アプリケーションはUI中心で、Silverlight、WPFなどに焦点を当てています。私の場合は、さまざまなUIプロジェクトに取り組んでいる他の開発者が使用するWCFサービスアプリケーションを開発しています。 バックグラウンド 私のプロジェクトの目標は、ビジネス/ドメインロジックの一元化されたソースを作成して、現在プロセスやルールなどを複製しているいくつかのビジネスアプリケーションをサポートすることです。また、モジュール性のすべての利点が得られるわけではありませんが、活用できるこれらの部分を活用するフレームワークを確立する機会。 サービスアプリケーションによって公開されるAPIを見て、設計を開始しました。私が検討していたモジュラー回線に沿ってサービスを分離できることは明らかです。たとえば、FinanceService、InventoryService、PersonnelServiceなどのサービスを使用して、サービス操作をグループ化して、APIで高い凝集度を提供し、カップリングを低く抑えて、クライアントがアプリケーションに関連するサービスのみを消費するようにします。 MyApp.Finance、MyApp.Inventory、My.Personnelなど、これらのサービスごとに個別のモジュールを持つことができるのは理にかなっています。横断的関心事と共有タイプは、MyApp共有アセンブリにあります。ここから少し縛られます。 (ああ、アプリケーションの疎結合を維持するためにDependency InjectionにIoCコンテナーを使用することに言及する必要があります。Pandoraのボックスを開きたくないので、どれに言及しません!) MyApp.ServiceHostで、FinanceService.svcなどの各モジュールに対応するサービスホストファイル(.svc)を作成します。サービスホストには、サービスコントラクトを定義するインターフェイスを含む構成ファイルの情報に対応するサービスの名前が必要です。次に、IoC構成を使用して、使用するインターフェイスの具体的な実装をマップします。 1.サービス層はAPIを実装し、モジュールに委任する必要がありますか、またはモジュールは自己完結型である必要があります(サービス実装を含む、そのモジュールに関連するすべてを含むという点で)。 問題にアプローチする1つの方法は、サービスコントラクトの実装を含むMyApp.Services "モジュール"を持つことです。各サービスクラスは、操作のドメインロジックを含む適切なモジュール内の別のクラスに単純に委任します。たとえば、MyApp.ServicesのFinanceService WCFクラスは、Financeモジュールに実装されて操作を実行する別のインターフェイスに委任します。これにより、シンサービスファサードを維持し、実装をサービス実装に「プラグイン」して、たとえばモジュールがWCFを心配する必要がなくなります。 一方で、インターフェイスと実装を備えているという点で、各モジュールが自己完結していることが望ましい場合があります。サービスホストは、モジュールにあるサービスコントラクトインターフェイスを参照し、モジュールからの適切な実装も使用するようにIoCが構成されます。つまり、新しい.svcファイルとIoC構成情報を追加する以外に、サービスレイヤーを変更せずに新しいモジュールを追加できます。 標準のWCFからRESTfulサービスインターフェイスに切り替えるか、RIAサービスなどにアクセスした場合の影響について考えています。各モジュールにサービスコントラクトの実装が含まれている場合、サービステクノロジーまたはアプローチを変更すると、すべてのモジュールに変更を加える必要があります。しかし、ファサードが独自のモジュールである場合、変更するためにその部分を交換するだけです。モジュールは、共有アセンブリで定義されている可能性のある異なるコントラクト(インターフェイス)のセットを実装する必要がありますか? 2.モジュール間でリソースを共有したり、モジュール間で依存関係を処理する最良の方法は何ですか? たとえば、受信操作を考えます。商品を受け取ることは在庫機能であるため、最初は赤面でこれが在庫モジュールに入ることは理にかなっています。ただし、領収書を生成して支払いを承認する必要があるという点で、財務的な側面もあります。 一方では、操作を伝えるために何らかのタイプのドメインイベント/メッセージングを使用することを期待します。Inventoryモジュールは、Financialモジュールによって処理されるGoodsReceivedEventを発生させて、領収書を生成し、支払いプロセスを開始します。ただし、これは、金融モジュールが受け取った在庫品目について知る必要があることを意味します。IDで単純に参照できますが、名前や説明、単価など、領収書の追加情報が必要な場合はどうすればよいですか?各モジュールが、そのモジュールのニーズに合うように設計されたインベントリアイテムの独自のバージョンを持つことは理にかなっていますか?その場合、GoodsReceivedEventを処理するときに、Financialモジュールは在庫アイテムの独自のルックアップを実行する必要があります。 ... さまざまなERPシステムで多くの作業をしており、このタイプのモジュール方式で設計されていることを知っているため、この例を意図的に使用しました-方法がわかりません。また、上記では明示的に言及していませんが、ドメインドリブンデザインの原則に従ってソリューションを設計し、このタイプのモジュール性がその領域にぴったりと収まると考えています。 私の頭をこれに巻き付ける助けは大歓迎です。

1
ASP.NETで適切なサービスレイヤーを構築する方法
私はいくつかの質問、優れたサービス層を構築するための技術を調べてきましたが、これに関して私が助けを必要とするいくつかの質問があります。 最初に、私が要件について持っているもののいくつかの情報。現在、スパイダーウェブのような方法で相互に通信する多くのWebアプリケーションがあります(すべて、Webサービスとデータベースデータを介して、混乱する方法で相互に通信します)。 これを変更して、すべてのアプリケーションがサービスレイヤーを通過するようにしたいと思います。サービスレイヤーでは、キャッシュを使用して作業し、共通の機能などをカプセル化できます。 サードパーティのクライアントがサービスからの情報を利用できるように、このレイヤーにもWeb APIが必要です。 問題は、たとえばMVC4 Web APIでサービスレイヤーを構築する場合、webAPIを使用してアプリケーション間で通信する必要がないということです。つまり、URLを構築してJSON / Xmlを消費する必要があります。それはあまり効果的に聞こえません。エンティティとWCFを使用してアプリケーション間の通信を行う方が良い方法だと思いますが、Web APIの魔法を失う可能性がありますか? したがって、問題は、サービス層をWeb API(JSON / XML)とエンティティを含むよりバックエンドのサービス層の両方として利用する方法があるかどうかです。2つの異なるサービスレイヤーを使用せざるを得ない場合、一部の機能や他の悪いことを複製する必要があるかもしれません。 質問が十分に明確であることを願って、さらに情報が必要かどうか尋ねてください。

2
自分のアプリケーションでExchange Serverの「RBAC AuthZ」を模倣しています…(同様のものはありますか?)
Exchange 2010には委任モデルがあり、winrmコマンドレットのグループは本質的に役割にグループ化され、役割はユーザーに割り当てられます。 (画像ソース) これは、適切な低レベルのテクノロジ(WCF、SOAPなど)を使用し、クライアント側に追加のソフトウェアを必要とせずに、PowerShellのすべての利点をどのように活用できるかを考慮した、優れた柔軟なモデルです。 (画像ソース) 質問 .NETアプリケーションでExchangeの委任モデルを活用する方法はありますか? このモデルを模倣しようとした人はいますか? 最初から始めなければならない場合、このアプローチを模倣するにはどうすればよいですか?

1
WCFのバージョン管理、名前付け、エンドポイントURL
WCFサービスとメインLib1を持っています。 たとえば、Save Profile Serviceがあるとします。WCFはクライアントからデータ(事前に定義されたデータコントラクトを含む)を取得し、それをメインクラスLib1に渡し、応答を生成してクライアントに送り返します。 WCFメソッド:SaveProfile(ProfileDTOプロファイル) 現在のバージョン1.0 ProfileDTOには、次のUserName Password FirstName DOBがあります(文字列yyyy-mm-dd)CreatedDate(文字列yyyy-mm-dd) 次のバージョン(V2.0) ProfileDTOには、次のUserName Password FirstName DOB(UnixTimeStampの場合)CreatedDate(UnixTimeStampの場合)があります。 バージョン3.0の ProfileDTOには次のものがあります(ユーザー名とパスワードの長さの検証が変更されています)UserName Password FirstName DOB(UnixTimeStampの場合)CreatedDate(UnixTimeStampの場合) 簡単に言うと、各バージョン1の間でDataContractとワークフローが変更されています。WCFサービスとメインクラスLib1のメソッドに名前を付けるにはどうすればよいですか?2.開発と保守を容易にするために、特定のパターンを使用する必要がありますか?3.バージョンごとに異なるエンドポイントが必要ですか? 上記の例では、「SaveProfile」という名前のメソッドがあります。「SaveProfile1.0」、「SaveProfile2.0」などのメソッドに名前を付ける必要がありますか。バージョン「3.0」と「4.0」の間で変更がない場合、メンテナンスが困難になります。メンテナンスを容易にするのに役立つアプローチを探しています
8 wcf  versioning 

1
モバイル用のWCFまたはWebAPIを使用する利点はありますか?
Mono TouchとMono for Androidを使用した最初のモバイル開発を行っています。私が設計しているASP.NET MVC 4サイトと通信してほしい。私は過去にWCFとWebAPIを使用したことがありますが、このコンテキストで他のものを使用するよりも定量化できる利点があるかどうか疑問に思っていますか?

1
WSHttpBinding(サービス側)またはWCFテストクライアント(クライアント側)でデフォルトで使用されるセキュリティは何ですか?
最近、サービスをBasicHttpBindingからWSHttpBindingに移動しました(つまり、SOAP 1.1- > SOAP 1.2)。でWCF、WSHttpBinding()を使用することは、いくつかのデフォルトのセキュリティ設定を使用して起動します。クライアントとサーバーは「セキュリティで保護された」WSHttpBindingに切り替えた後も会話を続けることができるため、WCFテストクライアントでも同じデフォルトのセキュリティ設定が使用されていると思います。フィドラーでは、以前は非常に単純だったリクエスト/レスポンスから、より複雑なセキュリティハンドシェイクを見ることができるため、このセキュリティ設定を確認しました 以前:(BasicHttpBinding) [HttpRequest](SOAP Request in Clear) [HttpResponse](SOAP Response in Clear) 後:(WSHttpBinding) [HttpRequest] RequestSecurityToken [HttpResponse] RequestSecurityTokenResponse [HttpRequest] RequestSecurityToken [HttpResponse] RequestSecurityTokenResponse [HttpRequest] RequestSecurityTokenResponse [HttpResponse] RequestSecurityTokenResponseCollection [HttpRequest] EncryptedData [HttpResponse] EncryptedData [HttpRequest] EncryptedData (実際のアプリケーションレベルのリクエスト) [HttpResponse] EncryptedData (実際のアプリケーションレベルの応答) したがって、セキュリティが適用されていると想定できます。次に質問です。 質問1:セキュリティ設定とは何ですか? メンバーシッププロバイダーについてWCFに語ったことはありません。実際、ユーザー名<->パスワードのテーブル(SQLまたはXML)はありません。では、どのような認証が行われているのでしょうか。WCFテストクライアントは上記のように認証できますが、SoapUIはこれらのMicrosoft .NETデフォルトを取得しないため、問題があります。SoapUIがクリアテキスト通信を試行すると、サーバーは不正なセキュリティトークンエラーで応答します。 質問2:SOAP 1.2で最も一般的に実施されているセキュリティモデルは何ですか? 証明書、ユーザー名、パスワード、ダイジェスト、または_____を使用していますか?これらの資格情報はどのように保存され(SQL / XML?)、WCFサーバー側で構成されますか?
8 security  wcf  soap 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.