【本命】Blazor スレ1【真打】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2020/07/20(月) 23:36:36.67ID:td0HkrQz
混沌を極めるWebアプリケーション界隈に現れた一筋の光明
型無し言語 JavaScript の悪夢を打ち払い
林立するエコシステムの亡霊を退散
アプリケーション開発者の希望となるMVVMを引っ提げて登場した真のSPA開発環境

Blazorを語る者よ、集え!

ASP.NET Core Blazor の概要
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/?view=aspnetcore-3.1
678デフォルトの名無しさん
垢版 |
2020/11/06(金) 11:00:07.02ID:PZBOyE9X
コピペしかできない人なんだろう
2020/11/06(金) 11:04:30.20ID:ifaT2orV
WebFormsぽとぺたさんにも使ってもらうなら要るかもねえ
2020/11/06(金) 11:06:53.95ID:FaBRf3CH
>>677
ウィザードでサンプル出力しろという主張だったのに都合よく主張変えるなよ
681デフォルトの名無しさん
垢版 |
2020/11/06(金) 12:30:57.02ID:IN01S+R+
MSはWebFormsの代替としてBlazor使えって言ってる。
使いたいがこれではハードル高いだろ。
外部の会社が作ってるUIコンポーネント集入れないと使い物にならん。

仕組み上ポトペタは無理としても、それに代わる何かがないと、学習コストがかかって採用されないよという話。

ウィザードでゴリゴリの画面が作られのもまずいというのはわかるが、さすがにシンプルすぎやせんか。
2020/11/06(金) 12:39:05.16ID:weK94EqQ
単に自分の能力が足りてないだけじゃないの

まー言うとするなら
WebFormsのように基本的なコントロールは入れてほしい
って感じ?

サンプル云々の話じゃないよね

たぶん
2020/11/06(金) 12:42:45.58ID:hgF+gIaZ
WebFormsってそんなに便利だったっけ?
あっという間にMVCに置き換えられたからわからねえや
2020/11/06(金) 13:08:43.58ID:f02e0Zl0
MVCにすら移行出来なかった層の
最後の救済目的がBlazorだからだろう。
685デフォルトの名無しさん
垢版 |
2020/11/06(金) 13:11:07.93ID:2c+qTMiR
>>681
リッチUIを最速で作りたいならWPF使えばいい
外から使い人にはWindows tabletとか持たせるだけ。
Bootstrapでだいぶ敷居さがったがCSSベースのデザインはめんどくさい

>>683
HTML, CSSをよく知らない人、デザイン苦手な人には便利だったんだと思う
ただ細かいデザイン制御ができない、吐き出すhtmlが汚いから
ASP.NET MVCにとってかわられた
686デフォルトの名無しさん
垢版 |
2020/11/07(土) 22:13:36.96ID:fFUf4t5z
Entity Framework使ってる人、Migration機能は使ってる?

Migration使うほうが複雑になる気がするんだけどどうだろう
Migrationのメリットが見えてこない

PostgreSQLのpgAdminとか
RDBの管理ツールで直接、スキーマの作成や変更をしてる。
2020/11/07(土) 23:04:04.86ID:/xSkaoCp
Ruby on Rails では、SQLite, PostgreSQL, MySQL の3大DB を、1つのファイルで定義できる(抽象化)。
Migration 用のファイルも、自動的に作られる

Roll Back もできる

Scaffold という魔法の呪文で、CRUD アプリが自動的にできる
2020/11/07(土) 23:14:14.61ID:WU4iiwmR
>>687
ルビーはどうでもいい
2020/11/07(土) 23:33:27.49ID:z61Fk2tn
>>686
アプリで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使ってできる操作。
691デフォルトの名無しさん
垢版 |
2020/11/08(日) 05:42:09.04ID:t+zVbDF+
>>687
RubyおじはASP.NET Coreは使えてるのか?
ASP.NET Core使えるなら低速なRails, Rubyなんて使わなくていいだろ

