マイクロソフター(造語)のみなさま。こんばんは。僕です。ビルゲイツです。めっきりいい季節ですね。ナデラを殺す。

Microsoft Buildについて全部のセッションを視聴してきた(大嘘)ので吐き出します。多すぎるんだよセッションが。このビルゲイツ野郎。愛すぞ。

◆基調講演

Microsoft Build オープニング

なんらかの情報を得ようとして動画を見るのってつらいな。1.75倍速でもつらい。同時通訳なのでなおさら。

通訳の人が今までよりも技術の単語を予習してきていたみたいで良かった。努力の跡があった。素晴らしい。ロジスティクスのことをロジって言ったのは笑ったわ。

売り込み方として「どこそこの企業が使ってます」みたいなこと言われてもエンジニアからしたらどうでもいいっちゃどうでもいいかなと思える。技術への理解がない人にとっては効果見込めるんだろうけど、営業の人とかってMicrosoft Build観るほど勤勉なの?みたいな。

▼Microsoft Dev Box

うんまぁ。善きかな。いまのところ使う用事ないけど。

一般的な開発者が得られるメリットはそんなになさそうだけど、管理者からして監視しやすい。その点に於いてはなかなか便利なものだ。情シスからシンクライアント渡されてDev Box繋いで仕事してくださいみたいに言われたら笑う。やろうと思ったらやれるんで怖いね。閉域網(仮想ネットワーク)に閉じ込めることもできたりするんだろか。まぁアクセスポリシー設定できればいいけど。調べた感じ、VNetインテグレーションはできるみたいね。オンプレのリソースにアクセスできると言っておった。

シス管が例えばチンパンジーだったりしたらPCやらVMの手配に時間かかるだろうし、そういう企業とかにも良いだろうね。

環境構築が楽ってメリットがありそうだけど、今あってもそんなに嬉しくないな。WSLやらwingetやらのおかげで環境構築のつらさがここ数年で大分と緩和されてきているし、あまり恩恵を感じないっちゃ感じない。ちょっとすればコマンドぽちーしてコーヒー飲んでたら構築できちゃう。だからOpsが楽かどうかがメインか。

Intuneくんが噛んでるし、Microsoft Endpoint Managerとも統合されてる。こわい。全部DevBoxに移してレンタルしてる筐体を返して企業で導入しているセキュリティソフトとか解約したらコストアドバンテージも楽々とれるんじゃねぇかな。

▼Azure Container Apps

AKS(Dapr)含め、みんな使いまくってくれ。俺はまだ使わない。もっと良い抽象化が現れると思っている。触ってみたものの全然枯れていないので案件には導入できない。使いたいけど人を説得しきれない。穏当に使うこともできるけど、その場合はうま味(うまあじ)が少ない。

マイクロサービスって五年位前からバズり続けてるパワーワードだけど、厳密にやろうと考えてたら(長時間悩んだ末)無理筋になってくるんだよなぁ。トレードオフでどっかが落ちるケースにぶち当たりやすい。あと、ガチのスパイクが来たときのスケールとか間に合う気しません。もう一声って感じ。

CosmosのBurstCapacityっていうプレビュー機能でレート制限なしにさばけるよみたいな話があったけど、見てないので信じていない。もうAIくんが予測してオーケストレーションしてくださいませんかね。

マイクロサービスとかk8sの思想について学ぶことは結構なことと思う。設計の知見が上がる。システム設計べき論の樹海みたいなものに迷い込める。いつかコンテナを利用したアプリを信用できるようになったんだとして、そのときに移行が簡単になるように設計すること自体は今からでも可能。

AKSでマルチクラウドしたとしても、クラウドプロバイダを跨がなくていい通信で跨いだりしたらパフォーマンスに不安。そこんとこも上手く制御されるものなのだろうか。詳しくないからわからない。保守をサボりたいから設計を頑張ってるのに、結果的に問題が増えているような感じある。

あと、これはMicrosoftのせいではないけどDocker Desktopの動作が不安定で嫌だ。

▼Microsoft Intelligent Data Platform

夢が広がるね。やりたい。っていうか客にやらせたい。こういうのを求めてんだろって。いまやってるクソデカ案件が落ち着いたらもう導入提案したろかコラ。

Azureから剥がしづらそうなので標準化を頑張っていただきたい。ポータブルじゃない(ほかのプラットフォームへの引っ越しが面倒な)ソリューションはもうあまり使いたくない。

▼Project Volterra

コンセプトやデザインはよさげなんだけど、MicrosoftはSurfaceとかいうゴミクソPCを作ってるからハードウェアは信用してない。

▼Live Share in Microsoft Teams

これはありがたい。いちいち画面共有したり「こう書いたりします」ってのをテキストで渡したりするのが面倒だった。

◆余談:あんまり触れてないやつ

もとから知ってた情報についてはそんなに触れてない。

AIまわりについては興味なさげなのであまり触れてないはず。アプリケーション作ってデータを吐き出すまでをやったらもうあとはそれを好きにしろよという気持ち。データアナリストがなんとかしろ。ローコードでなんとかしろ。

そう。ローコード開発も結構どうでもいい。必要になったらやればいいかなって。ちょっとしたUIが欲しいときに活用できるということはわかる。けど客に触らせるのは極めて不安。例えば新しいデータ構造の定義でトチられるとリカバリのコストがやばい。いまローコードアプリがたくさん立ち上がっているんだろうけど、数年後に取り返しつかなくなった状態でマイグレーション案件が沸いて出てくる気がしている。

ローコードじゃなくても取り返しつかないプロジェクトばっかだからどうでもいいけど。

◆セキュアなクラウド開発者環境から迅速にコーディング、テスト、出荷する

セキュアなクラウド開発者環境から迅速にコーディング、テスト、出荷する (microsoft.com)

▼MAUI

1.0もリリースされたし、いよいよって感じだな。クロスプラットフォームアプリの夢をずっと追い続けてきてのMAUIよ。今まで似たコンセプトで散々コケてきていたけど、そろそろ実現できちゃうんじゃなくって?技術要素が揃ってきてしまっちゃってますし。

