雷って幻想的だよね?

宗教:C#、ラノベ好きの戯言です。※Google Analytics 埋め込みを利用しています。

dotnet Core Preview が8になったようです。

core/3.0.0-preview8.md at master · dotnet/core · GitHub

dotnet Core Preview 8 の利用は、 Visual Studio 2019 16.3 Preview 2
だそうです。

VisualStudioInstallerのアップデートが入ってますね。

ASP.NET のbugs
Issues · aspnet/AspNetCore · GitHub

ASP.NETのfeatures
Issues · aspnet/AspNetCore · GitHub


気になるのは・・・
プロジェクトテンプレートの名称が変更になりました
Rename Blazor project templates · Issue #10348 · aspnet/AspNetCore · GitHub

WebAssemblyが今までは「Blazor(ASP.NET Core hosted)」だったのが、「Blazor WebAssembly App」になったとのこと。

@bind関連の強化
Enhancements to @bind - globalization and conversions · Issue #9386 · aspnet/AspNetCore · GitHub

あまりいじれていないのでピンと来る物が少ないなぁ・・・

Blazor Preview7 で MySQLを利用した認証

Blazor Preview7 で MySQLを利用した認証を実施したときのメモ

※注意
コードの内容をすべて把握しているわけでは無いので、利用が推奨されていない、記述が存在していますので、実運用時はご注意ください。

※以下を行うとき、パッケージマネージャコンソールを利用しますが必ず、リビルドを行い、古い不要な物を削除した状態で試してください。

想定環境:
dotnet Core 3.0 Preview 7
Visual Studio Community 2019 Preview(16.3.0 Preview 1.0)
Blazor Preview7 ClientSide & Server Side(新規作成: Blazor(ASP.NET Core hosted))
MySQL:8.0.14(docker-composeで実行している物を利用)

ダウンロード
Download .NET Core 3.0 (Linux, macOS, and Windows)


必要なNuget(バージョン注意)

サーバーサイド
Microsoft.AspNetCore.Identity.EntityFrameworkCore(Version="2.2.0")
Microsoft.EntityFrameworkCore(Version="2.2.6")
Microsoft.EntityFrameworkCore.Design(Version="2.2.6")
Microsoft.EntityFrameworkCore.Tools(Version="2.2.6">)
MySql.Data(Version="8.0.17")
MySql.Data.EntityFrameworkCore(Version="8.0.17")
MySql.Data.EntityFrameworkCore.Design(Version="8.0.17")
・Pomelo.EntityFrameworkCore.MySql(Version="2.2.1-preview1-final")

Shared
・System.ComponentModel.Annotations(Version="v4.6.0-preview7.19362.9")

マイグレーションの作成コマンド(パッケージマネージャーで実行)
・Add-Migration InitialCreate

実際のコード一式となります。
GitHub - raikou/BlazorPreview7_withMySQL8: BlazorのPreview7でMySQLを利用し、ログイン認証(identity)を実行するサンプル

できるだけ、ログで比較できるようにしていく予定です。(元コードに更新があった場合)

私のように困っている方の参考になれば幸いです。

MySQL8のDocker確認

MySQL8とPHPをとりあえず動かしたのでメモ。

5.7で試してたけど…
※パスワード認証は胃z年お方式に設定しなおしています。

docker-composeの中身これを動かせばlocalhost:8080で確認できます。

version: '3.3'
services:
# MySQL
db:
image: mysql:8.0.14
container_name: db_host
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD_SETTING}
MYSQL_DATABASE: ${MYSQL_DATABASE_SETTING}
MYSQL_USER: ${MYSQL_USER_SETTING}
MYSQL_PASSWORD: ${MYSQL_PASSWORD_SETTING}
TZ: 'Asia/Tokyo'
command: --default-authentication-plugin=mysql_native_password
volumes:
- ./docker/db/data:/var/lib/mysql
ports:
- 3306:3306

#PHP
phpmyadmin:
container_name: php
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOSTS=db_host
- PMA_USER=root
- PMA_PASSWORD=${MYSQL_ROOT_PASSWORD_SETTING}
ports:
- 8080:80

ちなみに、マイグレーションをする際は
DockerでMySQL8.0の環境構築 & 認証方式変更 - わくわくBank
ここのやり方でやって、最後の問題の個所は力業で、

CREATE TABLE `__EFMigrationsHistory` ( `MigrationId` nvarchar(150) NOT NULL, `ProductVersion` nvarchar(32) NOT NULL, PRIMARY KEY (`MigrationId`) );

を実行することで問題なく利用できるようになりました。

以上。

FirefoxでTweetする時のお手軽拡張ツール