>>689
Sqlite以外ではMigration使ってないのか
本当にMigrationは誰得の機能かわからないわ
2020/11/08(日) 09:47:27.03ID:SqlrOE3Q
それ言うならそもそもEntity Frameworkの存在意義自体がない気もするけど
2020/11/08(日) 10:00:24.59ID:SqlrOE3Q
あー、SQL自動生成だけでも意義はあるか

まぁ、単に開発中のコードとデータベース同期を楽にする機能でしかないから
使いたければ使えばいいし
データベース熟知してて自分でDBスキーマ決めたいのならそうすればいいだけの話
2020/11/08(日) 11:17:03.03ID:+pLcijcy
いちいち手作業でDBにつないで順番を間違えないように慎重にSQL実行して…
後で困らないようにどんな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に置き換えたって発表してた。

正規化するのが正解じゃない時もあるし、サロゲートキーで対応
696デフォルトの名無しさん
垢版 |
2020/11/08(日) 11:32:46.67ID:ywUIYUdi
途中で書き込んでしまった。
サロゲートキーだけではうまくいかない場合もある。
2020/11/08(日) 11:52:36.61ID:+pLcijcy
>>695
CQRSのCではEFのほうが遥かに洗練されてる
Qでは高速で複雑なSQLを書きたくなる場合が増えてくるのでDapperが有利になる

多くの開発者が複雑化したQのせいでEFは使えないと思い込んでいるがEFはDapperと共存可能だ

更にいうと昔と違ってEFは随分と速くなった
ネイティブSQLもサポートしている
Dapperに頼らなくてもQを上手く実装することができるようなってる
2020/11/08(日) 12:10:46.89ID:phcs9Wf3
>>693
凄くどうでもいい事で申し訳ないがIDがSQL
699デフォルトの名無しさん
垢版 |
2020/11/08(日) 12:11:09.24ID:uTVwuNgX
>>697
もう全然Blazor関係ない話で恐縮だけど…

大抵のDBって命名規約がスネークケースだよね。
しかも大文字か小文字のどっちか。

一度モデルファーストで作ったテーブルはキャメルケースで作られるから、生のSQL発行しようとしたらカラムIDを全部ダブルクォーテーションで括る必要があって苦労した苦い思い出がある。
LINQと生SQLどっちも使うとなるとこの問題に引っかかる。

自分のEFの知識が数年まえで止まってるのでいまはいい仕組みがあるのかな。

Dapperはパラメータで勝手にマッピングしてくれるから助かる。
2020/11/08(日) 12:42:48.71ID:QCCK7Xg4
>>699
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知らない奴だな
てきとうにつくるとパフォーマンス劣化する
702デフォルトの名無しさん
垢版 |
2020/11/08(日) 12:57:37.72ID:WJSuSySW
めんどくさいことになりそうな時は、RubyやRailsを勧めよう!
2020/11/08(日) 13:03:31.26ID:t+zVbDF+
>>694
原始時代って履歴台帳なんて古臭い言葉つかってるおまえだろう

スキーマ変更したら直後にテストしてるに決まってる
あと間違いやすいのは複雑な手順をとるMigrationのほうだ
2020/11/08(日) 13:08:46.91ID:QCCK7Xg4
>>701
最近のEFは良くなってる
ほぼ想像どおりのスキーマを出力してくれる
とはいえ完璧とも言えない

完璧を求めるならMigrationを生SQLで手書きすることもできる
SQLを手書きしたいという要求のためにMigrationの全機能を手放すのは惜しい
2020/11/08(日) 13:11:07.00ID:t+zVbDF+
>>695
パフォーマンスの面でDapperは昔は意味あったとおもうけど
いまのEF CoreとASP.NET Coreだとかなり速いからDapper選ぶ意味がほぼないと思う。

EFで満足できない箇所だけピンポイントでダイレクトにSQL使うか、
ストアドプロシージャを使えばいいと思うわ

>>697
たしかにEF Core速くなってるね
あとストレージがSSDになったのも超大きい
2020/11/08(日) 13:15:04.98ID:QCCK7Xg4
>>703
いやいやスキーマを変更したあとにテストじゃ遅いだろ
Migrationをしてからテストするんじゃない
テスト済のMigrationを適用するんだ