▼GitHubまわり

セキュリティ上の懸念に自動でアラートを発砲してくれるのはありがたいね。でもGitHubそんなに使ってないんだよな。AzureDevOpsにも導入してくれないかな。

関係するような関係しないような話だけど、GitHubをMicrosoftが買収したのはありがたかった。ちゃんとOSS + オープンコミュニティに舵きった企業に買収されて良かった。GoogleやAmazonが買収していたらどこかで不幸が発生したような気がする。ましてFacebookとかが買っていたらと思うと。

▼Azure Load Testing

これ知らんかった。果てしなく助かりますね。JMeterのスクリプトを流用できるのも偉い。二年前にあってくれたら助かったかな(吐血)。クラウドリソースに対してロードテストするのとかもうそれDDoSでしたし。

実際にアクセス弾かれて日本Microsoftに泣きながらサポートチケット送ったわ。

日本Microsoftに勤めてる日本人のひと。なんらか具体的なシステムを開発したほうが良いと思うぞ。ちょっと考えられないくらい言葉が通じないこと多い。製品のアーキについて客のほうが詳しいケースあるってどういうこと。英語圏のサポートのほうが言葉通じるという異常がプレミアサポートですら発生している。聞かれていることすら理解できずタライ回しすることしかできていない。無駄でしかない。ボトルネック。1度や2度じゃないぞ。日本Microsoftの採用はおかしい。無能が混入している。

Azure Load Testingはワークフローに組み込めるのも便利。でも短時間で終わるテストにならない場合もあるだろうから運用はちょっと考えなきゃだろうな。プレビュー取れるまで色々実験しようかな。

マルチクラウドで作ったときにどういう扱いになるのかは気になるところ。Azureから大量ウンコをAWSやらGCPにポイポイ投げるんだろうか。

◆クラウドネイティブ アプリを拡張し、アプリの最新化を加速させる

クラウドネイティブ アプリを拡張し、アプリの最新化を加速させる (microsoft.com)

コンテナ周りの進化が進んでいっておるな。さっき触れた理由により使わないけど。Web App Routingは便利そうね。リバプロっていうかFrontDoorをぶっこんだようなものになるんだろうか最終的には。もっと隠蔽してくれ。

Azure Arcに対応したSQL ServerやらWeb Appsが出てきていい感じっすね。マルチクラウドに積極的であるのは偉い。信頼できる。その調子で頑張っていただきたい切実に。なるべくはやく。

◆ハイブリッドおよびマルチクラウド機能を備えた信頼できる統合されたプラットフォームで、イノベーションを加速し、アジリティを実現

あぁ。SQL Server 2022。出るの。

Announcing SQL Server 2022 preview: Azure-enabled with continued performance and security innovation - Microsoft SQL Server Blog

そういやIgniteで聞いたような記憶もある。Azureっていうかクラウドに寄って行ってるような印象だ。べったりだった部分を設計しなおしているように見える。根本的に設計しなおしたOSSのクラウドネイティブRDBとか出してくるものかと思いきや、ちゃんとSQL Serverに改修かけてくるものなんだな。

個人的にはledgerってのが気になってる。

元帳の概要 - SQL Server | Microsoft Docs

厳しい要件でクソダルいデータ提出とかせねばならんかったケースにおいて結構な楽ができそう。「これ使えばいいれす(^q^)」「おぎゃ(^q^)」で話を終われる。おかたいところはお金をいっぱいくれるけど厳しめなので、「その懸案事項はledgerでいけまーす」って説明できそうなのはうれしい。直接に台帳っていうかブロックチェーン使えばいい話かもしれんけど、ブロックチェーンについて考えたくない。

◆Windowsで次世代のエクスペリエンスを大規模に構築

Windows で次世代のエクスペリエンスを大規模に構築 (microsoft.com)

windows app sdk 1.1って名前でやってんすね。まぁわかりやすいような。メジャーアップデートされたOneNoteの動きがヌルヌルしていて楽しげ。

Storeは大分頑張ったな。あのクソから持ち直したのはすごい。wingetを巻き込んだのが大正解過ぎた。アプリはできるだけMicrosoft Store(あるいはwinget)からインストールするようにしておる。

Storeアプリの開発体験もよさそう。CI/CD前提だしアナリティクスが勝手についてくるのは素晴らしい。

広告は少し考えたほうがいいかもね。iOSやらAndroidを踏襲しないように祈ってます。OSと統合されてるからってフィンガープリントを乱用したら欧州連合がすっ飛んできますよ。

◆コラボレーション アプリとローコードでイノベーションを実現する

コラボレーション アプリとローコードでイノベーションを実現する (microsoft.com)

Teamsアプリの開発がだいぶ簡単になってるな。とはいえダルそう。まだ整ってないだろこれ。手を出したくない。安心して飛びつくことはできない。

Microsoft DataverseやらPower Pagesには期待している。いままで実現するする詐欺だったことが本当に実現されそうな気がしている。機能としてちゃんと分離して作っているのが好感。Power PagesはWeb技術で動いてるけど、ネイティブで動作するときのエンジンはなんなんだろね。

よさげとはいえ、読み解くことが不可能なローコードアプリケーションとか巷で製造されちゃうっていう懸念は常に残っている。

◆SQL Server 2022 と Azure SQL の新しいイノベーションにより、アプリケーションを最新化する

SQL Server 2022 と Azure SQL の新しいイノベーションにより、アプリケーションを最新化する (microsoft.com)

賢くなってんねぇ。接続性も高い。今触ってるDBは(DB外まで)ガッツリなチューニングしたらからもうどうでもいいんだけど、今後チューニングの機会とか減らせるかもしれんね。パラメーターを読んでプランを変えるのはすごい。すごくはないか。データの全量を持ってんだからそんくらいの最適化は当然にやっといてくれ。令和ぞ。

