艦これ 夏イベント E-6 攻略記録

技術ブログとは何だったのか… という内容ですが、Twitter で書ききれそうになかったのでこちらにまとめます。

艦隊これくしょん ~艦これ~ で現在開催中のイベント「期間限定海域【AL / MI作戦】」における最終ステージ (E-6) で私が攻略した方法になります。 はじめにお断りしておきますが、私も wiki を参考にしたほぼテンプレ通りの編成・攻略方法ですので、特に面白くはないです。

Continue reading

ウィンドウの枠を簡単に光らせるライブラリを公開しました

MetroRadiance という名前のライブラリを NuGet で公開したのですが、Visual Studio や Office のようにウィンドウの枠を簡単に光らせることができる機能が話題を呼んでいます (呼んでいません)。

要するに、KanColleViewer や私の自作アプリで使っている、UI ライブラリです。 自身のアプリのブランド化のために自作した Theme を使っているのですが、せっかくなので公開しました。

このエントリーでは、簡単なチュートリアルとして、Visual Studio のようにウィンドウの枠を光らせるところまでを解説します。

Continue reading

AppVeyor で NuGet パッケージの作成とデプロイを自動化

.NET 特化の CI サービス、AppVeyor を使って、ライブラリなどの C# プロジェクトを NuGet パッケージ化し NuGet Gallery にデプロイするところまでを自動化できます。

以前、@tanaka_733 先生が同様の記事を書かれていますが、その後 AppVeyor の機能が強化され、NuGet への push をより簡単に実施できるようになりました。

AppVeyor そのものについては、前述の @tanaka_733 先生の記事 か、@Posaune 先生の記事 が詳しいです。

Continue reading

WPF の Digital Ink は書き味が良い、という小話

第 4 回めとべや東京勉強会で、セッションのほかに LT もやったので、資料を公開します。

WPF には InkCanvas というストローク入力用のコントロールが用意されており、XAML で <InkCanvas /> と入力するだけで、筆圧検知付きのデジタル インク機能を使うことができます。

そして、InkCanvas はストローク入力のほか、インク情報 (色や太さなど) の変更、消しゴム機能などもサポートしており、手書きキャンバス機能をごく簡単に実装できます (その実装については、今回は割愛)。

で、今回の LT で言いたかったのは、ペン or タッチでのストローク入力のパフォーマンスが大変よろしい、という点です。

資料にある通り、UI スレッドのほかに 2 つのスレッドを使用しているためです。 LT 中にデモしましたが、UI スレッドが止まっていても、ストロークの入力&描画は止まりません。

手書きの際の書き味はハードウェアに依存するところが大きいですが、ソフトウェアによる影響も少なからず存在します。 WPF の Digital Ink 機能は、複数のスレッドで入力&描画することで、ソフトウェアでの書き味の良さを追及しています。

というお話でした。ご参考まで。

Room metro Tokyo #4 資料公開

第 4 回めとべや東京勉強会でセッションしました。

かつてない程のgdgdなセッションを披露してしまい大変反省。 やりたかったのは、KanColleViewer の開発ネタの放出と、de:code のデスクトップ アプリ関連情報のキャッチアップでした。

de:code、もうちょっとデスクトップの情報出てくるかなと思ってたんですが、実際はかなり少なくて、何喋るか直前まで迷った挙句の結果でした。

セッション中にデモした @CST_negi 氏作のかっこいいランチャーアプリですが、今回 WindowStyle.Note の例としてデモしたいがために GitHub で公開して頂きました。ありがとうございました。
https://github.com/NegishiTakumi/ARiALauncher

後半の Windows 8.1 の High DPI と WPF での対応方法については、当ブログに該当するエントリーがありますので、そちらも併せてご覧ください。
http://grabacr.net/archives/1132

WindowChrome class 等に関しては、別途フォローアップのエントリーを用意したく。

WPF + MEF、プラグイン側で画面を用意する

WPF は .NET Framework アプリですし、Managed Extensibility Framework (MEF) を活用したプラグインに対応したアプリを作れるのも強みのひとつです。

@takeshik 氏が KanColleViewer に MEF によるプラグイン機構を実装してくださいました。 で、WPF アプリでプラグインとなると、プラグイン側の設定画面等々の画面をプラグイン側で用意し、かつその画面にテーマを反映させたいものですね。

MEF のサンプルそのものは MSDN 等でよく見かけるものの、WPF アプリで、かつ拡張側 (プラグイン側) で画面を用意した軽量なサンプルはなかなか見つけられませんでした (節穴 eye という可能性)。

ということで、自分で作りました。

ダウンロードはこちらから。
http://code.msdn.microsoft.com/Creating-a-WPF-Visual-3eb4e5dc

Continue reading

バックグラウンド スレッドで UI 要素を作るとメモリリークする (WPF)

題記の通りなのですが、一時ハマったので共有します。 正確には、「バックグラウンド スレッドで DispatcherObject を作るとメモリリークする」ですね。

例えば、バックグラウンドで画像をダウンロードして加工したり。 もしくは Grid や TextBlock といった UI 要素を使って、サムネイルやら何やらの画像を生成したいときとか。

ImageSource は Freezable なので、バックグラウンドで画像を作って Freeze() してしまえば、UI スレッドに渡してもだいじょうぶ。 なるべく UI スレッドの負担を減らしたいのです。

Continue reading

Microsoft MVP for Visual C# を受賞しました

2014 年 4 月期で Microsoft MVP Award を初受賞しました。 カテゴリーは Visual C# になります。

この 1 年間、XAML を中心としたアプリ開発技術に関する活動をしていましたが、まさかの Visual C# カテゴリーで頂きました (Client Development だと思ってた…)。 趣味だけでなく仕事でも何かと縁があり思い入れの強かった言語なだけに、このような形で評価して頂けたことを大変光栄に思います。

めとべや東京勉強会をはじめとしたコミュニティの活動でご協力頂いた方々、審査に関してご相談に乗って頂いた方々、本当にありがとうございました。


と言っても、これを境にやることが大きく変わるわけではありません。 XAML の柔軟さと表現力に魅せられて 3 年、私がいま最も注目しているのが XAML-based platforms の行方です。

Windows 8 やタブレット PC の台頭、Windows Store apps の登場などで流動的になっている XAML プラットフォーム上でのアプリ開発技術ですが、これにしっかり追従し、XAML や C# の魅力と共に皆さまと共有していければと思っています。 (あと今年こそストア アプリ、作りたい)

今後ともよろしくお願い致します。

Transifex でリソース (Resources.resx) の翻訳・管理をする -導入編-

前回のエントリーで、WPF アプリの国際化 (多言語対応) と、動的な言語切り替えの実装例について解説しました。
続いて、多言語化対象となるリソースを、翻訳プラットフォーム Transifex を活用して翻訳・管理する例を紹介します。

「提督業も忙しい!」を例にしていますが、Transifex で管理するようになって日が浅いので、今回は導入まで、特に既存のリソースを Transifex に投入する部分までとします。
導入編、もしくは移行編です。
実際に運用してから判ったことなどは、後日共有させて頂きたく。

実際に作成した Transifex 上のプロジェクトはこちら。
https://www.transifex.com/projects/p/kancolleviewer/

Continue reading