🐥note.

小鳥とMicrosoft <3 なエンジニアの技術Blog📚

Tech

.NET Core Project TemplateとNuget Packageの作り方

ちょっとしたWPFアプリを複数個作る機会があり、同じような構成のWPFプロジェクトを何個も作るのが大変面倒だったので、Project Templateを作りました。 忘れないうちにProject Templateの作成と、そのProject TemplateをNuget Package化する方法について残…

.NET CoreのGeneric Host(汎用ホスト)のStart/Run/RunConsoleAsyncの違い

.NET Core 3.1 LTSのGeneric Host(汎用ホスト)にはStart/Run/RunConsoleAsyncなど複数の起動方法がある。 static async Task Main(string[] args) { // パターン 1. - RunConsoleAsync await CreateHostBuilder(args).RunConsoleAsync(); // パターン 2. - S…

Assembly Scanして自動的にMicrosoft.Extensions.DependencyInjectionのDI ContainerにService登録する仕組み

.NET Coreの汎用ホストでMicrosoft.Extensions.DependencyInjectionを使ったDI ContainerにAssembly Scanしてサービスを自動登録する簡易的な仕組みを作ったのでその備忘録です。

MediatRのIPipelineBehaviorとFluentValidationでCQRSのQueryをValidationする

先日の記事の続きです。 MediatRのIPipelineBehavior<,>とFluentValidationというライブラリを使用してQueryのValidationを行う方法です。

CQRSで実装したときDI Containerに登録するInterface/Serviceが大量すぎて辛かった話

趣味アプリのコアロジック部分をCQRSで作った結果、DI Containerに登録するInterface/Serviceの数が増えすぎてしまい辛くなってしまいました。 DI Containerへ登録する大量のCommand/QueryのInterfaceやService 次にCQRSでアプリを作る際はもっと楽に開発し…

Blazorチョット(だけ快適に開発)デキルようになる(かもしれない)小技

本エントリはBlazor Advent Calender 2019の16日目の記事です Blazorの開発を行う上でチョット(だけ快適に開発)デキルようになる(かもしれない)小技を紹介します。

2019年11月のMicrosoft DocsのUpdateについて

Redditに2019年11月のMicrosoft Docsの更新状況について投稿がありました。 対象期間は2019/11/01 ~ 2019/12/04の間です。 www.reddit.com なお、先月の更新状況は以下の通りです。 blog.piyosi.com 今月のテーマ 今月のテーマとしては以下の点が挙げられる…

ASP.NET Core MVCにServer side Blazorのコンポーネントを共存させる話

本エントリはBlazor Advent Calender 2019の4日目の記事です はじめに .NET Core 3.0がリリースされてから3か月近く経過しました。 ※追記(12/04):本日.NET Core 3.1 LTSがリリースされました! 皆さんはお仕事でBlazor書いてますでしょうか?勿論私は書けて…

Client side Blazor on WPF WebViewを実験的に作って挫折した話

WPF(.NET Core)のWebView上に、publishしたClient side Blazorを表示するDesktop Appを実験的に作って挫折したのでその備忘録です。 ※挫折した、という点がポイントです。 Demo 最低限動くところまでは作ったので、その様子だけ載せておきます。 demo きっか…

.NET CoreのWPFでWindowを表示するClass Libraryを作成した

実行するとWPFのWindowを表示するClass Libraryを作成しました。 これはClient side Blazorをいい感じにWPFのWebViewで表示できないか試行錯誤してた最中の副産物です。結局ボツ案で使うことは無いとは思いますが、せっかく作ったのでここで供養させてもらい…

.NET Core 3.1 Preview3がリリースされました

.NET Core 3.1 Preview 3が公開されました。 devblogs.microsoft.com 記事内で12月上旬に.NET Core 3.1 LTSリリース予定って言ってますね! ※もともとは11月だったのにサラッと伸びてる Visual Studio 16.4 Preview 5およびVisual Studio for Mac 8.4 Previe…

Client side BlazorとAzure Blob Storageで作る簡単PWA

Client side BlazorをPWA対応させてみました。 PWAのServiceWorkerの機能にはHTTPSが必要なので手っ取り早くAzure Blob Storageを使用します。 ちなみに環境は以下の通り .NET Core 3.1 Preview2 Microsoft.AspNetCore.Blazor.Templates 0.7.0 Blazor Templa…

BlazorでChartを描画する

個人アプリで折れ線グラフやドーナッツチャートを描画したくなったので、Blazoriseを使用して描画してみました。 本エントリはその記録です。 Library探しの旅 JavaScriptならいっぱいLibraryがありますが、歴史の短いBlazorではそうはいきません。 いい感じ…

.NET CoreのDiagnostics CLI Toolを触ってみた

2019年10月のMicorosoft Docsの更新内容を見ていて.NET Core Diagnostics CLI Toolというものがあることに気が付きました。 それぞれdotnet-counters, dotnet-dump, dotnet-traceなるものっぽいです。 それぞれちょっとずつ試してみました。 dotnet-counters…

2019年10月の.NET/ASP.NET Documentation Updateについて

Redditに2019年10月の.NET / ASP.NET のドキュメンテーションの更新状況について投稿がありました。 www.reddit.com なお、先月の更新状況は以下の通りです。 blog.piyosi.com 2019年10月の変更状況 2019/10/01 ~ 2019/11/05の間に .NETには575件コミットさ…

ASP.NET Core Update in .NET Core 3.1 Preview2の新機能について

Microsoft Igniteで盛り上がるIT界の裏では.NET Core 3.1 Preview2がリリースされました。 devblogs.microsoft.com それに合わせてASP.NET CoreとEntityFramework CoreもPreviewが公開されています。 devblogs.microsoft.com 本エントリではASP.NET Coreに追…

自作RazorClassLibraryの静的ファイルのロードができずに困った話

BlazorのComponentを別プロジェクト(RazorClassLibrary)へ切り分けた際、 Blazorから別プロジェクトの静的リソースへアクセスすることが出来ずにハマったので、それの件について記録します。 SolutionとProjectの作成 以下のコマンドでBlazorAppと、Componen…

Azure DevOpsでSprintの名前を変更する

Azure DevOpsでSprintsの名前を間違えてしまいました。 名前を変更するには画面左下のProject settings -> Boards -> Project configurationから変更することができるようです。 おわり ぐぐらないと見つけられませんでした...。

Client Side BlazorをAzureの静的サイトにデプロイする

Azure StorageにClient Side Blazorをデプロイします。 Client Side Blazorの作成 Blazorのプロジェクトを作成し、Publish(発行)しておきます。 dotnet new blazorwasm -o ClientSideBlazorSample cd ClientSideBlazorSample dotnet publish -c Release -o o…

az storage blob upload-batchでErrorCode: InvalidUriが出た時の原因

Azure StorageのBlob Containerにファイルをアップロードしようとした際に以下のエラーが表示されました。 error: The requested URI does not represent any resource on the server. ErrorCode: InvalidUri 原因 原因は-dで指定したContainer NameのEscape…

.NET Core 3.0の新機能Roll Forwardオプションを試してみる

.NET Core 3.0 リリース記念 C# Tokyoで登壇された@nuits_jpさんの.NET Core 3.0のPublish Single File概要を見て、そういえば.NET Core 3.0の新機能でRuntimeのバージョンをコントロールする機能あったなぁ…と思い、ちょっと調べてみました。 Microsoft Doc…

BlazorでDrag and Dropを実装する

Blazorで簡単なDrag and Dropを実装してみます。 デモ こんな感じです。 デモ コード 作ったコードはこちらにUpしてあります。 github.com

BlazorでFormatting Bindingする

@bindした値を表示する際に format を整えるにはformatパラメータを追加すればよいそうです。 docs.microsoft.com <input @bind="DateRecorded" @bind:format="dd/MM/yyyy" /> @code { private DateTime DateRecorded = DateTime.Now; } Microsoft Docsによると、現在は通貨形式や数値形式など、その他の書式指定式は…

BlazorのDataBindingで発火イベントを変更する

@bindによる双方向 DataBinding は以下の通りです。 <input @bind="CurrentValue" /> @code { private string CurrentValue { get; set; } } Microsoft Docsによると、@bind するタイミング(イベント)は変更できるようです。 docs.microsoft.com @bind 構文を使用して onchange イベントを…

Blazor Event名の一覧

Blazorで使用できるEventを列挙しました。 いずれもon{Event名}で使えるはずです。 Focus events Event 名 Args onfocus FocusEventArgs onblur FocusEventArgs onfocusin FocusEventArgs onfocusout FocusEventArgs Mouse events Event 名 Args onmouseover…

Blazor - TodoAppにValidationとNotifyServiceを追加する

こちらの記事の続きです。 blog.piyosi.com Todoアプリに以下の機能の改造を加えます。 新しいTodoを追加したら画面に通知を表示する(NotifyServiceで別Componentの関数をKick) Todoの内容が空っぽの時は登録できないようValidationを追加する ※子コンポーネ…

Blazor - TodoAppで学ぶComponentへのParameter Binding

BlazorのComponentへのParameter Bindingについて学ぶため簡単なTodoアプリを作りました。 今後暫くはこのアプリに手を加える形でBlazorのお勉強をしたいと思います。 github.com Microsoft Docsで言うとこのあたり docs.microsoft.com Demo こんな感じです…

WakaTimeでコーディングしてる時間を自動で記録・可視化する

スマホにはどのアプリを何時間使用しているかという情報のレポート出力機能がありますね。 WakaTimeを使えば、同じことをVisual Studio CodeやVisual Studioで計測することができます。 wakatime.com 使用しているアプリの時間だけでなく、以下の項目も計測…

EntityFrameworkCore.SQLiteのInMemoryDatabase + Repository Patternを書いた備忘録

ローカル環境にDBが必要なアプリの場合、大抵はLiteDbを使ってきました。 今回は趣向を変えてEntityFrameworkCoreを使ってみようかなと思い、Repository Patternな感じで実装してみました。 AdapterはSQLiteを使います。 本エントリはその備忘録です。 作成…

Microsoft.EntityFrameworkCore.InMemoryでトランザクションが張れない

EntityFrameworkCoreでInMemoryする場合はMicrosoft.EntityFrameworkCore.InMemoryが鉄板のようです。 しかし上記Packageを使う場合、トランザクションが張れないようです。 試しに以下のコードを試してみました。 using (var trn = _context.Database.Begin…