ちなみにMigrationはアプリケーションをデプロイするだけなので手順ミスは最小化される
手作業でSQLを実行するとSQL数に比例してミスが増える
2020/11/08(日) 13:17:19.61ID:t+zVbDF+
>>704
ORM、DBのベンチマークたまに見てるし速くなってるのは知ってるよ。

ただstringとかの最適なデータサイズは開発者じゃないとわからないから
最適なスキーマ作ろうと思うとやっぱりSQLでスキーマ作成、変更したほうが
いいってのは今後も変わらないと思う
2020/11/08(日) 13:25:09.54ID:t+zVbDF+
>>706
根本的に会話になってない
俺の言ってるスキーマ変更するってのは決定事項なんだよ
既に正常に動くプログラムがあってそれをスキーマ変更するんだから
スキーマ変更した後にテストしないと意味ない。

Migrationでrollbackすることもない
動くようになるまで必要ならばC#側を変更するからだ。
なんかうまく動かないからスキーマ変更やめましょうということにはならない。
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を実行する
2020/11/08(日) 13:34:04.97ID:QCCK7Xg4
手作業でSQLを実行するだけではこのような複雑なMigrationには対応できない
2020/11/08(日) 13:38:33.92ID:QCCK7Xg4
>>708
決定事項だろうがなんだろうがテストは必要だ

これからDBに対して行う変更を事前にテストする
テスト済の変更を確実にミスなく適用する

これを実行するための最もスマートな方法がMigrationだ
先程も書いたがこれをオレオレshellで代用することはできる
しかしそれは洗練された手法ではない
産業革命時代のやり方でしかない

もちろん適用したあとに最終チェックとしてテストを行うことはこちらとしても全く否定していない
712デフォルトの名無しさん
垢版 |
2020/11/08(日) 13:39:48.71ID:uTVwuNgX
>>700
そんなのあるのか。EFにもどろうかなあ。
あとはバルクインサートやバルクアップデートができたら完璧。
2020/11/08(日) 13:47:17.26ID:QCCK7Xg4
なおMigrationとその後のテストのどちらかが失敗した場合は
途中まで適用したMigrationをロールバックしなければならない
ロールバックはEFの機能で行うかDBバックアップをリストアするかどちらかだが
EFの機能で実施したほうが圧倒的に速い
リストアは最後の手段と考えよう

バグを放置してアプリケーションコードを修整するなどもってのほかである
これはサービスの停止時間を悪戯に伸ばすだけで損失を増やすばかりでなんの利益も産まない

バグがあったらロールバックを行い
Migrationとアプリケーション双方を見直し修整しテストする
テストした後にまたMigrationを適用する
これが現代人の働き方だ
714デフォルトの名無しさん
垢版 |
2020/11/08(日) 14:14:26.86ID:jcyTFABg
そういやMigrationって、データベースのデータの移行とかはできるもんなの?
できるのなら素人保守のSQLServerからPostgreSQLのマネージドデータベースに変えたいんだけど・・・・
2020/11/08(日) 15:17:40.45ID:SqlrOE3Q
>>714
自分でコードを書けば柔軟できると思うけど
あるクラスのあるプロパティを別のクラスに移したいみたいなのは
自動生成では無理だと思う。

個人的にはmigrationは本番環境で使うものじゃなくて
開発中のコードとそれテストするときのデータベースの同期を楽にするもの程度で認識してる
2020/11/08(日) 15:20:50.04ID:t+zVbDF+
>>714
Entity FrameworkのMigrationはそういう機能はないよ
スキーマ変更の履歴を保持してロールバックとかができるだけ
俺はロールバックしたことないからめんどくさくなってMigration使ってない

