連載:〜ScottGu氏のブログより〜

Silverlight 4トレーニング・キット

Scott Guthrie 著/Chica
2010/05/10

 本記事は、Microsoftの本社副社長であり、ASP.NETやSilverlightなどの開発チームを率いるScott Guthrie氏のブログを翻訳したものです。氏の許可を得て転載しています。
【元記事】 Silverlight 4 Training Kit (2010/04/22)

 最近、新しい無償のSilverlight 4トレーニング・キットをリリースしました。これはSilverlight 4でビジネス・アプリケーションを構築する方法を紹介しています。トレーニング・キットをオンラインで確認、またはトレーニング・キットのオフライン版をすべてダウンロードできます。

 このトレーニング・マテリアルは、新しいSilverlight 4機能を使って、ビジネス・アプリケーションを構築する方法を最初から最後まで学べるように構成されています。トレーニング・キットには8つのモジュールと、25のビデオ、いくつかのハンズオン・ラボが含まれています。以下はすべてのコンテンツの分類とリンクです。

[ブログに加え、現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguで、わたしをフォローしてください]

モジュール1:イントロダクション

 ここをクリックしてこのモジュールを確認してください。

 このビデオでは、John Papa氏とIan Griffiths氏が、Silverlight 4でビジネス・アプリケーションを構築するコースが焦点を当てているキー・エリアについて話しています。このモジュールはコースの概略で、ビジネス・アプリケーションを構築するときに直面する多くのキーとなるシナリオと、Silverlightがそれらにどのように対応できるかをカバーします。

モジュール2:WCF RIA Services

 ここをクリックしてこのモジュールを探索してください。

 このラボでは、このコースのほかのラボで基礎となる会議管理のWebサイトを作成します。シリーズで特定のラボを完了していなくてもご心配なく。すべてのラボのマニュアル・インストラクションは完結したソリューションに付随しているので、最初から最後まで自分でソリューションを構築することもできますし、スタート・ポイントとして提供されているソリューションを使用して、好きなポイントから始めることもできます。

 このラボでは、WCF RIA Servicesのセットアップ方法、ドメイン・コンテキストにバインディングを作成する方法、ドメイン・データソースを使ったフィルタの方法、ドメイン・サービス・クエリの作成方法を習得します。

■ビデオ

モジュール 2.1 − WCF RIA Services

Ian Griffiths氏はこのコースのために、サンプルであるEvent Managerアプリケーションに対して、Entity FrameworkとWCF RIA Servicesをセットアップしました。彼は、サービスのセットアップ方法、ドメイン・サービスがどのように動くのか、またDomainContextがサンプル・アプリケーションで行う役割はどのようなものかについてカバーしています。またメタデータ・クラスやナビゲーション・フレームワークの統合についてもレビューしています。

モジュール 2.2 − WCF RIA Services使用してエンティティを編集

Ian Griffiths氏が、サンプルのEvent Managerアプリケーションへ、WCF RIA Servicesにビルトインされている機能により、独自のエンティティを編集および作成する機能の追加方法について話しています。彼は、データ・バインディングの基礎、IQueryable、LINQ、DomainDataSource、ナビゲーション・フレームワークを使用した単一のエンティティへのナビゲーション、そしてその作業のほとんどを行うのに、どのようにVisual Studioデザイナを使用するのかについてカバーしています。

モジュール 2.3 − WCF RIA Servicesを使用してマスター/詳細レコードを表示

Ian Griffiths氏は、WCF RIA Servicesを使用してサンプルのEvent Managerアプリケーションにマスター/詳細レコードを表示する方法をレビューしています。彼は、どの要素をシリアライズしてクライアントに戻すかを示す、Include属性の使用方法をカバーしています。Ian氏はまた、特定のデータ要素に対してコントロールを追加およびバインドするために、デザイナでそのデータソースを使用する方法も紹介しています。彼はドメイン・サービスに独自のサービスを作成する方法の紹介で締めくくっています。

