コース 20487-C: Developing Microsoft Azure and Web Services

本コースでは、受講者は、さまざまなソースからローカルおよびリモートのデータにアクセスするサービスを設計および開発する方法を学びます。受講者はまた、オンプレミスサーバーや Microsoft Azure などのハイブリッド環境にサービスを開発して展開する方法についても学びます。

視聴者プロフィール

第1: サービスを開発し、ハイブリッド環境に展開する方法を学びたいと考えている .NET 開発者。

第2: ウェブアプリケーション開発経験のある .NET 開発者で、新しいアプリケーションの開発や既存のアプリケーションを Microsoft Azure に移植することを模索している方。

職務: 開発者

習得したスキル

  • .NET プラットフォームを使用したサービス開発およびデータアクセス戦略の基本概念について説明する。
  • Microsoft Azure クラウドプラットフォームと、そのコンピュート、データ、アプリケーションホスティングサービスについて説明する。
  • Visual Studio 2017 および Entity Framework Core を使用して、データ中心のアプリケーションを設計して開発する。

前提条件

このコースに参加する前に、受講者は次のことが必要です:

  • C# でのプログラミング経験があり、さらに Lambda式、LINQ、匿名型などの概念がある方
  • n 層アプリケーションの概念を理解している方
  • ADO.NET を使用したクエリやデータ操作の経験がある

コースのアウトライン

モジュール 1: サービスとクラウドテクノロジーの概要

本モジュールでは、 Microsoft .NET Core と Azure を使用したサービスおよびクラウドテクノロジーの概要について説明します。レッスン 1 「分散アプリケーションのキーコンポーネント」では、使用するテクノロジーに関係なく、分散システムに共通する特性について述べます。レッスン 2 「データおよびデータアクセステクノロジー」では、分散アプリケーションでのデータの使用方法について説明します。レッスン 3 「サービステクノロジー」では、分散システムで最も一般的なプロトコルと、それらのプロトコルに基づいてサービスを開発するために使用される .NET Core テクノロジーの 2 つについて説明します。レッスン 4 「クラウドコンピューティング」では、クラウドコンピューティングと Azure への実装方法について説明します。

レッスン

  • 分散アプリケーションのキーコンポーネント
  • データおよびデータアクセステクノロジー
  • サービステクノロジー
  • クラウドコンピューティング
  • データの操作

ラボ: 作業環境の探索

  • ASP.NET Core プロジェクトの作成
  • シンプルな Entity Framework モデルを作成する
  • Web API クラスを作成する
  • ウェブアプリケーションを Azure に展開する

学生はこのモジュールの完了後、次のことができるようになります:

  • サービスアーキテクチャとホスティング環境について説明する
  • クラウドコンピューティングと Microsoft Azure クラウドプラットフォームについて説明する
  • データアクセス戦略について説明する

モジュール 2: エンティティフレームワークを使用したデータのクエリと操作

本モジュールでは、 Entity Framework データモデルと、データの作成、読み取り、更新、削除の方法について学びます。Entity Framework は、データを操作するための便利で強力なアプリケーションプログラミングインターフェイス (API) を提供する、リッチなオブジェクトリレーショナルマッパーです。 本モジュールでは、Entity Framework を使用した Code First アプローチに焦点を当てます。

レッスン

  • ADO.NET の概要
  • エンティティデータモードの作成
  • データへのクエリ

ラボ: Entity Framework を使用したデータアクセス層の作成

  • データモデルの作成
  • データベースをクエリする

ラボ:データの操作

  • リポジトリメソッドを作成する
  • SQL Server と SQLite を使用してモデルをテストする

学生はこのモジュールの完了後、次のことができるようになります:

  • ADO.NET の基本的オブジェクトについて説明し、非同期操作がどのように機能するかを説明する。
  • Entity Framework Coreデータ モデルを作成する。
  • Entity Framework Core を使用してデータへクエリする。
  • Entity Framework Core を使用してエンティティを挿入、削除、更新する。

モジュール 3: ASP.NET Core Web API の作成と使用

ASP.NET Core Web API は、ハイパーテキスト転送プロトコル (HTTP)ベースのサービスを作成するための堅牢で最新のフレームワークを提供します。本モジュールでは、 HTTP ベースのサービスについて概説します。受講者はHTTP の仕組みについて学び、 HTTP メッセージ、 HTTP メソッド、ステータスコード、ヘッダに習熟します。また、 Representational State Transfer (REST) アーキテクチャスタイルとハイパーメディアの概説も受けます。

ASP.NET Core Web API を使用して HTTP ベースのサービスを作成する方法について学びます。また、さまざまなクライアントからそれらを利用する方法についても学習します。レッスン 3 のラボ「ASP.NET Core Web API の作成」では、 Web API を作成し、クライアントから使用します。

