コンテンツへスキップ
ものがたり
戻る

WCFの日本語解説で今のところ一番まともなのは(残念ながら)@ITにあるものだと思っていた。が、多少は間違っているようだ。
http://csharper.blog57.fc2.com/blog-entry-82.html

確かにBasicHttpBindingでもMTOMは使える。(BasicHttpBinding.MessageEncoding = WSMessageEncoding.Mtom)

ところでいつも思うのだけど、configurationベースで説明しているWCFの解説は気持ち悪くないだろうか。少なくともコーディングしているときにconfigurationベースで設計したいとは思わない。C#で書けばコンパイルエラーになるのに、configurationでは実行時まで気づかなくなるし、コンフィグのエラーは調べにくい。個人的には常にコードレベルで説明することにしている。configurationでサポートしていてクラスライブラリでサポートしていないものなんて、裏技以外には無いんですよ。裏技があるかどうかは知らんけど。

→コメント欄も見てもらえれば分かるけど、configに書く立場にも相応の理由があるようだ。仕事柄(w、僕の採る立場ではないけれど。


コメント

よこけん — 02/07/2007 00:59:07

こんばんは!トラックバックから辿ってきました。

>configurationベースで説明しているWCFの解説は気持ち悪くないだろうか。
WCFによるWebサービスの場合、IISを使わず自前でホスティングを行えばコードからの制御も可能ですが、
IISでホスティングするとコンフィギュレーションによる設定しかできなくないですか?(すみません、この辺詳しくないので。。。)

>C#で書けばコンパイルエラーになるのに、configurationでは実行時まで気づかなくなるし、コンフィグのエラーは調べにくい。
確かにコンフィギュレーションのチェックはコンパイラのチェックほど厳密ではないですね。
コンフィギュレーションでも列挙型制約などの制約によって実行前に不正な値が検出されますが、
MessageVersionクラスのように列挙型っぽいけど実はクラスっていう設定項目とかはダメなようですね。

一応、個人的には以下のような理由でコンフィギュレーション派です。
・ハードコーディングしてしまうより、コンフィギュレーションで管理した方が、仕様変更に楽に対応できる
・設定ツールが用意されているため設定が容易
・コードでの設定とコンフィギュレーションでの設定では設定箇所に差異がある場合がある

もちろん、ハードコーディングしてしまった方が適切な場面もありますので一概には言えませんが^^;

atsushieno — 02/07/2007 01:51:40

はじめまして。
むむ、なるほど、IISで.svcにマッピングされたIHttpHandlerで処理する場合ですか。それは全く考えませんでした(全く使っていませんので…w)。.svcを使う限りでは、(そもそもコードを書く余地が無いわけですから)configurationでしか書けないというのはその通りですね。(念のために書いておきますが)僕が後段で書いたこととは別の次元の話なのですが、それでconfigurationで書くという動機がある点は同意します。

*アプリケーションにおいて*コードに書くかconfigに書くかというのは、二項対立の問題ではないと僕も思います(どちらかを全否定する人も居ないことでしょう…)。サンプルコードの場合、上記の他にも、記述の柔軟性や、ソースの一元化などを意識しています(あとは、非VSな僕の環境ではconfigのエラーチェックが出来ない点も、コードに傾倒する理由になっていると思います)。configurationにもメリットがあると分かったことですし、押しつける意図はありませんが(^^;

.NETユーザーの人とは見方がずいぶん違うんだなと分かって面白かったです。


この記事を共有:

前の記事
2007-02-07
次の記事
JISX0213