かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

2019-01-01から1年間の記事一覧

Uno Platform でノッチとかに対応したい(セーフエリア)

iOS エミュレーターで動かすとノッチに食い込むテキストやボタンに悩まされる今日この頃。Uno Platform で対応する場合には Uno.UI.Toolkit.VisibleBoundsPadding クラスの PaddingMask プロパティでセーフエリアに入るように Padding を自動で調整すること…

Uno Platform でプラットフォームによって実装されていない機能を実行時に判別する

さて、Uno Platform ですが UWP の API を気合で Android/iOS 向けに提供しているのですが、全部の API が提供されているわけではないです。 UI まわりは、かなり動きますがそれ以外は結構 NotImplementedException が出てしまいます。 例えば以下のようにボ…

Uno Platform で MainPage.xaml を開いたときにデザイナー(とインテリセンス)が出ないときの対象方法

デザイナーがエラーになるだけならいいんですが、たまにデザイナー自体無いケースがあります。 上の画像では UWP プロジェクトを選択している状態で MainPage.xaml を開いているのにデザイナーが出ません。 一度ファイルを閉じて UWP プロジェクトをビルドし…

ARFoundation と UIWidgets を使う

ARFoundation を使うと Unity で iOS/Android 両対応の AR アプリが簡単に作れるということで注目が高そうな機能です。 docs.unity3d.com AR の世界をタップしたとき何か当たったかどうかを判定するためには ARRaycastManager で Raycast すれば OK です。こ…

C# で Discord のボットを書いて Azure にデプロイしてみよう

C#

ゲーム好きの人たちにはおなじみの Slack みたいなチャットサービスのボットを C# でも作れます。Python が一応公式っぽい?? C# で Discord のボットを作る場合には Discord.NET というライブラリを使うのが一般的みたいです。 github.com 簡単に検索した…

VS Code Meetup #1 - 初回基礎編 で LT してきました

表題の通り、LT してきました。 デモがスムーズにいったので発表していて気持ちよかったです。 ほとんどがデモなので、あまり資料自体に中身はないですがお勧め拡張機能は書いてあるので資料はスライドシェアに上げました。 blog.okazuki.jp Visual Studio C…

Unity の UIWidgets で背景が透明なところは裏側の 3D の世界にイベントを飛ばしてほしい

デフォルトだと UIWidgets が全てかっさらってしまって、例えば Cube に EventTrigger をしかけて、UIWidgets に全面透明な画面とかを置いてもクリックが反応しないみたいです。 解決策として、以下の Issue にコードが載ってます。 github.com 一応念のため…

Unity でも DI 使ったりしたいし画面もいい感じに作りたい「Zenject & UIWidgets」 その 2

前回は Zenject 使って複数シーンを跨いで有効なシングルトンなオブジェクトを作ってみました。 アプリ全体で管理したい情報などは、こういうのを使って管理したりすると捗りそうです。 blog.okazuki.jp UIWidgets を入れてみよう ということで今は The Unit…

Unity でも DI 使ったりしたいし画面もいい感じに作りたい「Zenject & UIWidgets」 その 1

表題の通りです。Zenject を使ったり UIWidgets を使ってみたいと思います。 ここで使うライブラリと環境 環境 Windows 10 1909 Unity 2019.2.12f1 Zenject Unity 向けに特化された DI コンテナで、Unity 向けの各種便利機能が追加されています。他の .NET S…

問題調査でドツボにはまった状態から抜け出す技術?というか気にしてるところ

なんとなく、牛尾さんの以下の記事を見て自分が気を付けてることをメモしておこうかなと思ったのでメモ。 qiita.com まずハマらないために 何か新しいことをやるときは、それだけにフォーカス出来る状態で練習を一度する 既存のプログラムとかに〇〇を組み込…

WPF on .NET Core 3.1 で Windows 10 アプリ開発というタイトルで牛タン会議 2019 で登壇してきました

C#

タイトルの通りです。資料をスライドシェアにアップロードしました。 WPF on .NET Core 3.1 で Windows 10 アプリ開発 from 一希 大田 www.slideshare.net 登壇中にデモを 3 つライブで作りながらやったのですが、それが失敗したとき用にバックアッププラン…

Azure Functions v3 リリースしてた

先日… 12 月 9 日に v3 のプレビュー試せるやったね~ってやりました blog.okazuki.jp 試せるようになってるのに気づいたのが結構出来るようになってから立った後だったのですが、ふと見てみたら 12 月 9 日くらいに GA してました。 azure.microsoft.com 現…

Azure Functions v3 試せるようになってる

試せますね!!ということで早速。VS 2019で試すにはテンプレートとかを出すために環境変数設定して…とかがいりそうなので CLI でさくっとやってみました。 Core tool の更新 特別なことは何もなし。コマンドでさくっと。 npm install -g azure-functions-co…

Hello ML.NET world

C#

.NET Core 3.1 もリリースされたし ML.NET でも少し触ってみようと思います。今はカフェで Surface Go しか持ってないので先日作って寝かせておいた VIsual Studio Online につないでやってみようと思います。 .NET Core 3.1 このページに従ってコマンドをう…

Visual Studio の region で囲んで整理されたソースコードを見るのが辛いときの操作

VS

