(日本時間だと)昨晩深夜、.NET Conf 2019がありましたね。
キーノートはなんかgRPC一色だった感じが…
要は、ASP.NET Core 3.0 の目玉の1つが gRPC 対応なんですけども。 それを、
- proto ファイルから ASP.NET のサーバーを作るデモ
- 同じ proto ファイルからクライアントコードを生成するデモ
- WinForms とか WPF が .NET Core で使えるようになった → WinForms のデモでも生成した gRPC クライアントを利用
- Xamarin にも、hot リロード、hot デプロイ機能が入る(プレビュー) → Xamarin のデモでも同じ gRPC クライアントを利用
- Blazor のデモでも同じ gRPC
- 生成した gRPC クライアントは C# 8.0 対応 →
await foreach
のデモに利用
という感じ。
ちなみに、2018年11月ごろから gRPC のチームと協力してフル managed な実装を頑張ったんですって。
ところで、Unity だといつ使えるようになるんですかね…
Visual Studio 16.3 & 16.4 Preview 1
とりあえず、予告通り、.NET Core 3.0 が正式リリースされました。
予告通り。(build で発表した通りに行くか多少心配してた。)
伴って、Visual Studio も 16.3 になり、プレビューチャネルの方でも 16.4 Preview 1 が配信されました。
(今回は ja-jp のリンクを貼れて安心してる。機械翻訳なのにやたら反映が遅かったりするんで… 前よりだいぶ改善してるのかな。)
ちなみに、16.4 ですが、C# 的には単にバグ修正になりそう。 既知のバグは例えば、
みたいなやつです。
あと、ひそかに inheritdoc コメントに対応するみたい。
こいつは、Sandcastleは昔から持ってる機能だったんですけど、Visual Studio 上のコード補完では出てこなかったやつです。 「派生クラスと同じ」しか doc コメントに書くことがないときに使うもの。 ついに補完候補に。
C# 8.0
まあ、いつも通り、「自分は RC の頃には触りつくしてるのでリリース時点では話すことがない」状態ではあります。
「 C# によるプログラミング入門」の C# 8.0 がらみは9割5分くらいは書けてるんですけども。 今回ちょっとリリースまでに書き損ねてる項目あったり。
残タスク: null 許容参照型、こまごまとしたやつ、あと、非同期ストリームは利用例を足したい
とりあえず、正式リリースになったので使い放題! みんなー、もう Visual Studio 16.3 のインストールはしてくれたかな? 容赦なく C# 8.0 の機能を使ったコミット出すよ! とか思いながら 16.3 を触ってみていたんですが… なんか、以下のような感じで、微妙にまだ使えないかも…
- TargetFramework が .NET Core 3.0、.NET Standard 2.1 のプロジェクトの場合普通に default で C# 8.0 になる
-
TargetFramework が .NET Core 2.1 とか 2.2、 .NET Standard 2.0 のプロジェクトは default が C# 7.3 のまま
- LangVersion に latest を指定すると C# 8.0 になる
あれー… なんでこんな挙動なのかわからず。 単に、「古い SDK だとコンパイラーが更新されてない」というのも疑ってみてるんですけども。 それなら LangVersion は preview にしないと C# 8.0 にならないはずのような…
とりあえず、C# 7.3 の時も、 .NET Core SDK を更新したら 2.0 とか 1.6 でも C# 7.3 を使えるようになったので、しばらく様子見ですかね。 今の、 .NET Core SDK 2.1 と 2.2 は9月10日リリースのもののままのようなので。