混沌を極めるWebアプリケーション界隈に現れた一筋の光明
型無し言語 JavaScript の悪夢を打ち払い
林立するエコシステムの亡霊を退散
アプリケーション開発者の希望となるMVVMを引っ提げて登場した真のSPA開発環境
Blazorを語る者よ、集え!
ASP.NET Core Blazor の概要
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/?view=aspnetcore-3.1
探検
【本命】Blazor スレ1【真打】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/07/20(月) 23:36:36.67ID:td0HkrQz652デフォルトの名無しさん
2020/10/18(日) 21:49:08.25ID:cFA8jjUJ653デフォルトの名無しさん
2020/10/19(月) 11:41:11.48ID:32Wztry8654デフォルトの名無しさん
2020/10/19(月) 13:14:16.03ID:IuaIFexr 俺は逆に、Blazorで登録してもらったユーザー情報で他のnode等で作ったページにログインできるような技が知りたいな
先の技と似た方法でASP.Net Coreでクッキーだけ発行してnodeでも同じクッキーを使うのもいいけど、データベースを使い回す方法も見てみたい
だけどデータベースを見たところ、パスワードハッシュらしきものはすぐ見つかるもののソルト等がどこにあるのかよくわかんない
もしかしてハッシュに見える一部分がソルトなのか?パスワードハッシュらしきものは、どうやって生成されてる値なんだろう・・・・
先の技と似た方法でASP.Net Coreでクッキーだけ発行してnodeでも同じクッキーを使うのもいいけど、データベースを使い回す方法も見てみたい
だけどデータベースを見たところ、パスワードハッシュらしきものはすぐ見つかるもののソルト等がどこにあるのかよくわかんない
もしかしてハッシュに見える一部分がソルトなのか?パスワードハッシュらしきものは、どうやって生成されてる値なんだろう・・・・
655デフォルトの名無しさん
2020/10/19(月) 13:27:10.55ID:kIQ4aN8p OIDC
656デフォルトの名無しさん
2020/11/02(月) 05:11:15.47ID:mSt0AvyI Blazor WebAssembly in .NET 5 is two to three times faster
for most scenarios. For more information,
see ASP.NET Blog: ASP.NET Core updates in .NET 5 Release Candidate 1.
.NET 5でかなり速くなるんだな
楽しみ
for most scenarios. For more information,
see ASP.NET Blog: ASP.NET Core updates in .NET 5 Release Candidate 1.
.NET 5でかなり速くなるんだな
楽しみ
657デフォルトの名無しさん
2020/11/02(月) 12:21:12.29ID:U50fzrLu Blazorで作ったうちのサイトに、大量のユーザ登録をする奴が出てきた
掲示板みたいなものがあるので、宣伝の書き込みに使いでも使うんだろうか?よくわからないけど不気味で仕方がない
大量登録を防いだり、ユーザーの行動をスコア化したりBANしたり、何かBlazorでできる手軽な対策ってない?
掲示板みたいなものがあるので、宣伝の書き込みに使いでも使うんだろうか?よくわからないけど不気味で仕方がない
大量登録を防いだり、ユーザーの行動をスコア化したりBANしたり、何かBlazorでできる手軽な対策ってない?
658デフォルトの名無しさん
2020/11/02(月) 13:05:27.82ID:mSt0AvyI >>657
しっかりやるならSMS認証だろうけど手軽ではないね。
手軽なのはメールアドレスとIPアドレスベース
登録時のメールアドレス認証はやってる?
同じIPから一定日数は登録できないようにすれば、
固定回線からの登録はある程度防げると思う
ISP次第で固定でもIP変更できちゃうけど
ただの宣伝目的ならそういうめんどうな
手順必要なところは避けてほか行くんじゃないか
しっかりやるならSMS認証だろうけど手軽ではないね。
手軽なのはメールアドレスとIPアドレスベース
登録時のメールアドレス認証はやってる?
同じIPから一定日数は登録できないようにすれば、
固定回線からの登録はある程度防げると思う
ISP次第で固定でもIP変更できちゃうけど
ただの宣伝目的ならそういうめんどうな
手順必要なところは避けてほか行くんじゃないか
659デフォルトの名無しさん
2020/11/02(月) 17:11:37.77ID:GLYVmDWa Azure AD使ったら多要素認証も気軽に実装できるよ
660デフォルトの名無しさん
2020/11/02(月) 22:47:48.58ID:mSt0AvyI661デフォルトの名無しさん
2020/11/03(火) 02:39:12.95ID:nKKwywFG >>660
もちろんありだよ
もちろんありだよ
662デフォルトの名無しさん
2020/11/03(火) 19:52:22.74ID:xAcGzDoa >>657
迷惑行為なら通報したら?
迷惑行為なら通報したら?
663デフォルトの名無しさん
2020/11/04(水) 23:24:27.00ID:QiewC8QL Blazorに限る話ではないかも知れないけど…
ServerにWeatherForecastController作って、
ClientからアクセスするときはGetFromJsonAsync<WeatherForecast>(“WeatherForecast”)とControllerの名前を「文字列」で引数に入れる。
これがせっかくここまでC#の型を使えてるのになんか無駄だなあと。
Shareにあるクラスは参照できてるのに、
なんでServerへのアクセスは文字列なのか。
ここタイプミスしたらオジャンじゃん。
外部のAPIならわかるけど、同じソリューション内のプロジェクトなんだから
WeatherForecastContoroller.GetAll WeatherForecast() でええやんと思ってしまう。
gRPCとか使ったらSOAPチックなことできるの?
ServerにWeatherForecastController作って、
ClientからアクセスするときはGetFromJsonAsync<WeatherForecast>(“WeatherForecast”)とControllerの名前を「文字列」で引数に入れる。
これがせっかくここまでC#の型を使えてるのになんか無駄だなあと。
Shareにあるクラスは参照できてるのに、
なんでServerへのアクセスは文字列なのか。
ここタイプミスしたらオジャンじゃん。
外部のAPIならわかるけど、同じソリューション内のプロジェクトなんだから
WeatherForecastContoroller.GetAll WeatherForecast() でええやんと思ってしまう。
gRPCとか使ったらSOAPチックなことできるの?
664デフォルトの名無しさん
2020/11/05(木) 00:12:14.94ID:kkWOG+/P >>663
ハードコード避けたいときはnameofとかtypeof使うといいとかsampleかいてあったような。
//return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio
Web APIのTutorialのコード。
References the GetTodoItem action to create the Location header's URI.
The C# nameof keyword is used to avoid hard-coding the action name in the CreatedAtAction call.
ハードコード避けたいときはnameofとかtypeof使うといいとかsampleかいてあったような。
//return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio
Web APIのTutorialのコード。
References the GetTodoItem action to create the Location header's URI.
The C# nameof keyword is used to avoid hard-coding the action name in the CreatedAtAction call.
665デフォルトの名無しさん
2020/11/05(木) 00:15:02.65ID:kkWOG+/P666デフォルトの名無しさん
2020/11/05(木) 00:17:59.90ID:4xcihAoT てかWebAPIならAttribute Routingの方がよくね?
667デフォルトの名無しさん
2020/11/05(木) 08:21:04.21ID:+cvvBSkt668デフォルトの名無しさん
2020/11/05(木) 08:27:25.47ID:/DSStsR5 >>663
それコントローラー名じゃなくてUriでしょ
DefaultRoute使えばuriとコントローラー名は一致するからそれでいいけど
プロジェクトの都合で
URIとコントローラー名異なるようにすることはあるでしょ。
それコントローラー名じゃなくてUriでしょ
DefaultRoute使えばuriとコントローラー名は一致するからそれでいいけど
プロジェクトの都合で
URIとコントローラー名異なるようにすることはあるでしょ。
669デフォルトの名無しさん
2020/11/05(木) 08:33:38.65ID:+cvvBSkt670デフォルトの名無しさん
2020/11/05(木) 08:34:41.52ID:+cvvBSkt すまんリロードせずに書き込んでしまった
そゆことね
そゆことね
671デフォルトの名無しさん
2020/11/05(木) 08:41:56.35ID:/DSStsR5 よくおぼえてないまま書くけど
ルーティングの機能でコントローラー名とアクション名から
アドレス作れたはずだから
それを渡せばいいんじゃないの
それだとnameofも利用できると思うし
カスタムルーティングの場合でも問題なくいけると思う
ルーティングの機能でコントローラー名とアクション名から
アドレス作れたはずだから
それを渡せばいいんじゃないの
それだとnameofも利用できると思うし
カスタムルーティングの場合でも問題なくいけると思う
672デフォルトの名無しさん
2020/11/05(木) 23:38:47.81ID:xnSUjXs4 razorファイルに書いたC#がバリバリ動くのは感動すら覚えるが
最初に作られるサンプルサイトがショボショボすぎてこれは普及しないだろうなあ…とおもう。
入力もできるグリッド、DateTimePicker、TreeView、モーダル
こういうのをサンプルに組み込んでもらわないと
いちいちググるはめになる。
最初に作られるサンプルサイトがショボショボすぎてこれは普及しないだろうなあ…とおもう。
入力もできるグリッド、DateTimePicker、TreeView、モーダル
こういうのをサンプルに組み込んでもらわないと
いちいちググるはめになる。
673デフォルトの名無しさん
2020/11/05(木) 23:44:26.66ID:uHESSmSw >>672
いやいやテンプレートに機能満載されてるほうが困るわ
いやいやテンプレートに機能満載されてるほうが困るわ
674デフォルトの名無しさん
2020/11/05(木) 23:49:29.95ID:nJQizfvu そんな複雑なUI作られても使う側が困るしなぁ
シンプルイズベストですわ
MVCでいいじゃないの
シンプルイズベストですわ
MVCでいいじゃないの
675デフォルトの名無しさん
2020/11/05(木) 23:52:06.81ID:E7F1ZqHp >>672
お前はサンプルとテンプレートを混同している
お前はサンプルとテンプレートを混同している
676デフォルトの名無しさん
2020/11/06(金) 00:03:35.28ID:2c+qTMiR いろんなGUIサンプルはGitHubに置いておいてくれればいいね
Wizardで生成されたら困る
Wizardで生成されたら困る
677デフォルトの名無しさん
2020/11/06(金) 08:08:26.77ID:IN01S+R+ テンプレートでもサンプルでもどっちでも良くて、
MSがそういうものを用意しないと流行らないと言っている。
そんなことをこんなところで言っても仕方ないけどな。
MSがそういうものを用意しないと流行らないと言っている。
そんなことをこんなところで言っても仕方ないけどな。
678デフォルトの名無しさん
2020/11/06(金) 11:00:07.02ID:PZBOyE9X コピペしかできない人なんだろう
679デフォルトの名無しさん
2020/11/06(金) 11:04:30.20ID:ifaT2orV WebFormsぽとぺたさんにも使ってもらうなら要るかもねえ
680デフォルトの名無しさん
2020/11/06(金) 11:06:53.95ID:FaBRf3CH >>677
ウィザードでサンプル出力しろという主張だったのに都合よく主張変えるなよ
ウィザードでサンプル出力しろという主張だったのに都合よく主張変えるなよ
681デフォルトの名無しさん
2020/11/06(金) 12:30:57.02ID:IN01S+R+ MSはWebFormsの代替としてBlazor使えって言ってる。
使いたいがこれではハードル高いだろ。
外部の会社が作ってるUIコンポーネント集入れないと使い物にならん。
仕組み上ポトペタは無理としても、それに代わる何かがないと、学習コストがかかって採用されないよという話。
ウィザードでゴリゴリの画面が作られのもまずいというのはわかるが、さすがにシンプルすぎやせんか。
使いたいがこれではハードル高いだろ。
外部の会社が作ってるUIコンポーネント集入れないと使い物にならん。
仕組み上ポトペタは無理としても、それに代わる何かがないと、学習コストがかかって採用されないよという話。
ウィザードでゴリゴリの画面が作られのもまずいというのはわかるが、さすがにシンプルすぎやせんか。
682デフォルトの名無しさん
2020/11/06(金) 12:39:05.16ID:weK94EqQ 単に自分の能力が足りてないだけじゃないの
まー言うとするなら
WebFormsのように基本的なコントロールは入れてほしい
って感じ?
サンプル云々の話じゃないよね
たぶん
まー言うとするなら
WebFormsのように基本的なコントロールは入れてほしい
って感じ?
サンプル云々の話じゃないよね
たぶん
683デフォルトの名無しさん
2020/11/06(金) 12:42:45.58ID:hgF+gIaZ WebFormsってそんなに便利だったっけ?
あっという間にMVCに置き換えられたからわからねえや
あっという間にMVCに置き換えられたからわからねえや
684デフォルトの名無しさん
2020/11/06(金) 13:08:43.58ID:f02e0Zl0 MVCにすら移行出来なかった層の
最後の救済目的がBlazorだからだろう。
最後の救済目的がBlazorだからだろう。
685デフォルトの名無しさん
2020/11/06(金) 13:11:07.93ID:2c+qTMiR686デフォルトの名無しさん
2020/11/07(土) 22:13:36.96ID:fFUf4t5z Entity Framework使ってる人、Migration機能は使ってる?
Migration使うほうが複雑になる気がするんだけどどうだろう
Migrationのメリットが見えてこない
PostgreSQLのpgAdminとか
RDBの管理ツールで直接、スキーマの作成や変更をしてる。
Migration使うほうが複雑になる気がするんだけどどうだろう
Migrationのメリットが見えてこない
PostgreSQLのpgAdminとか
RDBの管理ツールで直接、スキーマの作成や変更をしてる。
687デフォルトの名無しさん
2020/11/07(土) 23:04:04.86ID:/xSkaoCp Ruby on Rails では、SQLite, PostgreSQL, MySQL の3大DB を、1つのファイルで定義できる(抽象化)。
Migration 用のファイルも、自動的に作られる
Roll Back もできる
Scaffold という魔法の呪文で、CRUD アプリが自動的にできる
Migration 用のファイルも、自動的に作られる
Roll Back もできる
Scaffold という魔法の呪文で、CRUD アプリが自動的にできる
688デフォルトの名無しさん
2020/11/07(土) 23:14:14.61ID:WU4iiwmR >>687
ルビーはどうでもいい
ルビーはどうでもいい
689デフォルトの名無しさん
2020/11/07(土) 23:33:27.49ID:z61Fk2tn >>686
アプリでSqliteなどのローカルDBでは凄く有効だが、サーバー弄れる場合は手動でいいと思うわ
アプリでSqliteなどのローカルDBでは凄く有効だが、サーバー弄れる場合は手動でいいと思うわ
690デフォルトの名無しさん
2020/11/08(日) 05:36:39.88ID:t+zVbDF+ >>687
rollbackもできるというけどそれがMigrationの主要機能だし
rollbackできなかったら意味ないでしょ
Entity FrameworkのMigrationにもrollbackある。もちろんScaffoldもある
Rubyのコマンド見てみたがEFのMigrationと似てる気がした。
ORMが履歴を持つことでrollbackできるようになる半面、長ったらしいコードが
生成されその記述を理解しないといけなくなる。
DB側のカラムに制約とかデータ型とか細かく設定するべきだが
ORM使わずにpgAdmin, SQL Workbenchでやるほうが速いしわかりやすい。
さらにORM経由は操作できる範囲が限定される。
SQL使ってできる操作>ORM使ってできる操作。
rollbackもできるというけどそれがMigrationの主要機能だし
rollbackできなかったら意味ないでしょ
Entity FrameworkのMigrationにもrollbackある。もちろんScaffoldもある
Rubyのコマンド見てみたがEFのMigrationと似てる気がした。
ORMが履歴を持つことでrollbackできるようになる半面、長ったらしいコードが
生成されその記述を理解しないといけなくなる。
DB側のカラムに制約とかデータ型とか細かく設定するべきだが
ORM使わずにpgAdmin, SQL Workbenchでやるほうが速いしわかりやすい。
さらにORM経由は操作できる範囲が限定される。
SQL使ってできる操作>ORM使ってできる操作。
691デフォルトの名無しさん
2020/11/08(日) 05:42:09.04ID:t+zVbDF+692デフォルトの名無しさん
2020/11/08(日) 09:47:27.03ID:SqlrOE3Q それ言うならそもそもEntity Frameworkの存在意義自体がない気もするけど
693デフォルトの名無しさん
2020/11/08(日) 10:00:24.59ID:SqlrOE3Q あー、SQL自動生成だけでも意義はあるか
まぁ、単に開発中のコードとデータベース同期を楽にする機能でしかないから
使いたければ使えばいいし
データベース熟知してて自分でDBスキーマ決めたいのならそうすればいいだけの話
まぁ、単に開発中のコードとデータベース同期を楽にする機能でしかないから
使いたければ使えばいいし
データベース熟知してて自分でDBスキーマ決めたいのならそうすればいいだけの話
694デフォルトの名無しさん
2020/11/08(日) 11:17:03.03ID:+pLcijcy いちいち手作業でDBにつないで順番を間違えないように慎重にSQL実行して…
後で困らないようにどんなSQLを実行したかリリース履歴台帳に記入して…
手作業だからテストという概念もなくて…
これちょっとアナログすぎだしめんどくさいし間違えやすいんじゃねえか?って疑問を持つところがスタート地点
疑問すら持てないなら開発者として必要なセンスが欠けてる
紙とハンコのほうが性に合うオールドタイプならそのまま手作業を続けてどうぞ
ここは未開の原始時代
実行するSQLはファイルにしよう
SQLファイルのアップロードと実行はshellで自動化しよう
shellをソースコードと同じ所でバージョン管理したら便利だな
shellがバグってたらやばいから本番レプリケーションで事前にテストしよう
同じshellを間違えて実行したらやばいから実行履歴もテーブルで管理して多重実行を避けよう
これ全部1つのコマンドでできるように整備しよう
このように不便さを自動化で解消できたならすこしマシになった段階
産業革命の始まり
便利だけど色々と拙くまだまだコスパが悪い
shellは便利だけどオレオレ感が強くて属人生が高く保守しにくいな
なにか開発者間で共通認識となるフレームワークがあれば便利だろうな
MigrationをC#で書きたい場合もあるよな
そもそもshellの実行すらめんどくさいんじゃないか
などなど細かい不満点を解消していって出来上がったのがMigration系フレームワーク
ここがひとまずのゴール
より洗練されてエコな現代テクノロジの集大成
後で困らないようにどんなSQLを実行したかリリース履歴台帳に記入して…
手作業だからテストという概念もなくて…
これちょっとアナログすぎだしめんどくさいし間違えやすいんじゃねえか?って疑問を持つところがスタート地点
疑問すら持てないなら開発者として必要なセンスが欠けてる
紙とハンコのほうが性に合うオールドタイプならそのまま手作業を続けてどうぞ
ここは未開の原始時代
実行するSQLはファイルにしよう
SQLファイルのアップロードと実行はshellで自動化しよう
shellをソースコードと同じ所でバージョン管理したら便利だな
shellがバグってたらやばいから本番レプリケーションで事前にテストしよう
同じshellを間違えて実行したらやばいから実行履歴もテーブルで管理して多重実行を避けよう
これ全部1つのコマンドでできるように整備しよう
このように不便さを自動化で解消できたならすこしマシになった段階
産業革命の始まり
便利だけど色々と拙くまだまだコスパが悪い
shellは便利だけどオレオレ感が強くて属人生が高く保守しにくいな
なにか開発者間で共通認識となるフレームワークがあれば便利だろうな
MigrationをC#で書きたい場合もあるよな
そもそもshellの実行すらめんどくさいんじゃないか
などなど細かい不満点を解消していって出来上がったのがMigration系フレームワーク
ここがひとまずのゴール
より洗練されてエコな現代テクノロジの集大成
695デフォルトの名無しさん
2020/11/08(日) 11:27:42.43ID:ywUIYUdi ORM全般に言えることだけど、複雑になってくると使い物にならなくなる。
sansanもEFをDapperに置き換えたって発表してた。
正規化するのが正解じゃない時もあるし、サロゲートキーで対応
sansanもEFをDapperに置き換えたって発表してた。
正規化するのが正解じゃない時もあるし、サロゲートキーで対応
696デフォルトの名無しさん
2020/11/08(日) 11:32:46.67ID:ywUIYUdi 途中で書き込んでしまった。
サロゲートキーだけではうまくいかない場合もある。
サロゲートキーだけではうまくいかない場合もある。
697デフォルトの名無しさん
2020/11/08(日) 11:52:36.61ID:+pLcijcy >>695
CQRSのCではEFのほうが遥かに洗練されてる
Qでは高速で複雑なSQLを書きたくなる場合が増えてくるのでDapperが有利になる
多くの開発者が複雑化したQのせいでEFは使えないと思い込んでいるがEFはDapperと共存可能だ
更にいうと昔と違ってEFは随分と速くなった
ネイティブSQLもサポートしている
Dapperに頼らなくてもQを上手く実装することができるようなってる
CQRSのCではEFのほうが遥かに洗練されてる
Qでは高速で複雑なSQLを書きたくなる場合が増えてくるのでDapperが有利になる
多くの開発者が複雑化したQのせいでEFは使えないと思い込んでいるがEFはDapperと共存可能だ
更にいうと昔と違ってEFは随分と速くなった
ネイティブSQLもサポートしている
Dapperに頼らなくてもQを上手く実装することができるようなってる
698デフォルトの名無しさん
2020/11/08(日) 12:10:46.89ID:phcs9Wf3 >>693
凄くどうでもいい事で申し訳ないがIDがSQL
凄くどうでもいい事で申し訳ないがIDがSQL
699デフォルトの名無しさん
2020/11/08(日) 12:11:09.24ID:uTVwuNgX >>697
もう全然Blazor関係ない話で恐縮だけど…
大抵のDBって命名規約がスネークケースだよね。
しかも大文字か小文字のどっちか。
一度モデルファーストで作ったテーブルはキャメルケースで作られるから、生のSQL発行しようとしたらカラムIDを全部ダブルクォーテーションで括る必要があって苦労した苦い思い出がある。
LINQと生SQLどっちも使うとなるとこの問題に引っかかる。
自分のEFの知識が数年まえで止まってるのでいまはいい仕組みがあるのかな。
Dapperはパラメータで勝手にマッピングしてくれるから助かる。
もう全然Blazor関係ない話で恐縮だけど…
大抵のDBって命名規約がスネークケースだよね。
しかも大文字か小文字のどっちか。
一度モデルファーストで作ったテーブルはキャメルケースで作られるから、生のSQL発行しようとしたらカラムIDを全部ダブルクォーテーションで括る必要があって苦労した苦い思い出がある。
LINQと生SQLどっちも使うとなるとこの問題に引っかかる。
自分のEFの知識が数年まえで止まってるのでいまはいい仕組みがあるのかな。
Dapperはパラメータで勝手にマッピングしてくれるから助かる。
700デフォルトの名無しさん
2020/11/08(日) 12:42:48.71ID:QCCK7Xg4 >>699
postgresqlは特殊な仕様だからハマりやすいね
なのでNpgsqlのEFにはUseSnakeCaseNamingConventionというオプションがある
他のDBは特にハマった記憶がない
postgresqlは特殊な仕様だからハマりやすいね
なのでNpgsqlのEFにはUseSnakeCaseNamingConventionというオプションがある
他のDBは特にハマった記憶がない
701デフォルトの名無しさん
2020/11/08(日) 12:54:19.78ID:t+zVbDF+ >>692-693
逆だよ。CRUDにEF使うのは便利だから意味がある。
C#のコードが短くなるし直感的にかける
だがスキーマの作成、変更でEF使うとC#のコードが長くなってしまう。
SQL側でダイレクトに変更すればすむものを履歴を持たせて
C#側から操作するから手順が増える。
スキーマが自動生成のものでいいってのはDB知らない奴だな
てきとうにつくるとパフォーマンス劣化する
逆だよ。CRUDにEF使うのは便利だから意味がある。
C#のコードが短くなるし直感的にかける
だがスキーマの作成、変更でEF使うとC#のコードが長くなってしまう。
SQL側でダイレクトに変更すればすむものを履歴を持たせて
C#側から操作するから手順が増える。
スキーマが自動生成のものでいいってのはDB知らない奴だな
てきとうにつくるとパフォーマンス劣化する
702デフォルトの名無しさん
2020/11/08(日) 12:57:37.72ID:WJSuSySW めんどくさいことになりそうな時は、RubyやRailsを勧めよう!
703デフォルトの名無しさん
2020/11/08(日) 13:03:31.26ID:t+zVbDF+704デフォルトの名無しさん
2020/11/08(日) 13:08:46.91ID:QCCK7Xg4 >>701
最近のEFは良くなってる
ほぼ想像どおりのスキーマを出力してくれる
とはいえ完璧とも言えない
完璧を求めるならMigrationを生SQLで手書きすることもできる
SQLを手書きしたいという要求のためにMigrationの全機能を手放すのは惜しい
最近のEFは良くなってる
ほぼ想像どおりのスキーマを出力してくれる
とはいえ完璧とも言えない
完璧を求めるならMigrationを生SQLで手書きすることもできる
SQLを手書きしたいという要求のためにMigrationの全機能を手放すのは惜しい
705デフォルトの名無しさん
2020/11/08(日) 13:11:07.00ID:t+zVbDF+706デフォルトの名無しさん
2020/11/08(日) 13:15:04.98ID:QCCK7Xg4 >>703
いやいやスキーマを変更したあとにテストじゃ遅いだろ
Migrationをしてからテストするんじゃない
テスト済のMigrationを適用するんだ
ちなみにMigrationはアプリケーションをデプロイするだけなので手順ミスは最小化される
手作業でSQLを実行するとSQL数に比例してミスが増える
いやいやスキーマを変更したあとにテストじゃ遅いだろ
Migrationをしてからテストするんじゃない
テスト済のMigrationを適用するんだ
ちなみにMigrationはアプリケーションをデプロイするだけなので手順ミスは最小化される
手作業でSQLを実行するとSQL数に比例してミスが増える
707デフォルトの名無しさん
2020/11/08(日) 13:17:19.61ID:t+zVbDF+ >>704
ORM、DBのベンチマークたまに見てるし速くなってるのは知ってるよ。
ただstringとかの最適なデータサイズは開発者じゃないとわからないから
最適なスキーマ作ろうと思うとやっぱりSQLでスキーマ作成、変更したほうが
いいってのは今後も変わらないと思う
ORM、DBのベンチマークたまに見てるし速くなってるのは知ってるよ。
ただstringとかの最適なデータサイズは開発者じゃないとわからないから
最適なスキーマ作ろうと思うとやっぱりSQLでスキーマ作成、変更したほうが
いいってのは今後も変わらないと思う
708デフォルトの名無しさん
2020/11/08(日) 13:25:09.54ID:t+zVbDF+ >>706
根本的に会話になってない
俺の言ってるスキーマ変更するってのは決定事項なんだよ
既に正常に動くプログラムがあってそれをスキーマ変更するんだから
スキーマ変更した後にテストしないと意味ない。
Migrationでrollbackすることもない
動くようになるまで必要ならばC#側を変更するからだ。
なんかうまく動かないからスキーマ変更やめましょうということにはならない。
根本的に会話になってない
俺の言ってるスキーマ変更するってのは決定事項なんだよ
既に正常に動くプログラムがあってそれをスキーマ変更するんだから
スキーマ変更した後にテストしないと意味ない。
Migrationでrollbackすることもない
動くようになるまで必要ならばC#側を変更するからだ。
なんかうまく動かないからスキーマ変更やめましょうということにはならない。
709デフォルトの名無しさん
2020/11/08(日) 13:33:40.14ID:QCCK7Xg4 >>707
EFモデルファーストは文字列の長さなど細かいコントロールも当然可能だ
より詳細な調整をしたい場合はMigrationを手書きしてMigrationBuilderに生えてるDDLラッパーを呼び出せば良い
DDLラッパーはCreateTableメソッド、DropTableメソッドなど.NETのメソッドではあるがDLLを書くのと非常に近い感覚で使うことができる
これはラッパーなので複数ベンダに対応することができる
代わりに最大公約数的な機能に制限されるが十分な機能揃っている
完全にMigrationをコントロールしたい場合には生のSQLを書いてもいい
EFはもちろん生のSQLもサポートしている
原始時代や産業革命時代に行っていたような作業はすべてEFでできる
ただし生のSQLを使うとベンダ依存が発生するのでそこはトレードオフだ
更に加えてMigrationとして.NETのカスタムコードを実行することが可能だ
例えば今まで保護されていなかった個人情報をC#で暗号化して保存し直すといったことも可能だ
手作業でSQLを実行する
EFモデルファーストは文字列の長さなど細かいコントロールも当然可能だ
より詳細な調整をしたい場合はMigrationを手書きしてMigrationBuilderに生えてるDDLラッパーを呼び出せば良い
DDLラッパーはCreateTableメソッド、DropTableメソッドなど.NETのメソッドではあるがDLLを書くのと非常に近い感覚で使うことができる
これはラッパーなので複数ベンダに対応することができる
代わりに最大公約数的な機能に制限されるが十分な機能揃っている
完全にMigrationをコントロールしたい場合には生のSQLを書いてもいい
EFはもちろん生のSQLもサポートしている
原始時代や産業革命時代に行っていたような作業はすべてEFでできる
ただし生のSQLを使うとベンダ依存が発生するのでそこはトレードオフだ
更に加えてMigrationとして.NETのカスタムコードを実行することが可能だ
例えば今まで保護されていなかった個人情報をC#で暗号化して保存し直すといったことも可能だ
手作業でSQLを実行する
710デフォルトの名無しさん
2020/11/08(日) 13:34:04.97ID:QCCK7Xg4 手作業でSQLを実行するだけではこのような複雑なMigrationには対応できない
711デフォルトの名無しさん
2020/11/08(日) 13:38:33.92ID:QCCK7Xg4 >>708
決定事項だろうがなんだろうがテストは必要だ
これからDBに対して行う変更を事前にテストする
テスト済の変更を確実にミスなく適用する
これを実行するための最もスマートな方法がMigrationだ
先程も書いたがこれをオレオレshellで代用することはできる
しかしそれは洗練された手法ではない
産業革命時代のやり方でしかない
もちろん適用したあとに最終チェックとしてテストを行うことはこちらとしても全く否定していない
決定事項だろうがなんだろうがテストは必要だ
これからDBに対して行う変更を事前にテストする
テスト済の変更を確実にミスなく適用する
これを実行するための最もスマートな方法がMigrationだ
先程も書いたがこれをオレオレshellで代用することはできる
しかしそれは洗練された手法ではない
産業革命時代のやり方でしかない
もちろん適用したあとに最終チェックとしてテストを行うことはこちらとしても全く否定していない
712デフォルトの名無しさん
2020/11/08(日) 13:39:48.71ID:uTVwuNgX713デフォルトの名無しさん
2020/11/08(日) 13:47:17.26ID:QCCK7Xg4 なおMigrationとその後のテストのどちらかが失敗した場合は
途中まで適用したMigrationをロールバックしなければならない
ロールバックはEFの機能で行うかDBバックアップをリストアするかどちらかだが
EFの機能で実施したほうが圧倒的に速い
リストアは最後の手段と考えよう
バグを放置してアプリケーションコードを修整するなどもってのほかである
これはサービスの停止時間を悪戯に伸ばすだけで損失を増やすばかりでなんの利益も産まない
バグがあったらロールバックを行い
Migrationとアプリケーション双方を見直し修整しテストする
テストした後にまたMigrationを適用する
これが現代人の働き方だ
途中まで適用したMigrationをロールバックしなければならない
ロールバックはEFの機能で行うかDBバックアップをリストアするかどちらかだが
EFの機能で実施したほうが圧倒的に速い
リストアは最後の手段と考えよう
バグを放置してアプリケーションコードを修整するなどもってのほかである
これはサービスの停止時間を悪戯に伸ばすだけで損失を増やすばかりでなんの利益も産まない
バグがあったらロールバックを行い
Migrationとアプリケーション双方を見直し修整しテストする
テストした後にまたMigrationを適用する
これが現代人の働き方だ
714デフォルトの名無しさん
2020/11/08(日) 14:14:26.86ID:jcyTFABg そういやMigrationって、データベースのデータの移行とかはできるもんなの?
できるのなら素人保守のSQLServerからPostgreSQLのマネージドデータベースに変えたいんだけど・・・・
できるのなら素人保守のSQLServerからPostgreSQLのマネージドデータベースに変えたいんだけど・・・・
715デフォルトの名無しさん
2020/11/08(日) 15:17:40.45ID:SqlrOE3Q >>714
自分でコードを書けば柔軟できると思うけど
あるクラスのあるプロパティを別のクラスに移したいみたいなのは
自動生成では無理だと思う。
個人的にはmigrationは本番環境で使うものじゃなくて
開発中のコードとそれテストするときのデータベースの同期を楽にするもの程度で認識してる
自分でコードを書けば柔軟できると思うけど
あるクラスのあるプロパティを別のクラスに移したいみたいなのは
自動生成では無理だと思う。
個人的にはmigrationは本番環境で使うものじゃなくて
開発中のコードとそれテストするときのデータベースの同期を楽にするもの程度で認識してる
716デフォルトの名無しさん
2020/11/08(日) 15:20:50.04ID:t+zVbDF+ >>714
Entity FrameworkのMigrationはそういう機能はないよ
スキーマ変更の履歴を保持してロールバックとかができるだけ
俺はロールバックしたことないからめんどくさくなってMigration使ってない
Managedの維持費のがSQL Serverのオンプレミス維持費より高いんでは?
SQL Serverなんてバックアップ、リカバリできれば運用かんたんでしょう
DBの種類変更したらデータ型互換性なくなるから慎重にテストしないといけない。
よほど問題ない限り安定稼働してるDBはいじらんほうがいいとおもうよ
Entity FrameworkのMigrationはそういう機能はないよ
スキーマ変更の履歴を保持してロールバックとかができるだけ
俺はロールバックしたことないからめんどくさくなってMigration使ってない
Managedの維持費のがSQL Serverのオンプレミス維持費より高いんでは?
SQL Serverなんてバックアップ、リカバリできれば運用かんたんでしょう
DBの種類変更したらデータ型互換性なくなるから慎重にテストしないといけない。
よほど問題ない限り安定稼働してるDBはいじらんほうがいいとおもうよ
717デフォルトの名無しさん
2020/11/09(月) 15:36:48.48ID:EZ2ViZol718デフォルトの名無しさん
2020/11/09(月) 22:46:28.72ID:FJFkj8NC 朝は動いていたStateHasChangedメソッドが、
昼になったら動かなくなった。
こんなセリフは一生使わないと思っていたが使わしてもらう。
何もしてないのに壊れた。
昼になったら動かなくなった。
こんなセリフは一生使わないと思っていたが使わしてもらう。
何もしてないのに壊れた。
719デフォルトの名無しさん
2020/11/09(月) 23:19:22.08ID:fNXcH97V 何もしてないなら壊れたことも観測できないはず
何かをしたのは明白だ
何かをしたのは明白だ
720デフォルトの名無しさん
2020/11/10(火) 02:27:35.40ID:903MPdZb ウソをつくのはやめろ
お前は息をした
お前は息をした
721デフォルトの名無しさん
2020/11/10(火) 13:07:54.58ID:XgTQB9rm 長時間動かしてたんだったら、ゴミだと間違われてGCに回収されちゃったんじゃないの?
722デフォルトの名無しさん
2020/11/10(火) 18:27:27.96ID:qdwPUA+1723デフォルトの名無しさん
2020/11/10(火) 20:49:01.81ID:qdwPUA+1 Nuget使って気付いたけど.NET 5.0来てるな
RCなの知らずにNugetでUpdateしてしまった
RCなの知らずにNugetでUpdateしてしまった
724718
2020/11/10(火) 21:35:46.33ID:MSfr+cVE 処理済み件数/全件数のパーセンテージ出してたんだけど
数値の型変えたり、全件数のカウントを変数に入れたりしたら出るようになったわ。
なんだったろうなあ…
なんらかの呼吸が悪さしたんだろうな…
数値の型変えたり、全件数のカウントを変数に入れたりしたら出るようになったわ。
なんだったろうなあ…
なんらかの呼吸が悪さしたんだろうな…
725デフォルトの名無しさん
2020/11/10(火) 21:42:11.59ID:qdwPUA+1 リリースノート見ると.NET 5.0 RC2けっこう前にでてたようだ
EFとかはNugetのPackageで5.0対応のがでてそれで気付いた。
バグ人柱になりたくないのでもう少し.NET Core3.1でいくわ
.NET Coreという名前ももうおしまいみたいだし
EFとかはNugetのPackageで5.0対応のがでてそれで気付いた。
バグ人柱になりたくないのでもう少し.NET Core3.1でいくわ
.NET Coreという名前ももうおしまいみたいだし
726デフォルトの名無しさん
2020/11/11(水) 05:33:40.57ID:PR+fp9tK New Git experience in Visual Studio 2019
https://www.youtube.com/watch?v=UHrAg3iKoe0
https://www.youtube.com/watch?v=UHrAg3iKoe0
727デフォルトの名無しさん
2020/11/11(水) 07:22:02.02ID:euPQaLy/ デバッグに至るまでになかなか時間がかかるんだが、皆さんPCのスペックどれくらい積んでますか
会社のパソコンSSDは積んでるけど、メモリが8GBしかない。
会社のパソコンSSDは積んでるけど、メモリが8GBしかない。
728デフォルトの名無しさん
2020/11/11(水) 07:47:11.57ID:PR+fp9tK >>727
8GBあれば仮想化以外は余裕でしょ
遅いならCPUがへぼすぎるんじゃないかな?
CPU型番とPassmarkスコアは?
Dockerとかの仮想化つかってる?
仮想化つかうと滅茶苦茶おもいのは仕方ない
あとVisual Studioの中のSQL Server Object Explorer
あれは重すぎるな
DB専用の管理ツール使うほうが快適
8GBあれば仮想化以外は余裕でしょ
遅いならCPUがへぼすぎるんじゃないかな?
CPU型番とPassmarkスコアは?
Dockerとかの仮想化つかってる?
仮想化つかうと滅茶苦茶おもいのは仕方ない
あとVisual Studioの中のSQL Server Object Explorer
あれは重すぎるな
DB専用の管理ツール使うほうが快適
729デフォルトの名無しさん
2020/11/11(水) 12:45:25.01ID:z8u+cv+u 新規開発をするに当たってフロントの言語選定に悩む
Blazorを選択したいところなんだけどSilverLightのハシゴ外をされた件が怖すぎて
Blazorを選択したいところなんだけどSilverLightのハシゴ外をされた件が怖すぎて
730デフォルトの名無しさん
2020/11/11(水) 12:47:54.87ID:z8u+cv+u クライアント版で開発すればサーバー側の実装まで一緒に死ぬことはないと思われるんだけど…
ReactじゃなくてBlazorを選ぶのか?と言われると揺らぐ
ReactじゃなくてBlazorを選ぶのか?と言われると揺らぐ
731デフォルトの名無しさん
2020/11/11(水) 13:30:01.83ID:7A3xK0xJ732デフォルトの名無しさん
2020/11/11(水) 13:45:18.87ID:y64JAG21 フロントは使い捨て
733デフォルトの名無しさん
2020/11/11(水) 14:55:53.43ID:PR+fp9tK >>729
Silverlightと違ってWasmはstandardだから無くならない。
BlazorはMSだから長期サポートされる。
Reactとかは人気落ちたらセキュリティパッチすらでるか怪しい
サポート期間の長さでMSより安心できるベンダーはない
Blazor WebAssemblyならば、
server-sideをASP.NET MVC + Web APIsで作るわけで
これ以上、安心できるserver-sideはないだろう。
速度も速いし長期サポートあるしC#使えるし。
もしBlazor廃れたらWeb UI frameworkだけ入れ替えればいい
Silverlightと違ってWasmはstandardだから無くならない。
BlazorはMSだから長期サポートされる。
Reactとかは人気落ちたらセキュリティパッチすらでるか怪しい
サポート期間の長さでMSより安心できるベンダーはない
Blazor WebAssemblyならば、
server-sideをASP.NET MVC + Web APIsで作るわけで
これ以上、安心できるserver-sideはないだろう。
速度も速いし長期サポートあるしC#使えるし。
もしBlazor廃れたらWeb UI frameworkだけ入れ替えればいい
734デフォルトの名無しさん
2020/11/11(水) 16:54:13.95ID:zCFWfmOs 速度が速いとウソをつく
↓
激遅の現状を突っ込まれる
↓
速度など問題じゃないと強がる
↓
激遅の現状を突っ込まれる
↓
速度など問題じゃないと強がる
735デフォルトの名無しさん
2020/11/11(水) 16:56:17.09ID:hOXuGr8Y MS新フレームワークBlazor、Lighthouseで23点を叩き出すw
https://mevius.5ch.net/test/read.cgi/tech/1596698340/
https://mevius.5ch.net/test/read.cgi/tech/1596698340/
736デフォルトの名無しさん
2020/11/11(水) 17:34:11.90ID:RGkWwZkF ドキュメントを読んでいて、コンポーネント間コミュニケーションのパラメーターやカスケードパラメーターが出てきたんだけどさ
便利そうだけど、これって使ったらコンポーネント同士が強固に依存しちゃうんじゃないの?
ファイルの編集・差し替えを繰り返すうちにスパゲティー化してきたり、いつか破綻しちゃわないか気になるな
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/components/?view=aspnetcore-5.0#component-parameters
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/components/cascading-values-and-parameters?view=aspnetcore-5.0
便利そうだけど、これって使ったらコンポーネント同士が強固に依存しちゃうんじゃないの?
ファイルの編集・差し替えを繰り返すうちにスパゲティー化してきたり、いつか破綻しちゃわないか気になるな
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/components/?view=aspnetcore-5.0#component-parameters
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/components/cascading-values-and-parameters?view=aspnetcore-5.0
737デフォルトの名無しさん
2020/11/11(水) 18:34:49.69ID:z8u+cv+u >>733
MSのLTSはあまり期待してないなぁ
ソース管理についてもTFSがフェードアウトしてる感あるよね?
かと言って、Githubにデータ移行はできないし
MSはこういう所が横暴でロックインし難い
MSのLTSはあまり期待してないなぁ
ソース管理についてもTFSがフェードアウトしてる感あるよね?
かと言って、Githubにデータ移行はできないし
MSはこういう所が横暴でロックインし難い
738デフォルトの名無しさん
2020/11/11(水) 18:50:22.79ID:iQgtLl5J >>736
上位コンポーネントからパラメータで渡す分には問題ないと思う
通常のプログラミングでいうと関数的な使い方
カスケードプロパティは危険な臭いがプンプンする
これはグローバル変数のようなもの
俺はカスケードプロパティは全く使う気がしない
パラメータで渡さない場合は状態を管理するクラスを1個作ってInjectするといい
コンポーネントからはこのクラス経由でしか状態にアクセスしない
これはインメモリリポジトリのようなもの
上位コンポーネントからパラメータで渡す分には問題ないと思う
通常のプログラミングでいうと関数的な使い方
カスケードプロパティは危険な臭いがプンプンする
これはグローバル変数のようなもの
俺はカスケードプロパティは全く使う気がしない
パラメータで渡さない場合は状態を管理するクラスを1個作ってInjectするといい
コンポーネントからはこのクラス経由でしか状態にアクセスしない
これはインメモリリポジトリのようなもの
739デフォルトの名無しさん
2020/11/11(水) 19:05:28.34ID:PR+fp9tK740デフォルトの名無しさん
2020/11/11(水) 19:07:30.66ID:PR+fp9tK741デフォルトの名無しさん
2020/11/11(水) 19:23:06.81ID:TxKdQIKG 遅さに関してはMSの責任者が10倍遅いと言ってるし、
実際使うとともっさりしてんだよな。
サーバサイドのよりましだけど。
実際使うとともっさりしてんだよな。
サーバサイドのよりましだけど。
742デフォルトの名無しさん
2020/11/11(水) 19:32:33.32ID:PR+fp9tK743デフォルトの名無しさん
2020/11/11(水) 19:46:14.98ID:TxKdQIKG でも実際使うとともっさりしてんだよ。
JS interopの影響なのだろうけど、
処理概要を聞いたら感覚的に卒倒しとうなアーキテクチャだ。
サーバサイドのよりましだけど。
JS interopの影響なのだろうけど、
処理概要を聞いたら感覚的に卒倒しとうなアーキテクチャだ。
サーバサイドのよりましだけど。
744デフォルトの名無しさん
2020/11/11(水) 20:34:50.42ID:PR+fp9tK むやみにevent呼ばなければ遅くならない
高速化のtipsも書かれてる
Blazor Serverの名前も出てこないようだしまともに
ドキュメント読んでるとは思えない
高速化のtipsも書かれてる
Blazor Serverの名前も出てこないようだしまともに
ドキュメント読んでるとは思えない
745デフォルトの名無しさん
2020/11/11(水) 20:39:05.32ID:zCFWfmOs746デフォルトの名無しさん
2020/11/11(水) 20:45:42.57ID:Ka3nFfxe 激遅の現状を捏造する
の間違いだな
実際速くなってるよ.NET5
の間違いだな
実際速くなってるよ.NET5
747デフォルトの名無しさん
2020/11/11(水) 20:48:31.47ID:PR+fp9tK >>745
おまえアーキテクチャ全然理解してないのがバレバレ
backendとfrontendの違いも
WasmとBlazor serverの違いもわかってない
おまえはjQueryおじかweb app作れない奴だろうな
おまえアーキテクチャ全然理解してないのがバレバレ
backendとfrontendの違いも
WasmとBlazor serverの違いもわかってない
おまえはjQueryおじかweb app作れない奴だろうな
748デフォルトの名無しさん
2020/11/11(水) 20:51:59.41ID:TxKdQIKG Blazorはもともと高性能を目指したものではないからなーー。
https://ichi.pro/blazor-de-no-shumatsu-burauza-de-c-o-jikkosuru-118284362990616
開発者自身も了解している事じゃないの?
開発スタートの経緯を聞いてもそう思う。
偶然の産物なんだよ。このプロダクトは。
https://ichi.pro/blazor-de-no-shumatsu-burauza-de-c-o-jikkosuru-118284362990616
開発者自身も了解している事じゃないの?
開発スタートの経緯を聞いてもそう思う。
偶然の産物なんだよ。このプロダクトは。
749デフォルトの名無しさん
2020/11/11(水) 21:27:58.47ID:z8u+cv+u750デフォルトの名無しさん
2020/11/11(水) 22:17:54.32ID:PR+fp9tK EdgeだけでもC#がnativeで動くようにしちゃえばいいのにな
MSがブラウザの独自エンジン開発放棄したのは失敗だった
まさかのIE12でもいいよ
C# native実行できちゃうやつな
MSがブラウザの独自エンジン開発放棄したのは失敗だった
まさかのIE12でもいいよ
C# native実行できちゃうやつな
751デフォルトの名無しさん
2020/11/11(水) 22:59:52.25ID:y64JAG21 メジャーフレームワークの事前ダウンロードオプションはそのうちサポートするんじゃないの
それか単にブラウザ拡張を作ればいい
事前キャッシュするだけだから簡単だろう
それか単にブラウザ拡張を作ればいい
事前キャッシュするだけだから簡単だろう
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【テレビ】25年ぶり復活「炎のチャレンジャー」南原清隆&菊池風磨がMC 懐かし「電流イライラ棒」も [湛然★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- ( ・᷄ὢ・᷅ )あ?
- 千葉県民だけどなんか地震あったらしいな
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 高市総理、睡眠時間30分😢
- 秋田大学のホームページがつながらなくなって1日以上経つのだが
- 【速報】高市早苗、起床 [779938112]