レッスン

  • HTTP サービス
  • ASP.NET Core Web API の作成
  • ASP.NET Core Web API の使用
  • HTTP リクエストと応答の処理
  • HTTP リクエストと応答の自動生成

ラボ: ASP.NET Core Web API の作成

  • コントローラクラスを作成する
  • ブラウザから API を使用する
  • クライアントを作成する

学生はこのモジュールの完了後、次のことができるようになります:

  • HTTP プロトコルを使用してサービスを設計する。
  • ASP.NET Core Web API を使用してサービスを作成する。
  • HTTP メッセージを制御するには、 HttpRequest/IActionResult クラスを使用する。
  • ASP.NET Web API サービスを利用する。

モジュール 4: ASP.NET コア HTTP サービスの拡張

ASP.NET Core Web API は、 HTTP サービスを構築するための完全なソリューションを提供しますが、多くの場合、サービスにはさまざまなニーズおよび依存性があります。多くの場合、 ASP.NET Core Web API がサービスを実行する方法を拡張またはカスタマイズする必要があります。エラー処理やロギングの適用などの処理ニーズは、アプリケーションの他のコンポーネントと統合し、 HTTP の世界で利用可能な他の標準をサポートしています。 ASP.NET Core Web API を拡張するときは、 ASP.NET Core Web API の動作を理解することが重要です。ASP.NET Core Web API の実行方法に介入するときは、コンポーネント間の責任分担と実行順序が重要です。 最後に、 ASP.NET Core Web API の使用によって、システムの他の部分との対話方法を拡張することもできます。依存性リゾルバメカニズムの使用によって、サービスのインスタンスの作成方法を制御して、サービスの依存性を完全に管理できます。

レッスン

  • ASP.NET コアリクエストパイプライン
  • コントローラとアクションのカスタマイズ
  • コントローラへの依存性の注入

ラボ: ASP.NET コアパイプラインのカスタマイズ

  • 依存性インジェクションを使用してリポジトリオブジェクトを取得する
  • キャッシュフィルタを作成する
  • デバッグミドルウェアを作成する

学生はこのモジュールの完了後、次のことができるようになります:

  • ASP.NET Web API のリクエスト・応答パイプラインを拡張する。
  • コントローラとアクションをカスタマイズする。
  • ASP.NET Web API コントローラへ依存性を注入する。

モジュール 5: オンプレミスおよび Azure でのホスティングサービス

本モジュールでは、オンプレミスと Azure でアプリケーションをホストする方法について学びます。 Docker コンテナについても学び、 Azure 機能を使用したサーバーレスアプリケーションの記述についても学びます。

レッスン

  • オンプレミスでのサービスのホスティング
  • Azure App Service におけるサービスのホスティング
  • コンテナ内サービスのパッケージング
  • サーバーレスサービスの実装

ラボ: Windows サービスで の ASP.NET Core サービスをホスト

  • ASP.NET Core アプリケーションの新規作成
  • Windows サービスの登録

ラボ: Azure Web App で ASP.NET Core Web API をホスト

  • Azure ポータルで Web アプリを作成する
  • ASP.NET Core Web API を Web App に展開する

ラボ: Azureコンテナインスタンスで ASP.NET Coreサービスをホスト

  • Docker コンテナにサービスを公開する
  • Azure Container インスタンスでサービスをホストする

ラボ : Azure 機能の実装

  • ローカルでサービスを開発する
  • Azure 機能にサービスを展開する

学生はこのモジュールの完了後、次のことができるようになります:

  • Windows サービスと Microsoft Internet Information Services (IIS) を使用して、オンプレミスでサービスをホストする。
  • ウェブアプリ、Docker コンテナ、Azure 機能を使用して、 Azure クラウド環境でサービスをホストする。
  • コンテナ内サービスをパッケージする。
  • サーバーレスサービスを実装する。

モジュール 6: サービスの展開と管理

本モジュールでは、 Visual Studio で Web Deploy を使用して Web アプリケーションを展開する方法について学びます。 また、継続的な統合と継続的なデリバリパイプラインを定義する方法や、 Azure API Management と OpenAPI を使用して、堅牢で安全で信頼性の高い API を顧客に提供する方法についても学びます。

レッスン

  • Visual Studio 2017 による Web の展開
  • Visual Studio Team Services による継続的なデリバリ
  • ステージング環境および本番環境へのアプリケーションの展開
  • Azure API 管理を使用したサービスインターフェイスの定義

ラボ: Linux 上での ASP.NET Core Webサービスの展開

  • Linux 用の ASP.NET Core Web サービスを公開する
  • Nginx をリバースプロキシとして設定する

ラボ: ステージングおよび本番への展開

  • アプリケーションを本番に展開する
  • ステージングスロットを作成する
  • 環境を入れ替える

