雷って幻想的だよね?

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

reactのデザイン思想が、すごく良かったので、VisualStudioで試してみた。

新規作成のテンプレートでまともなのが生成されてないので、無いのだと思っていたら、、、
友人より、あるよ?って指摘を受けて・・・調べてみたら、、、

dotnet new reactredux -o myapp

※myappは作成したい、ソリューション名

を実行すると、react + typescriptでasp.net coreのプロジェクトが生成される・・・!!

普通に、デバッグも出来る・・・!!!

素晴らしい!
なぜ、新規作成されるのはSSRなんだろう・・・orz

このコマンドで利用できるのは他にもあるので以下のサイトをご確認下さい。
Angularとかもあった。
dotnet new コマンド - .NET Core CLI | Microsoft Docs

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`) );

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

以上。

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し、利用することが出来ました。