ローカル開発エクスペリエンスってのはメチャ気になる。Docker上でAzure SQL Edgeってのを動かしつつローカル環境開発できる。クソほど便利っぽい。いまSSDTってのでSQL ServerをGit管理&デプロイしてるんだけど、そこにも手が入るって理解であってるよね?それまじで待ちかねたわ。VSCode拡張機能が提供されるらしいけど、Azure Data Studioにも対応してくれよな。

Azure SQL Database エミュレーターの概要 - Azure SQL Database | Microsoft Docs

Azure Functions統合もアツめで?パラメーターにクエリ結果をバインディングできるのはエロい。例ではIEnumerable<object>にマッピングしてそうだけど、任意のClassへのマッパーとか付属してくるんですかね?

Functions の Azure SQL 入力バインド | Microsoft Docs

しとるーーーwファーーーーwwwww

永続化層への接続を(あらゆるAzureFunctions対応言語で)ひとつ考えずに済むから、まぁまぁありがてぇわ。ほんだら、謹製Micro-ORMとかリリースしてくれろ。頼むぜ。というのと、SQL Serverはイベントのトリガーにはならんのね。まぁ別にいいけど。

HTTPS API Endpoints integrationっつってRESTの口を開けたのもエロい。SQL Serverからデータを引いてどっかに返すっていう手間を、やりようによってはストアドプロシージャ使って消せる。データを持ってるやつにデータ送信を任せられるので無駄なデータコピーが減る。今までもやりゃやれただろうけど、お墨付きをいただいた感じがある。残る不満はTSQLでストアドプロシージャ書かねばならんところ。

コード書いてデータ処理するっていうか、シェル芸よろしくバトンを渡すように処理を進めていくことができるようになる。データを持ってる野郎に「整形してぶん投げておいて」って命令を出せるのは、マイクロサービスっぽい。

JSON関数増えたのもよい。はじめのころはJSON格納は忌避感あったっていうかCosmosに入れれば?って思ってたけど今や割とやるし、オブジェクトDBとしても存在感出されちゃってます。

◆Windows のオープン プラットフォームで優れたアプリを構築する

Windows のオープン プラットフォームで優れたアプリを構築する (microsoft.com)

翻訳が聞き取りづらい上にうるせぇ。うるさすぎたので英語音声にしたら意外と丁寧に話してくれていたんで聴き取れなくもなかった。

WebView2の話が出てたな。ElectronのAlterであるtauriも内部的にWebViewを使っていて、期待している。おま環とか増えそうだけども。

Mac用のWebView2とか良くわからんことも言い始めていて謎。LinuxやらXboxにWebView2を載せに行くらしい。だとしたら名前が紛らわしいので変えてくれねぇかな。

EdgeのDevToolの進化がいい感じに見えたんだけど、どこで試せるんだかよくわからなかった。EdgeのCanaryでもなく、VSCodeのEdgeToolでもなく。

PWAをMicrosoftの成果みたいに言ってるのは違うだろうと思った。貢献してるのはわかるし、OSからPWAを簡単に読み込めるようにってムーブはよかったけども。Edgeで「アプリとしてインストール」みたいな機能あるんだけど、あれはよく使っている。WinキーからWebアプリを立ち上げられるのは嬉しい。ただ、開発者からしたらファイルアクセス周りで嫌な気持するのでAPIを潤沢にしてくださいって気持ち。

WSL2でLinux用のGUIアプリを動かせるって話が具体化していたな。俺はあんまり使う用事ないけど、これは次への布石だろう。楽しみ。

かたやAndroidアプリをWindows11で動かせるアレ。つまりはWSLならぬWindows Subsystem for Androidなんだな。口頭で言われて初めて気が付いて笑ったわ。Storeの戦略も噛み合っている。ようやっとる。外堀が埋まり続けている。今後への布石が碁盤全体に撒き散らされている。

開発用PCとしてMacを買うエンジニアの立場が無くなりそうだな。企業がクローズド戦略をとり続けることの難しさが表面化しつつある。Windows周辺のいろいろな「へー」レベルの情報を統合して今後を考えたとき、Appleにとって面倒な未来像が出来上がりつつある。それはWindowsがAppleの邪魔をしているんじゃなくて、単に開発体験をオープンでポータブルにし続けているからに他ならない。Mac用のVisual Studio 2022をサクっと提供してきやがったのもArm対応もヤバい。AzureやらVS CodeのJava対応をえげつないくらいやってるのもすごい。過去、ベンダーロックイン以外狙っていなかった時代のMicrosoftからは想像もつかなかったよ。

今後iOSとMacOSが守りに入り続けたら、終わるかもしれないな。どこからデザイナーを連れてきたんだか知らんけどFluent Design SystemのほうがMacOSよりデザイン的に先進的で美しいし。OSシェアのバランスが傾くのは余り喜ばしくないので、開発者としてAppleには賢い選択をしていただきたい。

WinUI 3についてはよくわからない。MAUIから生成するんかな。テンプレートから作っていけるのはイイネ・。テンプレートは拡張機能として取得できるけど未だにVisual Studioを再起動せねばならんのはBad。そして試そうかと思ったら

エラー MSB4018 "GetLatestMSVCVersion" タスクが予期せずに失敗しました。

とか言われたのでやめた。見た目だけ試したいってんなら、StoreからUIのギャラリーが公開されている。

Segoe UI Variable。可変フォントになってたんだな。いやぁ長かった。満を持してって感じ。游ゴシックもアレ何とかしてくれねぇかな。游ゴシック自体そんなに好きでもないが。

◆あらゆる場所でシームレスかつ安全な Kubernetes のエクスペリエンスと可観測性

あらゆる場所でシームレスかつ安全な Kubernetes のエクスペリエンスと可観測性 (microsoft.com)

CBL-MarinerというLinuxディストロについて初めて知覚した。まりなのうんこ食べたい。Microsoft製Container Linuxみたいなもんなんだな。シェルが同梱されていないってのはなんか大丈夫なんだっけ。詳しくないけど有事の対応とか大丈夫なん?みたいな。でもどうせ潰して再起動するからいいんかな。