モジュール3 − 認証、検証、MVVM、コマンド、暗黙のスタイル、RichTextBox

 ここをクリックしてこのモジュールを確認してください。

 このラボでは、ログイン画面の構築、ASP.NET認証との統合、データ要素上での検証実施の方法を紹介します。Model-View-ViewModel (MVVM)は、このラボでは、UIとビジネス・ロジックを分離できるようにするパターンとして導入され、使用されています。また暗黙的なスタイル化や新しいRichTextBoxコントロールの使用方法も学べます。

■ビデオ

モジュール 3.1 − 認証

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションにログイン画面と認証を統合する方法をカバーしています。Ian氏はASP.NET認証を使用し、それをWCF RIA ServicesとSilverlightプレゼンテーション層へ統合する方法を紹介しています。

モジュール 3.2 − MVVM

Ian Griffiths氏は、サンプルのEvent ManagerアプリケーションでのModel-View-ViewModel (MVVM)パターン化の方法をカバーしています。彼は、なぜMVVMが存在するのか、分離するプレゼンテーションの意味するところは、そしてなぜそれが重要なのかについて話しています。彼は、ビューをビューモデルに接続する方法、なぜデータ・バインディングがこの共存で重要なのか、また、すべてが一体となってアプリケーション全体でどのようにうまく収まっているかを紹介しています。

モジュール 3.3 −検証

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションでユーザーの入力検証を統合する方法を話しています。同時に、サンプル・アプリケーションで優れた検証を実施するために、どのようにDataAnnotations、INotifyDataErrorInfoインターフェイス、バインディング・マークアップ拡張、WCF RIA Servicesを使用するのかを紹介しています。彼はこのテクニックが、プロパティ・レベルでの検証、エンティティ・レベルでの検証、非同期サーバ側での検証に対して、どのように考慮されているのかを話しています。

モジュール 3.4 − 暗黙的なスタイル

Ian Griffiths氏は、なぜ暗黙的なスタイルが重要なのか、どのようにサンプルのEvent Managerアプリケーションに統合できるのかについて話しています。彼は、リソース・ディクショナリに定義されている暗黙的なスタイルをアプリケーション全体の特定の種類の要素すべてに適用する方法を示しています。

モジュール 3.5 − RichTextBox

Ian Griffiths氏は、新しいRichTextBoxコントロールについて、および、これをどのようにサンプルのEvent Managerアプリケーションに統合できるのかについて話しています。彼は、RichTextBoxのイベント情報に対する編集方法、選択やコピーに対するリッチ・テキストの表示方法を紹介しています。

モジュール 4 − ユーザー・プロファイル、ドロップ・ターゲット、Webcam、クリップボード

 ここをクリックしてモジュールを確認してください。

 このラボでは、新機能をサンプル・アプリケーションに構築して、ユーザーの写真を取り込めるようにします。Webcamを使用した画像の取り込み方法を教えます。

■ビデオ

モジュール 4.1 − Webcam

Ian Griffiths氏は、参加者の画像を取り込むことで、サンプルのEvent ManagerアプリケーションにどのようにWebcamが付加価値を与えるかについて話しています。彼は、VideoCaptureDevice、CaptureDviceConfiguration、CaptureSourceクラスにより、音声や動画を取り込み、キャプチャ・デバイスから画像を取得して保存する方法を話しています。

モジュール 4.2 −Silverlightでのドラッグ&ドロップ

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションでドロップ操作をキャプチャして処理する方法を話しており、それによりユーザーはファイルから写真をドラッグしてアプリケーションへドロップできます。Ian氏は、AllowDropプロパティ、Dropイベント、ドロップされたファイルへのアクセス方法、イベントに関連したそのほかのドラッグについてレビューしています。彼はまた、ブラウザでこれを動作させる方法とその際の問題点もレビューしています。

モジュール 5 − スケジュール・プランナとマウスの右クリック

 ここをクリックしてこのモジュールを確認してください。

 このラボでは、アプリケーション上でDataGridのグループ化とマウスの右クリック機能を実装して、コンテキスト・メニューのサポートを追加します。