Managedの維持費のがSQL Serverのオンプレミス維持費より高いんでは?
SQL Serverなんてバックアップ、リカバリできれば運用かんたんでしょう
DBの種類変更したらデータ型互換性なくなるから慎重にテストしないといけない。
よほど問題ない限り安定稼働してるDBはいじらんほうがいいとおもうよ
2020/11/09(月) 15:36:48.48ID:EZ2ViZol
https://www.youtube.com/watch?v=VPB_J6Egi28
718デフォルトの名無しさん
垢版 |
2020/11/09(月) 22:46:28.72ID:FJFkj8NC
朝は動いていたStateHasChangedメソッドが、
昼になったら動かなくなった。
こんなセリフは一生使わないと思っていたが使わしてもらう。
何もしてないのに壊れた。
2020/11/09(月) 23:19:22.08ID:fNXcH97V
何もしてないなら壊れたことも観測できないはず
何かをしたのは明白だ
2020/11/10(火) 02:27:35.40ID:903MPdZb
ウソをつくのはやめろ
お前は息をした
721デフォルトの名無しさん
垢版 |
2020/11/10(火) 13:07:54.58ID:XgTQB9rm
長時間動かしてたんだったら、ゴミだと間違われてGCに回収されちゃったんじゃないの?
2020/11/10(火) 18:27:27.96ID:qdwPUA+1
>>718
昼休みだろ
もしくはハードウェア、ネットワーク障害
723デフォルトの名無しさん
垢版 |
2020/11/10(火) 20:49:01.81ID:qdwPUA+1
Nuget使って気付いたけど.NET 5.0来てるな

RCなの知らずにNugetでUpdateしてしまった
724718
垢版 |
2020/11/10(火) 21:35:46.33ID:MSfr+cVE
処理済み件数/全件数のパーセンテージ出してたんだけど
数値の型変えたり、全件数のカウントを変数に入れたりしたら出るようになったわ。
なんだったろうなあ…
なんらかの呼吸が悪さしたんだろうな…
2020/11/10(火) 21:42:11.59ID:qdwPUA+1
リリースノート見ると.NET 5.0 RC2けっこう前にでてたようだ
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
727デフォルトの名無しさん
垢版 |
2020/11/11(水) 07:22:02.02ID:euPQaLy/
デバッグに至るまでになかなか時間がかかるんだが、皆さんPCのスペックどれくらい積んでますか
会社のパソコン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専用の管理ツール使うほうが快適
2020/11/11(水) 12:45:25.01ID:z8u+cv+u
新規開発をするに当たってフロントの言語選定に悩む
Blazorを選択したいところなんだけどSilverLightのハシゴ外をされた件が怖すぎて
2020/11/11(水) 12:47:54.87ID:z8u+cv+u
クライアント版で開発すればサーバー側の実装まで一緒に死ぬことはないと思われるんだけど…
ReactじゃなくてBlazorを選ぶのか?と言われると揺らぐ
2020/11/11(水) 13:30:01.83ID:7A3xK0xJ
>>729
あれはブラウザー内にデスクトップアプリ
動かすようなレベルのもんだから
何もってきても無理じゃね?
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だけ入れ替えればいい
2020/11/11(水) 16:54:13.95ID:zCFWfmOs
速度が速いとウソをつく

激遅の現状を突っ込まれる

速度など問題じゃないと強がる
2020/11/11(水) 16:56:17.09ID:hOXuGr8Y
MS新フレームワークBlazor、Lighthouseで23点を叩き出すw
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
2020/11/11(水) 18:34:49.69ID:z8u+cv+u
>>733
MSのLTSはあまり期待してないなぁ
ソース管理についてもTFSがフェードアウトしてる感あるよね?
かと言って、Githubにデータ移行はできないし
MSはこういう所が横暴でロックインし難い
2020/11/11(水) 18:50:22.79ID:iQgtLl5J
>>736
上位コンポーネントからパラメータで渡す分には問題ないと思う
通常のプログラミングでいうと関数的な使い方

カスケードプロパティは危険な臭いがプンプンする
これはグローバル変数のようなもの
俺はカスケードプロパティは全く使う気がしない

パラメータで渡さない場合は状態を管理するクラスを1個作ってInjectするといい
コンポーネントからはこのクラス経由でしか状態にアクセスしない
これはインメモリリポジトリのようなもの
2020/11/11(水) 19:05:28.34ID:PR+fp9tK
>>734-735
backendのベンチマークだ
JavaやC#が動的言語より速いのは常識
知らないやつは初心者