セッションに登場した超絶脆弱意味不明アプリケーションの例を見る限り、安全性は増してるな当然ながら。

Azure Arcは前からあったし割愛。コンテナ技術がもっと枯れたら使う。Daprとセットで使うことになるんだろう。そのDaprも、限りなく使えそうではあるがまだ手は出さない。魅力的であり安全そうであってすぐにでも使いたいけど俺の中の野生が使うなと言っている。

◆エンジニアリング システム全体を通じて開発者の速度を実現する

エンジニアリング システム全体を通じて開発者の速度を実現する (microsoft.com)

DevBoxはさっき書いたとおりだな。自分が情シスならヨダレ垂らしながら使わせるけど、開発者の立場ではこれ使えって言われたら笑う。クソザコPCを支給されている企業からしたら福音。

価格面がどうなるかってのは気になる。時間で停止できたりするっぽいけど。ゴリゴリに3DCGをビルドする用事があるような企業にとって、クラウドのコンピューティングリソースとの接続性を高めるみたいな話とも関連して使い勝手が良くなっていくものなんだろうな。システム/ゲーム開発の企業だけじゃなくて、不正アクセス食らった東映アニメーションとかCGアニメーション作っている企業とかはDevBoxを使ってみてもいいんじゃねぇの。

ただ、Azureが障害起こしたら仕事できないっすね。それはしゃあない。まさかDevBoxがマルチクラウドに対応してきたりするんだろうか。ADどうすんだっけ。

Azure Deployment Environmentsは、よくわかんなかった。いやわかるんだけど、そこまでするかと思った。逆に面倒くさくねぇか。要望ありそうってのはわかるけど。

◆貴社を成功に導くために構築された、新しい Microsoft Store

貴社を成功に導くために構築された、新しい Microsoft Store

いや偉い。よく考えられている。やっと考え始めたか。開発する側からしても利用する側からしてもMicrosoftからしても助かる。三方良し。

ストアアプリを作る用事は今のところないので詳細には触れないけど、動画を見て仕組みのイメージがついた。

◆.NET と Visual Studio を使用して、あらゆるデバイス用のネイティブ アプリを構築する

.NET と Visual Studio を使用して、あらゆるデバイス用のネイティブ アプリを構築する (microsoft.com)

いろいろなことのタイミングが丁度よくて面白いよな。細かい種撒きがここにきて一斉に花開きつつある。64bitになったVisual Studio 2022とLTSである.NET 6とMAUIがタイミング被ったのは面白い。

ここんとこWeb周辺の技術だけでアプリ作ってたけど、MAUIもちょっと触ろうかなと思えた。開発体験をWebに近づけようと頑張ってる。

iPhoneアプリの開発体験もよさそう。ストアリリースはMacOSがないとできないっぽく、そこがやっぱりクローズドなんだよなぁ。開けばいいのに。

Blazorの開発まわりでネイティブアプリ作れるよみたいな話していたな。AndroidでもWindowsでも動くと。Webで動かしたときはDOMはあるんだっけ?それとももうCanvas一枚だけあってそのうえで全部やるんだっけ。みたいなことを思った。コンポーネントライブラリがWeb上で動いてるってつまりそれDOMではないのかな。前に試した気がするんだけど、どうだったっけな。

Visual StudioのIntelliCodeはかなりやってくれるな。出てくるたび思考が止まるんだけど、慣れだと思う。

Webアプリをポートトンネリングしてくれるのはありがたい。自分で組んでLANに公開したりしていた手間が省けるし、ブレークポイントで止まるのはすごい。どういう動きなんだろ。

◆.NET Core と WASI の将来の可能性 (サーバー上の WebAssembly)

.NET Core と WASI の将来の可能性 (サーバー上の WebAssembly) (microsoft.com)

ガベコレとかネットワークまわりとか解決したん?って期待して見たら、まぁまだ色々と時期尚早だった。タイトルにも「将来の可能性」って書いてあるしな。

wasmのBlazorはビルドするときにEmscripten使ってんのね。詳しく中身を見ていなかったから知らなかった。Emscriptenはそろそろ滅んだりするんじゃねぇかな。趣味的にさわさわしてたんだけど色々が古臭い感じに思えた。当時としては先進的過ぎて前提も環境もなく、手探りだったんだろう。

セッション中、wasi-sdkというものを紹介された。ふーん。えっちじゃん。既存技術の組み合わせで薄く作られているのも好ましい。wasmやWASI自体にまだ機能が足りていないっぽくて、それゆえ具体的なツールは出てこないだろうな。でも間違いなく数年後に利用することとなるだろう。技術的ポジション取りが正しいから。足りていて余計なものが無くてポータブルだから。

セッション中、.NETプロジェクトにWasi.Sdkとかいう謎パッケージを導入していたんでNugetに見に行ったら、stevesanderson兄貴の作ってるやつだった(github)。へーと思ってたんだけど、そもそもこれstevesandersonのセッションだったわ。

サンプルとしてASP.NETのサーバーを立ててたけど、ポートをリスンしとるな。sock_acceptってのがあるらしい。適当にしか散策してないけど、Wasi.AspNetCore.Server.Nativeにあるcでアレコレしてる。勉強になる。2022年6月現在WASIのネットワークまわりは決まり切っておらず、sock_acceptはwasmtimeだけ実験的に対応しておるらしい。ブラウザ上でASP.NETを動かしてるのは笑えるな。extreme flexibility。mswみたいにサービスワーカーでHTTPリクエストを傍受してASP.NETで捌いて返してる。

wasmtimeはそろそろwingetで配布してくれねぇかな。あるいはプリインストールしておいてくれ。いつの日か。

wasmCloudについて初めて知った。ランタイム多いわ。wasmCloudはCNCFにサンドボックスとして承認されているんだな。

CNCFのサンドボックスプロジェクトとなったwasmCloudの動画を紹介 | Think IT(シンクイット)

