書籍レビュー – C#ポケットリファレンス 改訂版

書籍レビューです。

今回は、WINGSプロジェクトの飯島聡様よりご依頼を受け、同代表山田祥寬様のご厚意により、技術評論社様より発刊された【C# ポケットリファレンス 改訂版】を頂きました。
飯島様、山田様、技術評論社様にはこの場を借りて御礼申し上げます。今回もありがとうございます。

本書は、6年前に出版された【C# ポケットリファレンス】の改訂版となります。改定前もレビューしていましたので、併せてどうぞ。

書籍レビュー – C#ポケットリファレンス

今回は前作のポケットリファレンスから、どのように変更されたかを中心にレビューしてみようかと思います。

対応バージョン

改定前はC#4.0までが対象となっておりましたが、本書では最新のC#7.0の記述にも対応しています。どのバージョンから対応しているかは、各項目の見出しに「C#7.0」や「.NET 3.5」等で記述されており、自分たちが開発してるC#の環境で使えるのか乃判断の目安になります。このあたりは、常日頃から改定が進められているC#ならではかもしれません。

章構成

次に改定前との違いで目を引くのは章構成の変更です。前作にあったユーティリティの章が削除され、ユーティリティの一部として記載されていた非同期処理が独立して用意されました。昨今の流行はなかなか追えておりませんが、Windows 8以降に登場したWindowsアプリまたはユニバーサルアプリに代表されるように、デスクトップアプリと呼ばれていた現在のクラシックアプリでも非同期処理を伴った実装が当たり前となっています。そのため、1章丸々使って様々な非同期処理のコーディング方法を紹介しています。
また、ユーティリティの章に割り当てられていた他の項目は、各項目で最も関連する章に吸収されています。削除されているわけではないので、その辺はご安心を。

  • C#を始めるために
  • 基本文法
  • 基本データ型の操作
  • コレクション
  • 入出力
  • 非同期処理
  • データベースアクセス

山田さん監修の書籍にはいつも助けられていますが、本書のようなリファレンスは特に重宝しています。
C#も誕生して早10年を過ぎました。これからも進化を遂げるであろうC#のお供にこのリファレンスはいかがでしょうか。

お求めはこちらから
C#ポケットリファレンス改訂版

改定前の書籍が必要な場合はこちらからお求めください。
C#ポケットリファレンス

広告

[WPF]DLLにあるファイルへの参照方法

WPFでアプリケーションを作っていくと、意外に困るのが外部リソースへの参照方法です。罠があるなぁと思ったので、メモしておきます。

追記(12/6):外部リソース(DLL)側のファイルですが、ビルドアクションを「Resource」にしておくことをお忘れなく(Not「埋め込まれたリソース」)。「Resource」に設定しておかないと、以下の方法でアクセスできません。

今回は画像ファイルへのアクセスを例にしてコードを紹介します。
同じアセンブリ内での指定ではBitmapImageのSourceUriプロパティー指定を以下のようにします。
まずは絶対指定の場合。

var img = new BitmapImage(new Uri("pack://application:,,,/フォルダー/Test.png", UriKind.Absolute));

次に相対指定の場合。

var img = new BitmapImage(new Uri("フォルダー/Test.png", UriKind.Relative));

次に外部アセンブリ(DLL)への指定では次の通りにします。
まずは絶対指定の場合。

var img = new BitmapImage(new Uri("pack://application:,,,/外部リソースの名前空間;component/フォルダー/Test.png", UriKind.Absolute));
次に相対指定の場合。
var img = new BitmapImage(new Uri("/外部リソースの名前空間;component/フォルダー/Test.png", UriKind.Relative));

外部リソースへアクセスする場合、ポイントとなるのは紫字で書いた「外部リソース;component」という箇所。MSDNのリファレンスだと英語なのでついつい見落としがちです。相対指定の場合は、「UriKind.Relative」の指定も忘れずに。これがないとXamlParseException吐かれてアプリケーションが停止します。

例として、外部DLLの名前空間を「ClassLibrary1」、DLLに含まれる画像ファイルのパスが「Test/Event.png」となっている場合、絶対指定で書くと以下のようになります。

var img = new BitmapImage(new Uri("pack://application:,,,/ClassLibrary1;component/Test/Event.png", UriKind.Absolute));
皆さんの開発の参考になれば幸いです。

参考記事:WPFにおけるパッケージのURI(MSDNライブラリ)
http://msdn.microsoft.com/ja-jp/library/aa970069.aspx

わんくま同盟の勉強会でお話しさせてもらいました。

1月21日に開催されたわんくま同盟の東京勉強会 #67で初めてスピーカーに挑戦させてもらいました。

「XNAライブラリを使って音楽プレイヤーを作ってみよう!」と題して、XNAライブラリを使用したWindows Phone用のSilverlightアプリを作成したときの内容をお話ししました。。

セッションで紹介したプログラムのソースコード

一応LTも参加させてもらいまして、LTではPS Suite SDK CBのお話をさせてもらいました。
今後、このブログでもPS Suite SDKのお話は色々出していきたいなと思います。

LTとスピーカー、初めてやらせていただきましたが、とても貴重な体験をさせて戴きました。
次の機会もありましたら、是非挑戦させて頂きたいなと思います。

