|
| 1 | +--- |
| 2 | +Title: "2025-04-07: AutoMapper and MediatR Going Commercial, MassTransit v9 to Commercial, Teams Push Notification Hub migrated to .NET 8" |
| 3 | +Published: 2025/04/07 00:00 |
| 4 | +DestinationPath: 2025/04/07/updates.html |
| 5 | +--- |
| 6 | +<!-- |
| 7 | +# yyyy-MM-dd |
| 8 | +## 主なトピックス |
| 9 | +## ヘッドライン |
| 10 | +## アーティクル、スライドなど |
| 11 | +## ライブラリ、リポジトリ、ツールなど |
| 12 | +## サイト、ドキュメントなど |
| 13 | +### ツイート |
| 14 | +## Deep Dive |
| 15 | +--> |
| 16 | + |
| 17 | +## トピックス |
| 18 | + |
| 19 | +### AutoMapper and MediatR Going Commercial |
| 20 | +https://www.jimmybogard.com/automapper-and-mediatr-going-commercial/ |
| 21 | + |
| 22 | +AutoMapper と MediatR のライセンスを変更し商用化を予定していることについて。 |
| 23 | + |
| 24 | +記事では商用化を決めた経緯について触れられている。現時点で具体的な日付/バージョンは決まっていない。 |
| 25 | + |
| 26 | +### Announcing MassTransit v9 |
| 27 | +https://masstransit.io/introduction/v9-announcement |
| 28 | + |
| 29 | +MassTransit v9 のリリースについてのアナウンス。 |
| 30 | + |
| 31 | +v9 からは商用ライセンスモデルに移行する。v8 はオープンソースのままとなるが、新機能やパフォーマンスの強化、エンタープライズ向けの機能は v9 でのみ提供される。 |
| 32 | + |
| 33 | +記事では移行やタイムライン、ライセンス変更に伴う FAQ が掲載されている。 |
| 34 | + |
| 35 | +### Modernizing push notification API for Teams - .NET Blog |
| 36 | +https://devblogs.microsoft.com/dotnet/modernizing-push-notification-api-for-teams/ |
| 37 | + |
| 38 | +Teams の Push Notification Hub (プッシュ通知ハブ) を .NET Framework から .NET 8/ASP.NET Core へ移行した事例について。 |
| 39 | + |
| 40 | +記事では Push Notification Hub がどのような構成や仕組みとなっているのか、移行に伴う期待、段階的移行の詳細/効果が解説されている。 |
| 41 | + |
| 42 | +### .NET on Heroku: Now Generally Available |
| 43 | +https://blog.heroku.com/dotnet-now-generally-available |
| 44 | + |
| 45 | +Heroku 上での .NET のサポートが Generally Available (一般提供) となった。 |
| 46 | + |
| 47 | +ASP.NET Core のポート設定やフレームワーク依存のデプロイなどをサポートし、Heroku Pipelines や CI などのサービスを活用することもできる。 |
| 48 | + |
| 49 | +### Your Pluralsight Benefit Just Got Better - Visual Studio Blog |
| 50 | +https://devblogs.microsoft.com/visualstudio/vss-pluralsight-2025/ |
| 51 | + |
| 52 | +Visual Studio サブスクリプションの特典である Pluralsight の期間が延長となった。Enterprise は12か月、Professional は6か月となる。 |
| 53 | + |
| 54 | +### Announcing Windows Community Toolkit v8.2 - #ifdef Windows |
| 55 | +https://devblogs.microsoft.com/ifdef-windows/announcing-windows-community-toolkit-v8-2/ |
| 56 | + |
| 57 | +Windows Community Toolkit v8.2 がリリースされた。 |
| 58 | + |
| 59 | +このリリースでは依存するプラットフォームが Windows App SDK 1.6 と Uno Platform 5.5 に引き上げられた。新しい機能としては Native AOT への対応、.NET 9 での UWP サポート、SwitchConverter の追加、WinUI 3 での AcrylicBrush 再有効化、DispatcherQueueTimer.Debounce の改善などが含まれる。 |
| 60 | + |
| 61 | + |
| 62 | +## リリース |
| 63 | +- [autofac/Autofac](https://github.com/autofac/Autofac) |
| 64 | + - [v8.2.1](https://github.com/autofac/Autofac/releases/tag/v8.2.1) |
| 65 | +- [aws/aws-sdk-net](https://github.com/aws/aws-sdk-net) |
| 66 | + - [3.7.1012.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1012.0), [3.7.1013.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1013.0), [3.7.1014.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1014.0), [3.7.1015.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1015.0), [3.7.1015.1](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1015.1), [3.7.1016.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1016.0), [3.7.1017.0](https://github.com/aws/aws-sdk-net/releases/tag/3.7.1017.0) |
| 67 | +- [Azure/azure-sdk-for-net](https://github.com/Azure/azure-sdk-for-net) |
| 68 | + - [Azure.ResourceManager.Compute_1.9.0](https://github.com/Azure/azure-sdk-for-net/releases/tag/Azure.ResourceManager.Compute_1.9.0), [Azure.ResourceManager.DataBox_1.1.0](https://github.com/Azure/azure-sdk-for-net/releases/tag/Azure.ResourceManager.DataBox_1.1.0), [Azure.ResourceManager.EventGrid_1.1.0](https://github.com/Azure/azure-sdk-for-net/releases/tag/Azure.ResourceManager.EventGrid_1.1.0), [Azure.ResourceManager.KeyVault_1.3.2](https://github.com/Azure/azure-sdk-for-net/releases/tag/Azure.ResourceManager.KeyVault_1.3.2) |
| 69 | +- [CommunityToolkit/Maui](https://github.com/CommunityToolkit/Maui) |
| 70 | + - [11.1.1](https://github.com/CommunityToolkit/Maui/releases/tag/11.1.1) |
| 71 | +- [CommunityToolkit/Windows](https://github.com/CommunityToolkit/Windows) |
| 72 | + - [v8.2.250402](https://github.com/CommunityToolkit/Windows/releases/tag/v8.2.250402) |
| 73 | +- [DataDog/dd-trace-dotnet](https://github.com/DataDog/dd-trace-dotnet) |
| 74 | + - [v3.14.0](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v3.14.0), [v3.14.1](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v3.14.1), [v3.14.2](https://github.com/DataDog/dd-trace-dotnet/releases/tag/v3.14.2) |
| 75 | +- [domaindrivendev/Swashbuckle.AspNetCore](https://github.com/domaindrivendev/Swashbuckle.AspNetCore) |
| 76 | + - [v8.1.0](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/releases/tag/v8.1.0) |
| 77 | +- [googleapis/google-cloud-dotnet](https://github.com/googleapis/google-cloud-dotnet) |
| 78 | + - [Google.Cloud.AIPlatform.V1-3.25.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.AIPlatform.V1-3.25.0), [Google.Cloud.AppHub.V1-1.1.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.AppHub.V1-1.1.0), [Google.Cloud.BigQuery.AnalyticsHub.V1-1.8.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.BigQuery.AnalyticsHub.V1-1.8.0), [Google.Cloud.Compute.V1-3.8.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.Compute.V1-3.8.0), [Google.Cloud.Datastream.V1-2.10.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.Datastream.V1-2.10.0), [Google.Cloud.DevTools.ContainerAnalysis.V1-3.8.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.DevTools.ContainerAnalysis.V1-3.8.0), [Google.Cloud.DiscoveryEngine.V1-1.7.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.DiscoveryEngine.V1-1.7.0), [Google.Cloud.PubSub.V1-3.24.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Google.Cloud.PubSub.V1-3.24.0), [Grafeas.V1-3.8.0](https://github.com/googleapis/google-cloud-dotnet/releases/tag/Grafeas.V1-3.8.0) |
| 79 | +- [jbogard/MediatR](https://github.com/jbogard/MediatR) |
| 80 | + - [v12.5.0](https://github.com/jbogard/MediatR/releases/tag/v12.5.0) |
| 81 | +- [newrelic/newrelic-dotnet-agent](https://github.com/newrelic/newrelic-dotnet-agent) |
| 82 | + - [v10.40.0](https://github.com/newrelic/newrelic-dotnet-agent/releases/tag/v10.40.0) |
| 83 | + |
| 84 | +## アーティクル、スライドなど |
| 85 | +### MCP のサーバーからの通知をC# SDK で作る方法 |
| 86 | +https://zenn.dev/microsoft/articles/mcp-notification |
| 87 | + |
| 88 | +MCP の C# SDK を使用してサーバーから通知を送信する方法について。 |
| 89 | + |
| 90 | +### MCP の Prompt をC# SDK で作る方法 |
| 91 | +https://zenn.dev/microsoft/articles/mcp-prompt-001 |
| 92 | + |
| 93 | +MCP の C# SDK を使用して Prompt を実装する方法について。 |
| 94 | + |
| 95 | +### Azure Functions で MCP サーバーが作れるようになりました! |
| 96 | +https://zenn.dev/microsoft/articles/mcp-azurefunctions |
| 97 | + |
| 98 | +Azure Functions で .NET ベースの MCP サーバーを実装する方法について。 |
| 99 | + |
| 100 | +### Visual Studio で .NET Framework プロジェクトを SDK スタイルで作成する方法 |
| 101 | +https://zenn.dev/sakaki_web/articles/cf6e1a4e7e68dd |
| 102 | + |
| 103 | +.NET Framework プロジェクトの .csproj を SDK スタイルにする手順について。 |
| 104 | + |
| 105 | +### CsWin32でWindows用ネイティブEXEからリソースデータを取り出す場合の注意点 |
| 106 | +https://qiita.com/skitoy4321/items/6c69d7605f26abf7c652 |
| 107 | + |
| 108 | +CsWin32 で Win32 API を使用して Windows の実行ファイルからリソースデータを取り出す方法と注意点について。 |
| 109 | + |
| 110 | +### Finalizers are tricker than you might think. Part 2 |
| 111 | +https://sergeyteplyakov.github.io/Blog/2025/03/27/Finalizers_are_tricker_than_you_might_think_p2.html |
| 112 | + |
| 113 | +P/Invoke のハンドルを保持したラッパーのようなものを取り扱う場合の Finalizer と GC の挙動の注意点について。 |
| 114 | + |
| 115 | +### Investigate Thread Pool Starvation with .NET Events Viewer |
| 116 | +https://techblog.criteo.com/investigate-thread-pool-starvation-with-net-events-viewer-1fa8453afd80 |
| 117 | + |
| 118 | +実アプリケーションで Sync-over-Async によるスレッドプールの枯渇を調査した話。記事では .NET イベントビューアーと .NET 9 で新たに増えたイベントを使用して調査する方法について触れている。 |
| 119 | + |
| 120 | +### Anti-Debugging with .NET in Windows Environment - BenGabay - Medium |
| 121 | +https://medium.com/@bengabay1994/anti-debugging-with-net-in-windows-environment-d5955e207c86 |
| 122 | + |
| 123 | +Windows 上での .NET アプリケーションのアンチデバッグの手法について。 |
| 124 | + |
| 125 | +### NativeAOT対応!AvaloniaでWindows シェルAPIを利用したコンテキストメニュー実装 |
| 126 | +https://zenn.dev/yoi/articles/a4ba78677b19e5 |
| 127 | + |
| 128 | +Native AOT と Avalonia を使用したアプリケーションで Windows のシェル API を使用して、ファイルのコンテキストメニューを呼び出す実装について。 |
| 129 | + |
| 130 | +### 【C#】NRandom - .NET / Unity向けの擬似乱数生成ライブラリ |
| 131 | +https://zenn.dev/nuskey/articles/59eb9fcf3a9f75 |
| 132 | + |
| 133 | +以前 RandomExtensions という名前で公開されていた疑似乱数生成ライブラリーが NRandom という名前に代わり、API の変更なども含めてて新たにリリースとなった。 |
| 134 | + |
| 135 | +### Creating SBOM attestations in GitHub Actions |
| 136 | +https://andrewlock.net/creating-sbom-attestations-in-github-actions/ |
| 137 | + |
| 138 | +GitHub Actions で NuGet パッケージの SBOM アテステーションの作成方法について。 |
| 139 | + |
| 140 | +記事では Attestation の作成のための構成や検証、NuGet との問題点について解説している。 |
| 141 | + |
| 142 | +### ReSharper's Out-of-Process Journey: Major Progress and Next Steps | The .NET Tools Blog |
| 143 | +https://blog.jetbrains.com/dotnet/2025/04/01/resharper-out-of-process-update/ |
| 144 | + |
| 145 | +ReSharper の Out-of-Process 化の道のりについての報告。記事では改めて OOP と何か、どのような意味があるか、どのように進めていてどこまで進捗しているのかといったことを説明している。 |
| 146 | + |
| 147 | +### View and manage git tags - Visual Studio Blog |
| 148 | +https://devblogs.microsoft.com/visualstudio/view-and-manage-git-tags/ |
| 149 | + |
| 150 | +Visual Studio 上で Git のタグを確認、管理できるようになったことについての紹介。 |
| 151 | + |
| 152 | +### .NET で MCP サーバー・クライアントを試してみよう |
| 153 | +https://zenn.dev/microsoft/articles/semantickernel-mcp |
| 154 | + |
| 155 | +.NET (C#) で MCP サーバーとクライアントの SDK を使用し実装してみた話。 |
| 156 | + |
| 157 | +- [.NET で MCP サーバー・クライアントを試してみよう その 2](https://zenn.dev/microsoft/articles/semantickernel-mcp2) |
| 158 | +- [.NET で MCP サーバー・クライアントを試してみよう その 3](https://zenn.dev/microsoft/articles/semantickernel-mcp3) |
| 159 | + |
| 160 | + |
| 161 | +### IronPython3によるスクリプティング環境の実装とダイアログAPIの実例 |
| 162 | +https://qiita.com/yoiyoi322/items/90d128468bf0ceff72d1 |
| 163 | + |
| 164 | +IronPython 3 での標準出力に関するエラーの回避方法と Avalonia を使用した実装に関連した問題の対策について。 |
| 165 | + |
| 166 | +### What's New in C# 14? Key Features and Updates You Need to Know | Syncfusion Blogs |
| 167 | +https://www.syncfusion.com/blogs/post/whats-new-in-csharp-14-key-features |
| 168 | + |
| 169 | +C# 14 で導入される予定の新機能の紹介。 |
| 170 | + |
| 171 | +### WinUI 3 タイトルバーにコントロールを載せる(Visual Studio のように) |
| 172 | +https://zenn.dev/shinta0806/articles/rich-title-bar |
| 173 | + |
| 174 | +WinUI 3 を使用してタイトルバーのエリアにコントロールを配置する方法について。 |
| 175 | + |
| 176 | +### 【.NET】HttpClientの正しい使い方 |
| 177 | +https://qiita.com/yariri/items/bb03c510591996ab4b0b |
| 178 | + |
| 179 | +HttpClient や IHttpClientFactory を使用することで効率よく再利用することについて。 |
| 180 | + |
| 181 | +### AsposeとZXing.NetのQRデコード速度ベンチ |
| 182 | +https://zenn.dev/nuits_jp/articles/2025-03-29-read-barcode-benchmark |
| 183 | + |
| 184 | +QR コード取り扱う Aspose と ZXing.Net でのデコード速度の比較。 |
| 185 | + |
| 186 | +### .NETにてSystem.Drawing未使用で二値のマルチページTIFFのQRコードを読み取る |
| 187 | +https://zenn.dev/nuits_jp/articles/2025-03-29-read-barcode-from-tiff |
| 188 | + |
| 189 | +LibTiff と ZXing.Net を使用して TIFF ファイルから QR コードを読み取る方法について。 |
| 190 | + |
| 191 | +### Navigation - NavigationView in WinUI 3 - VectoArt - Medium |
| 192 | +https://medium.com/@artillustration391/navigation-navigationview-in-winui-3-81b13f11f859 |
| 193 | + |
| 194 | +WinUI 3 の NavigationView についての解説。 |
| 195 | + |
| 196 | +### Coding Experience Cpp vs Csharp - meetup app osaka@9 |
| 197 | +https://speakerdeck.com/harukasao/coding-experience-cpp-vs-csharp-meetup-app-osaka-at-9 |
| 198 | + |
| 199 | +<script defer class="speakerdeck-embed" data-id="a9075acf4eb34161b2738b3cfb02ca42" data-ratio="1.7777777777777777" src="//speakerdeck.com/assets/embed.js"></script> |
| 200 | + |
| 201 | +### C#でC#コンパイラを作っている話 | ドクセル |
| 202 | +https://www.docswell.com/s/binnmti/5WWYW8-2025-03-29-142631 |
| 203 | + |
| 204 | +<script async class="docswell-embed" src="https://www.docswell.com/assets/libs/docswell-embed/docswell-embed.min.js" data-src="https://www.docswell.com/slide/5WWYW8/embed" data-aspect="0.5625"></script><div class="docswell-link"><a href="https://www.docswell.com/s/binnmti/5WWYW8-2025-03-29-142631">C#でC#コンパイラを作っている話 by @binnmti</a></div> |
| 205 | + |
| 206 | +## ライブラリ、リポジトリ、ツールなど |
| 207 | +### nuskey8/SemVer2: Fast C# Implementation of Semantic Versioning 2.0 for .NET |
| 208 | +https://github.com/nuskey8/SemVer2 |
| 209 | + |
| 210 | +Semantic Version 2.0 を取り扱うための高速なライブラリー。 |
| 211 | + |
| 212 | +- [【C#】SemVer2 - 高速なSemantic Versioning 2.0実装](https://zenn.dev/nuskey/articles/2c23721b7e8c02) |
| 213 | + |
| 214 | +### ツイート |
| 215 | +<!-- https://x.com/takashiuesaka/status/1908341014185861636?s=12&t=ggvrrZ7oLogHyNoIGNgjbw --> |
| 216 | +<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">.NET 公式YouTubeチャンネルの日本語字幕化、第二弾完了!<br>.NETこれから始める人、.NET Framework時代しか知らない人、見てね!.NETユーザーな皆さん、リポストじゃなくても良いので拡散して!<a href="https://t.co/3gP6v9Gdob">https://t.co/3gP6v9Gdob</a></p>— Takashi Uesaka (@takashiuesaka) <a href="https://twitter.com/takashiuesaka/status/1908341014185861636?ref_src=twsrc%5Etfw">April 5, 2025</a></blockquote> |
| 217 | +<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> |
| 218 | + |
| 219 | + |
| 220 | + |
| 221 | +## Deep Dive |
| 222 | +### [API Proposal]: Public API for the Runtime Async · Issue #114310 · dotnet/runtime |
| 223 | +https://github.com/dotnet/runtime/issues/114310 |
| 224 | + |
| 225 | +ランタイムに実装された非同期機能のための API の提案。 |
| 226 | + |
| 227 | +### Remove ConfigureAwait(false) from AsyncEnumerable LINQ by stephentoub · Pull Request #113911 · dotnet/runtime |
| 228 | +https://github.com/dotnet/runtime/pull/113911 |
| 229 | + |
| 230 | +AsyncEnumerable の内部実装から `ConfigureAwait(false)` を削除するという PR。 |
| 231 | + |
| 232 | +これは LINQ に渡されるデリゲートはアプリコードとしてみなせることから `ConfigureAwait(false)` によって元の SynchronizationContext に戻さないのが適さない可能性のある使い方に該当するため。 |
0 commit comments