かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

VIsual Studio 2017 Previewで一押しの機能

C#

DIコンテナ使ってプログラム書くと、大体こんな風になりますよね? class Consumer { private IService1 Service1 { get; } private IService2 Service2 { get; } } そして、コンストラクタインジェクションするために引数をprivateな変数に格納するだけの作…

LINQで書くとデバッグしづらいよね?そんなことないよ

C#

小ネタです。 LINQで処理をぱぱっと1ステートメントで書けると気持ちいいですよね。 でも、デバッグ難しくない?ということがあるのですが大丈夫です安心してください。 ブレークポイントのはり方のコツさえつかめば大丈夫です。例えば以下のようなコードが…

Bot FrameworkでFormFlowをテストしよう(基本編)

Bot

過去記事 blog.okazuki.jp blog.okazuki.jp blog.okazuki.jp blog.okazuki.jp はじめに 何か他に知りたいことない?っていうこと書いてたらFormFlowってどうやるの?と聞かれたのでやってみました。 結論からいうとユニットテストというには粒度がでかすぎて…

Bot FrameworkでDialogをテストしてみよう(もうちょっとユニットテスト書くよ金の力で編)

Bot

過去記事 blog.okazuki.jp blog.okazuki.jp blog.okazuki.jp はじめに 今までの記事でBot Frameworkを使った場合のユニットテストの書き方がなんとなくわかった気がします。 ただ、ちょっとBot Frameworkを使うと、もう1つはまるだろうなというポイントがあ…

Bot FrameworkでDialogをテストしてみよう(3回目にしてついにユニットテスト書いたよ編)

Bot

過去記事 blog.okazuki.jp blog.okazuki.jp 本文 さて、初回でDIができるようになり2回目でテストできそうな雰囲気まで考えてみました。 今回はついに実際にユニットテストを書いてみようと思います。採用したテスティングフレームワークは、Visual Stduioで…

Bot FrameworkでDialogをテストしてみよう(試行錯誤編)

Bot

前回のBlogでDI使っていい感じにできる環境が整いました。 blog.okazuki.jp 次は実際に単体テストをする段階です。 ということで、実際に試行錯誤しながらコードを書きつつブログをしたためようと思います。いつもは、割と試行錯誤とかの段階は記録に残して…

Bot Frameworkでテスタブルな感じに作りたいのでDIしてみた

Bot

Bot Frameworkは実はAutofacを使ってるみたいですね。 github.com ただ、これを使う方法のドキュメントが見つけられない…。サンプルの中には、これを使って作られてるものがあったりもします。 github.com でも、微妙にInternalsな名前空間使ってたりして、…

SignalRの.NETクライアントで認証プロキシを突破する方法

追記 初音さんが確認してくれて、IEのプロキシ設定があれば自動でそっちを見てくれるみたいです。 IE側でプロキシ設定されてたら、それを使って接続を試して、それでだめだったら今回紹介した方法で指定した情報を使ってつなぎにいくという動きをするっぽい…

【東工大生限定招待】 Xamarin ハンズオンラーニング with JXUG,MSP で発表してきました

東工大でXamarin関連のことについて話してきました。そこでの資料を公開します。 Xamarin でのモバイルアプリ開発 周辺基礎知識 from 一希 大田 www.slideshare.net

かずきのXamarin.Forms入門を更新しました

5か月ぶりくらいに内容をアップデートしました。 SlideShareにサインインするとダウンロードボタンが表示されるので、そこからダウンロードしてご利用ください。 Xamarin.forms入門 from 一希 大田 www.slideshare.net 変更内容 Xamarin.Forms 2.3.4ベースの…

Bot FrameworkのDirect Line APIをXamarin.Formsから使う場合のサンプルプログラム

を書きました。 .NET Standardにしないといけなかったりとちょっと手間取りましたが、なんとか動く感じになりました。リポジトリは以下になります。 github.com Bot Frameworkを使えば簡単にBotを作れるので、作ったBotを自分のアプリに組み込む際の参考にし…

ReactiveProperty v4系をXamarin.Formsで使う方法

Reactive Extensions 3系は正直Xamarinで使うのは辛かった。なんかパッケージ追加しただけで動かなくなるし。 Reactive Extensions 4系は、そんなことがない!素敵!! ということでReactive Extensions 4系に依存しているReactiveProperty 4系もXamarin.For…

ReactiveProperty v4.0.0 プレリリース版をリリースしました

