- - PR -
Webサービスを公開するクラスの単位は?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2008-03-15 16:09
VS2005,C#にてWebサービスを使ったスマートクライアントを作成しています。
Webサービスで公開する機能は、WebServiceを継承したクラスを 作成すると思いますが、このクラスは どの単位で作成するのが適当でしょうか? 今、考えているのはある程度、機能をまとめて それをWebサービスで公開する単位で考えています。 一応考えられそうなのが a,b,c,dメソッドがあるとして、X画面ではa,b Y画面ではc,dとしたら (1)画面毎に、WebServiceクラスを作成 (画面毎) (2)a,b,cはある機能を提供することが類似しているとして abcでまとめてWebServiceクラスを作成、dでまた1クラス作成 (機能でまとめる) (3)すべてを1クラスにまとめる (4)公開メソッドを共通化して、公開メソッドを1つにして あとは、すべての要求をそのメソッドの中で分岐する。 (4)は、できるのかどうかわかりませんが。 一般的に、どのようなまとめ方をしますでしょうか? 業務でWebサービスを使用している方など、ご知恵をおかしください。 |
|
投稿日時: 2008-03-16 10:35
私は(3)(4)あたりです。(少数派です)
業務用のWEBサービスは広く公開する訳ではないので (極端に言えばPORTがあればでもいいと思ってます) で、Binaryでシリアル化してBase64でやり取りします (いいのかよ!!て感じですが。 他の有名ブログでもやっている人は見ているのでよいのでは。。。。。。) |
|
投稿日時: 2008-03-17 21:52
どういった WebService を作っているかによるんじゃないかな。
たとえば機能の寄せ集め的な WebService を作っているならまとめてしまってもいいかも。 逆に一連の手続きっぽいものだったら僕の場合は分けそうだな。 indigo-x さんの案、こういった考え方がなかったから面白い。 ただ受け側が毎回デシリアライズしてやる必要がある? _________________ かるあ のメモ と スニペット |
|
投稿日時: 2008-03-18 08:21
毎回デシリアライズは必要ですが、上手く作れば共通化できます。
有名ブログで、速度比較していたんですが Binary→Base64の方が若干早いです。(通信も早いはず) オマケで良い事はSoapなら汎用型またはエンコード済み等をしなければ ならないですがBinaryなら何もいらないです。 |
|
投稿日時: 2008-03-18 21:45
ご回答ありがとうございます。
やはり、決まった方法はなく微妙なところなんですね。 作成予定の機能は、どちらかというと 「一連の手続きっぽいもの」のほうですね。 毎回デシリアライズは面白いですが、保守性がちょっと気になりますね。 |
1