>>735
また計測不能ばかりのクソサイト張る無能
楽天も計測不能
740デフォルトの名無しさん
垢版 |
2020/11/11(水) 19:07:30.66ID:PR+fp9tK
>>737
LTSは同類のほかのソフト出さないって意味じゃないだろ
セキュリティパッチ出てるならサポートしてるってこと
Googleとか他社はそれすらできてない
741デフォルトの名無しさん
垢版 |
2020/11/11(水) 19:23:06.81ID:TxKdQIKG
遅さに関してはMSの責任者が10倍遅いと言ってるし、
実際使うとともっさりしてんだよな。
サーバサイドのよりましだけど。
742デフォルトの名無しさん
垢版 |
2020/11/11(水) 19:32:33.32ID:PR+fp9tK
>>741
10倍遅いというその発言も捏造
JS interopは.NET 5でかなり高速化したと発表されてる

wasmはよほどしょぼいハードの人以外は問題ないスピードになってる
743デフォルトの名無しさん
垢版 |
2020/11/11(水) 19:46:14.98ID:TxKdQIKG
でも実際使うとともっさりしてんだよ。
JS interopの影響なのだろうけど、
処理概要を聞いたら感覚的に卒倒しとうなアーキテクチャだ。

サーバサイドのよりましだけど。
2020/11/11(水) 20:34:50.42ID:PR+fp9tK
むやみにevent呼ばなければ遅くならない
高速化のtipsも書かれてる
Blazor Serverの名前も出てこないようだしまともに
ドキュメント読んでるとは思えない
2020/11/11(水) 20:39:05.32ID:zCFWfmOs
>>734 の予言、当たってしまうwwww
速度が速いとウソをつく ( >>733 )

激遅の現状を突っ込まれる ( >>735,741,743 )

速度など問題じゃないと強がる ( >>742 )
2020/11/11(水) 20:45:42.57ID:Ka3nFfxe
激遅の現状を捏造する

の間違いだな
実際速くなってるよ.NET5
747デフォルトの名無しさん
垢版 |
2020/11/11(水) 20:48:31.47ID:PR+fp9tK
>>745
おまえアーキテクチャ全然理解してないのがバレバレ
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

開発者自身も了解している事じゃないの?
開発スタートの経緯を聞いてもそう思う。
偶然の産物なんだよ。このプロダクトは。
2020/11/11(水) 21:27:58.47ID:z8u+cv+u
>>740
あーそか
LTSは別の話だったね
750デフォルトの名無しさん
垢版 |
2020/11/11(水) 22:17:54.32ID:PR+fp9tK
EdgeだけでもC#がnativeで動くようにしちゃえばいいのにな
MSがブラウザの独自エンジン開発放棄したのは失敗だった

まさかのIE12でもいいよ
C# native実行できちゃうやつな
2020/11/11(水) 22:59:52.25ID:y64JAG21
メジャーフレームワークの事前ダウンロードオプションはそのうちサポートするんじゃないの
それか単にブラウザ拡張を作ればいい
事前キャッシュするだけだから簡単だろう
752デフォルトの名無しさん
垢版 |
2020/11/12(木) 00:16:11.70ID:5db75by5
フロントは使い捨てと書いてる人いるけど
フロント側でC#がガンガンうごくので、
APIがデータベースの土管になって、データ加工して表示するロジックとかrazor側にガリガリ書いちゃってる。これまずいのかな。
いやでもそれがwasmのメリットだよな…
2020/11/12(木) 01:50:40.38ID:NTmEPJN8
いいよ
UIにまつわるダーティな処理はクライアントでやろうがサーバーでやろうがUI入れ替えとともに消える運命
754デフォルトの名無しさん
垢版 |
2020/11/12(木) 03:08:04.23ID:1tLZbmtr
>>752
クライアント(View)は表示のみですね。
クライアントなくても、Curl等でAPI直叩きで業務が流せればOKです。

