ISBN 9784297121990
パーフェクト C# [改訂4版]
概要
C# 8.0 と .NET Core によるクロスプラットフォーム開発を体系的に習得する
想定読者
C# の言語仕様を体系的に押さえ直したい中級者、あるいは .NET Core によるクロスプラットフォーム対応を業務に取り込みたい開発者
こんな人には向いていない
- プログラミング自体が初めての段階にある学習者には、前提知識なしには読み進めにくい箇所が多い
- すでに C# 10 以降の最新仕様(record / required メンバ / パターンマッチング拡張等)を主な関心事としている開発者には、本書が対象とする C# 8.0 では対応できない部分がある
- WPF や ASP.NET の実践的なアーキテクチャ設計(Clean Architecture / DDD 等)を深堀りしたい読者には、本書の該当パートは導入レベルにとどまる
読了後にできるようになること
- .NET Framework と .NET Core/5 の関係を CLR・DLR の動作を含めて説明できる
- クラス・インターフェイス・ジェネリクス・デリゲートなど C# の型システム全体を構造的に把握できる
- LINQ(Objects / SQL / XML / PLINQ)をクエリ式とメソッド構文の両形式で使い分けられる
- WPF の XAML ベースの UI 設計とデータバインディングの基礎を実装できる
- ASP.NET MVC / ASP.NET Core MVC のルーティング・コントローラ・ビューの連携を理解できる
- MSTest を使ったユニットテストのプロジェクト構成とアサーション実装ができる
本書のキー概念(章解説)
- 第 1 章 .NET Framework 4.8/.NET 5 — CLR・DLR の役割を理解することで、以降の型システム解説の土台となる
- 第 2 章 共通型システム(CTS) — 型変換と Type クラスの理解は後続の LINQ・ジェネリクス章の前提として重要
- 第 6 章 クラス — 継承・ポリモルフィズム・コンストラクタ・イベントまでを網羅する本書の中心章
- 第 8 章 ジェネリック — 共変性・反変性まで扱う点がリファレンスとして強みになる箇所
- 第 9 章 イテレータ・例外処理・並列処理 — 並列処理節は旧版からの用語混在が指摘されているため、公式ドキュメントとの併読を推奨
- 第 10 章 LINQ — LINQ to Objects / SQL / XML / PLINQ まで横断できる、実務直結度が高い章
- 第 12 章 WPF(基本) — デスクトップ開発不要であれば読み飛ばして Web パートに進んでよい
- 第 16 章 ASP.NET MVC/ASP.NET Core MVC(基本) — URLルーティングとコントローラの基礎を押さえる Web 開発者向けの入口
- 第 18 章 MSTestによるユニットテスト — テストプロジェクトの構成方法を実例で示す、CI 導入前に確認する価値がある
ハイライト
- Visual Studioはmac版の登場もあり,Windows、mac OS、LinuxなどのOSを意識しない開発やクラウドベースの開発へと移行しています。そこで本書も,従来のアプリ開発とは別に、.NET Coreをベースとしたクロスプラットフォーム開発などの最新の開発事情も解説してます。(本書が単なる言語仕様書にとどまらず、クロスプラットフォーム対応という実務文脈を射程に入れている点を示す記述)
- 最新のバージョン(C# 8.0/Visual Studio 2019)に対応した改訂4版になります。近年,Visual Studioはmac版の登場もあり,Windows、mac OS、LinuxなどのOSを意識しない開発やクラウドベースの開発へと移行しています。(対象バージョンと執筆動機が端的に示されており、読者が自身の環境との適合を判断しやすい箇所)
外部からの言及
- 独学学習者が Microsoft 公式ドキュメントを主軸に C# を学ぶ際、図書館で入手した本書を補助的に参照しているケースが確認されている。OOP 基礎(クラス・プロパティ・例外処理)を整理する用途での使われ方が見られる(qiita)
- パーフェクトC# シリーズ(主に第3版)は、並列処理・並行処理の概念整理の参照元として技術記事で引用されている。節タイトルと本文で用語が混在している点が指摘されており、最新の .NET 並行処理仕様との照合を勧める声もある(qiita)
編集メモ
Qiita での言及は改訂4版への直接参照が 1 件(likes 3)、シリーズ全体で 4 件(累計 likes 3)にとどまる。Rakuten ランキング情報なし。外部シグナル量は supplementary 水準
読む前に押さえておきたいこと
- 変数・条件分岐・ループといった基本的なプログラミング構文をいずれかの言語で書いたことがある
- オブジェクト指向(クラス・継承)の概念について概要レベルの理解がある
- Visual Studio または Visual Studio Code で C# プロジェクトを起動できる環境を用意していること
学習のコツ
- Part 1(1〜2章)で .NET ランタイムの全体像を掴んだ後、Part 2 言語仕様(3〜11章)を通読するのが想定読み順だが、業務で LINQ を多用している場合は 10 章を先に読むと理解が加速する
- WPF(12〜13章)と ASP.NET(14〜17章)は独立しているため、担当プロジェクトの技術スタックに合わせて片方を省略し、もう一方に集中できる
- 9 章の並列処理節は旧版から引き継がれた用語混在が指摘されているため、Task / async-await の最新仕様は Microsoft Learn の公式ドキュメントを併読することを勧める
- 18〜19 章の MSTest は、単体テストをまだ書いたことがない段階で読むと効果が高い。既にテストを書いている場合は実務コードと照合しながら参照書として使う
出版社による内容紹介
最新のバージョン(C# 8.0/Visual Studio 2019)に対応した「パーフェクトC#」の改訂4版になります。近年,Visual Studioはmac版の登場もあり,Windows、mac OS、LinuxなどのOSを意識しない開発やクラウドベースの開発へと移行しています。そこで本書も,従来のアプリ開発とは別に、.NET Coreをベースとしたクロスプラットフォーム開発などの最新の開発事情も解説してます。 ■■Part1 C#〜overview ■1章 .NET Fremework 4.8/.NET 5 1-1 .NET Frameworkとは 1-2 共通言語ランタイム(CLR) 1-3 DLR 1-4 .NET Framework 1-5 Microsoft Visual Studio 1-6 .NET 5 1-7 C# ■2章 共通型システム(CTS) 2-1 共通型システム(CTS)とは 2-2 型変換 2-3 型クラス(Type) ■■Part2 C#言語仕様 ■3章 C#の基本 3-1 C#言語の基本構文 3-2 変数と配列 3-3 制御文 ■4章 基本データ型と演算子 4-1 基本データ型 4-2 演算子 ■5章 型とメンバ 5-1 名前空間と型 5-2 型とメンバ 5-3 メンバアクセス ■6章 クラス 6-1 クラスの定義 6-2 クラスの生成 6-3 継承とポリモフィズム 6-4 フィールド 6-5 定数 6-6 コンストラクタ 6-7 デストラクタ 6-8 メソッド 6-9 プロパティ 6-10 演算子 6-11 インデクサ 6-12 イベント ■7章 クラス以外の型 7-1 構造体 7-2 タプル型 7-3 インターフェイス 7-4 列挙型 7-5 デリゲート ■8章 ジェネリック 8-1 ジェネリックとは 8-2 標準的なジェネリッククラスとジェネリック構造体 8-3 ジェネリックの共変性と反変性 ■9章 特別な例外処理 9-1 イテレータ 9-2 例外処理 9-3 並列処理 ■10章 LINQ 10-1 LINQとは 10-2 クエリ式 10-3 LINQ to SQL 10-4 LINQ to DataSet 10-5 LINQ to Objects 10-6 LINQ to XML 10-7 PLINQ(Parallel LINQ) ■11章 特殊な言語仕様 11-1 dynamic型 11-2 アンセーフコード 11-3 属性 11-4 プリプロセッサディレクティブ ■■Part3 デスクトップアプリケーション開発 ■12章 WPF(基本) 12-1 WPFとは 12-2 XAML 12-3 WPFアプリケーション ■13章 WPF(応用) 13-1 コントロール 13-2 イベント 13-3 データバインディング ■■Part4 Webアプリケーション開発 ■14章 ASP.NET Webフォーム(基本) 14-1 ASP.NET Webフォームとは 14-2 アプリケーションモデル 14-3 画面遷移とデータの受け渡し 14-4 状態管理 ■15章 ASP.NET Webフォーム(応用) 15-1 サーバコントロール 15-2 データバインディング ■16章 ASP.NET MVC/ASP.NET Core MVC(基本) 16-1 ASP.NET MVCとは 16-2 URLルーティングとコントローラー 16-3 ビューエンジン 16-4 コントローラとビュー 16-5 コントローラとビュー間でのデータの受け渡し ■17章 ASP.NET MVC/ASP.NET Core MVC(応用) 17-1 HTMLヘルパー 17-2 レイアウト 17-3 モデルバインディングと入力検証 ■■Part5 テストコード ■18章 MSTestによるユニットテスト 18-1 MSTestとは 18-2 ユニットテストプロジェクト ■19章 MSTestによるユニットテストコードの実装 19-1 テストクラス 19-2 テストメソッド 19-3 テストクラス、テストメソッドをサポートする属性 19-4 結果の検証とアサーション
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。