TutorialProcedure

# WCFチュートリアル

-1-
新規作成→プロジェクト→Visual C#→WCF→WCFサービスライブラリ

-2-
IService1のインターフェース名変更
IService1→ICalculator
(自動で App.configの内容も変更される。)


-3-
Service1のクラス名変更
Service1→CalculatorService
(自動で App.configの内容も変更される。)


-4-
ファイル名変更
IService1.cs→ICalculator.cs
Service1.cs→CalculatorService.cs

-5-
ICalculator.cs
サービスコントラクトの定義
を追加


-6-
CalculatorService.cs
サービスコントラクトを実装


-7-
ソリューションエクスプローラのルートにて右クリック
追加→新しいプロジェクト→Visual C#→Windowsクラシックデスクトップ→コンソールアプリ
「GettingStartedHost」とした。


-8-
ソリューションエクスプローラの
GettingStartedHostにて右クリック→プロパティ
ターゲットフレームワークを確認(4.5以上でOK)


-9-
ソリューションエクスプローラの GettingStartedHostプロジェクトの
「参照」にて右クリック→参照の追加

プロジェクト→
namespaceを追加。(今回は「PracticeWCF」)


-10-
ソリューションエクスプローラの GettingStartedHostプロジェクトの
「参照」にて右クリック→参照の追加

アセンブリ→フレームワーク
「System.ServiceModel」を選択。(検索できる)


-11-
GettingStartedHost
┗Program.cs
を編集。


-12-
App.config の baseAddressを変更。

<add baseAddress="http://localhost:8733/Design_Time_Addresses/PracticeWCF/Service1/" />

  ↓

<add baseAddress="http://localhost:8000/GettingStarted/CalculatorService/" />

※※Visual Studioの起動は管理者モードを使用する※※


-13-
Windows Communication Foundation クライアントを作成

ソリューションのルートにて右クリックし→Add、New Project→コンソールアプリ
を作成。
プロジェクト名は「GettingStartedClient」とした。


-14-
ソリューションエクスプローラの
GettingStartedClientにて右クリック→プロパティ
ターゲットフレームワークを確認(4.5以上でOK)


-15-
ソリューションエクスプローラの GettingStartedClientプロジェクトの
「参照」にて右クリック→参照の追加

アセンブリ→フレームワーク
「System.ServiceModel」を選択。(検索できる)


-16-
サービス起動→終了

ソリューションエクスプローラの GettingStartedClientプロジェクトの
「参照」にて右クリック→サービス参照の追加

(この辺、何だかよくわからない。
 「探索」で、上記で定義したソリューションが探せたんで、それを追加した。)


-17-
GettingStartedClient の App.config を編集。

・・・するらしいんだけど、ここもよくわかんない。
無編集で行けた。

-18-
Windows Communication Foundation クライアントを使用

GettingStartedClient の Program.csを編集


-19-
起動。
・・・するとすぐに終了するので、ソリューションのプロパティからスタートアッププロジェクトと順番を設定。


-20-
起動。



〓 所管 〓
むずい。
「メソッドを呼ぶだけでAPIがコールされる」(開発者は「APIをコールする」という意識をせず、「メソッドを呼ぶ」という感覚で行ける)
という思想は面白いし、応用がききやすいと思うんだけど、「知らないとコードが追えない」というルールが多い。
メンテナンス性もそんなに良くなさそう。
手を加えなければいけないファイルがやたら多い印象。

とりあえず、チュートリアルを一通り終わらせたけど、メソッドの追加はどうすんの?
本体、サーバ、クライアント、それらのApp.configと、どこまで編集したらいいのか、さっぱりわからん。

サーバさえ起動させておけば、HttpRequestを投げる事もできそうだけど、URLはどこじゃい。
ってか、プロトコルはHTTPでいいの? どうにもデフォルトは HTTPじゃない気がするので、どっかで変える必要があるかも。