書籍レビュー – C#ポケットリファレンス

今回は久しぶりの書籍レビューです。

今回は、WINGSプロジェクトの代表山田祥寬様のご厚意により、技術評論社より発刊された【C# ポケットリファレンス】を頂きました。
山田様にはこの場を借りて感謝いたします。ありがとうございます。

本書は、技術評論社で好評を博している【ポケットリファレンス】シリーズの最新刊です。待望のC#ですね。逆引きによりやりたいことから目的のメソッドを見つけられるというものです。本書と競合書として【Visual C# 2010 逆引き大全】という書籍が秀和システムより刊行されています。

本書と逆引き大全の一番の違いは【C#とVisual C#の機能差】によるリファレンスの違いでしょうか。
本書はコンソールでも使用できるメソッドが中心に揃えられており、C#として利用、理解できることを重きに置いています(UI系のリファレンスはほとんどありません)。対して逆引き大全は、C#の要素は必要最低限に留め、WinFormsなどのUIで利用できるコントロールやメソッドに重きを置いています。

本書はChapter 1~Chapter 8までの8章構成で、基本文法から始まりデータ操作、コレクション、入出力、ユーティリティ、データベース操作、WindowsアプリケーションとC#で必要なモノは一通りリファレンスを通して学習できます。なおコレクションや後述するLINQでここまでしっかり押さえて書かれている本は少ないかと思います。

また本書で特筆すべきは、LINQの項目では各項目にクエリ形式とメソッド形式の両方の構文を載せている点です。他の書籍を見てみると分かりますが、大抵の書籍はクエリ形式でしか説明しておらず(ハーバート・シルトの独習C#ですら)、メソッド形式についてはほんのさわり程度しか扱われていないことがほとんどです。これが原因でLINQが敬遠されていたのは間違いなく(自分がそうだし)、それが解消されそうです。Web+DB Vol.64でもMVPの小野さんが指摘されていますが、クエリ形式もきちんと書かれていないと(C#erは間違いなく)理解が進みません。本書はこの点でしっかり書かれており、基礎が押さえられるのではないでしょうか。対して逆引き大全は、各項目でクエリ形式とメソッド形式がゴチャゴチャに書かれておりちょっとヒドイです。

C#勉強したいけど、あんな分厚い本読みたくないよコンチクショーとか思っている方は、本書はオススメです。リファレンスと書かれていますが、基本文法などもしっかり学べますし、何より読みやすいので取っつきやすいかと思います。

お求めはこちらから
C#ポケットリファレンス
Visual C# 2010 逆引き大全
独習C# 第3版
Web+DB Vol.64

BUILD開催されています

アメリカはアナハイムにてマイクロソフトの開発者向けイベントである【BUILD】が開催されています。

BUILD公式
http://www.microsoft.com/presspass/events/build/

今回、私は諸事情により盛大にこのイベントの情報に乗り遅れたため、キーノートもオンラインで閲覧できていません。

つやてざさんが公開しているブログの「ななふぉ」でキーノートのメインとなる概要は把握できるかと思いますので、そちらをご覧ください。
もうすぐ始まる BUILD のキーノートをライブ中継で見る
Windows 8 の新しい Metro スタイルアプリは Windows Phone でも簡単に動く

今回のキーノートでメインとなったのは、やはりWindowsの次期バージョンであるWindows 8が発表されたことでしょう。目玉となるのは2種類のUIが用意されることです。現状のWindows ApplicationのUIとWindows Phoneから導入されたMetro UI Application。Windows 8が発売された後はしばらくの間、この2つのUIを採用したハイブリッド型のアプリケーションが多くなりそうです。その後、ゆっくりとMetro UIにシフトしていくのか、またはまだ見ぬ新しい発想のUIにシフトしていくのか。まだまだ、UIの世界は計り知れません。

続いて開発環境。既存の.NETやSilverlight、CLR等々のWindows Application向けのフレームワークに加えて、Metro UI Application向けのフレームワークであるWinRT APIというフレームワークが発表されました。今回の発表で嬉しい人はC++ユーザーの方ではないでしょうか。このWinRT APIは、XAMLとC++が連携できるようになり資産を有効に出来るようになる点かと思います。
開発者向けの先行プレビュー版が早速公開されています。気になる方はいち早く体験してみてはいかがでしょうか。クリーンインストール必須ですが。

New Windows Dev Center
http://msdn.microsoft.com/en-us/windows/home/

Windows Developer Preview Downloads
http://msdn.microsoft.com/en-us/windows/apps/br229516

一度買ったOSは10年使い倒すぜ!と息巻いている方もいらっしゃるようですが、10年一昔と言います。しかもこの情報社会、今では3年一昔と言っても過言ではありません。流れに乗り遅れる前に情報資産の見直しもしてはいかがでしょうか。乗り遅れて、守れたものが守れなかったでは話になりません。コンピューターの世界では【古き良き時代】という言葉は通用しません。現在のデスクトップPCが今度どのような方向に向かっていくのか、いわば過渡期にさしかかっていると言えるかもしれません。

これからのMicrosoftのアプローチは目が離せません。