それが出来ないような実装なら、単体テスト出来ないでしょ。
755デフォルトの名無しさん
垢版 |
2020/11/12(木) 05:45:40.02ID:VInW0j8K
>>752
データ表示に関するコードはwasm内でやるべきでしょ
なるべくclient-sideでやってserver-sideをスケールしやすくする。
756デフォルトの名無しさん
垢版 |
2020/11/12(木) 08:05:24.53ID:VInW0j8K
>>748
wasmで作ったゲームサイト、スムーズに動いてるな
https://aesalazar.github.io/AsteroidsWasm/

ゲーム以外でこれ以上ぬるぬる動かす用途ないだろ
読み込みloadingも2秒程度だった

>>745
これみれば一発でわかる。
計測できないlighthouseがクソなだけだ
https://aesalazar.github.io/AsteroidsWasm/
2020/11/12(木) 10:03:52.41ID:a1NEuwV/
>>752
それC#だからとか関係なくね?
業務ロジックはサーバーサイドで、データが取得できたあと表示に関する部分はどうぞご自由に、というのが手離れの良い設計だと思う
2020/11/12(木) 10:30:35.87ID:NTmEPJN8
ドメインモデルとプレゼンテーションモデルの変換はプレゼンテーションで行うのが正解

ReactなどのJSフレームワークは言語が貧弱だからこの変換処理が増えてくるとキツい

その回避策として先人はバックエンドforフロントエンドなどというバカみたいなパターンを作り出してしまった
プレゼンテーションモデルへの変換処理をバックエンドの高生産で高速な言語でやってしまおうという発想だ
なんという本末転倒

Blazorなら変換処理もC#で快適に実装できるのでいちいちバックエンドにやらせる必要はない
バックエンドはドメインモデルをJSONで返すだけでよい
これが世界中の開発者が本当に求めていたものだ
2020/11/12(木) 10:59:08.18ID:1tLZbmtr
>>758
TypescriptはC#とjsの良い事どりの呈してますよ。
2020/11/12(木) 11:02:54.43ID:uK53dAw4
blazor-wasmは深刻なパフォーマンス問題があって、
[Blazor WebAssembly] Serious performance issues
https://github.com/dotnet/aspnetcore/issues/21085
その対策は進行中↓
Blazor performance optimizations #22432
https://github.com/dotnet/aspnetcore/issues/22432
つまりまだ全然安定しておらず、成熟していない。
2020/11/12(木) 11:06:19.07ID:vwJUExFh
>>759
同じ設計者の末弟ケンシロウだからね。
C#はジャギ。
Delphiはトキ。
2020/11/12(木) 11:15:38.91ID:50stAN1W
>>760
すぐに解決するだろう
2020/11/12(木) 11:17:38.70ID:50stAN1W
>>759
TSは悪くない選択肢だね
764デフォルトの名無しさん
垢版 |
2020/11/12(木) 11:34:11.07ID:VInW0j8K
>>760
アホだ。最適化が終わってないだけは安定してないとはいわない。

しかもほとんどチェックマークついて対策済みになってるし
残りも.NET5までに対策される
.NET5はもうRC2だし

深刻なのはコピペしかできない>>760の頭の悪さ
>>756 でゲームデモで論破された
765デフォルトの名無しさん
垢版 |
2020/11/12(木) 11:51:45.96ID:1tLZbmtr
>>763
node.jsの開発者がTypeScript直接実行できるの作ってますよ。
https://ja.wikipedia.org/wiki/Deno
2020/11/12(木) 12:15:23.47ID:50stAN1W
5の次がLTSだっけ
Blazorもそこに合わせて仕上げてくるだろうね
いよいよだ
さよならJavaScript
2020/11/12(木) 13:32:02.28ID:uK53dAw4
AOTサポートにより(JSに勝つことはないにせよ)性能向上が期待され、また宣伝し、信者も大いに期待していたが…

AOT support in Blazor WASM will be postponed and not show up in .NET 5.
Blazor WASMでのAOTサポートは延期され、.NET 5には含まれません。
https://twitter.com/christianweyer/status/1270602821688328192?s=20
延期されたwwww
一時ソースはGitHubのAoT compilation issueへのDaniel Rothの6/6のコメントとみられる。
他の改善アイテムで頑張るってよw
https://twitter.com/5chan_nel (5ch newer account)
2020/11/12(木) 13:53:32.08ID:NTmEPJN8
いつまで過去の情報に振り回されてんだこいつ
2020/11/12(木) 13:56:33.64ID:uK53dAw4
では現在AoTになりましたか?www
2020/11/12(木) 14:11:17.34ID:uK53dAw4
エッ!一年前から遅い遅い指摘されてたのに、まだAoT実現できてないの?
このプロジェクト大丈夫??

