コース 20483-C: Programming in C#

本トレーニングコースでは、 Visual C# 言語を使用して Windows アプリケーションを作成するために必要なプログラミングスキルを開発者に教えます。5 日間の教室の間、受講者は Visual C# プログラムの構造、言語構文、および実装の詳細の基礎を確認し、 .NET Framework 4.7 のいくつかの機能を組み込んだアプリケーションを構築しながら、その週を通じて知識を統合します。

視聴者プロフィール

本コースは、 C、 C++、 JavaScript、 Objective-C、 Microsoft Visual Basic、または Java のプログラミング経験があり、オブジェクト指向プログラミングの概念を理解している経験豊富な開発者を対象としています。本コースは、プログラミングを初めて行う受講者を対象としていません。オブジェクト指向環境で少なくとも 1 か月の経験を持つプロの開発者を対象としています。

職務: 開発者

習得したスキル

  • Visual C# のコア構文と機能について説明する。
  • メソッドを作成し、例外を処理し、大規模アプリケーションの監視要件について説明する。
  • 一般的なデスクトップアプリケーションの基本的な構造と基本的な要素を実装する。

前提条件

本コースに参加する開発者は、基本的なプログラミングタスクを完了するために C# を使用していくつかの限定的な経験をすでに得ている必要があります。具体的には、受講者は C# を使用して実践的な経験を持ち、以下のことを理解していることを示す必要があります:

  • アプリケーション内の変数に名前を付け、宣言し、初期化し、値を代入する方法。
  • 使用方法: 1つ以上の変数を含む算術計算を行う算術演算子、2つの変数や式の関係性をテストする関係演算子、関係演算子を含む式を結合する論理演算子。
  • C#言語のキーワードを使用して簡単なプログラミング文のコード構文を作成し、Visual Studio IDEを使用して構文エラーを認識する方法。
  • IF文を使った簡単な分岐構造を作成する方法。
  • For文を使用して、データ配列を反復処理する単純なループ構造体を作成する方法。
  • Visual Studio IDE を使用して単純なロジックのエラーを見つける方法。
  • 引数を受け取る関数を作成する方法 ( パラメータを指定し、指定した型の値を返す ) 。
  • Visual Studio ツールボックスの標準コントロールを使用して、簡単なユーザーインターフェイスを設計して構築する方法。
  • SQL Server データベースへの接続方法と、データの取得および保存方法の基本。
  • ループ内のデータをソートする方法。
  • プログラムで使用されるクラスとメソッドを認識する方法。

コースのアウトライン

モジュール 1: Visual C# 構文のレビュー

Microsoft .NET Framework バージョン 4.7 には、アプリケーションおよびサービスの構築、展開、および管理に使用できる包括的な開発プラットフォームが用意されています。.NET Framework を使用すると、視覚的に魅力的なアプリケーションを作成し、テクノロジーの境界を越えてシームレスな通信を可能にし、幅広いビジネスプロセスをサポートできます。

本モジュールでは、.NET Framework および Microsoft Visual Studio によって提供される主な機能の一部について学習します。また、.NET Framework アプリケーションの開発を開始するための Visual C# のコアとなる構造についても学習します。

レッスン

  • Visual C# を使用したアプリケーションの記述の概要
  • データ型、演算子、および式
  • Visual C# プログラミング言語の構文

ラボ: 受講者リストの編集機能の実装

  • 受講者リストの挿入機能の実装
  • 受講者リストの削除機能の実装
  • 受講者時代の表示

本モジュールを終了すると、受講者は以下のことができるようになります:

  • .NET Framework アプリケーションのアーキテクチャと、 Visual Studio 2017 および Visual C# が提供する機能について説明する。
  • Visual C# の基本的なデータ型、演算子、および式を使用する。
  • 標準の Visual C# 構文を使用する。

モジュール 2: メソッドの作成、例外の処理、およびアプリケーションの監視

アプリケーションは、データへのアクセスの提供や論理処理のトリガーなど、特定の機能を実行する機能の論理ユニットによって構成されていることがしばしばあります。Visual C# はオブジェクト指向言語であり、メソッドの概念を使用して機能の論理単位をカプセル化します。メソッドは、単純なものでも複雑なものでもかまいません。したがって、メソッドで例外が発生したときにアプリケーションの状態に何が起こるかを考慮することが重要です。

本モジュールでは、メソッドの作成方法と使用方法、例外処理の方法を学びます。また、発生した例外の詳細を記録するために、ロギングとトレースを使用する方法についても学びます。

レッスン

  • メソッドの作成と呼び出し
  • オーバーロードされたメソッドの作成、およびオプションパラメータと出力パラメータの使用
  • 例外の処理
  • アプリケーションの監視

ラボ: クラス登録アプリケーション機能の拡張

  • 登録コードのリファクタリング
  • 受講者情報の検証
  • クラスリストへの変更の保存

