私がC#を勉強するときに参考にしたサイトをまとめてみます。分野が偏っていますが、あくまでも私のメモ代わりなため。参考になるサイトを見つけたら更新予定。また、他にも良いサイトがあったらお知らせ下さい。
これからC#を学ぶ人の参考になったら嬉しいです。
お使いの.NET Framework、Visual Studioのバージョンによっては使えないものもあるかもしれません。ご注意下さい。
開発環境
Visual Studioは数万円から数十万円以上する専門的なソフトと言われていますが、Expressが無料で配布されています。基本的な機能ならExpressでも十分です(30日以上の使用は要登録)。つまり無料でC#プログラミングができます。
Windowsデスクトップアプリを開発する場合はVisual Studio Express 2013 for Windows Desktopを、Webアプリを開発する場合はVisual Studio Express 2013 for Webをダウンロードして下さい。
Windows XPでは2012以降は対応していないので、2010をダウンロードする必要があります。2010以前は開発言語別に分かれています。C#の場合はVisual C# 2010 Expressをダウンロードして下さい。
また、学生はProfessionalが無料で手に入ります。詳細はDreamSparkを参照して下さい。
C#基礎
マイクロソフト公式
C#の言語仕様について知りたい場合はMS公式さえ読めば十分だと思う。
アプリケーションを作りながら学んでいきます。
MS公式以外
- C# によるプログラミング入門 – 超おすすめ。最新の言語仕様も網羅している。
- 連載 改訂版 C#入門 – @IT
- 連載:C# 2.0入門 - @IT
- 連載:C# 3.0入門 - @IT
- 連載:[完全版]究極のC#プログラミング - @IT
- 連載:C# 4入門 - @IT
- C# 階梯 – C# による Windows アプリケーション開発入門
- C#入門 – WisdomSoft
- 書いて覚えるC#
- Gushwell’s C# Programming Page – 『C#プログラミングレッスン』書庫
- 1週間で学ぶIT基礎の基礎 – C#で始めるプログラミング—目次:ITpro – オブジェクト指向の解説もあり。ただし、使っているVisual Studioのバージョンが古いので注意。
- 簡単!Visual Studio 2010入門 – @IT – Visual Studioを使った入門。
- 連載:簡単! Visual Studio 2013入門 – @IT – 上記のVS2013版。
- C#入門 – C# 2.0までの解説。
- 帝国の野望ブログ – builder by ZDNet Japan – 実際にメモ帳を作りながら学んでいきます。
- 初心者のためのC#プログラミング入門
- オブジェクト指向プログラミング超入門 – @IT – C#はオブジェクト指向言語なので、オブジェクト指向の知識もあったほうがいいかも。
Windowsフォーム
- Windows フォームのチュートリアル – MS公式。
- 連載:Windowsフォーム開発入門【Visual Studio 2010対応】 - @IT
C# フォーム階梯 – C# による GUI アプリケーション開発入門 http://www.wgag.net/csforms/index.html– 2014年8月7日現在、リンク切れ。- Microsoft .NET入門
- C#ゲームプログラミング – WisdomSoft
WPF
WPF (Windows Presentation Foundation) とは、.NET Framework 3.0から搭載された、GUI開発用コンポーネントです。Windowsフォームよりも強力な表現が可能となります。見た目はXAML (Extensible Application Markup Language) というマークアップ言語で表記します。
マイクロソフト公式
- WPF アプリケーションを作る クッキング ガイド
- WPF のチュートリアル
- Visual Studio 2010 による Windows アプリケーション開発の基礎 (全 9 回) | Visual Studio 2010 自習書 – C#はわかるけど、WPFは初めてという人向け。
- XAML による Windows アプリケーション開発の基礎 (全 13 回) | Visual Studio 2010 自習書 – C#はわかるけど、XAMLが分からないという人向け。
MS公式以外
- 連載:WPF入門 – @IT
- Windows Presentation Foundation プログラミング入門 – WisdomSoft
- WPF 超入門 – WPFがどんなものか知りたい人向け。
- WPF画像処理プログラミング入門 – プロノワ –
- WPF4.5入門
LINQ
LINQ (Language INtegrated Query) は、言語に統合されたクエリです。.NET Framework 3.5から搭載されました。私はまだまだよく分かっていません…。
マイクロソフト公式
- C# の LINQ の概要
- LINQ のチュートリアル
- データに関するチュートリアル – 厳密にはLINQを使わないものもあるが、LINQと関連が深いのでここに。
MS公式以外
- 特集:C#プログラマーのためのLINQ超入門(前編):LINQ(リンク)の基礎知識 (1/4) – @IT
- 特集:C#プログラマーのためのLINQ超入門(後編):LINQによるデータベース・アクセスとO/Rマッピング (1/3) – @IT
- XMLを扱えるLINQ ―LINQ to XML― の基礎を学ぼう - @IT
- LINQを活用した簡単XMLデータベース・アプリケーション - @IT
- C#で解説する「データ処理の直交化と汎用化」 - @IT
Webアプリ
私はやったことがありませんが、ASP.NETにも興味があるので一応紹介。
MS公式
MS公式以外
サンプル
マイクロソフト公式
- WPF 入門のサンプル
- Code Recipe:サンプルコード集 – 予めC#で絞り込んであります。
MS公式以外
- .NET TIPS – @IT
- DOBON.NET
- C# と VB.NET の入門サイト
- VB.NETとC#でデザインパターン
- Gushwell’s C# Programming Page – C#デザインパターン
その他
- 基礎解説 スマートな文字列処理のための 正規表現入門(前編):― .NET Frameworkがサポートする正規表現クラスを徹底活用する ― (1/4) – @IT
- 基礎解説 スマートな文字列処理のための 正規表現入門(後編):― .NET Frameworkがサポートする正規表現クラスを徹底活用する ― (1/3) – @IT
- 正規表現の概説 – MS公式。正規表現そのものの解説
- 特集C#&VBジェネリック超入門(前編):ジェネリック・クラスで変わるC#とVBのコレクション (1/4) – @IT
- 特集C#&VBジェネリック超入門(後編):ジェネリックなメソッドやデリゲートがもたらす新スタイル (1/4) – @IT
- .NETビルド・エンジン「MSBuild」使いこなし術 - @IT
- C#開発者のための拡張メソッド入門 - @IT
- C#ラムダ式 基礎文法最速マスター - @IT
- C#&VB ラムダ式 基礎文法★チートシート - @IT
- つくばC#勉強会で「初心者にC#をおすすめする理由」を話してきました « 銀の光と碧い空 銀の光と碧い空 – 「Visual Studioは高価」「C#はJavaのパクリ」「C#はWindowsでしか使えない」「Windowsはプログラミングに向かない」の反論にもなっていると思います。
- グラニがC#にこだわる理由:連載|gihyo.jp … 技術評論社
私が共感した記事です。特に同感な部分を引用。
なぜなら,プログラミング言語はそれ単体で評価するものではないからです。実際に開発する際に必要となる「プログラミング言語+IDE+ライブラリ/フレームワーク」を三位一体で評価するべきでしょう。その点において,「C#+Visual Studio+.NET Framework」の組み合わせほど高いレベルですべてを提供できているプログラミング言語はほかにありません。
学習量は、プログラミング言語の文法自体よりも、ライブラリやフレームワークの使い方のほうが多いです(私も使いこなせているとはまだまだ言えませんが…)。また、今どきIDEを使わない開発は考えられません。面倒くさい作業をIDEで自動化してプログラミングに専念したほうが効率が良いです。ライブラリやフレームワークの使いやすさ・充実度や、IDEの使いやすさは開発言語を選ぶうえでの大きな指標になるでしょう。「C#×Visual Studio×.NET Framework」の組み合わせは最強。まるで料理とワインとパンのマリアージュ。
機械ができることは機械が完璧に行う。それが心理的な抵抗をなくし,本当の軽量さ,変更耐性,修正の容易さを実現することにつながります。
上とかぶりますが、IDEに任せたほうが効率化につながります。
C#はWebアプリケーションだけでなく,ゲームやデスクトップアプリケーション,組み込みとあらゆる領域でプログラムを書くことができる万能な言語です。あらゆるプログラミング言語を見ても,すべての領域で実用的なレベルで使えるものは非常に珍しいと言えるでしょう。
C#は様々な場面でつぶしが効く言語だと思います。もっと評価されるべき。
一つだけ文句をつけておくと、同じようにライブラリやフレームワークが充実していて、IDEも充実しているJavaとの比較もすべきだったなぁって思います。連載は続くようなので今後に期待!
番外編
- F#で初めての関数型プログラミング - @IT – マイクロソフトが開発した関数型言語、F#の解説です。C#が分かっている人向け
- 【徹底検証】“Cシャープ”を知らなくてもえんかく操作ウイルスは作成できるか? – 窓の社 – 窓の社のエイプリルフール記事。Cシャープ(音楽記号)は初心者でも簡単にウイルスを作成できるプログラミング言語ですw(※実際にウイルスを作成しないで下さい。罪に問われる可能性があります。)