トピックス
Visual Studio for Mac Retirement Announcement - Visual Studio Blog
https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/
Visual Studio for Mac の開発終了のアナウンス。
今後の開発は Visual Studio と Visual Studio Code にフォーカスするため Visual Studio for Mac 17.6 が最終バージョンとなる。12か月後の2024年8月31日までのサポートとなり、今後新機能や新しいフレームワークのサポートなどが追加されることはない。
代替ソリューションとして Visual Studio Code と C# Dev Kit の利用、Mac 上の VM での Visual Studio の利用、クラウド上の VM である Dev Box での Visual Studio の利用などを推奨している。
- JetBrains Rider Welcomes Visual Studio for Mac Users With a 65% Discount on New Personal Subscriptions | The .NET Tools Blog
- 発表を受けて JetBrains Rider の Personal Subscription が 6/4 午前6時 UTC (日本時間で6/4 15時) まで65%オフ
Release v1.4.0 · microsoft/WindowsAppSDK
https://github.com/microsoft/WindowsAppSDK/releases/tag/v1.4.0
Windows App SDK 1.4.0 がリリースされた。
このリリースでは XAML Island が Experimental ではなくなったほか、ItemsView の追加、DesktopAcrylicController と MicaController の使いやすさの向上などが含まれる。
Release 8.0.0-beta.1 · App-vNext/Polly
https://github.com/App-vNext/Polly/releases/tag/8.0.0-beta.1
Polly 8.0.0-beta.1 がリリースされた。
このリリースではアルファーからベータに向けて API のレビューが行われている。
New .NET Upgrade Assistant version with feature updates and .NET MAUI improvements! - .NET Blog
https://devblogs.microsoft.com/dotnet/upgrade-assistant-august-2023-update/
.NET Upgrade Assistant の8月のアップデートについて。
このリリースではプロジェクトファイルの SDK スタイルへのアップデートのみを行えるようになったほか、.NET MAUI の移行について CLI を使用した macOS でのアップグレードが可能となるなどの改善が行われている。
Join us for JetBrains .NET Day Online ’23 | The .NET Tools Blog
https://blog.jetbrains.com/dotnet/2023/08/30/dotnet-day-online-23/
JetBrains .NET Day Online '23 についてのアナウンス。
JetBrains によるオンラインで .NET に関するセッションを配信するイベントが9月26日に行われる。記事では現時点でのアジェンダを紹介している。
Announcing the New Foundational C# Certification with freeCodeCamp - .NET Blog
https://devblogs.microsoft.com/dotnet/announcing-foundational-csharp-certification/
freeCodeCamp で基礎 C# 認定資格の提供を開始した。
freeCodeCamp はプログラミングなどに関する学習リソースを提供する慈善団体で、今回 C# に関する認定試験が追加された。Microsoft Learn と連携し、試験を認定を取得できる。
Release Diagnostics Release - v7.0.442301 · dotnet/diagnostics
https://github.com/dotnet/diagnostics/releases/tag/v7.0.442301
.NET 診断ツール v7.0.442301 がリリースされた。
このリリースでは dotnet-dump/SOS の不具合が修正されているほか、dumpexception コマンドが追加された。
Announcing Appwrite’s New .NET SDK
https://dev.to/appwrite/announcing-appwrites-new-net-sdk-5028
Appwrite の .NET 向け SDK がリリースされた。
この SDK を使用することで AppWrite のサーバーサイド向けの機能を .NET で利用できるようになる。
アーティクル、スライドなど
Not all O(1) operations are considered equal
Dictionary
のルックアップを減らすために List
にしてインデックスを保持するようにするという手段を適用したということについて。
Generate ASCII Art — A Simple How To In C#
https://medium.com/@devleaderca/generate-ascii-art-a-simple-how-to-in-c-1b3f53a972f0
画像から ASCII の文字で濃淡を表現するアスキーアートを生成する方法について。
NET 8 Randomness Guide: Exploring New Methods & Techniques in 2023
https://www.thatamazingprogrammer.com/the-art-of-randomness-in-net-8-new-methods-and-techniques
.NET 8 でのランダムに関する新しい API (GetItem
, Shuffle
) の紹介。
Mastering Cross-Platform Deployment: Blazor WASM Applications with Electron.js and Auto-Updates via GitHub Actions
Blazor WASM アプリケーションを Electron で自動アップデートを有効にしたパッケージングを GitHub Actions で行う方法について。
C#8.0で導入された配列インデクサの範囲指定がexclusive endな理由 - Qiita
https://qiita.com/jun1s/items/a56b80eb5a2dead6617f
C# 8 での配列インデクサで利用できる配列記法が exclusive end (最後を含まない) 理由についての考察。
LINQ Internals: Speed Optimizations
https://antao-almada.medium.com/linq-internals-speed-optimizations-1d99b53750bb
LINQ のオペレーター内でどのような最適化が行われているかについての紹介。
Form binding in minimal APIs: Exploring the .NET 8 preview - Part 7
https://andrewlock.net/exploring-the-dotnet-8-preview-form-binding-in-minimal-apis/
.NET 8 での Minimal API におけるフォームのバインディングに関する解説。
記事では CSRF 対策トークンの取り扱いや、様々な制限などについても解説している。
C# Lambdas: A Code Teardown
https://ricomariani.medium.com/c-lambdas-a-code-teardown-b345ce255212
C# のラムダを使用したときの機械語レベルでのコードサイズについて。
Azure App Service のアプリケーション設定でオブジェクトや配列を設定する方法
https://zenn.dev/microsoft/articles/app-service-array
Azure App Service のアプリケーション設定で Microsoft.Extensions.Configuration の環境変数設定を通してオブジェクトや配列を設定する方法について。
Measuring Unicode String Lengths with C# | Khalid Abuhakmeh
https://khalidabuhakmeh.com/measuring-unicode-string-lengths-with-csharp
Unicode 文字列の長さを取得する方法について。
9 "hidden" features in Visual Studio that you may not know
https://blog.elmah.io/9-hidden-features-in-visual-studio-that-you-may-not-know/
Visual Studio の隠れた便利機能9つの紹介。
Collecting memory dumps for .NET Core on Kubernetes
https://cezarypiatek.github.io/post/memory-dump-on-kubernetes/
Kubernets 上で動作している .NET アプリケーションからメモリーダンプを取得する手順について。
Compiling Rust for .NET, using only tea and stubbornness!
https://fractalfir.github.io/generated_html/rustc_codegen_clr_v0_0_1.html
Rust を .NET の IL にコンパイルする試みを行っていることついて。
System.Text.Josn で、文字列になってる数値 "Foo":"1" を int Foo {get;set;} に逆シリアル化する方法 | @jsakamoto
https://devadjust.exblog.jp/29682981/
JSON の値として数値が文字列として表現されている場合に、System.Text.Json で数値として変換して受け取る方法について。
Implementing a Feature Flag-based Endpoint Filter
https://timdeschryver.dev/blog/implementing-a-feature-flag-based-endpoint-filter
エンドポイントフィルターでフィーチャーフラグを元に操作する方法ついて。
Struct memory layout optimizations, practical considerations
class と struct のメモリーレイアウトの違いと最適化について。
サイト、ドキュメントなど
ツイート
Avalonia UI の Visual Studio Code 用拡張がリリースされた。
We know you've been waiting for this!
— Avalonia UI (@AvaloniaUI) August 29, 2023
The Avalonia @code extension is now available for everyone to try.
Keep in mind that it's a preview release. We welcome all your feedback! https://t.co/si3gZsB54y pic.twitter.com/GqA3nnYsqt
sizoscope というツールでバイナリーサイズを確認できるという話。
If you're a .NET library author and care about optimizing binary size as much as possible, you can use the amazing sizoscope tool by @MStrehovsky to do so. I just noticed a single Regex call I was using in a throw helper was rooting over 300KB worth of stuff! 👀#dotnet #csharp pic.twitter.com/6g20M15HTb
— Sergio Pedri (@SergioPedri) September 2, 2023
RPS のようなものを Interlocked.Increment
でカウントするとパフォーマンスに影響があるという話。
How to count RPS (Requests per second) efficiently: pic.twitter.com/CFMQ3UsUGp
— Egor Bogatov (@EgorBo) September 1, 2023
.NET 8 の Keyed Service を利用して HttpClient を直接解決する方法。
Using keyed services to resolve IHttpClientFactory based HttpClients directly. #dotnet pic.twitter.com/QfwiBrzqcq
— David Fowler (@davidfowl) August 27, 2023