おかげで、それは本当にサービス指向アーキテクチャに関係するすべてです - しばらくの間、一般的で、非常に人気のある何か。
アイデアは、別個の操作が互いに分離されているため、それらを使用するアプリケーションを再コンパイルせずに再利用および変更できるという考え方です。 DLL内のコードがどこでも変更されコピーされるのではなく、特定の処理または情報ソースに対して単一のアクセスポイントを表すサービスを展開することができます。
クレジットカード確認コンポーネントがあるとします。このコードを記述してDLLにコンパイルし、すべてのアプリケーションでそのコードをインクルードすることができます。バグやCC検証の変更のルールに気付かない限り、それは間違いありません。または、それをブラックリストと照合するためにアップグレードしたいかもしれません。あなたは、それを使用するアプリケーションを再コンパイルせずにこれらのことを行うことはできません。
ただし、サービスとしてクレジットカード確認が公開されている場合は、変更を加えて1か所に展開できます。署名が同じであれば(同じパラメータと応答)、アプリケーションは変更されたことを知る必要はありません。
コンポーネントに対するサービスを使用するもう1つの利点は、サービスをどこにでもホストできることです。それらは、ローカルサーバー上または世界の他の側にあることができます。
このように言えば、ケースバイケースでアーキテクチャを決定する必要があります。クレジットカードによる検証は、サービスが有用な場合の良い例ですが、HTMLコントロールをレンダリングするサービスを提供することはあまり意味がありません。
Silverlightの場合、ビジネスロジックはリモートサーバー上にありますが、UI/Appはブラウザの内部または外部のクライアントマシン上で実行されます。 Click-togetherコンポーネントを使用してこれを実際に行うことはできません - サービス(クロスマシン境界)は実際にここに行く唯一の方法です。 –