https://www.reddit.com/r/csharp/comments/c7qtwy/is_blazorwasm_faster_than_js_today/
> No. Blazor is currently interpreted. That makes it very slow compared to JS. It will at some point be AOT, which should yield a massive performance boost, but we're not there yet.
いいえ。Blazorは現在インタプリタ動作です。そのためJSに比べて非常に遅くなります。ある時点でAOTになり、パフォーマンスが大幅に向上するはずですが、まだ実現していません。

↑これが一年前。
さーてそろそろAoT実現してるかな〜

AOT support in Blazor WASM will be postponed and not show up in .NET 5.
Blazor WASMでのAOTサポートは延期され、.NET 5には含まれません。
     _____
  ゝ/         \  /
  /  _______ヽ
  |  | : : : : : :\_人ノ: : :|   / 
  |  | : : / ⌒ ヽ: :/ ⌒ ヽ
  /^v─ i      |    |
(( |:d: :♯|     ((・|・))   !    「延期!」
  ヽ: : /^ヽ、 _ ノっ _ ノ−、
   |: :|   \_/^\/^\_:ノ
   |: :|               \
 /⌒\ヽ (⌒ヽ⌒)   ))
 |    \\_/^\_/ノ _____
 |     \─┬─ ´ |        |_
 |.  \.   \ |   \  |   延期 (_)
 |     \     \./ ̄ ̄)       (_)
        \   /     ̄)        |
771デフォルトの名無しさん
垢版 |
2020/11/12(木) 14:16:03.74ID:1tLZbmtr
遅さはAOTだけで改善出来るもんじゃないと思う。
WASMと期待させておきながら、
画面描画を全部JSでやるという仕様が回避できなければ、
永遠に遅いままかと。
772デフォルトの名無しさん
垢版 |
2020/11/12(木) 15:12:17.29ID:BTLciJco
>>754
この人だけ意見が違う…
取得するデータごとに違うapi用意しだしたら、業務システムとか大変なことになるんだが…
2020/11/12(木) 20:31:18.84ID:T/ltJ8kq
サーバーサイドと言語を揃えれるのがいいね
.NET5でLinuxデスクトップもサポートされるようだし
これでC#大統一理論にまた一歩近づいた
774デフォルトの名無しさん
垢版 |
2020/11/12(木) 21:39:57.08ID:VInW0j8K
やっぱり.NET5の正式版でてた
https://dotnet.microsoft.com/download/dotnet/5.0

>>723 >>725
でNuGetにだけ.NET5出てきて混乱したが
webの更新が遅れていただけのようだ
さっそく.NET5.0に入れかえよう
775デフォルトの名無しさん
垢版 |
2020/11/12(木) 22:01:02.38ID:VInW0j8K
981 名前:デフォルトの名無しさん[sage] 投稿日:2020/11/12(木) 00:44:34.38 ID:h5L0232Z

Announcing .NET 5.0
https://devblogs.microsoft.com/dotnet/announcing-net-5-0/
Announcing ASP.NET Core in .NET 5
https://devblogs.microsoft.com/aspnet/announcing-asp-net-core-in-net-5/
Announcing the Release of EF Core 5.0
https://devblogs.microsoft.com/dotnet/announcing-the-release-of-ef-core-5-0/
776デフォルトの名無しさん
垢版 |
2020/11/13(金) 17:22:02.50ID:0SZnzCKt
「Python」生みの親グイド・ヴァンロッサム氏、マイクロソフトに入社 - CNET Japan:
https://japan.cnet.com/article/35162404/

MSがPython開発者もとりこんできたぞ
どうなるんだこれ
2020/11/13(金) 19:22:12.07ID:35N+92Bf
いいね
次はLinuxカーネルを取り込むのかな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況