log 2019/10/10

Update SPONSORS.md · IdentityServer/IdentityServer4@660f515 · GitHub Update README.md · IdentityServer/IdentityServer4@4bd439f · GitHub

sponsors に追加。 https://udelt.no/ って聞いたことないけど、ドメイン通りノルウェーの会社っぽい。プラチナってすごいな。MS より先に並んでるし。


Add xml docs for IHtmlGenerator · aspnet/AspNetCore@0859105 · GitHub

IHtmlGenerator のコメント追加。

この interface は Tab Helper を作る時に主に使われるものなんだろうか。


Apply code fencing to Router element in example (#14954) · aspnet/AspNetCore.Docs@438b739 · GitHub

code fencing っていう用語を覚えた。

そして Router っていうから何かと思ったら、Blazor の Router か。react-router 意識ってわけじゃないかもだけど、ほへーってなった。


Performance best practice update with davidfowl samples (#14734) · aspnet/AspNetCore.Docs@1e14273 · GitHub Performance best practice update with davidfowl samples (#14734) · aspnet/AspNetCore.Docs@1e14273 · GitHub

以下のドキュメントの更新。 ASP.NET Core Performance Best Practices | Microsoft Docs

サンプルコードも結構勉強になる。

IHttpContextAccessor を保存するのは Good だが HttpContext は Bad とか気づかないなぁ。でもこういうドキュメントがきちっと出てくるのはいいなぁ。


AspNetCore.Docs/index.md at 5faaa27e51480f7154b78d9bdd40da48b4c19a08 · aspnet/AspNetCore.Docs · GitHub

以下の Logging のドキュメントの更新。 Logging in .NET Core and ASP.NET Core | Microsoft Docs


Migrations: Handle properties without column type in snapshot · aspnet/EntityFrameworkCore@4a47907 · GitHub

以下の Issue の修正。 dotnet ef migrations remove throws `System.NullReferenceException` · Issue #18178 · aspnet/EntityFrameworkCore · GitHub

ef migration remove をしたときに落ちるらしい。snapshot の更新時に落ちているんだろうか。 Model#FinalizeModel の呼び出しに変更している部分が少し気になる。

log 2019/10/09

more migrations details (#14835) · aspnet/AspNetCore.Docs@c7520da · GitHub

2.2 から 3.0 への migration に関するドキュメントの拡充

project file に関してや Startup の部分で修正を検討すべき部分が追加されている。

IHostingEnvironment から IWebHostEnvironment への変更なんかも。

ここでの直接の内容ではないが 「Analyzer support」が気になった。
Web API アナライザーを使用する - MSDN
Visual Studio を使っている場合に限るとかかな。


Demo RemoteAttribute.AdditionalFields in Validation sample. (#14932) · aspnet/AspNetCore.Docs@74de68c · GitHub

AdditionalFields のサンプルが無いので追加したということらしい。

[Remote] 属性 - MSDN

実際にこの属性が付いているのは以下のコード
AspNetCore.Docs/User.cs at 74de68cff0d0d736850c40fad9358aed506378ff · aspnet/AspNetCore.Docs · GitHub

asp-forasp-validation-for がなにか良くわからなかったが jQuery validate plugin のマークアップに展開してくれるらしい。確かに自前で書くよりはちょっと見やすいか。
クライアント側の検証 - MSDN

jQuery plugin のコードは以下を読み込むようになっている。
AspNetCore.Docs/_ValidationScriptsPartial.cshtml at 74de68cff0d0d736850c40fad9358aed506378ff · aspnet/AspNetCore.Docs · GitHub


Add SocketConnectionFactory and http2cat (#14582) · aspnet/AspNetCore@ff8363a · GitHub

Kestrel の部分に SocketConnectionFactory が追加されたのと http2 のサンプルが追加。

内容はまだ理解できないが、いくつか知らなかった部分が。

上2つに関しては C# 8 からの構文らしい。

await using に関しては IAsyncDisposable を実装していなくても DisposeAsync メソッドをもっていればいいという部分が面白い。最近の C# はこういうの多いのかな。Ruby から来た人間としては楽しい。

using var に関しては Golangdefer 文のように使えて良さそうに見える。使い所を探してみたいな。

log 2019/09/09

Microsoft.AspNetCore.Authentication.Abstractions nuget package delete… · IdentityServer/IdentityServer4@f6c6154 · GitHub

不要な参照


key management samples (#3606) · IdentityServer/IdentityServer4@a401ec2 · GitHub

IdentiyServer4 の Key Management のサンプル。FileSystem と EF を使ったサンプルが入っている。

Logging は Serilog を使っている。


Switch to ASP.NET Core 3 (#3609) · IdentityServer/IdentityServer4@41f83cd · GitHub

IdentiyServer4 の ASP.NET Core 3 移行

samples だけでなく、src / test も直されている。差分が大きくて全然見きれない。

いくつか気になったライブラリ

加えて AddNewtonsoftJson というのが追加されていて、JSON ライブラリはこれで決まったのかという発見。


bump version · IdentityServer/IdentityServer4@347bbc5 · GitHub

3.0.1 に bump。以下細かい修正。


Fix xUnit analyzers errors · aspnet/EntityFrameworkCore@6cd2b45 · GitHub

xUnit analyzer のエラー結果を修正している。

GitHub - xunit/xunit.analyzers: Roslyn analyzers for xUnit.net (please open issues in https://github.com/xunit/xunit)

EF Core のテストコードには ConditionalFactConditionalTheory があるが、その辺は以下にある。

EntityFrameworkCore/test/EFCore.Specification.Tests/TestUtilities/Xunit at master · aspnet/EntityFrameworkCore · GitHub

log 2019/09/01 続き

Deflake Kestrel low response rate tests (#13532) · aspnet/AspNetCore@725fa34 · GitHub

このテストのコンテクストがわからないので少し見てく。

TestServer は以下。Kestrel 用のテストヘルパーらしい。こいつが TestConnection を作る。

AspNetCore/TestServer.cs at master · aspnet/AspNetCore · GitHub

TestConnection は以下。主要なメソッドは StreamBackedTestConnection が持ってる。

AspNetCore/TestConnection.cs at master · aspnet/AspNetCore · GitHub

StreamBackedTestConnection は以下。このクラスのメソッドが若干厄介で、内部で Assert してるやつがいる。例えば #Receive なんかがそう。

AspNetCore/StreamBackedTestConnection.cs at 68cc5e7846240bacc146854dfc6a175e30ff0f60 · aspnet/AspNetCore · GitHub

つまり PR での以下の部分は、引数が expected value でそれを受けられるかというもの。

Deflake Kestrel low response rate tests (#13532) · aspnet/AspNetCore@725fa34 · GitHub

このコミットでの主要な修正では DateHeaderValueManager という IHeartbeatHandler 実装のクラスが出てきている。internal な class だが興味深い。

AspNetCore/DateHeaderValueManager.cs at master · aspnet/AspNetCore · GitHub


BufferSegment use ArrayPool for over-sized allocs (#13495) · aspnet/AspNetCore@9399f09 · GitHub

Kestrel の PipeWriter のケースでは new byte[] より ArrayPool を使う方が良いということらしい。

docs.microsoft.com

ArrayPool は利用したことがなかったが、調べてみるとパフォーマンス関連でいくつか記事が見つかる。メモリの使い方の効率を上げるためのもののよう。一方で、Rent したら Return することも必要のように見える。


Update advancedRP.md (#14083) · aspnet/AspNetCore.Docs@79d84fd · GitHub

小さなドキュメントの修正


Reset ValueGenerated on owned types mapped to a different table. · aspnet/EntityFrameworkCore@554ec09 · GitHub

ValueGenerated は PK 等で自動生成される値のための属性だが、以下の例だと誤ってついてしまうらしい。

Mapping an owned type to a different table produces an error on SqlServer · Issue #17454 · aspnet/EntityFrameworkCore · GitHub

OrderDetails.OrderId は単なる外部キーのハズだが、これに ValueGenerated.OnAdd が付いてしまうよう。

修正内容の詳しい部分は理解できていないが、ProcessEntityTypeAnnotationChanged というイベント?を用意し、対処している。

生成された値 - EF Core | Microsoft Docs


Throw when deriving from an owned type. · aspnet/EntityFrameworkCore@c38ec37 · GitHub

以下の PR の通り、所有されている ( OwnsOne 等 ) モデルからの派生はできない。これまで一部できてしまっていたのを厳密にした。

Throw when non-owned type is derived from an owned type. · Issue #17429 · aspnet/EntityFrameworkCore · GitHub


Avoid infinite loop when processing InversePropertyAnnotation · aspnet/EntityFrameworkCore@1c5e308 · GitHub

挙動はよくわからないけど、 inverse を複数つけたときに loop し続けてエラーになってしまうケースがあるらしい。

EF Core の場合は inverse は 同じ型で別名の 2 つ以上の navigation がある時に使うって感じなんかな。

log 2019/09/01

Remove duplicate section (#14081) · aspnet/AspNetCore.Docs@480e3a2 · GitHub

以下のドキュメントの修正。

Test web APIs with the HTTP REPL | Microsoft Docs

HTTP Repl の使い方の部分。


add missing double quote to swagger.searchPaths preference command · aspnet/AspNetCore.Docs@ace55c6 · GitHub

上記と同じドキュメントの修正。double quote が無い部分があった。


Update publish-to-azure-webapp-using-vs.md (#14066) · aspnet/AspNetCore.Docs@3b436bb · GitHub

moniker の部分が追加されただけ。この moniker っていったいなんなんだろう。COM の識別子とか出てくるが、このコンテクストだと違うよなぁ。


Add links to fluent api section (#14041) · aspnet/AspNetCore.Docs@c533823 · GitHub

fluent-api に関するリンクが追加されただけ。


:fire: Remove System.Threading.Tasks.Extensions · aspnet/EntityFrameworkCore@fdba4f7 · GitHub

System.Threading.Tasks.Extensions がいらない部分がある。downlevel ValueTask ってことは ValueTask だけ使いたかったからなのか。

Update external dependencies to latest GA releases · Issue #17482 · aspnet/EntityFrameworkCore · GitHub


Update request-response.md (#14084) · aspnet/AspNetCore.Docs@b036a1d · GitHub

3.0 になったら系のドキュメントが消えた。

Request and Response operations in ASP.NET Core | Microsoft Docs

StartAsync が増えてるのに気づいたけど、これは 「プログラミング ASP.NET Core 」の P379 あたりに書かれていた OnStarting ハンドラと関連してる。
P380 の注釈で、 OnStarting でレスポンスヘッダを追加する方法は工夫が必要で、すべてのミドルウェアが完了しないとどのヘッダを追加するか決められないケースもあるので、 Response.Body 用のバッファを作ったほうがいいケースもあるとなっているが、この辺りをうまく扱うためのものに見える。

詳しく見てみたい。


Added .env files to the react project templates in order to run the C… · aspnet/AspNetCore@026b9df · GitHub

React 使うときに .env に BROWSER=none を入れるらしいが、CRA server というのがよくわからん。 Create React App の略なのか。


Update layout.md (#14096) · aspnet/AspNetCore.Docs@5df3c11 · GitHub

以下のリンクがコメントアウトで挿入されたてるんだけど、これはドキュメントとしてどういう意味があるんだろう。

What is @RenderSection in asp.net MVC - Stack Overflow


Correct `sourcelink` validation errors (#1033) · aspnet/AspNetCore-Tooling@04b15ba · GitHub

なんか soucelink の bugfix 。

締め

一部飛ばしてしまった。。

log 2019/08/29

Remove extraneous endregion (#14059) · aspnet/AspNetCore.Docs@1e819e5 · GitHub

不要な endregion を削除


Add solution files and fix OpenApi references in Startup.cs (#14061) · aspnet/AspNetCore.Docs@42f66ca · GitHub

sln ファイルの追加、抜けですかね。


Remove unnecessary tag for Razor Class Library template (#13004) · aspnet/AspNetCore@78e00cf · GitHub

Razor Class Library のプロジェクトテンプレートの template.json ファイルから余計なタグを削除。

template.json というのがプロジェクトテンプレートを作るために必要らしい。

dotnet new のカスタム テンプレート - .NET Core CLI | Microsoft Docs


[mvc] Remove redundant checks (#9279) · aspnet/AspNetCore@7e10a98 · GitHub

PR の description によると、以下が理由らしい。

Overloaded constructor will throw exception before reaching this checks.


Delete migration index page (#14060) · aspnet/AspNetCore.Docs@6c38690 · GitHub

古い ASP.NET からの migraiton ページの index の削除。リダイレクトが書けるのいいな。


Add gRPC Kestrel configuration documentation (#14015) · aspnet/AspNetCore.Docs@37a490c · GitHub

以下のページの修正。

gRPC services with ASP.NET Core | Microsoft Docs

gRPC を利用する場合の Kestrel の設定が追加された。いい。

NGINX を proxy として使う場合どうするんだろうと思ったら、grpc_pass ディレクティブとしてサポートされてるらしい。

Introducing gRPC Support with NGINX 1.13.10 - NGINX


Crankier: server docs (#13242) · aspnet/AspNetCore@35b5f09 · GitHub

Load testing 用のツールである Crankier の server コマンドに関するドキュメントの追加。

このコミットをした人のものと思われるブログに詳しく書いてある。

stafford williams - Load testing ASP.NET Core SignalR


Remove annotations key when overriden explicitly · aspnet/EntityFrameworkCore@2a5c747 · GitHub

ちょっと、よくわからない。


Re-enable framework tests (#13043) · aspnet/AspNetCore@806fef3 · GitHub

<SkipTest> なんてタグがあるのか。


Update link in Blazor Components topic (#14079) · aspnet/AspNetCore.Docs@f016834 · GitHub

Blazor 関連のドキュメントのリンク更新


Change description of health check result example (#14080) · aspnet/AspNetCore.Docs@45e645e · GitHub

HealthCheck に関するドキュメントの用語を一つ更新

log 2019/08/28

Added file path (#14026) · aspnet/AspNetCore.Docs@92d99bc · GitHub

以下のページの修正。

Razor Pages with EF Core in ASP.NET Core - Concurrency - 8 of 8 | Microsoft Docs

悲観的ロック、楽観ロックに関して書かれている。楽観ロックに関しては RowVersion を利用するらしい。Rails だと lock_version か。


Add note about omission of .AsNoTracking (#14031) · aspnet/AspNetCore.Docs@627664d · GitHub

以下のページの修正。

Tutorial: Read related data - ASP.NET MVC with EF Core | Microsoft Docs

チュートリアルの説明の修正ぽい。詳しく読んでないので、AsNoTracking が消えている理由とかはよくわからない。


Skip getting AzureAdOptions for not AzureADUi Cookies scheme #13311 (… · aspnet/AspNetCore@b242d54 · GitHub

バグ修正。


Fix broken ComplexDataModel snippet in EF tutorial (#14046) · aspnet/AspNetCore.Docs@becb8c8 · GitHub

以下のページの修正。

Razor Pages with EF Core in ASP.NET Core - Data Model - 5 of 8 | Microsoft Docs

チュートリアルはすごい充実してるな。ちゃんとやりたいな。


Convert web API jQuery doc to Fetch API (#13874) · aspnet/AspNetCore.Docs@c566f9f · GitHub

たぶん、以下のページを jQuery 版から fetch API 版に変えるのだと思う。まだ MSDN の方に見つからない。

Tutorial: Call a web API with jQuery using ASP.NET Core | Microsoft Docs


Add some more HandshakeRequest parsing tests (#13397) · aspnet/AspNetCore@af0a204 · GitHub

SignalR での Handshake のテスト追加らしいがよくわからん。


Remove ARM64 debugging as it was intended for VS Dev16.3 readme (#1102) · microsoft/dotnet@c58a1d1 · GitHub

README から 1 行削除


Add troubleshooting docs on untrusted cert with gRPC client (#14010) · aspnet/AspNetCore.Docs@4087024 · GitHub

以下のドキュメントに Call a gRPC service with an untrusted/invalid certificate に関する節が追加。

Troubleshoot gRPC on .NET Core | Microsoft Docs

開発モードで TLS が必要な gRPC 開発をするためのあれこれ。


Add Content-Language header in localization middlewware (#13479) · aspnet/AspNetCore@e9179ba · GitHub

RequestLocalizationMiddleware を利用した時に Content-Language response header に culture をセットするオプションを付けていいのではという以下の Issue に対するもの。

Matching Content-Language with Culture · Issue #11923 · aspnet/AspNetCore · GitHub

上記の Middleware を使って、複数の言語サポートをしていても、サポート外の言語を Accept-Language で指定された場合に、対象としている言語の一覧を返す。

Content-Language - HTTP | MDN


Update AccountController.cs (#14054) · aspnet/AspNetCore.Docs@4b9e18d · GitHub

デモコードの修正