2022-07-10: AWS .NET deployment tool, Increased Subscription Pricing for JetBrains products, CoreWCF 1.1.0

Published on Sunday, 10 July 2022

トピックス

AWS announces a streamlined deployment experience for .NET applications in .NET CLI and Visual Studio

https://aws.amazon.com/jp/about-aws/whats-new/2022/07/aws-streamlined-deployment-net-applications-cli-visual-studio/

.NET アプリケーションを AWS に簡単にデプロイするための CLI と Visual Studio 向けの拡張が一般公開となった。

適切なコンピュートの選択や Dockerfile の自動生成、パッケージングとデプロイといったことを支援するツール。例えば dotnet aws deploy ... で ECS や App Runner にデプロイできる。

IDE、.NET ツール、および All Products Pack のサブスクリプションの価格改定 | JetBrains News

https://blog.jetbrains.com/ja/blog/2022/06/29/increased-subscription-pricing-for-ides-net-tools-and-the-all-products-pack/

JetBrains の IDE や .NET ツール、All Products Pack のサブスクリプションの価格が改訂されるというアナウンス。

ReSharper や Rider を含む、多くの JetBrains 製品のサブスクリプションの価格が改訂され値上がりとなる。この新しい価格は2022年10月1日から適用される。

個人向けのプランでは最大2年または3年の、法人向けプランでは最大2年の現行の価格での先払いが可能となっている。

製品 (個人向け) 現行価格 (税込; 1年目) 改定後価格 (税込; 1年目)
All Products Pack 31,570 円 38,148 円
dotUltimate (Rider + ReSharper) 18,920 円 22,308 円
ReSharper 16,390 円 18,348 円
Rider 17,600 円 19,668 円

CoreWCF 1.1.0 and project templates - .NET Blog

https://devblogs.microsoft.com/dotnet/corewcf-1-1-0-and-project-templates/

CoreWCF 1.1 がリリースされた。

HTTP 上のトランスポートセキュリティーでの偽装や WebHttpBinding で生成する Swagger ファイルを変更するための新しい API といった小さな改善が含まれている。

記事ではこのリリースで追加されたプロジェクトテンプレートについても紹介している。

Release Release v2.47.0 · grpc/grpc-dotnet

https://github.com/grpc/grpc-dotnet/releases/tag/v2.47.0

grpc-dotnet 2.47.0 がリリースされた。

HttpClientBuilder で AddCallCredentials に CallCredentials を受け取るオーバーロードの追加のほかいくつかの不具合が修正されている。

.NET Data Frameworks Biweekly Updates (2022) · Issue #27185 · dotnet/efcore

https://github.com/dotnet/efcore/issues/27185

Entity Framework を含むデータフレームワークの隔週更新情報の7月7日分。

Entity Framework 7 で値オブジェクトのサポートとマップされていない型に対する生 SQL クエリーのサポートがカットされたとのこと。

アーティクル、スライドなど