表題の通りReactiveProperty v4.0.0のプレリリース版を公開しました。NuGetのページは以下になります。 www.nuget.org 主な変更点は以下の通りです。 更新 System.Reactive v4.0.0-preview00001 に更新 変更 ReactiveProperty の internal なコンストラクタ…

Prism.Forms でプラットフォーム固有処理を呼び分ける方法

Xamarin.Forms にも標準で DependencyService という機能があるんですが、こいつよりも柔軟な素敵な機能が Prism.Forms には提供されています。 IPlatformInitializer それは IPlatformInitializer です!これは、Prism.Forms のDIコンテナへのインスタンス…

Xamarin.Forms と Azure の組み合わせサンプル書いてみたよ

Microsoft Cognitive Services を使ったサンプルを ABC 2017 Spring で作ってみたら動かなくて悲しい目にあったので、全部スマホでやってた処理を、きちんとサーバーサイドとクライアントサイドにわけてデータも1度処理したものは永続化してというのをやって…

#decode17 に参加してきました(登壇側で)(ほぼ技術的なエントリではないです)

5/23 - 24 で開催された Microsoft の主催する開発系イベントの de:code 2017 に登壇者側で参加してきました。de:code は、初回から前回まで一般参加者として参加してきたので割と思い入れのあるイベントでした。今年は Microsoft に転職して最初の de:code …

最近公開されているMSの中の人が書いたAzureブログ記事(独断と偏見で)

なんかがっつりしたBlog記事が結構書かれてるのを見つけたのでまとめておきます。 結構がっつりした記事もありますね…。私のBlogのライトな雰囲気とは違って新鮮。 blogs.msdn.microsoft.com blogs.msdn.microsoft.com blogs.msdn.microsoft.com blogs.techn…

Visual Studio 2017をアップデートした直後にASP.NET CoreをAzure WebAppにデプロイしたら502エラーになった

2時間くらいはまった…。 結果としては、以下のStackoverflowにある通り、Microsoft.NETCore.Appのバージョンを明示的にしてあげればよかった。VSのアップデートともにローカルのバージョンは上がったけどAzure側はまだ追いついてないってことなのかな? stac…

UWP Community Toolkitを使って今風?なListViewのUIを実現する

UWP Community Toolkitが、ちょっと目をはなしてる隙に1.4.1にまでバージョンアップしてました。 色々なコントロールとかが提供されているのですが、ListViewに絡むコントロールをいくつか紹介したいと思います。 インクリメンタルローディング 最近のアプリ…

Xamarin + Visual Studio Mobile Centerをやってみよう

Visual Studio Mobile Centerは、モバイルアプリを開発する際に必要になる以下の機能を提供してくれる便利なやつです。 リポジトリ(GitHub, VSTS, Bitbucket)と連携しての自動ビルド Xamarin.UITestなどのテストコードをプールされた様々な実機上で実行 アプ…

ReactiveProperty 3.6.0をリリースしました

昨日の夜にやろうと思ったんですが今日になってしまいました。 www.nuget.org 今回は、iOS向けのSetBindingメソッドが正しく動いてなかった奴の修正と、ReactiveCommandとAsyncReactiveCommandクラスのSubscribeメソッドに引数無し版を追加しました。どちら…

Visual Studio 2017 リリース記念勉強会の動画が公開されました

先日開催されたVisual Studio 2017リリース記念勉強会ですが blog.okazuki.jp 録画されていた動画が公開されました。 www.youtube.com 実際に当日来れてないかたは是非見てみてね!

Visual Studio 2017 リリース記念勉強会で発表してきました

3月11日にC#ユーザー会が開催したVisual Studio 2017 リリース記念勉強会で発表してきました。 発表資料を公開します。 Visual Studio 2017 新機能—大田 一希 30分というあわただしい感じの発表になってしまいましたが、なにか1つくらい知らない機能を持ち帰…

ASP.NET CoreでAngularをする VSCodeを使おう

dotnet new angularでプロジェクト作成して、webpackしてdotnet runで実行できることはわかりました。 では、Visual Studio Codeで快適に作業するにはどうするのがいいのか?ということになりますよね! Visual Studio Codeで開発するには以下のような感じで…

ASP.NET CoreでAngularをするHello world

以下の記事の続きです。 blog.okazuki.jp ひな形に自分のプログラムを追加してHello worldしてみます。 ClientAppフォルダにAngularのプログラムの本体がいます。そこを弄っていきます。 ClientApp/app/componentsフォルダにhelloworldフォルダを作りましょ…