■ビデオ

モジュール 5.1 − グループ化とバンディング

Ian Griffiths氏は、DataGridのデータ・バインディングにグループ化機能を使用する方法と、それをサンプルのEvent Managerアプリケーションに適用する方法について話しています。彼は、グループ化におけるCollectionViewSource の役割、ヘッダ・テンプレートのカスタマイズ、ItemsControlsのグループ化の実施方法をレビューしています。

モジュール 5.2 − ビジュアル・ステートのレイアウト

Ian Griffiths氏は、ListBoxのビジュアル・ステートに対する流体UIアニメーション・サポートを使用してDataGridを処理する方法と、それをサンプルのEvent Managerアプリケーションに適用する方法について話しています。彼は、BeforeLoaded、AfterLoaded、BeforeUnloadedの3つのビジュアル・ステートをレビューしています。

モジュール 5.3 − 右クリック

Ian Griffiths氏は、右マウス・ボタンのクリック・イベント処理サポートを追加して、Event Managerアプリケーションでコンテキスト・メニューを表示する方法を紹介しています。彼は、そのイベントの処理、独自のコンテキスト・メニュー・コントロールの表示、それをアプリケーションのスケジューリング部分へ統合する方法を紹介しています。

モジュール 6 − スケジュールの印刷

 ここをクリックしてこのモジュールを確認してください。

 このラボでは、Silverlight 4の新しい印刷機能の使用方法を教えます。PrintDocumentクラスとViewBoxコントロールをして、コンテンツの複数ページを印刷する方法を紹介しながら、それらをウォークスルーします。

■ビデオ

モジュール 6.1 − 印刷とViewbox

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションにスケジュールの印刷機能を追加する方法を紹介しています。彼は、PrintDocumentクラスとそのメンバの重要性をウォークスルーします。また彼は、そのビジュアル・ツリーの印刷処理の方法や、ViewBoxコントロールがそれをどのように助けるのかも紹介しています。

モジュール 6.2 − 複数ページの印刷

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションで、コンテンツの複数ページを印刷する処理方法を紹介しながら、印刷論議を広げていきます。コンテンツのページ分け方法を紹介し、印刷可能範囲を決定するときに留意すべき、さまざまなコツを指摘しています。

モジュール 7 −イベント・ダッシュボード・アウト・オブ・ブラウザの実行

 ここをクリックしてこのモジュールを確認してください。

 このラボでは、アウト・オブ・ブラウザ機能の基礎、認証の処理方法、通知の表示(トースト)、SilverlightでCOM相互運用を使用したネイティブ統合の使用方法を説明しながら、サンプル・アプリケーションへダッシュボードを構築します。

■ビデオ

モジュール 7.1 − アウト・オブ・ブラウザ

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションで、イベントやユーザーを管理するためにアドミニストレーターにとってのアウト・オブ・ブラウザ・アプリケーションの役割を話しています。彼は、なぜアウト・オブ・ブラウザ・アプリケーションが、独自のクローム、トースト、ウィンドウの配置、クロス・ドメイン・アクセス、ファイル・アクセスなどの必要性に、よりよくマッチするのかの理由を話しています。ツールを使ってアプリケーションをアウト・オブ・ブラウザで動作させる基礎テクニックを紹介しています。

モジュール 7.2 − Elevated Trustモードのアウト・オブ・ブラウザ・アプリケーションへのNotificationWindow (トースト)

Ian Griffiths氏は、ユーザーの注目が必要となる情報を表示するために、サンプルのEvent Managerアプリケーションでのトーストの使用方法を話しています。Ian氏は、NotificationWindow、セキュリティ上の意味合い、必要に応じた表示方法を使用してトーストを作成する方法をカバーしています。

モジュール 7.3 − アウト・オブ・ブラウザ・ウィンドウの配置

Ian Griffiths氏は、アウト・オブ・ブラウザ・アプリケーションを構築し、ウィンドウ状態を処理し、ウィンドウのアクティブ化の管理と処理を行う際に、ウィンドウの配置を管理する方法について話しています。