(C#) C# 10でも ref field したい - ネコのために鐘は鳴る

https://ikorin2.hatenablog.jp/entry/2022/07/02/203741

C# 11 で導入される ref field と同様なことを Span<T> で実現するというテクニックについての記事。

Azure SDK for .NET の認証を DefaultAzureCredential にそろえる - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2022/07/06/012351

Azure SDK for .NET に古くからの AzureCredentials と現在推奨される DefaultAzureCredential があり、それを DefaultAzureCredential で共通に扱う方法についての記事。

Manage .NET Microservices APIs with Apache APISIX API Gateway

https://dev.to/apisix/manage-net-microservices-apis-with-apache-apisix-api-gateway-2cbk

Apache APISIX API Gateway を使用して .NET の Web API を扱う例についての記事。

Back to Basics: Custom HTTP Response Header Manipulation in ASP.NET Core - Rick Strahl's Web Log

https://weblog.west-wind.com/posts/2022/Jul/07/Back-to-Basics-Custom-HTTP-Response-Header-Manipulation-in-ASPNET-Core

ASP.NET Core でカスタム HTTP レスポンスヘッダーを取り扱う方法についてのおさらい記事。MVC のアクションの中、ミドルウェア、Web.config といったものを説明している。

.NET Annotated Monthly | July 2022 | The .NET Tools Blog

https://blog.jetbrains.com/dotnet/2022/07/05/net-annotated-monthly-july-2022/

JetBrains による .NET 関連情報のまとめ、7月号。

GraphQL For .NET

https://dev.to/drminnaar/graphql-for-net-38lc

GraphQL の API サーバーを構築する方法をステップバイステップで解説している記事。

サーバーの構築からミューテーション、Entity Framework Core の利用やクエリープロジェクションといったことに触れている。

複数のASP.NET Core Webアプリーションでセッション情報を共有する方法 - Qiita

https://qiita.com/Shuji_Kitamura/items/e8fa20c30b8bb52d5d84

複数の ASP.NET Core アプリケーション間でセッション情報を共有する方法についての記事。

記事では Redis を使用してアプリケーション間でセッションを共有する構成を解説している。

MonoでDigit Separator (桁区切り文字)にハメられた話 - Qiita

https://qiita.com/ktz_alias/items/42359f5fe76f2cf21ac9

Mono の mcs (C# コンパイラー) では Digit Separators (桁区切り文字; 数字区切り文字) の処理に不具合があり、不正な値となる問題があるという記事。

Roslyn では問題がないため、Mono かつ mcs を使用している場合に影響を受けるので外部のサービスなどで注意が必要なケースがある(Mono には Roslyn の csc も含まれている)。

MAUI で独自のコントロールを作る方法のメモ

https://zenn.dev/okazuki/articles/maui-custom-control

MAUI でネイティブのコントロールを使用するカスタムコントロールを実装する方法についての記事。

C# 11 Generic Attributes More Than Syntax Sugar

https://gsferreira.com/archive/2022/csharp-11-generic-attributes-more-than-syntax-sugar/

C# 11 (.NET 7) で導入されるジェネリック属性についての記事。

簡単なコード例でどのような形で利用できるのかといったことを紹介している。

.NET MAUI UI July: Outlook Clone

https://goforgoldman.com/2022/06/30/outlook-clone.html

.NET MAUI で Outlook の UI を再現してみるという記事。

Distribute Visual Studio project templates

https://pieterjandeclippel.medium.com/distribute-visual-studio-project-templates-1788324cc842

Visual Studio (.NET SDK) のプロジェクトテンプレートを配布する方法についての記事。

Creating a TreeView control in .NET MAUI

https://dev.to/icebeam7/creating-a-treeview-control-in-net-maui-49mp

.NET MAUI でツリービューコントロールを実装するという記事。

Containerizing a Running Application with AWS App2Container - Bill, the Vest Guy

https://billthevestguy.com/2022/07/03/containerizing-a-running-application-with-aws-app2container/

.NET Framework で実装されたアプリケーションを AWS App2Container でコンテナー化する方法についての記事。

The Best .NET Decompiler Comparison Guide ✅ (Free and Paid)

https://blog.dotnetsafer.com/best-dotnet-decompilers/

.NET のデコンパイラー(有償および無償)を比較紹介している記事。

記事では ildasm, ILSpy, DnSpy, 9Rays Spices.Net, Redgate .NET Reflector, JustDecompile, dotPeek のそれぞれの特徴を紹介している。

Returning XML from minimal APIs in .NET 6

https://andrewlock.net/returning-xml-from-minimal-apis-in-dotnet-6/

ASP.NET Core の Minimal APIs で XML を返すリザルトを実装する方法についての記事。

記事では RecyclableMemoryStream を使用したバッファーのプーリングについても触れている。

Checking Orleans with the PVS-Studio analyzer - DEV Community

https://dev.to/unicorn_developer/checking-orleans-with-the-pvs-studio-analyzer-3id2

Orleans を PVS-Studio Analyzer (有償の静的コードアナライザー) で解析して見つかった問題を紹介する記事。

初期化の順番、重複したコードといった様々な問題が発見されている。

Story about graceful termination with modern .NET

https://blog.kbegiedza.eu/dotnet-and-story-about-graceful-termination

.NET アプリケーションでコンテナーのシャットダウン要求のようなグレースフルな終了を実装する方法についての記事。

記事では Microsoft.Extensions.Hosting の BackgroundService を使用した方法を紹介している。

Visual Studio 2022 でインラインで型名やパラメーター名を表示する設定 - tech.guitarrapc.cóm

https://tech.guitarrapc.com/entry/2022/07/08/015920

Visual Studio 2022 で導入されたインラインヒント (ReSharper や Rider の Inlay hints と同様の機能) を有効にする方法を紹介する記事。

Tag Helper for Display Templates | You've Been Haacked

http://haacked.com/archive/2022/07/08/display-template-tag-helper/

Html.DisplayFor(...) の代わりに <display for="..."> で呼び出せるタグヘルパーを実装するという記事。

The FASTEST .NET Ever? The Latest New Features of .NET 7 Confirm the Rumors

https://blog.dotnetsafer.com/dotnet-7-performance-features-benchmark-comparison/

.NET 7 で達成されるといわれているパフォーマンス改善について紹介している記事。

リフレクション、On Stack Replacement、起動時間や AOT など。

ライブラリ、リポジトリ、ツールなど

DamianEdwards/BlazorIdentity: An exploration of recreating the ASP.NET Core Identity UI functionality in Blazor components.

https://github.com/DamianEdwards/BlazorIdentity

Blazor で ASP.NET Core Identity の UI を再実装しているライブラリー。

Skater .NET Obfuscator - Index

https://skaterpro.net/

有償の .NET 向け難読化ツール。

サイト、ドキュメントなど

ツイート

in 修飾子をつけても値渡しと違いはないといったツイートから、実際には大きい構造体以外では複雑なコード生成によるパフォーマンスの悪化や、防衛的コピーやマルチスレッドでの問題の発生といったことがあるよというツッコミ。

C# では Math.Floor(100/7) をコンパイル時定数化できないんですか?という問いに対して、JIT はできるかもしれないが C# (Roslyn) はその関数が決定論的に pure な関数であることを伝えることができないので無理という話。

Deep Dive

[Arm64 Server Throughput] Address many-core scaling challenges · Issue #70528 · dotnet/runtime

https://github.com/dotnet/runtime/issues/70528#issuecomment-1171487696

ARM64 のメニーコアサーバーでのスケーリングに関する Issue。

.NET 7 では .NET 6 に比べて最大5倍のパフォーマンスを出せるようになったというコメント。