Edited at

急にWindowsでプログラムを書くことになった人向けのクイックスタートガイド

More than 3 years have passed since last update.

急にWindowsでプログラムを書くハメになった人向けに、Visual Studio CommunityのインストールからC#言語仕様の学習、基本フレームワークを把握するために必要な情報源へのリンクをまとめました。

暇を見つけ次第随時更新していきます。


Visual Studio 2013


各エディションの概要


Visual Studio Ultimate 2013

何でも出来ます。90日間無償で使用することが出来ます。Ultimateにしかない機能を利用することが明らかなのであればこれを使用します。


Visual Studio Community 2013

Professionalと同等の機能を無償で利用出来ます。個人利用であればこれが最もおすすめです。


Visual Studio Express 2013

Visual Studio Community 2013がリリースされる以前は、無料で使えるVisual Studioはこれしかありませんでした。今はあえてこれを選択する必要は無いでしょうか。

Expressのそれぞれのエディションの使い分けは以下の通り:


  • ストアアプリを作りたい


    • Express 2013 for Windows



  • デスクトップアプリを作りたい


    • Express 2013 for Windows Desktop



  • ASP.NETをやりたい


    • Express 2013 for Web




ダウンロード

Visual Studio 2013のダウンロードはこちらから。

- http://www.visualstudio.com/downloads/download-visual-studio-vs


Visual Studio 2013の使い方を学ぶ

MSDNのチュートリアルがよく出来てるのでそれをこなしましょう。


C#の言語仕様を学ぶ

MSDNの『C#プログラミングガイド』に網羅されています。

ただ、辞書的なので順を追って読むにはちょっとしんどいです。

そういう場合は『連載 改訂版C#入門』by @ITを読みます。

古い内容もあるので、同ページからリンクされている『C# 2.0入門』『C# 3.0入門』にも目を通して「あたらしいやり方はどうなのか」を把握しながら学習しましょう。なぜか『C# 4.0入門』にはリンクが貼られていないのでこちらも忘れずに。


デリゲート・匿名メソッド・ラムダ式

ちょっとつまずきやすい(慣れるまで時間がかかりそう)なところなのでこの章で書いておきます。

Cで言うところの関数ポインタ、Perlで言うところの無名関数と同じ(と言い切るには無理がありますが)ものがもちろんC#にもあります。それはデリゲート・匿名メソッドです。

例えばPerlでは、


func.pl

my $func = sub {...};


と簡単に書けましたがC#の場合はやや複雑です。

まずは「デリゲートとは」といったところをこちらのページを参照して理解しましょう。

そしてクラスライブラリに用意されているデリゲート型をこちらのページで把握しておきます。

↑のページからリンクされているスコープやキャプチャ仕様もしっかり把握しましょう。初心者がつまずきやすいポイントです。

その後、こちらの素晴らしい記事を一読すればデリゲート・匿名メソッド・ラムダ式はマスターです。


C#でよく使うデータ構造

リスト・キュー・ハッシュ等はSystem.Collections.Genericに定義されています。車輪の再発明をする前にこちらに目を通しましょう。


C#の実践的なコード

逆引き的に「あれってどうやるの?」という時はこちらを参照します。

もっと豊富な例を参照したい場合はこちら。


トレンドを学ぶ


データベースの利用

「Windowsプログラムでも定番のO/Rマッパーとかあるんでしょ?」と思っているとまずここでくじけます。

.NETでは「ADO.NET」というフレームワークのもとに様々なDBへのアクセス手段が構成されています。どんな手段があるの?というのはまずこちらのページで把握しましょう。

それらが現場ではどういうふうに使い分けされているのかは、こちらのページが参考になります。

ORMで生SQLに近く軽いのは「dapper」です。

似た物として「DbExecutor」もあります。

上記2つは多言語でORMを利用してた人にも使いやすいのではないでしょうか。

IDEの支援付きでGUIでグリグリやるとコードがガリガリ書かれるものが欲しい場合は「Lightspeed」。

同様の物でMSイチオシなのが「Entity Framework」です。


ASP.NET

「ASP.NET」と言った時に何か特定のWebアプリケーションフレームワークを指す時代は終わりました。ASP.NETはMSが提供するWebテクノロジの総称になりました(それを明確にする呼び方として「One ASP.NET」という呼称があります)。

以下2つのページ(ASP.NET SignalRの解説と、ASP.NET Web APIの解説)に概念図があるので、「なるほど今はASP.NETと言えばこうなのか」というのを把握しましょう。


その他の情報源

メジャーなサイトはこちらのページにまとめられています。