2023-01-01から1年間の記事一覧
なんか登壇したりブログ書いたりをやたらとしていた一年でした。 ブログ 振り返ってみるとたくさん書いてますね...。 一番読まれたのは 【C#】C# の async/await は実際にどうやって動いているか。 でした。 文章量みればお察しいただけると思いますが、書き…
この記事は Qiita C# Advent Calendar 2023 23 日目の記事です。 登壇版 OpenTelemetry について プロジェクトの主要なコンポーネント API 及び SDK という言葉について 仕様のステータス 各言語のサポート状況 OpenTelemetry Collector OpenTelemetry Colle…
現代の .NET では "zero-byte reads" という最適化が随所で行われています。 この記事ではその "zero-byte reads" とはなんなのか、という事についてつらつら書いていこうと思います。 そしてそれに深く絡むピン留めのお話も。 どんな最適化か。 ピン留め手…
というタイトルで.NETラボで喋ってきました。 スライドはこちら。 登壇のアーカイブはこちら。 40 分程度です。
みんな大好き TaskCompletionSource。 TaskCompletionSource は死ぬほど重要かつ便利な class なのですが、TaskCompletionSource.Task を await した時の continuation (= await 後に行われる継続処理) がどこのスレッドで実行されるか意識しないと危険だよ…
.NET Worker Service 便利ですよね。 Generic Host が最高という話でもある。 この記事では dotnet new worker コマンドを叩いて作成したテンプレのような、Generic Host を用いた console application における health check のお話をしたいと思います。 we…
C#er 的には 「TypeScript でも [MemberNotNullWhen] に相当する事をやりたいんだけど、どうするの?」でだいたい伝わるお話。 C#er ではないなら「TypeScript の class のメンバ変数が null でない事を保証するメソッドを呼んだあとに、該当のメンバが null…
登壇版 ConsoleFormatter HttpLogging ConsoleFormatterOptions.IncludeScopes W3C Trace Context ExceptionHandler DbDataSource HttpClientFactory まとめ References 登壇版 .NET ラボ 2023/07/22 で発表した資料です。 スライドはこちら。 スライドはア…
最初に結論。 Example のコード そもそもログの目的とは何なのか。 W3C Trace Context Trace Context の HTTP ヘッダとフォーマット Traceparent Header version version-format trace-id parent-id trace-flags 用語 Distributed trace 要するに。 System.D…
はじめに 登壇版 Taskの本質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先…
リアルタイム通信するなら、やはりシリアライズ/デシリアライズは高速であればあるほどいい。 というわけで、TypeScript の SignalR client でも JSON ではなく MessagePack を使いたいよね、使おう!というお話。 SignalR の protocol シリアライザと言語 M…
以前 .NET ラボで 「C# と HTTP/2 と gRPC」というタイトルで登壇しました。その時のスライドがこちらなのですが、ちらほら反応を頂きました。その結果、HTTP/2 や gRPC について勘違いしている人がちょこちょこいる事が分かったので、少し補足を書こうと思…
.NET 7 から dotnet user-jwts という機能が生えてきました。ASP.NET Core で認証認可に JWT を使って開発している人間にとっては大変便利なのですよ、コレが。 はじめに dotnet user-jwts の使い方...の前に下準備 dotnet user-jwts の使い方 気になるかも…
というタイトルで.NETラボで喋ってきました。 スライドはこちら。 登壇のアーカイブはこちら。 30 分程度です。 内容の大筋としては、以下のような感じ。 HttpClient の基礎 HttpClient / HttpMessageInvoker / SocketsHttpHandler のお話 HTTP/2 の stream …
Type か Types かの違い。 何の話だよ、っていうと Roslyn の API のお話です。Source Generator を開発する場合は Roslyn と踊る事になるので今はまだ Roslyn 触ってない人でも頭の片隅に置いておくといいんじゃないでしょうか。 さて、型のシンボルを取得…
というタイトルで.NETラボで喋ってきました。 スライドはこちら。 登壇の録画はこちら。 内容の大筋としては、以下のような感じ。 SignalR の開発どうしてる? TypedSignalR.Client.DevTools を使えば大解決! TypedSignalR.Client.DevTools の使い方 TypedS…