ASP.NET CoreでAngularをする下準備

2017/03/05 日時点の情報です @angular/cliとか使って始めるのもいいですが、これだとサーバーサイド何でつくるの??という感じになってしまうので、C#erとしては今やるならASP.NET Coreでしょ!ということで始め方をメモっておきます。 結論としてはdotnet…

一定時間やりなおしが出来るようにする

メール削除とかしたけど、一定時間取返しがきくみたいなUIがありますよね。 あぁいうのどうやるんだろうというのを考えてみました。 UWPでやってみますが、WPFでもXamarin.Formsでも基本的に同じ感じになると思います。見た目凝るのが一番難しそう。 Modelの…

Azure AD対応のマルチテナントアプリケーションを作ってみよう

以下のサイトにサンプルがあるので、それに沿ってやっていきます。 github.com Azure ADのディレクトリを作る というわけでさくっとクラシックポータルからAzure ADのディレクトリを作ります。 ここでは、okazukimultitenanttestという名前で作りました。 ア…

Python入門者の集い #4 でLTしてきました

転職してはじめての発表はPythonの勉強会でVisual Studioはいいぞ!してきました。インテリセンスが無いと開発できない体になってしまってる自分がいる。 Pythonの開発環境—大田 一希

SIerから日本マイクロソフトへ転職しました

2月17日付で富士通の子会社のSIerを退職しました。2月20日から日本マイクロソフトで働きはじめました。 ということで振り返りを。 富士通の子会社に入社 2005年に富士通の子会社に入社しました。確か当時1500人規模だったと記憶しています。 新宿に拠点を構…

ReactiveProperty v3.5.0をリリースしました

IFilteredReadOnlyObservableCollectionのフィルタ条件をリフレッシュするRefreshメソッドを追加しました。 これで、フィルター条件を途中で変えることができます。 WPFでは無事動いてるのですがUWPとXamarinがちゃんと動くか未知です。というのもRefreshし…

Xamarin.FormsでBotFrameworkのDirectLineを試す

自分用メモです。(雑です) PCLを辞めます。 .NET Standardにプロジェクトを変換します。 以下をプロジェクトに追加する。 Micrsoft.Bot.Connector.DirectrLine Microsoft.Rest.ClientRuntime こんな感じに書けば動いた!とりあえず

ReactivePropertyでXAMLで.Valueのつけ忘れを教えてくれるReSharperプラグイン

@okazuki ReactiveProperty にはいつも大変お世話になっています。生活必需品です。自分はよく XAML 側の .Value をド忘れするのですが、これをハイライトしてくれる R# プラグインを書いてみました。https://t.co/xd6Nv19rgu— sh4 (@sh4) 2017年2月3日 ガチ…

WPFでWindowが閉じられたときにViewModelの後始末メソッドを呼ぶ

