読者です 読者をやめる 読者になる 読者になる

nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Visual Studio and Development Technologies。なお掲載内容は個人の見解であり、所属する企業を代表するものではありません。

Prism 6.3.0がリリースされました

UWP Prism WPF Xamarin

去年末からリリースの待たれていたPrism 6.3.0が先ほどリリースされました。

https://github.com/PrismLibrary/Prism/wiki/Release-Notes-6.3.0

今回のリリースはXamarinから見ると非常に多くの魅力的な機能追加が含まれています。

  • 画面遷移時に、遷移前処理を実装することのできるOnNavigatingToの追加
  • ナビゲーションスタックから画面が削除される時(つまり遷移が戻る時)にリソースの解放などを実装できるIDestructibleの追加
    (ReactivePropertyなどのイベント購読解除などが非常に簡単確実に)
  • EventToCommand実装の追加
  • INavigationAwareでBackButton押下時のイベントハンドリング
    (NavigationBarが対応できているか未確認。多分無理なのではないかなあ)
  • ApplicationのSleep・Resumeイベントハンドリング

などなどです。
ただ、良いことばかりではなく、破壊的変更がいくつか含まれているので注意も必要です。

  • 厳密な署名のキーが変更されているため、既存のPrism拡張ライブラリを作っていたような人はリビルドが必要
  • DelegateCommandの一部機能が仕様変更(Async関連など)
  • INavigationAwareにOnNavigatingToの追加(該当インターフェースを実装しているクラスでOnNavigatingToを追加する必要があり)

など、他にもいくつか重要な変更がありますので近いうちにまとめたいと思います。

なんにせよ、個人的には待ちに待ったリリースです。
魅力的な機能が含まれるのもですが、私自身が貢献できた機能もあり非常に嬉しいです。

ということで、近日詳細は紹介したいと思います。しばしお待ちを!

技術書典2 & 超技術書典でXamarin本出します

Xamarin Prism

すでにご存じの方もいらっしゃると思いますが、つぎの技術同人誌イベントにてXamarin本を出典します!

techbookfest.org

techbookfest.org

(Xamarin.Mac)初心者向けの記事からディープな記事まで、一部メンバーが入れ込み過ぎて、えのさんも呆れるほど書きまくった結果、2冊分冊になってしまいました。
全部ディープなんじゃないのと疑いを持った方!非常に丁寧な、本当に初心者向けな記事ですよ!

私は、例によってPrismの記事を書いているんですが、入門より一歩踏み込んだ使いこなし術的なのを書かせていただきました。(まだレビュー終わってないですけどw
例えばこんな謎技術だったりとかです。

f:id:nuitsjp:20170319214406p:plain

ReSharperやRiderではViewModelのメンバのIntelliSenseが有効になるのですが、Prismを利用するとこれが無効になってしまいます。
Prismの機能を一切制限することなく、「PrismもしくはRiderで」ViewModelのメンバのIntelliSenseを有効にするトリックです。
他にも知っていると便利になるPrism使いこなし術を紹介してます。

まずは4/9 う-13「Xamaritans」でお待ちしています!
ぜひ皆さんのお越しをお待ちしています。

【Xamarin】Blue Monkeyプロジェクト Architecture Overview コメント入り掲載

Prism Xamarin xUnit

先日Infragisticsさんのイベント「Infragistics Day 2017 Spring」にて、現在進行形で進めているOSSプロジェクトBlue Monkeyの件でお話しさせていただいてきました。

jp.infragistics.com

またその時のスライドも掲載させていただいていますが、何分スライドだけ見ても全く分からない為、しゃべった内容を大まかにまとめて記載しておこうと思います。 見ただけで分かって、なおかつ聞いているときも見やすい資料って難しいですね。。。

という訳でよかったら見ていってください。

続きを読む

【解決済】引数渡しなし&マルチスレッドで、呼び出し元とオブジェクトを共有するいい方法

Xamarin Prism

2017.02.19 追記:
本件は、以下のアドバイスで解決することができます。


AsyncLocalなんて追加されていたんですね。全く知りませんでした!
過去形じゃないのは、PrismのUnitTestプロジェクトがPCLでAsyncLocalが使えず、結局Prism依存の解決策を思いついたため、そちらを利用したためです。
直接の修正箇所は以下ですが、ちょっと分かりにくいですね。。。
https://github.com/PrismLibrary/Prism/pull/942/commits/d086e5db57685967591b0932108f5604eba5200d#diff-ee845c5f0d8ae25841a5335f0ca7b5a6

本件は、多くの方にアドバイス頂きました。
解決したこと以上に、その事が嬉しかったです。
みなさん、ありがとうございました!
追記終了

Prismの機能実装&不具合対応してるのですが、どうもイマイチうまくテストが書けないところがあって、私のC#力では限界に達しました。(まだ考えてはいるけど無理くさい。。。)
そんな訳で、どなたか良いアイディアがあったら支援欲しいなと思ってエントリー書いています。
端的に助けてほしいことを書くと
「該当のテストというコンテキスト内だけで、スレッド関係なく情報を共有する方法」
って無いかな?ってことです。
誰か僕とPrismを助けて〜!

続きを読む