本モジュールを終了すると、受講者は以下のことができるようになります:

  • メソッドを作成して呼び出す。
  • オーバーロードされたメソッドを作成し、オプションのパラメータを使用する。
  • 例外を処理する。
  • ロギング、トレース、およびプロファイリングを使用してアプリケーションを監視する。

モジュール 3: Visual C# の基本的な型と構造

Windows Presentation Foundation (WPF) または他の .NET Framework プラットフォームを使用して効果的なアプリケーションを作成するには、まず Visual C# の基本的な構造について学習する必要があります。作業中のデータ項目を表す単純な構造を作成する方法を知っておく必要があります。これらの構造をコレクションに編成して、アイテムの追加、アイテムの取得、およびアイテムの繰り返しを行う方法を理解しておく必要があります。最後に、ユーザのアクションに応答できるように、イベントをサブスクライブする方法を知っておく必要があります。

本モジュールでは、構造体と列挙体を作成して使用する方法、データをコレクションに整理する方法、およびイベントを作成してサブスクライブする方法について学習します。

レッスン

  • 構造体と列挙型の実装
  • データをコレクションに整理する
  • イベントの処理

ラボ: グレードプロトタイプアプリケーションのコードの記述

  • Grades Prototype アプリケーションへのナビゲーションロジックの追加
  • ユーザーおよびグレード情報を保存するデータ型の作成
  • ユーザーおよびグレード情報の表示

本モジュールを終了すると、受講者は以下のことができるようになります:

  • 構造体と列挙型を作成して使用する。
  • コレクションクラスを使用してデータを整理する。
  • イベントの作成とイベントへのサブスクライブ

モジュール 4: クラスの作成と型セーフコレクションの実装

本モジュールでは、インターフェイスとクラスを使用して、独自のカスタムの再利用可能な型を定義して作成する方法を学習します。また、任意の型の列挙可能な型セーフコレクションを作成して使用する方法についても学習します。

レッスン

  • クラスの作成
  • インターフェイスの定義と実装
  • 型セーフコレクションの実装

ラボ: アプリケーションへのデータ検証と型セーフの追加

  • 教師、受講者、グレード構造をクラスとして実装する
  • グレードクラスへのデータ検証の追加
  • 名前順で受講者の表示
  • 教師がクラスとグレードのデータを変更できるようにすること

本モジュールを終了すると、受講者は以下のことができるようになります:

  • クラスを作成し、インスタンス化する。
  • インタフェースを作成し、インスタンス化する。
  • ジェネリックを使用して、型セーフコレクションを作成する。

モジュール 5: 継承を使用したクラス階層の作成

本モジュールでは、継承を使用してクラス階層を作成し、 .NET Framework の型を拡張する方法について学習します。

レッスン

  • クラス階層の作成
  • .NET Framework クラスの拡張

ラボ: ユーザークラスへの一般的機能のリファクタリング

  • ユーザクラスへの 一般的機能のリファクタリング
  • 抽象的な手法を用いたパスワードの複雑性の実装
  • ClassFullException カスタム例外の作成

本モジュールを終了すると、受講者は以下のことができるようになります:

  • 継承を使用して基本クラスと派生クラスを作成する。
  • .NET Framework クラスを継承するクラスを作成する。

モジュール 6: ローカルデータの読み取りと書き込み

本モジュールでは、トランザクションファイルシステムの I/O 操作を使用してデータを読み書きする方法、ファイルシステムにデータをシリアル化および非シリアル化する方法、ストリームを使用してファイルシステムにデータを読み書きする方法について学習します。

レッスン

  • ファイルの読み取りと書き込み
  • データのシリアル化および非シリアル化
  • ストリームを使用した I/O の実行

ラボ: グレードレポートの生成

  • XML としてグレードレポートのデータのシリアル化
  • 成績表のプレビュー
  • シリアル化された成績データをファイルへ保存する

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ファイル I/O を使用して、ファイルシステムとの間でデータの読み書きを行う。
  • データをファイルやその他のデータソースに書き込んだり、ファイルから読み取ったりできる形式に変換する。
  • ストリームを使用して、ファイルまたはデータソースとの間でデータを送受信する。

モジュール 7:データベースへのアクセス

本モジュールでは、エンティティーデータモデル (EDMS) を作成して使用する方法と、言語統合クエリ (LINQ) を使用してさまざまな種類のデータをクエリする方法について学習します。

レッスン

  • エンティティデータモデルの作成と使用
  • LINQ を使用したデータのクエリ

ラボ: 成績データの取得と変更

  • 美術学校データベースからエンティティーデータモデルを作成する
  • エンティティフレームワークを使用した学生および成績データの更新
  • データ検証のためのエンティティデータモデルの拡張

本モジュールを終了すると、受講者は以下のことができるようになります:

  • EDM を作成、使用、およびカスタマイズする。
  • LINQ を使用したデータのクエリ

モジュール 8:リモートデータのアクセス

