今年のアウトプットを振り返る

Zenn

ブログ投稿38本

 

zenn.dev

 

登壇

.NETラボ勉強会2023年1月~12月すべて

 

csharp-tokyo.connpass.com

 

dotnet-communities.connpass.com

 

dotnet-communities.connpass.com

 

microsoft-events.connpass.com

 

csharp-tokyo.connpass.com

 

csharp-tokyo.connpass.com

 

studyco.connpass.com

 

jazug.connpass.com

 

csharp-tokyo.connpass.com

 

csharp-tokyo.connpass.com

 

msdevjp.connpass.com

サマリー

 

 

現在のノートPCの状況

 

見事にステッカーだらけになりました。

 

 

このように指摘あるとおりmablのステッカーが中央!

さて、mablはなんと読むでしょう?もちろん、mablって読みます。決して、某チョコレート菓子の名前みたいな読み方ではないです。

ノートPC買っちゃった

4/20までの特別価格で本来20万位するものが約14万ととっても安くなっていたので思わずぽちり。

今年はオフラインで登壇する機会もありそうな予感なのでそろそろノートPCも必要そうかなと思っていたところ。

 

1.3キロとそこそこ軽くCPUはかなりパワフルでストレージは1TBと結構余裕がある構成なので長く使えそうな感じ。

しかも、ディスプレイの解像度が異様に高いのがポイント。

数あるフロントエンドフレームワークの中でBlazor WebAssemblyを選択する理由

先日の.NET Conf 2022 Recap EventでフロンドエンドフレームワークにはReactやVueなど様々なフレームワークがある中であえてBlazor WebAssemblyを選択する理由は何ですかというような質問がありました。

それに自分なりの回答を考えてみた。

 

もちろん、回答に合ったようにチームのスキルベースとしてC#とかBlazorのスキルを持っていてJavaScriptのそれよりも上であるためにBlazor WebAssemblyを選択するというのも一つの答えだろう。

 

私からの回答として2つ上げておきたい。

 

1つは、Blazor WebAssemblyテンプレートにあるASP.NET Core Hostedのオプションの存在である。

 

これを指定した場合、通常のClientプロジェクトに加え、ServerプロジェクトとSharedプロジェクトが作られる。

ClientプロジェクトはBlazor WebAssemblyのプロジェクトなので説明不要と思われる。

ServerプロジェクトはASP.NET Core Web APIプロジェクトとして作成される。

そして、Sharedプロジェクトは両者の共通オブジェクト定義のプロジェクトである。わかりやすくいうとWebAPIでやりとりするJSONの型定義がここでしておき、Clientプロジェクト、Serverプロジェクト双方から参照されているので、Clientプロジェクトではデシリアライズ時の型指定を、Serverプロジェクトではシリアライズの型定義をSharedプロジェクトのクラスを使ってあげることで、OpenAPIでありがちなサーバ側とクライアント側での定義が違うためにうまくいないということが発生しにくくなるというメリットがあります。

 

2つめに、クライアント側、サーバ側双方ともにC#とすることができるので、昼間に紹介されていたMessagePackなどの高速シリアライザーを採用することができます。

同じ言語が動作する環境であるのでオーバヘッドの大きいテキストシリアライザーに縛られる必要もないわけです。