手元で動かすケースもあり得ると思うんだが、Cloudって名前つけちゃうもんなんだな。ランタイム自体軽量だし、少なくとも開発時はwasmCloud使えよって話なんだろう。washっていうCLIも持ってる。なおwingetからインストールできない模様。chocolatey使えとか何兆年前の話をしてんだ。開闢か。

あとWasmEdgeってどうなったんだっけ。

将来的にはもはやDockerコンテナとか管理不要で、wasmのサンドボックスさえあればいいんじゃねぇの。立ち上げるのも超高速だろ。管理せねばならない範囲も遥かに狭い。ラズパイの上にいちいちコンテナ乗せるとかしたくない。オーバーヘッドもフットプリントも(今となっては個人的に)デカすぎる。何するにもすげぇ待たされるもんアレ。

Dockerfile死ね!

dapr-wasmみたいなPoCもすでに立ち上がっちゃってる。Daprの設計がコンテナに依存していなかったからこそ、こういうこともサックリできるんだろうな。wasmがその辺を中核的に担ってくるとは神仏すら見通しておらなんだろう。あとはto wasmのコンパイルがどれくらい速くなるかってとこだろうな。いまんとこ遅い。

それと…パッケージマネージャー?各言語でやりゃいいかもしれないけど。と思いつつ軽く調べたらwapmっていうものを発見した。Pythonライブラリをwasmに固めて他から呼び出せる世界になるんだろうな。wapmはどこの誰がホストしてるんですかねっつって調べたらWasmerさんでした。不穏。

◆.NET MAUI - 最新情報とロードマップ

.NET MAUI - 最新情報とロードマップ (microsoft.com)

開発者に目が向いているのが良いな。クロスプラットフォームも結構だが、何よりも開発がしやすいことが助かる。

今まではコンポーネント分離が甘くてつらみが多かったけど、MAUIのアーキテクチャは妥当であるように思える。

WebView埋め込みもある。既存のWebコンポーネントを組み込みつつプラットフォームのネイティブ機能も使うよ~みたいな感じかな。Blazorじゃ表現力たりていないものをWeb技術で作れちゃうよみたいな話か?UIを全面的にWebで作っても良いしな。でもそれってつまりElectronだよな。

ジオロケーションやら加速度計へのアクセスが簡単ってのはよい。ネイティブAPIへのアクセス共通化にも寄与するだろう。将来的にはWASIを通してアクセスしたりするんだろうか。どうなんだろうか。

このMAUIの存在もMicrosoftプラットフォームを加速するものだろう。MAUIがあればもっと色々なことができる。たとえばOfficeソフトもMAUIで作られるようになるだろうし。Electron外しも起こりうるよな容易に。

.NET 7の話がポロポロ出てきていたけど、LTSなんだっけ?って思って調べたらLTSではなかった。8(Nov 2023)まで待ちかな。MAUIもガチ利用するのは8月以降にしたほうがよさそう。

.NET および .NET Core オフィシャル サポート ポリシー (microsoft.com)

◆あらゆるプロジェクトに対して優れた開発環境を構築する

あらゆるプロジェクトに対して優れた開発環境を構築する (microsoft.com)

wingetはやっぱり最強だわね。まちかねた。作ってくれてありがとなー。

wtのカスタマイズがいつの間にかラクチンっぽくなってるな。Alt + Tabからの視認性が高まるので見た目を簡単に変えられるのは助かる。

WSLで起動したGUIアプリケーションがタスクバーに載ってるのは驚きだった。Winキーから検索できるのも凄い。体験がかなりシームレスだ。Androidアプリを起動することについても同じ感じでやれるんだろう。

PowerToysについては早いところ紹介記事を書きたいんだけど、ver 1.0が全然リリースされないんでどうしようと思っている。ストラテジーを見た感じではもう少しっぽいけど。

DevToysの紹介がなかったな。Microsoft製じゃないからだろう。

◆Visual Studio 2022 とその未来

Visual Studio 2022 とその未来 (microsoft.com)

細かい変更を開発者から実際に聞けるのは嬉しいな。

2022 Enterpriseを便利に使わせてもらってます。VS Codeと差別化できているのは偉いよね。タブを別ウィンドウにポコっと外せるのが助かる。さすネイティブ。

▼Code

  • Draculaが紹介されていて笑った。VS Codeで使ってる。
  • オートセーブ機能付いてたんだな。気づかなかった。手癖で全部保存してから閉じてたわ。
  • lint on saveが乗ったことにも気づかなかった。これはeditorconfig読んでんのかな?
  • コード補完がめちゃつよになってたのは驚いた。精度がかなり高い。

▼Search

  • インデックス張ってんすね。いつからか検索が変に速いと思ったら。
  • 機能検索助かるな。間違ってウィンドウを消しちゃったときとか、開きに行くのが面倒だった。
    • ただこれ、英語検索できない?ソリューションエクスプローラーを検索したいときに「sol」で出てこないのは非常に困る。

▼Collaborate

たすかる。っていうか何でねぇんだよと思っていた機能が埋まってきているような印象だな。マルチリポジトリのサポートはクソほど助かる。

▼Debug

pdbファイル無しでデコンパイルできるってのは…どういうことだろう。マジで?

ソース リンクと .NET ライブラリ | Microsoft Docs

あぁー…いやでも助かるのは助かるな。とはいえ最近はライブラリの信頼性が上がりつつある&インターフェースが綺麗なライブラリが多いんであまり使い時ない気もする。

▼Get Sarted

分かりづらかったよね。左にツリーを置いていただけるのは助かる。言語じゃなくて機能で割ったのは偉いな。あとはアイコンとか置いておいてくれ。

◆PowerShell 7

PowerShell 7 (microsoft.com)

タイトル直球すぎるだろ。

pwshが接着剤であるっていう説明の仕方は巧いな。言いえて妙。

Predictorsが便利だ。CLIなんだけどGUIっぽさも持ち合わせているような印象。zshやらposhの便利機能をオプトインできるような方向に進んでいくんかな。自分で非公式な手順を探してきてカスタマイズするのが面倒だったんでパーソナライズを簡易にしてくれ。