ラボ: Azure API 管理を使用した Web API の公開

  • Azure API 管理インスタンスの作成
  • API のテストと管理

学生はこのモジュールの完了後、次のことができるようになります:

  • Microsoft Internet Information Services (IIS) ウェブ展開について説明する。
  • Microsoft Visual Studio Team Services ビルドパイプラインを使用して Azure Web Apps の展開について説明する。
  • Azure Container インスタンスにウェブサービスを展開する方法について説明する。
  • API 管理と Swagger を使用してサービスインターフェイスを定義する方法について説明する。
  • API 管理を使用してポリシーを定義する方法について説明する。
  • Azure API Management と Swagger を使用してサービスインターフェイスの定義について説明する

モジュール 7: Azure へのデータストレージの実装

本モジュールでは、 Azure ストレージに保存されているデータを保存およびアクセスする方法について説明します。また、ストレージコンテナとコンテンツのストレージアクセス権を設定する方法についても説明します。

レッスン

  • データストレージメカニズムの選択
  • Azure ストレージにおけるデータへのアクセス
  • Azure での構造化データの操作
  • Azure CDN を使用したデータの地理的な分散
  • プロセス外キャッシュを使用したスケーリング

ラボ: Azure ストレージへのファイルの保存

  • Azure Blobs にパブリックアクセス可能なファイルを保存する
  • Azure Blobs でプライベートファイルを生成して保存する

ラボ: CosmosDB を使用したグラフデータのクエリ

  • CosmosDB グラフデータベースを作成する
  • CosmosDB データベースをクエリする

ラボ: Azure Redis キャッシュを使用したプロセス外のキャッシュ

  • Azure Redis Cache サービスを作成する
  • コードからキャッシュサービスにアクセスする
  • アプリケーションをテストする

学生はこのモジュールの完了後、次のことができるようになります:

  • ストレージのアーキテクチャを説明する。
  • ストレージ項目へのアクセスを制御する。
  • Azure Cache for Redis を使用してデータをキャッシュする。
  • Microsoft Azure Content Delivery Network を使用してデータを配信する。

モジュール 8: 診断とモニタリング

本モジュールでは、オンプレミスと Azure の両方でサービスを監視し、ログを取る方法を説明します。

レッスン

  • ASP.NET Core へのログイン
  • 診断ツール
  • Application Insights

ラボ: ETW および LTTng を使用した ASP.NET Core の監視

  • ETW イベントを収集して表示する
  • LTTng イベントを収集して表示する

ラボ : Application Insights で Azure Web アプリを監視

  • Application Insights SDK を追加する
  • Web サービスをロードテストする
  • パフォーマンス結果を分析する

学生はこのモジュールの完了後、次のことができるようになります:

  • トレースリスナーについて説明する
  • パフォーマンスカウンタについて説明する
  • ETW および LTTng イベントについて説明する
  • サービスを監視するために App Insights を使ってデモを行う

モジュール 9: オンプレミスと Microsoft Azure でのサービスの保護

本モジュールでは、クレームベースのアイデンティティの概念と標準について説明し、Azure Active Directory を使用して ASP.NET Core Web API サービスをセキュアにするための認証と認可の実装方法について説明します。

レッスン

  • セキュリティ用語の説明
  • ASP.NET Core Identity によるサービスのセキュリティ保護
  • Azure Active Directory によるサービスのセキュリティ保護

ラボ: ASP.NET Core Identity の使用

  • ASP.NET コアアイデンティティミドルウェアを追加する
  • 認証コードを追加する
  • クライアントアプリケーションを実行してサーバーをテストする

ラボ: ASP.NET Core による Azure Active Directory の使用

  • AAD B2C および MSAL.js を使用してクライアントアプリケーションを認証する

モジュール 10: サービスのスケーリング

本モジュールでは、 Web Apps ロードバランサー、 Azure Application Gateway、 Azure Traffic Manager を使用してスケーラブルなサービスとアプリケーションを作成し、自動的に拡張する方法について説明します。

レッスン

  • スケーラビリティの概要
  • 自動スケーリング
  • Azure Application Gateway および Traffic Manager

ラボ: Azure Web アプリのロードバランシング

  • アプリケーションのロードバランシングを準備する
  • インスタンスアフィニティを使用してロードバランシングをテストする
  • アフィニティなしでロードバランシングをテストする

ラボ: Azure Traffic Manager を使用したロードバランシング

  • Azure Web App を複数の地域に展開する
  • Azure Traffic Manager プロフィールを作成する

学生はこのモジュールの完了後、次のことができるようになります:

  • スケーラビリティの必要性を説明する。
  • サービスのスケーリングにロードバランシングを使用する方法について説明する。
  • Azure Load Balancer、 Azure Application Gateway、 Azure Traffic Manager について説明する。