モジュール 7.4 − アウト・オブ・ブラウザのElevated Trustモード・アプリケーションの概要

Ian Griffiths氏は、サンプルのEvent Managerアプリケーションにおいて、信頼されたアウト・オブ・ブラウザ・アプリケーションを作成する意味合いを話しています。彼は、なぜElevated Trustモードを使用した方がいいのか、どんな機能が利用可能なのか、それらを利用するにはどうすればいいのかをレビューしています。Ian氏がカバーしているトピックには、C# 4のdynamicキーワード、AutomationFactoryクラス、信頼されたアプリケーションかどうかをチェックするAPI、Excelとの対話が含まれています。

モジュール 8 − 高度なアウト・オブ・ブラウザとMEF

 ここをクリックしてこのモジュールを確認してください。

 このハンズオン・ラボでは、信頼されたアウト・オブ・ブラウザ・アプリケーションの作成と、それに付随する新機能をウォークスルーします。COMオートメーションの使用、ウィンドウ・クロージング・イベントの処理、独自のchromeウィンドウの設定、Silverlightアウト・オブ・ブラウザの信頼されたアプリケーションへのデジタル署名、サイレント・インストール・オプションの作成、MEF利用の方法を習得します。

■ビデオ

モジュール 8.1 − Elevated Trustモードのアウト・オブ・ブラウザ・アプリケーションに対する独自のchromeウィンドウ

Ian Griffiths氏は、Elevated Trustモードのアウト・オブ・ブラウザ・アプリケーションのために、標準のOSのchromeウィンドウと独自のchromeを置換する方法を話しています。彼は、閉じる、サイズ変更、最小化、最大化のイベントを処理することがどのように重要かをカバーしています。Ian氏は、このビデオを撮ったときには、そのツールは用意できていなかったけれども、幸いなことに、現在そのツールにより、独自のchromeを直接プロパティ・ページからSilverlightアプリケーションに対して設定できるようになったことを述べています。

モジュール 8.2 − アウト・オブ・ブラウザ・アプリケーションのウィンドウ・クロージング・イベント

Ian Griffiths氏は、WindowClosingイベントとその処理方法や、オプションとしてキャンセル方法について話しています。

モジュール 8.3 − アウト・オブ・ブラウザ・アプリケーションのサイレント・インストール

Ian Griffiths氏は、SLLauncher実行ファイルを使用した、アウト・オブ・ブラウザ・アプリケーションのインストール方法について話しています。彼は、エミュレート・スイッチがどのようにインストール・プロセスをエミュレートする手助けをするかなど、設定可能なオプションのコマンドライン・スイッチについて話しています。Ian氏は、アプリケーションのショートカットの設定や今後のオンラインでの更新の検索場所の設定方法も紹介しています。

モジュール 8.4 − アウト・オブ・ブラウザ・アプリケーションのデジタル署名

Ian Griffiths氏は、署名ツール・プログラムを使用してアウト・オブ・ブラウザ・アプリケーションのデジタル署名方の法と、それを行う理由について話しています。彼は信頼されている証明書とは何か、署名(または未署名)の意味合い、ユーザー体験への影響をカバーしています。

モジュール 8.5 − SilverlightにおけるMEFの価値

Ian Griffiths氏は、MEFとは何か、それによりアプリケーションはどのような利点を得るのか、そして設定可能な基本機能について話しています。彼は、インポート、エクスポート、作成プロセスの3つのステップと、動的にMEFを使用したXAPファイルのインポート方法をカバーしています。

まとめ

 上記の長い一覧から恐らくお分かりのように、このシリーズには多くの優れたコンテンツが含まれています。Silverlight 4(およびそのすべての新機能)の利用方法を説明した最初から最後までのウォークスルーが提供できていれば幸いです。

 Hope this helps,

 ScottEnd of Article

   
 
インデックス・ページヘ  「〜ScottGu氏のブログより〜」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間