nuits.jp blog

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

技術書典3にXamarin本出展します!

来る11月22日(日)に秋葉原UDXにて技術書展3が開催されます。 techbookfest.org 今回も榎本さん率いるサークル「Xamaritans」では新刊「Extensive Xamarin」を用意してお待ちしております。 新刊の詳細情報はこちら。 https://atsushieno.github.io/xamarit…

Xamarin.Forms 2.3.4.247で"XamlCTask task failed unexpectedly"の回避方法

Xamarin.Formsではバージョンに関係なく、次のようなケースで元々"XamlCTask task failed unexpectedly"が発生する事がありました。 ソリューション内のプロジェクトによってXamarin.Formsのバージョンが違う (よくUWPのプロジェクトだけ更新に失敗したりし…

.NET FrameworkからHttpClientを利用している.NET Standardのプロジェクトを利用する

本エントリーはこれを書いている2017.08.26時点での話ですぐ状況は変わるかもしれませんのでご注意ください。 表題の件、普通にやるとなぜかつぎのようなエラーが出ます。 System.IO.FileNotFoundException ファイルまたはアセンブリ ‘System.Net.Http, Vers…

WPF&xUnitでテストコードからViewオブジェクトを生成する方法

例えば次のコードがあったとします。 [Fact] public void WhenClosed() { var window = new Window(); } これを実行すると次のようなエラーがでます。 UIはテストしないんじゃないの?と言われそうな気もしますが、Windowに貼り付ける汎用Behaviorをライブラ…

Xamarin(Formsもね)で.NET Standard 2.0なライブラリを利用する

Visual Studio 2017 Update 3がリリースされたことで、待望の.NET Standard 2.0が利用できるようになりました。 XamarinでもAndroidやiOSからは既に利用可能なようです。UWPは少々お待ちください?(少々っていつ?誰か教えて さて、使うにはまずは.NET Stan…

.NET Standard 2.0対応クラスライブラリを作る

Visual Studio 2017 Update 3の個人的な目玉は何と言っても、.NET Standard 2.0対応です。 という訳で、早速Xamarinの共通部分を2.0にして試してみましょう! 入ってないのかよ(´・ω・`) しかも、「他のフレームワークをインストールする」のリンク先に無い…

Visual Studio 2017 Update 3でAzure Functions and WebJobs Toolsを有効にする方法

Visual Studio 2017 Update 3では、デフォルトでAzure Functions and WebJobs Toolsがインストールされているのですが、おそらく?PreviewのUpdate3用の様で、デフォルトではAzure Functionsのプロジェクトテンプレートが有効になりません。 個別にUpdate 3…

Visual Studio 2017 Update 2へUpdate3を適用する方法

普段Visual Studioの更新は、VSメニューバーの「ツール」>「拡張機能と更新プログラム」から入れられた気がするのですが、どうも今回は2017.08.15時点ではそこから上げられないようです? という訳で、Visual Studio Installerを手動で起動して(インストー…

KAMISHIBAIセルフ プロモーション:一貫性を保ったイベント通知

先日これまでのXamarin.Formsの経験や、PrismのPageNavigationServiceへの貢献を通して得たノウハウを整理して形にした、KAMISHIBAI for Xamarin.Formsをリリースしました。 前述のエントリーや、Github上のドキュメントでもKAMISHIBAIのメリットについては…

Xamarin.Forms.GoogleMaps.Bindings 2.1.0の追加機能解説

昨日、Xamarin.Forms.GoogleMaps.Bindings 2.1.0のリリースを告知しましたが、あれだけだと不親切なので使い方が少し癖のある部分の解説を追記しておきます。 www.nuits.jp 追加した機能のうち、つぎの3つは少し使い方が特殊です。 Support MoveCamera Suppo…

Release Xamarin.Forms.GoogleMaps.Bindings 2.1.0

ちょっと放置状態になってしまっていたXamarin.Forms.GoogleMaps.Bindingsを、「だいたい」Xamarin.Forms.GoogleMaps 2.1.0まで対応しました。 未対応機能があれば、良かったら教えてください。 とりあえず、対応内容は以下の通りです。 Transition to .NET …

KAMISHIBAI for Xamarin.Forms 1.1.0をリリースしました。

ServiceLocatorを追加して、Page生成のDependency Injection対応が可能となりました。 KAMISHIBAIをPrismと併用する記事を書かなきゃなと思っていたら、神のようなタイミングで記事化してくださった方がいらっしゃいまして。 blog.okazuki.jp かずきさん、あ…

Xamarin.FormsでListView選択時にエレガントに詳細画面へ遷移する2つの方法 with 紙芝居 & BehaviorsPack

エレガントは言い過ぎ&タイトル長い上&ダイマでごめんなさい。 KAMISHIBAI for Xamarin.FormsとXamarin.Forms.BehaviorsPackの合わせ技でこんな簡単にListViewで選択されて画面遷移してパラメーター渡しするのが簡単に書けますよという紹介です。 こんな感…

KAMISHIBAI for Xamarin.Forms 1.0.0をリリースしました。

ここしばらく作っては消しを繰り返していた、お手製画面遷移ライブラリ をリリースしました。コードとドキュメントはGithub上に公開しています。利用の際はNuGetからインストールして利用してください。 目指したのは Xamarin.Formsで可能なあらゆる画面遷移…

AxoCoverというVisual Studio拡張のカバレッジツールが素晴らしい

無料です。以上です。じゃ、怒られるので少しだけ紹介を。

Service LocatorをInjectionするパターンの再考察

しばらく前に、Dependency InjectionパターンとService Locatorパターンの記事を書きました。 www.nuits.jp この中で、私はService Locatorパターンは次の点でDependency Injectionパターンに劣ると記載しました。 本来不要であるServiceLocatorへの依存が発…

REST APIをAzure MobileApps SDKを利用して実行する

前回のエントリーではMicrosoft.Rest.Clientを利用してAzure API AppのREST APIを利用しました。 www.nuits.jp ちなみにこれ、AutoRestというプロダクトの一部みたいですね。今日もう少し調べてて知りましたw さて、前回のエントリーを書いたところ、Mobile…

Hello, Azure API Apps with Xamarin.Forms

前回、Azure API Appの簡単な利用方法を解説しました。 www.nuits.jp 今回は、これをXamarin.Formsから利用してみましょう。 Xamarinプロジェクトを作成する XamarinにAPI App呼び出しを組み込む MainPageViewModelの作成 MainPage.xamlの修正 APIクライアン…

Hello, Azure API App with .NET Core

本エントリーでは、Microsoft Azure上でWeb(REST) APIを構築するAPI App初心者向けのエントリーです。 対象読者は以下を想定しています。 Azureのアカウントは作成した API App使いたいけど何も分からない とりあえずAPIを公開して呼び出すところまでの手引…

.NET Standardや.NET Coreでmscorlib 2.0.5.0の参照がないと怒られた場合の対処方法

.NET StandardのプロジェクトからPCLのプロジェクトを無理やり参照しようとしたような場合に発生します。 PackageTargetFallbackを指定しているような場合です。 System.~系への参照が、PCLでは明示的にバージョンが指定されているが.NET Standard側では明…

Xamarin.Forms.BehaviorsPack 1.2.0をリリースしました。

新たにSelectedItemBehaviorを追加しました。 ListViewで選択された行のItemを引数にCommandを実行するシンプルなBehaviorです。 EventToCommandBehaviorでも似たことはできますが、SelectedItemBehaviorはCommand実行後にSelectedItemを解除することができ…

Xamarin.Formsで「ビルド アクション 'EmbeddedResource' は、プロジェクトのターゲットの 1 つ以上でサポートされていません。」の解決方法

2017年7月現在、良く遭遇します。 最初に開いたソリューションで良くなるかも。 起きたら、ソリューションを閉じて開き直したら99%直ります。 ゴミみたいな記事でゴメン(´・ω・`) 追記: 手動でビルドアクションを一度コンパイルにして埋め込みリソースにし…

Service LocatorとDependency InjectionパターンとDI Container

一度ちゃんとまとめておこうと思いまして書いてみました。 本エントリーでは次の点を整理したいと思います。 ServiceLocatorパターンとは何か? Dependency Injection(以降DI)とは何か? DI Containerとは何か? これらを使うと何がうれしいのか? Service…

アプリケーションオブジェクト ライフサイクルパターン

アプリケーションを構築する際に、登場するオブジェクトの生存期間は多岐にわたります。 ユーザーがインターフェースからアクションを起こしたときに、それに伴うインタラクションが完了するまでの間だけ生存するオブジェクト。 アプリケーション起動から終…

Prism 6.3の変更点 目次(for Xamarin.Forms)

Prism6.3のアップデートにおける変更点をまとめました。 以下をご覧ください。 www.nuits.jp www.nuits.jp www.nuits.jp 今回はこれだけ!

Prism 6.3の変更点 その3 新規要素(for Xamarin.Forms)

本エントリーではPrism6.3で新たに追加された機能をいくつか紹介します。 EventToCommandBehavior IApplicationLifeCycleの追加 IApplicationStore IDeviceService

Prism 6.3の変更点 その2 画面遷移関連(for Xamarin.Forms)

Prism 6.3のXamarin.Forms向けで最も大きな変更があったのが画面遷移関連です。 機能追加もありますし、注意が必要な破壊的変更もあります。

Prism 6.3の変更点 その1 Pris.Core

Prism 6.3がリリースされてからすでに2カ月。書こう書こうと思っていたのですが、後回しにしまくっていたのでここに変更点をまとめます。 for Xamarin.Formsの範囲が対象となります。 と、言っておきながら、本エントリーではWPFおよびUWPとも共通のPrism.Co…

.NET StandardプロジェクトでInternalsVisibleToを設定する方法

.NETには、例えばinternalなクラスやメソッドのUnitTestをUnitTestプロジェクトから呼び出す仕組みとして、「InternalsVisibleTo」という属性があります。 従来の.NET Frameworkプロジェクトでは、プロジェクト作成時にPropertiesの下にAssemblyInfo.csが作…

Xamarin.Forms用の汎用Behaviorライブラリをリリースました

Xamarin.Forms用の汎用Behaviorライブラリをリリースました! www.nuget.org コード&詳細ドキュメント(まだ下記中ですが)はこちらにあります。 github.com たとえば、こんな感じでイベント発生時にEventのパスを指定してEventのプロパティを引数にCommand…