パッケージエコシステムについて初めて認識した。いつからあったんだろう。モジュールを以下からも検索できる。

PowerShell モジュール ブラウザー - PowerShell | Microsoft Docs

便利なことになるなぁ。予想つくわ。

SecretManagementってのがあったのね。知らんかった。Igniteで紹介されていたらしいけど、Igniteはちゃんと舐めてなかったので見逃したんだろう。シークレットとして以下を持てるらしい。

  • string
  • byte[]
  • SecureString
  • PSCredential
  • Hashtable

加えて以下と接続できる。

管理に便利だな。知りたくないシークレットを知らずに、穏やかな気持ちで生きていける。

あとは俺にとっては知ってる情報がポロポロ出ていたけど、詳しくない人は確認しておいたほうがいいかもしれない。「あああーーーーwww」って思うかもね。進化している。

◆Microsoft Sentinel プラットフォームでの構築

Microsoft Sentinel プラットフォームでの構築

重いリソースだと思ってたけど1万7千人も使ってんの。どう数えたんだ?間接的に使っている人はそりゃ大量にいるだろうけど。

自分で触ったことないから、どういうものなのかねと思って興味深くセッションを見ていた。でも引き続きよくわからなかった。具体的にどう運用に刺せばいいのかってイメージつかない。見た感じ面倒くさそう。手でセキュリティ施策するのから劇的に楽になると思えない。

盛り込みすぎなのでは?

◆Microsoft Defender for Cloud を使用してデータベースを保護する

Microsoft Defender for Cloud を使用してデータベースを保護する

SQLにパラメーターとしてアレコレ渡していてもガチればインジェクションできるっていうのを知って笑った記憶がある。

Microsoft Defender for CloudはSentinelと比較してやってることがわかりやすいな。運用が楽になるって容易に想像つく。CosmosDB対応も嬉しいし、Arcで跨げるのもよい。

というので、「sentinel vs defener for cloud」みたいに検索をかけたら以下のページを見つけた。

What's the difference between Azure Security Center, Azure Defender and Azure Sentinel? - Microsoft Tech Community

あぁー。うん。なるほど。役割ありつつ、もう、Sentinelは全部で最強なんだな。使うのには、使いこなすのには勉強が必要でありそう。プロフェッショナルツールっぽい。Sentinelに対する認識は引き続き曖昧だから、こんど時間があったら調べよう。

◆C# 11 の最新情報

C# 11 の最新情報 (microsoft.com)

INumberとかIParsableなんてものがあるの。テストの自動生成が楽になりそう。

未確認飛行Cに更新来てなかった気がすると思っていたら一昨日(2022/6/6)更新されていた。

【Generic Math】 C# 11 での演算子の新機能 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C (ufcpp.net)

リストパターンマッチングは聞いたことあったな。

Early peek at C# 11 features - .NET Blog (microsoft.com)

めでてぇ。C#8の範囲処理からまぁまぁかかったね。switchがケース漏れや非到達を指摘してくれるのもバブみがあってオギャれる。

requiredありがたい。どこにも落としどころがなかったから助かる。Proposal見た感じまだ会話中みたいだけど。でもinit中に処理を書くのはちょっと違うんじゃねぇかなと思う。

raw-stringはテンプレート書くときに楽だけど、インデントの挙動とか改行の扱いで余計なことしてる雰囲気はあるな。隠れた仕様は好ましくない。とはいえ頻繁に使うものでもないし許容できなくもない。文字列補間したいときにダラーを重ねまくるのはなんか見た目が面白いな。

動画中でブログ記事を紹介していたんだけど、静的メソッドのキャッシュとか興味深いことが書かれている。

C# 11 Preview Updates - Raw string literals, UTF-8 and more! - .NET Blog (microsoft.com)

◆Azure SQL と Azure Functions:SQL バインディングとの統合

Azure SQL と Azure Functions:SQL バインディングとの統合 (microsoft.com)

「アジュール シークェル」って呼んでんな。もうSQLはシークェルと読む世界なのか。でもTwitterで「sql sequel」って検索したら外人がなんやかんや言ってた。まだ決着は着いてないんだろう。でもAzure SQLはシークェル読み?

わからん。

セッションの内容としてはおおむね予想通り。appsettings.jsonから接続文字列を読むもんなんだな。Valuesに入ってるから文句もないけど。

出力バインディングでAddAsyncしてたけど、オートインクリメントのIDとか返却できるんかね。とか思って調べたらIssueがあった。

Support output binding for auto-incremented primary key · Issue #37 · Azure/azure-functions-sql-extension (github.com)

しばやんかよ。

sqlprojのアップデートは特になかったのかな。refactorlogくんをもっと使いやすくしてほしい。全人類の中で俺しかSSDT使ってなかったっぽいし、これから利用者が増えていって良いアップデートかかることを期待してます。

◆ASP.NET Core 7 の出力キャッシュ

ASP.NET Core 7 の出力キャッシュ (microsoft.com)

よくわからんけど聞き取りづらい英語。よそ見しながら聞いてるともう何を言ってるんだかわからん。どこかの訛りだったりするのだろうか。

クエリ文字列でredって入れようとしてrefって入れちゃってるし、それに気づかないし。開発者ツールでF5連打したときのレスポンスを見ようとして見られてないし。リハをしろリハを。

あのー、あの現象ってキャッシュスタンピードって呼べばいいんだな。「キャッシュできてないうちにいっぱいリクエストくるやーつ」って呼んでた。そしてなんか気合で、こうすれば文句ねぇだろメカニズムを自分で考えて解決していた。つまり裏でポーリングしてRedisに刺すっていう。うん。自分でもあまり納得してなかったけどあの時はしょうがなかったんです。

出力キャッシュの機能は、見た感じめちゃありがたいね。ヘッダガン無視キャッシュは欲しかった。ちょうど切らしてた。

ASP.NET Core 6にバックポートしてくれないだろうか。