整理整頓されてるのはいいのですが全体見たいときにいちいち展開していくのがだるいときないですか? 例えばこんなコードで… 一段展開するとこうなって… 辛い…。 緩和方法 region で囲まれて折りたたまれてるファイルが表示されたら Ctrl + M, P (右クリック…

SDK StyleのプロジェクトファイルをUWP, Xamarinで使いたい

ReactiveProperty のパッケージ分割するにあたってやろうとしてるんだけど標準だときびしい…?ということで MSBuild.Sdk.Extras というパッケージを使いました。 空のクラスライブラリを作って Sdk 属性に MSBuild.Sdk.Extras/2.0.54 を設定して TargetFrame…

ReactiveProperty v6.1.4 をリリースしました

各種ライブラリの更新と Pull Request の取り込みになります。 大きな変更はありません。 System.Reactive を 4.2.0 に更新しました Microsoft.Xaml.Behaviors.Wpf を 1.1.3 に更新しました IReactiveProperty を IReadOnlyReactiveProperty を継承するよう…

Livet v3.2.1 をリリースしました

しばらく触ってませんでしたが、リリースしました。 Microsoft.Xaml.Behaviors.Wpf が .NET Core 3.0 対応したので、Livet も警告が出ない状態で .NET Core で使えます。 変更点 v3 系になってから各種機能を個別の NuGet パッケージに分離してきましたが以…

Visual Studio Online Public preview 試してみた!

変更履歴 サービス名を Visual Studio Code Online と間違えて書いていたので Visual Studio Online に修正しました。 セルフホストについて追記しました 環境のカスタマイズについての記事へのリンクを追加 本文 Microsoft Ignite 2019 のキーノート見てた…

MFC に XAML Islands で UWP のコントロールを追加してみよう

MFC に UWP のコントロール置けるってさ。 やってみよう MFC アプリを新規作成します。今回は XAMLIslandsMFCApp という名前で SDI アプリケーションでいってみたいと思います。残りはデフォの設定で作成!実行するとこんな感じです。 懐かしい。(Borland C…

XAML Islands を使ったときのメリットの1つ「テーマ対応」

ツイートしようとしたら、録画したGifアニメを受け付けてくれなかったのでBlogにポスト。 画面全体を XAML Islands で覆ってる場合は、上記のようにテーマ変更にも対応してくれます。いいね。

.NET Core 3.0 + Windows 10 で WPF 開発 というタイトルで .NET Conf 2019 で登壇してきました

登壇資料アップロードしました。 .NET Core 3.0 + Windows 10 で WPF 開発 from 一希 大田 www.slideshare.net 関連記事 基本的に、過去のブログで結構書いてた内容のまとめになります。 WPF 関連 MSIX での自動更新 XAML Islands その 1 XAML Islands その …

MSIX でパッケージングしたアプリから見えるファイルシステムとレジストリの確認方法

知らなかったけど、こんなコマンドがあったんだ。 docs.microsoft.com Package.appxmanifest の Packaging タブで Package family name: を控えてこんな感じのコマンドでパッケージ化されたアプリから見えるレジストリキーが見えた Invoke-CommandInDesktopP…

WPF on .NET Core 3.0 + XAML Islands で Windows UI Library を使おう

前回 blog.okazuki.jp Windows UI Library を使おう Windows UI Library(WinUI) は、次のメジャーアップデートから Windows の OS のバージョンアップに紐づいてアップデートされてきた UWP の UI 部分を OSS として切り離して開発するというポジションにな…

WPF on .NET Core 3.0 で XAML Islands してみよう

しばらく目を離してると手順がガラッと変わっててびっくりしてる今日この頃。 docs.microsoft.com WPF on .NET Core 3.0 で XAML Islands を試してみたいと思います。 プロジェクトの構成 前は WPF プロジェクトにライブラリ追加して…という感じだったのです…

GitHub Actions for App Service を使ってサーバーサイド Blazor をデプロイしてみよう

8 月の時点でこういうブログ出てたのね!対応早い。 azure.github.io ということで試してみようと思います。 プログラムの準備 サーバーサイド Blazor を試してみようと思うので dotnet new blazorserver -o GitHubActoinsBlazor と打ち込んで適当にプロジェ…

Azure の AI 系サービスが Azure 無料アカウント作ると 1 年無料で使える枠がもらえるようになってる!

無料アカウント作ったときに無料で使える枠に AI 系サービスの Cognitive Services が含まれてます。 azure.microsoft.com もともとフリープランがあったじゃん?って思ってたのですがチェックしてみると S0 とか S1 tier と書いてるじゃないですか。普通の…

Vue CLI 3 で作った TypeScript のプロジェクトを IE11 対応しよう

Vue

npm run build したものを IE11 で開くと Vue Router とかを有効にするだけで Promise がないって言われる… ということで以下のページを参考にやってみた。 qiita.com 個別 Polyfill はつらいのでざくっとやっていきます。 プロジェクトを作るときは TypeScr…

Vue CLI 3.x で生成した Vue.js + TypeScript を VS Code でデバッグするときの注意点 for Windows

Vue

かなりレアなケースだと思うので完全に自分への備忘録です。 Vue.js を VS Code でデバッグ出来るのは周知?の通り。 jp.vuejs.org ただ、私の環境ではブレークポイントに止まらなくて困ったなぁとなってました。TypeScript 使ってるからか??と思ったので…

MFC の MDI アプリで起動時に新しいドキュメントを開かないようにする

プロジェクト名App クラスの InitInstance メソッドで以下の部分を… CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); こんな感じに編集する。 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); cmdInfo.m_nShellCommand = CCommandLineInfo::Fi…