Firefoxで見つけたページを簡単にTwitterTweetしたくて無いかなー
と思っていたらあったので!

忘れても大丈夫なようにメモをかねて

Share on Twitter
addons.mozilla.org

Blazor Preview5 から Preview7へ (デフォルト状態ではないものの場合)

Preview7が出てから、何故かうまくいかなくて躓いていたので、それの解消が出来たのでうれしくなって記述しています。

※想定通り出来ていて、何故か動かないという人は、gitの管理外ファイルを削除すると直る可能性があります。(一番最後に記述していますが、私はそれで問題解決されました)
 binとobj消しただけではダメでした。

Preview5からPreview7への移行作業内容

Winmergeで比較

・App.razor
 >>
内容全置換

Visual Studio 2019 v16.2 にアップデート・・・おや?エラーが現れた(;゚ロ゚)

Visual Studio 2019 v16.2 にアップデートしたら・・・エラーが出るようになりました。
内容は以下です、、、

2カ所:

エラー NETSDK1045 現在の .NET SDK は、ターゲットとする .NET Core 3.0 をサポートしていません。.NET Core 2.1 以下をターゲットとするか、.NET Core 3.0 をサポートする .NET SDK のバージョンを使用してください。 MyHP.Server C:\Program Files\dotnet\sdk\2.1.801\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets 137

1カ所

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー NETSDK1045 現在の .NET SDK は、ターゲットとする .NET Core 3.0 をサポートしていません。.NET Core 2.1 以下をターゲットとするか、.NET Core 3.0 をサポートする .NET SDK のバージョンを使用してください。 MyHP.Server C:\Program Files\dotnet\sdk\2.1.801\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.TargetFrameworkInference.targets 137

これ、原因を探ると・・・
・・・
・・・
・・・
かなり色々、インストールなどを試しましたが、、、

Visual Studio 2019 Preview
を利用すれば良いと良いというのが解決策となっていました。

Preview5は動くはず・・・動かない。

Preview7でClient側がある物がないので、そういうこと?

Blazorの更新のBlogが上がってたのに・・・気がつかなかった・・・orz
ASP.NET Blog | ASP.NET Core and Blazor updates in .NET Core 3.0 Preview 7

これでちょっと試します。

拡張機能で、Blazorテンプレートが不要になり、以下のコマンドを実行することで良くなるそうです。

dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview7.19365.7

私の環境ではなりませんでしたが・・・英語の理解力・・・orz
※以前の状態で取ってある、Preview6のプロジェクトをそのまま利用する場合は、問題なく、UPし、利用することが出来ました。

おや?Blazorがレベルアップしたようだ(Preview7)

元資料:
https://github.com/dotnet/core/blob/master/release-notes/3.0/preview/3.0.0-preview7.md
以下は自分が読んで認識した内容なので間違ってたらご指摘いただけると助かります。

利用可能な物:VisualStudio2019 16.3 Preview 1

変更内容:Preview7
dotNet Core SDKのサイズの改善

今、すごく遅いので効果に期待

・SOSを更新

 現在は何処にも入っていなくて、欲しいのであれば自分でやってねということだそうです。
 恐らく、Coreのデバッグに利用する物と思われます。(下記、備考参照)
 すべてのバージョンが対象と書いてあります。(Linuxとかでも使える便利な物だそうです)
 アクセス先:https://github.com/dotnet/diagnostics#installing-sos
 
 Windows版:https://github.com/dotnet/diagnostics/blob/master/documentation/sos-debugging-extension-windows.md

 
・NetTraceはNetPerfに置き換えられたそうです。

・以下のbugs と featuresの確認をすると良いそうです。
 ・CoreCLR
 ・CoreFX
 ・ASP.NET Core(Blazor関連はこれなので、気になるのがあったら読むと良いと思います。)
  https://github.com/aspnet/AspNetCore/issues?q=is%3Aissue+milestone%3A3.0.0-preview7+label%3ADone+label%3Abug


備考:

・SOSってなんぞ?と思ったので。

 dotnet core process のデバッグに利用される物?だそうです。(知識が足りないので間違ってるかもしれません。)
 
 参考:1
 https://blogs.msdn.microsoft.com/rohithrajan/2018/03/26/looking-inside-a-net-core-process-using-windbg/
 
 We have SOS.dll for every version and bitness of .NET framework (.NET 1.1,2.0,4.0 etc) .
 So for .NET core process debugging we need to use .NET Core's sos.dll .
 And the good part is that sos.dll is shipped with the dotnet and you will find it on

 参考:2
 https://devblogs.microsoft.com/premier-developer/debugging-net-core-with-sos-everywhere/

 
・NetTraceは興味ないので割愛
 (サーバーに対するデバッグかな?)