そういう動きをするビヘイビアを作ればOKです。こんな感じで。 public class ViewModelCleanupBehavior : Behavior<Window> { protected override void OnAttached() { base.OnAttached(); this.AssociatedObject.Closed += this.WindowClosed; } private void Windo</window>…

JXUGC 22 最新事例&お前のアプリを説明してもらおうの会で発表してきました

XAML入門というテーマで発表してきました。スライドを公開します。 XAML入門 from 一希 大田 www.slideshare.net

Xamrin.FormsでBLEのアドバタイズパケットを拾おう(要はビーコン)

ということで、Xamarin.FormsでBLEやってみようと思います。 スキャンして、近くのパケット拾って来るのがゴールくらいにしておきましょう。 BLEを使おうとすると、ネイティブのコードを書かないといけないのですが、幸いにもプラグインのリストにBluetooth …

Xamarin.Formsでグラフを描こう(OxyPlot)

WPFでグラフを描けるライブラリを探してたらOxyPlotというのを見つけました。 見つけたと思ったら、こいつXamarin.Formsでもできるぞ!?ということで試して見ました。 NuGetの追加 以下のパッケージを追加します。 OxyPlot.Xamarin.Forms 初期化 以下のコー…

2016年に最も読まれた記事 TOP10 世間はDataTableと戦っている

2017年も始まってしばらく経ったので2016年の振り返りをして見たいと思います。 ということで、2016年に最も読まれた記事TOP10でも見て見たいと思います。 1位 blog.okazuki.jp あっはい。 世間は、まだDataTable全盛期なんでしょうか。2009年に書いてる記事…

Microsoft Azure ServiceFabricで複数のサービスで設定値を共通化したい

同じDBに繋ぐときとか一か所で設定を終えたいですよね。 ということで手順を備忘録的に残しておこうと思います。基本的には以下に書いてあることです。 Service Fabric での複数の環境の管理 | Microsoft Docs Step1 サービスのプロジェクト/PackageRoot/COn…

かずきのXamarin.Forms入門を更新しました

すっかりDataTemplateSelectorについて書くのを忘れてたのでSlideShareのPDFとKindleを差し替えました。 Kindleは反映までに1日くらいかかるのと、おそらく既に購入された方には変更は届けないとAmazonが判断すると思います…(よっぽどインパクトの大きな変…

MacBook Pro (Late 2016) 15インチをXamarin開発用に買ったので感想

使い方 私のMacBook Pro(Late 2016)の使い方は以下のような感じです。 Xamarin開発環境として Xamarin StudioとVisual Studio for Macを入れてXamarinの開発環境とするために購入しました。 なので、この使い方がメインになります。 MacBook Proのメモリ16GB…

Prism.FormsでAutofacを使ってみよう

Xamarin Studioベースで話を進めます。(Visual Studioでもだいたい同じになると思うけど) まずForms Appを新規作成してPCLで作ります。 NuGetから以下のパッケージを追加します。 Prism.Autofac.Forms Views名前空間を作って、そこにMainPage.xamlを作成し…

MacのXamarin.iOSでSegueが作れない

Ctrl + Dragでページを結んでもSegueが作れないというかメニューが一瞬出て消えるっていう動きをしていました。ググってみるとStackoverflowが引っかかりました。 stackoverflow.com トラックパッドの設定で「強めのクリックと触覚フィードバック」のチェッ…

かずきのXamarin.Forms入門のKindle版だしました(Prismもあるよ)

先日SlideShareに公開したXamarin.FormsのPDFですが Xamarin.forms入門 from 一希 大田 www.slideshare.net こちらは、SlideShareにログインすると無料でダウンロードできます。 それに加えて、Kindleで販売も始めました。こちらはKindleで見たい人向けです1…

Xamarin.Forms入門のPDF作りました(Prismもあるよ)

SlideShareでログインしてダウンロードできるようにしています。是非ダウンロードしてみてください!200ページちょっとあります。 Xamarin.forms入門 from 一希 大田 www.slideshare.net 目次 1 はじめに 1.1 ターゲットプラットフォーム 1.2 Xamarin.Forms…

Xamarin.Forms + PrismでSQLiteを使ってみよう

モバイル環境でのデータベースといったらSQLiteがデファクト!ということでXamarin.Forms + Prism.Formsの環境で試してみましょう。 NuGetパッケージの導入 使用するパッケージはSQLite-net-pclです。(似た名前のが多いので注意) www.nuget.org プラットフォ…

DIコンテナのUnityのLifetimeManagerを拡張して任意のタイミングでインスタンスの破棄をする

C#

UnityのLifetimeManagerはシングルトンで管理するContainerControlledLifetimeManagerか、デフォルトの毎回newする‘PerResolveLifetimeManager‘か、スレッド単位のPerThreadLifetimeManagerが用意されています。あとマニアックなところだと、ExternallyContr…

Xamarin.FormsでBehaviorのTriggerとActionを作る

Xamarin.Formsのドキュメント上は見つけれなかったけど、ソースコード的にはTriggerとActionがあったりします。 github.com ただ、この人たちはBindingに対応してないという、ちょっと悲しい感じに仕上がってます。なので、XamarinのBehaviorをベースにBindi…

Xamarin.FormsのBehaviorをBinding可能にする

デフォルトだとBindingできないんですよ。ということでソリューションは以下のようにします。 github.com BindingContextが伝搬しないなら伝搬させればいいじゃない?ということで手動でせっせと伝搬させてます。 これくらいデフォルトで面倒見てほしかった……

Xamarin.FormsのListViewでタップされた項目をスマートにViewModelに渡す方法

EventToCommandBehaviorを使います。コードはこちらを参考に。 github.com この時、こういうBehaviorを作っておくとListViewの選択がされなくなって捗ります。 using Xamarin.Forms; namespace PrismUnityApp2 { public class NotSelectableListViewBehavior…