本モジュールでは、 System.Net ネームスペースのリクエストクラスとレスポンスクラスを使用して、リモートデータソースを直接操作する方法を学びます。また、 Windows Communication Foundation (WCF) データサービスを使用して、 Web 上でエンティティーデータモデル (EDM) を公開および使用する方法についても学習します。

レッスン

  • Web 上のデータへのアクセス
  • OData 接続サービスを使用したデータへのアクセス

ラボ:リモートでのグレードデータの取得と変更

  • 学年別データベースのためにWCF データサービスの作成
  • アプリケーションへのデータサービスの統合
  • Web 経由での受講者の写真の取得 ( 時間に余裕がある場合 )

本モジュールを終了すると、受講者は以下のことができるようになります:

  • Web サービスや他のリモートデータソースとの間でデータを送受信する。
  • WCF データサービスを使用してデータへアクセスする。

モジュール 9: グラフィカルアプリケーション用のユーザーインターフェイスの設計

このモジュールでは、 Extensible Application Markup Language (XAML) および Windows Presentation Foundation (WPF) を使用して、魅力的な UI を作成する方法について学習します。

レッスン

  • XAML を使用したユーザーインターフェイスの設計
  • コントロールのデータへのバインディング

ラボ: 受講者の写真のカスタマイズとアプリケーションのスタイル設定

  • 受講者写真の外観のカスタマイズ
  • ログオンビューのスタイル設定
  • 受講者写真コントロールのアニメーション化 ( 時間に余裕がある場合 )

本モジュールを終了すると、受講者は以下のことができるようになります:

  • XAML を使用して UI を設計する。
  • XAML コントロールをデータにバインドする。
  • XAML UI にスタイルを適用する。

モジュール 10: アプリケーションパフォーマンスと応答性の向上

本モジュールでは、操作を複数のスレッドに分散することで、アプリケーションのパフォーマンスを向上させる方法について学習します。

レッスン

  • マルチタスクの実装
  • 非同期に操作の実行
  • データへの同時アクセスの同期

ラボ: アプリケーションの応答性とパフォーマンスの向上

  • 教師データの取得中でも UI が応答することの確認
  • 長時間操作中にビジュアルフィードバックの提供

本モジュールを終了すると、受講者は以下のことができるようになります:

  • タスクパラレルライブラリを使用してマルチタスクを実装する。
  • スレッドをブロックせずに、長時間操作を実行する。
  • 複数のスレッドがリソースに同時にアクセスする方法を制御する。

モジュール 11: アンマネージドコードとの統合

本モジュールでは、アプリケーションでのアンマネージドコードの相互運用の方法と、コードが管理されていないリソースを解放するようにする方法について学習します。

レッスン

  • ダイナミックオブジェクトの作成と使用
  • オブジェクトの有効期間の管理と管理対象外リソースのコントロール

ラボ: グレードレポートのアップグレード

  • Word を使用した成績表の生成
  • Dispose パターンを実装して Word オブジェクトの有効期間を制御する

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ダイナミック言語ランタイム (DLR) を使用して、アンマネージドコードを Microsoft Visual C# アプリケーションに統合する。
  • 管理されないリソースの有効期間を制御し、アプリケーションがリソースを解放することを確認する。

モジュール 12: 再利用可能な型とアセンブリの作成 本モジュールでは、リフレクションを使用して既存のアセンブリを使用する方法と、属性を使用して型および型のメンバーにメタデータを追加する方法について学習します。また、コードドキュメントオブジェクトモデル (CodeDOM) を使用して実行時にコードを生成する方法と、グローバルアセンブリキャッシュ (GAC) を使用してアセンブリに署名とバージョン管理を行い、他のアプリケーションで使用できるようにする方法についても学びます。

レッスン

  • オブジェクトメタデータの検査
  • カスタム属性の作成と使用
  • マネージコードの生成
  • アセンブリのバージョン管理、署名、および展開

ラボ: グレードレポートに含めるデータの指定

  • IncludeInReport 属性の作成と適用
  • レポートの更新
  • 成績の保管、 ユーティリティの集中的アセンブリ(時間に余裕がある場合)

本モジュールを終了すると、受講者は以下のことができるようになります:

  • リフレクションを使用して、アセンブリを検査して実行する。
  • カスタム属性を作成して使用する。
  • CodeDOM を使用して、実行時にマネージコードを生成する。
  • アセンブリのバージョン管理、署名、および GAC への配置を行う。

モジュール 13: データの暗号化と復号化

本モジュールでは、対称暗号化と非対称暗号化の実装方法、およびハッシュを使用してデータの数式的表現を生成する方法について学習します。また、 X509 証明書を作成して管理する方法と、非対称暗号化プロセスで使用する方法についても学習します。

レッスン

  • 対称暗号化の実装
  • 非対称暗号化の実装

ラボ: 成績表の暗号化と復号化

  • 成績表の暗号化
  • 成績表の暗号化

本モジュールを終了すると、受講者は以下のことができるようになります:

  • 対称暗号化を使用してデータを暗号化する。
  • 非対称暗号化を使用してデータを暗号化する。