2

ドメインオブジェクトに関するデータをさまざまなクライアントに提供するサービスプロジェクトを開始しようとしています。ASP.NETWebフォーム/MVC、クラシックASP、PHP、Androidアプリ(バックエンドコードとしてのJava)に至るまでのクライアントがあります

どの開発戦略に使用するかを最終決定するために、ある種の調査を行っています。WCFサービスを作成する経験があります。WCF Restはアーキテクチャをサポートしていますか?RestArchitectureがデータをプレーンXML/Jsonとして返すことを読みました。強く型付けされていないオブジェクト。以前のWCFサービスを作成しているとき、およびクライアントアプリでそれを使用したとき、強く型付けされたオブジェクトであるという応答を本当に楽しんでいました。RESTでは不可能だと思います。

ASP.NET Web APIを調べています(WCFがこれになりました)。しかし、これはまだベータ版であり、私のチームはまだベータ版で何かを使用する準備ができていません。

私が使用すべき最良のアプローチは何ですか?強力な型付きオブジェクトまたはXMLを返すWCFサービス?両方の長所と短所は何ですか?

4

1 に答える 1

0

What is a strongly typed object? :) It is essentially what is perceived as being of the types it anticipates. You can do that only if you have a way to control the server and the client ends of the pipe (i.e. same VMs on both ends, or same languages or proxy/stubs that can marshal/unmarshal to the respective languages).

So, what does that mean? I recommend using WCF with XML/JSON since that is the lingua franca for communication over the wire. You will get over not having strong types once you realize the benefits of weak types over the wire. If you really want strong types, you can use xsd.exe or something similar to generate the proxy for your services.

All that said, it really behooves you to separate the effort to two things:

  • Implement domain services using WCF to wrap your backend. These can be just .NET assemblies exposing a contract to the wire protocol services.
  • Implement wire services using something that would be friendly to end consumers. Try to make this a trivial effort so that you can create them quickly and cheaply. Something like vert.x or node.js or WebAPI..

Of course, you might already be doing all this and I might be completely wrong. :)

于 2012-05-15T13:19:54.733 に答える