APIがなかなかに妥当でよく設計されている。そして機能がモリモリあって楽しい。C#10でラムダにアトリビュートをぶちこめるようになったから無茶な記法してて笑える。

キャッシュ設定を持つとしたら、コードにベタ書きじゃなくて構成から引っ張ってくるんだろうな。

未実装部分がまだあるってハナシでRedisやらなにやらとの絡みは見られんかったけど、楽しみね。

◆関係ないこと

AzureFrontDoor周りの話を聞かなかった。好きなリソース(なお障害を起こす模様)なので少し寂しい。Standard / Premiumが4月にGAしていたから話あるんかなと思っていたが。

Azure Front Door tier comparison | Microsoft Docs

いろいろ嬉しいことが書かれている。リバプロまで流さねば無理だったことがエッジでできるもん。泣きながら噛ませたApplicationGatewayが要らない子になるもん。

※以下、言語選択で「日本語」を選択できることに気づいてからの記述。

◆イノベーションを加速するクラウドネイティブなアプリケーション | Microsoft Build 最新アップデート

イノベーションを加速するクラウドネイティブなアプリケーション | Microsoft Build 最新アップデート

チャック井上。最初の9.5分くらいは飛ばしていいと思う。

内容としては他のセッションと大体かぶってるんだけど、日本語で大枠の説明を聞きたいときはこれがいいだろうな。

AppServiceがgRPC対応してたな。とはいえgRPCって、使わざるを得ない部分以外では積極的に採用したくない。でも使わざるを得ない部分があるっちゃあるので困る。将来的に他の抽象化に食われるようなものだと個人的には思っていて、いまいち信用できない。保守で身を守るためにgRPCと同じRESTのインターフェースを立てるとかしたことがあって、もにょる。gRPCからRESTの口を自動生成するとかってプロジェクトもあったりして、それつまり問題を根本解決できてない、あるいは複数の責務をまとめて考えているからそうなるんすよね。考えることが増えるわりにメリットが少ないんで使いたくない。

HTTP API を使用した gRPC サービスの比較 | Microsoft Docs

Cosmosのアップデートはありがたいな。コードで制御して回避していた部分が統合されつつある。

◆Geek of Azure Serverless (Build 2022 編) - 「マイクロサービス x ビッグデータ x イベントドリブン」も実現できる Modern Serverless Architecture の鉄板パターン

Geek of Azure Serverless (Build 2022 編) - 「マイクロサービス x ビッグデータ x イベントドリブン」も実現できる Modern Serverless Architecture の鉄板パターン (microsoft.com)

ブチザッキしばやんと…誰だこいつ。と思って調べたらPasSがかりの部屋の人だったんだな。懐かしい。

AppServiceがYARPになる予定なんだな。いつだよって感じだけど。おせぇんだよ。

StreamAnalyticsのパワーアップは嬉しい。まえに最強だこれと思ってテンションアゲアゲの脳死でデータ流したら爆殺されたことがあったんで助かる。入力に置いてるEventHubsを外せるかも。いや外せないな。

StreamAnalyticsでSQLクエリを書かなくてよくなったってのも幸せじゃん。

EventHubで処理の優先度を変えるとかブロックするってのは、どういうアレだろう。ユースケースがわからん。もっと雑多にいろいろなデータをとりあえずぶち込んじゃって、動作を見つつ調整すりゃいいとかって話っすかね。

Service Connectorがありがてぇな。マネージドIDの設定周りを簡単にできると大変に助かる。設定がリソースの画面から一覧できるのは助かる。

Service Connector の内部構造 | Microsoft Docs

コードで参照するのはEnvironmentからっすね。この辺のサンプルを見るよろし。

serviceconnector-webapp-storageblob-dotnet/Index.cshtml.cs at main · Azure-Samples/serviceconnector-webapp-storageblob-dotnet (github.com)

◆DevSecOps : 開発スピードとセキュリティの両立をめざして

DevSecOps : 開発スピードとセキュリティの両立をめざして (microsoft.com)

言ってることはわかるし便利なんだけど、GitHubを仕事で積極的に採用してもいいものなのかな。Azure DevOpsを王道と思っているのが現状ではある。GitHubの機能が強くなったよ!と言われてもそんなにテンションが上がらない。置いていかないで。

機能の差がまだ多いんだよなぁ。どっちかにしか無いっていう機能が多すぎて困る。開発ベースを統合していってほしい。とりあえずAzure DevOps使うけど、それぞれの立ち位置をはっきりさせていただきたいな。

◆Azure ハッカソンを運営してわかった「ゼロベース+数日間で何とかなる」クラウドネイティブ アーキテクチャで成功するための秘訣

Azure ハッカソンを運営してわかった「ゼロベース+数日間で何とかなる」クラウドネイティブ アーキテクチャで成功するための秘訣 (microsoft.com)

テレビショッピングかよ。

無意識でやってるんだろうけど、テレビショッピング程度には詐欺的だと思う。良いことしか言ってないし、簡単じゃないことをサッと流してしまってるよな。やってる人からしたら「ここは辛かったよね?」とツッコミたくなるような部分に触れていない。

「私たちが数日で何とかできたから普遍的になんとかできる」ワケがない。スタープレイヤーの存在を前提にしている部分もある。いや悪気はないんだろうけど。悪気はないんだろうけど発言内容のバランスがとれていない。それを俺は不誠実だと判定する。

以下の日本語セッションのほうが誠実で信用できる。現実味があってワクワクできる。同じ中級者向けセッションとは思えない。髭が薄汚い。

App Modernization for .NET (microsoft.com)

このセッション内で紹介されていた以下ブログの内容が面白かった。

Microsoft Graph's Journey to .NET 6 - .NET Blog

◆Local IP Day 1 2:45pm

Local IP Day 1 2:45pm (microsoft.com)

これもテレビショッピングかよ。声色とかテンポ感とかBGMとかテレビショッピング過ぎる。と思いながら見てたら「テレビショッピングみたいになってきてるけど」とか言い始めて笑った。

