okiami1983のブログ

クオリティーが低い記事はあとで書き直します。。

Visual C#の勉強を始めました。

Raspberry Piでwindows10 IoT Coreが使えるというインターフェースの記事をみて、Visual C#windowsのアプリを作ってみることにしたのですが、気軽にできると思って始めたら痛い目を見たのでまとめます。 

 

Interface(インターフェース) 2016年 03 月号

Interface(インターフェース) 2016年 03 月号

 

 

Raspberry PiでWindows10 IoT Coreのアプリを作るには、Windowsのプログラミングと組み込みの知識が必要でした。

  1. C#(文法)
    当たり前ですが、C#の文法の知識がないとオリジナルの開発はできないです。文法書を一冊読めばいいだけなので、これはそれほど難しくありません。
  2. Visual C#の使い方(ツール)
    Visual Studioが高機能なので、ちょっとしたプログラムを作ろうとするだけでも一苦労です。
  3. WinRT(フレームワーク
    これを理解するのが一番ハードルが高いです。かつてはMicrosoft .Net FrameworkやWPFと呼ばれるものが主流でしたが、そういった技術をもとにしてWinRTができています。過去の技術とは切り離して考えることができないので、膨大な資料の中から必要な情報を探し出すことになります。
    私がかつてVisual C++を使っていた頃はすべての部分をコードで書いていたのですが、今の開発の主流なスタイルは「アプリの見た目と、その裏で動く部分を分けて作る」ことになっています。これってWebのHTMLとjavascriptで開発しているような状態です。

(私は組み込みの知識はあるので今回は省略してます。。)

 

 

で、このあたりの事情を把握できていない人が手っ取り早くプログラミングしようと思ったら、やはり全部網羅系の書籍を見るのがいちばん手っ取り早いです。

VisualC#2015パーフェクトマスター (Perfect Master)

VisualC#2015パーフェクトマスター (Perfect Master)

 

 この本は800ページくらいありますけど、オブジェクト指向の言語でプログラミングできる人はこういう書籍を最初に読んでおくと全体を把握できるので効率が良いです。全部に細かく目を通さずとも、わかっているぶぶんは斜め読みで済むので、1時間100ページくらいは読めます。

色々と本を漁りましたが、今のところ出版されている網羅系の書籍ではこれがいちばん良かったです。

 

 

 

作って覚えるVisual C# 2015 デスクトップアプリ入門

作って覚えるVisual C# 2015 デスクトップアプリ入門

 

パーフェクトマスターよりも網羅性は劣りますが、そのぶんコンパクトにまとめられています。

 

 

基礎からわかる C#

基礎からわかる C#

 

薄い解説本です。文法を理解する最初のとっかかりにはいいですが、解説が少ないのできちんと理解しようと思ったら別の本を読むことになります。あくまで文法書なのでwindowsに依存した部分はノータッチなのが弱点です。「C#のこの機能はなんのために使うものか」というバックグラウンドの解説がなく、あまり実践的ではありません。

 

 

スマホで始めるC#入門

スマホで始めるC#入門

 

基礎からわかるC#の補完に良い本。ドリル形式でC#の実践的な文法の例がたくさん掲載されています。
この本をお勧めする理由は、目的「最終的にXXがしたい」が明確に記載されていて、現状「現在このくらいのことがわかっている」も明確に記載した上で「どうやったらいいかわからない」という手段を考える、というプロセスで例を学んでいくスタイルになっているところです。プログラミングの初心者レベルの読者を対象にしているようですので、他の言語をやったことがある人なら1日か2日で読めるでしょう。

 

xamlとかデータバインディングについてはこちらが大変参考になりました。

連載:WPF入門:第1回 いよいよWPFの時代。WPFの習得を始めよう (1/3) - @IT

Windows Presentation Foundation プログラミング入門 - WisdomSoft

XAML 概要(WPF) - クラスライブラリ | ++C++; // 未確認飛行 C

XAML の基本構造(WPF) - クラスライブラリ | ++C++; // 未確認飛行 C

XAML とプログラムコード(WPF) - クラスライブラリ | ++C++; // 未確認飛行 C

データバインディング(WPF) - クラスライブラリ | ++C++; // 未確認飛行 C

 

 

 

 

C#によるWindowsシステムプログラミング

C#によるWindowsシステムプログラミング

 

冒頭に「C# を使って本格的にシステムを開発するときに悩むような事柄を中心にまとめた」とあるように、中級向けの内容です。このような書籍がなかなかありませんでしたが、2016年の年末に出版されたようです。値段は張りますが、オリジナルのアプリなど作成しようとしたらWindowsシステムの骨格を理解することは避けて通れない部分だと思います。webで情報収集するよりも効率的です。 

 

 

最新の情報は雑誌で手に入れるのが良いです。 ただし、日経ソフトウェアの記事は難易度高めなので、これが読めるくらいならMSDNライブラリの内容を理解できると思います。

日経ソフトウエア 2016年 11月号 [雑誌]
 

 日経ソフトウェアkindle unlimitedの対象になっているので、unlimitedの人はチェックしたらいいと思います。付録も読めます。

 

 

過去の情報も参考になります。

エッセンシャル Silverlight 3 (Programmer's SELECTION)

エッセンシャル Silverlight 3 (Programmer's SELECTION)

 

 古い書籍も役に立ちます。windowsの開発は過去からの積み重ね、です。XAMLについてはこういう書籍からも情報が得られます。

 

 

これは余談ですが、プログラミングが初めての人がストアアプリの開発から入るのはとても危険です。本に載っているサンプルコードを動かすだけなら簡単ですが、じぶんで考えたアプリを作ろうと道を一歩踏み外したら学ぶことが芋づる式に増えていくので、手に負えなくなる可能性が高いです。