安田クリスティーナってあの人かなと思って調べたらあの人だった。IDのガチ講義セッションとかやらんの?IDのセッションとか参加できたんじゃないかね。話散るからダメかな。

◆Web3.0、NFTそして分散型ID

Web3.0、NFTそして分散型ID (microsoft.com)

挨拶がとにかく長いよ日本のセッションは。お前らのこととか全く興味ない。さっさと本題に入りやがれ。

みんなが何を達成したがってるのかっていうのを分かりやすく説明してくれていてよい。わりと懐疑的に自分の専門領域について話しているのは好感が持てる。タイトルがシンプルすぎて誤解されそうだから、もうちょい釣った感じにしてもいいかなと思った。

◆世界一わかりみの深いAzureコンピューティングアーキテクチャの選定

世界一わかりみの深いAzureコンピューティングアーキテクチャの選定 (microsoft.com)

セッション中に登場してた選定フロー図は以下っすね。

Azure コンピューティング サービスを選択する - Azure Architecture Center | Microsoft Docs

俺からしたら想像つくんだけど、これって見てる人はピンと来てるの?ピンと来てる人からしたらこのセッションの内容って自明であまり意味ないように思える。

Media Servicesの話をこのBuildで初めて聞いた。BuildのセッションもAMSで提供されてる気がするけど、なぜかみんなに忘れ去られてるような気持ちになるリソース。

◆WebAssemblyのメカニズム

WebAssemblyのメカニズム (microsoft.com)

Javaの作り直しってのは印象としてあったよな。わかる。でもJava自体が足の引っ張り合いで腐ってきてたから、しがらみのない世界があるってだけで価値であるように思える。

WebAssemblyのセッションをいい年したオッサンがやるのは正しくていいことだ。今までの経緯を見てきた人らが語るのがわかりやすい。話している内容もシブいしポイントをしっかりと抑えていて「そうそうそうそうそうそう!」って思った。ハードウェアがWebAssemblyに寄って来るって発想とか、もう、思うよねそれ!って感じ。技術を理解しているが故の先見の明がある。

◆WebXR Tech Talk

WebXR Tech Talk (microsoft.com)

XRは割とどうでもいいけどBabylon.jsってキーワードが見えたので聞いてみた。9:30あたりからBabylon.jsの話をしてたんだけど、単にアレがアレっていうかWebXRとかVRまでコア機能に含んでるんだなBabylon.jsは。そういうイメージなかった。「ゲーム作れるよ」「Web GPU対応するよ」みたいな話かと思ってたね。

WebXR | Babylon.js Documentation (babylonjs.com)

The WebXR W3C Proposal is currently in its draft phase. It is, however, already implemented in Chrome (check caniuse.com to know about others browsers). Starting with version 79, WebVR has been deprecated and WebXR is enabled by default. Earlier browser versions had WebXR behind a configuration flag. One of its goal is deprecating WebVR and other AR implementation and provide a single VR and AR API.

…WebXRってW3Cに提案されてるような概念なのかよ。WebVRが死んだから、その代替ポジションにあるんだな。

WebXR Device API - Web APIs | MDN (mozilla.org)

とにかく、Unityとかいうウンコが嫌いなのでBabylon.jsには期待している。Babylon.jsの存在を前提としたリッチなSDKが提供されてくるんじゃないか。Editorのv5が出てきたら触ってみるかな。

◆あなどりがたきゲーム技術。メタバースはもちろん様々なビジネスシーンでのゲーム技術の活用テクニック

あなどりがたきゲーム技術。メタバースはもちろん様々なビジネスシーンでのゲーム技術の活用テクニック (microsoft.com)

メタバースってワードをタイトルに入れちゃうと自動的に胡散臭さが添加されちゃうから避けたほうがいいんじゃねぇかな。

あまり詳しくない領域だけど面白かった。でも白目剥きながらしゃべるのが怖い。

UnityじゃなくてUnreal Engineを題材にとってくれたのは嬉しい。MicrosoftにはUnreal Engineとどんどん協力してもろて、Unityをぶっ殺してほしい。

Unreal Pixel Streaming in Azureは面白いな。Webページに組み込めちゃうの凄い。クラウドのリモートプレイゲームとか作るの簡単になっちゃうんだろう。ドラクエXとかアサクリがやってたやつをパッケージとして提供してくれてると。いや、アサクリは独自のゲームエンジンだったっけ。

Unreal Engine での Pixel Streaming | Unreal Engine ドキュメント

基本的にはクライアントで描画処理させるべきと思うけど、ザコPCとかザコモバイルデバイス、ウェアラブルデバイスにとっては重要な選択肢になる。

◆そのた

日本勢のセッションはコアい話が思ったほど聞けなかったので残念でした。割合的に初歩が多すぎたような。知らない人からしたらとてもよいセッションなのかもね。

Logic Appsについて話してる人が誰もいなかった印象。わりと使ってるんだが。Power Automateに吸収されていったりするのかなとか、そういう話聞きたかったかも。

◆期待感

要件定義まわりに踏み込んでくれまいか。アジリティの重要性が叫ばれているとはいえ、要件定義はどうしても存在する。

LogicAppsとFunctionsをもうちょい辿りやすくしてほしいと思った先週。各リソース間の接続を宣言的に記述してそれを俯瞰したい。

SQL ServerのレコードにTTL張れるようにならんかね。

SymantecのSEPがWSL2のネットワークアクセスを遮断しやがる問題をはやく直してくれ。

SQL Serverのストアドプロシージャを.NETでアレできるようにならんかね。

Azure Storageをいい加減に大修正してくれ。アイツだけなんか変だ。なんで命名にすらハイフン使えないんだ。

Buildというイベント自体については、動画プレイヤーをキーボードから操作可能にしやがれというのと、機械翻訳をもっと巧くやれってのと、動画にインデックスを張れ。あとキャプションの制御がバグっていて、オフにしたキャプションが一時停止すると再表示されたりして死ねと思った。

◆結

歯磨きしながら見てたら1時間半とか歯磨きしてしまっていた。歯茎壊れる。