【本命】Blazor スレ2【真打】
混沌を極めるWebアプリケーション界隈に現れた一筋の光明
型無し言語 JavaScript の悪夢を打ち払い
林立するエコシステムの亡霊を退散
アプリケーション開発者の希望となるMVVMを引っ提げて登場した真のSPA開発環境
Blazorを語る者よ、集え!
ASP.NET Core Blazor の概要
https://docs.microsoft.com/ja-jp/aspnet/core/blazor/?view=aspnetcore-5.0
前スレ
【本命】Blazor スレ1【真打】
https://mevius.5ch.net/test/read.cgi/tech/1595255796/ 3大データベースて
SQL ServerはDBMSシェアでずっと上位だぞ
Oracleが入ってないのもおかしい >>581
ふーん
SQLServer以外使わないのであればSQL直書きでいいわけか Blazor のが MVC とか
JavaScript ViewJs なんかで開発するより
数倍効率は良くなる
はっきり言ってBlazor があるのに
何で他の使ってんの状態 そりゃまあ学習コストの問題だね
何も知らない人がいきなりBlazorから始めるのは勇気がいるしある程度経験のある人が移行するのは面倒くさい
今はC#が好きな人やBlazorに興味がある人がいじってる状態
情報は絶対的に足りてない
JavaScriptだと「こんなサイトを見たからその真似をしたい」と思って探すとたいていやり方がすぐみつかる
Blazorは自分で作るのが基本
例えば仮にPWAを作りたくなったとしてどう作る?
Blazorが広く使われるようになるにはもう少し時間がかかるだろう 藍より青しって言葉があるからね
後発が先発よりも優れてるってのは当たり前さね
まぁDartとかいうゴミ言語みたいな例もあるけどね 学習コストの問題に含まれるかもだけど
ホスティング環境の問題もある気がする
いざデプロイとなると大まかに
- コンテナインスタンス立ち上げる
- IISで動かす
とかになると思うんだけど
コンテナ化するだけか!最高!って喜べる層はそこまで多くない気もしてる 社内ツールで使いたいけど
Blazor ServerってWindowsのサービスとして使えたりすんの?
IISいるの? >>591
IISなくても動くよ!
単体で動くKestrelっていうWebサーバーが既定で内包されるようになってる
自分はまだWindowsサービスとして動かしたことはないけど
blazor UseWindowsService
あたりで調べれば情報出てくるはず EntityFramework使わずSQLと接続する方法がわからぬ…
program.csファイルにjsonファイルから文字取得するメソッド作って
他のクラスでそのメソッド呼び出してSQLと繋ぐってイメージ? てかなんでみんなEFでAPI使った方法しか紹介しないんだろうか?
API作るのが主流なのか??? >>595
EFがDBのファサードになるから
なんだけどそれでもチューニングしていくと結局DBに依存するから役に立ったことないんだよね
SQLをリソースにしたりExecuteCommandのラッパーを作ったりする方が話が早い やっぱそうだよな
configurationでappsetting.jsonの接続文字列読み取れることができたからこれ使う ああだめだ…
ASP.NET CoreでホストされたBlazorWebAssemblyでSharedでConnectionString取得するメソッド作ったけどクライアントの方で使えない…
どうすればいいんだ…
Serverの方で作ったクラスも参照できないし…どうしたら… EF は余計な事するから
Dapper で普通のsgl
のがわかりやすい
PostgreSql なら無料で使えるし この板限定だけどPostgreSQLを勧めるのはキチガイの印象しかない PostgreSQLには問題ないよ
あくまで勧めてる一人がおかしいだけ Dao 作るんならEF風 に使えるし
末端のプログラマーにはSQLは
触らせない手もある
上級プログラマー以外はSQL
使うなみたいな >>609
ありえん...
処理を全部SQLで書かせないから(ここ強制)
処理速度が遅いわ
コードはぐちゃぐちゃだわになる 逆だろ
書き込みは共通ルールに則って
統一されるからキレイなコードになる >>611
専属のデータベーススペシャリストのいるプロジェクトかな?
>>612
ロジックは全部APIの内側!
クライアントは表示と手続き支援のみ! DbのオープンだけEFのクラス使って
Dapper入れれば普通のプロジェクトと
変わらないでしょ オープンはServer側でAppsetting.json読み取るクラス作ってそこから接続文字列読み取るようにした
SQLの操作はSystem.Data.SqlClientクラスを使ったよ 【エンジニア未経験】転職を成功させるWebアプリ開発の技術選定7選
www.youtube.com/watch?v=K6Us1UXI784&t=170s
この動画で、Ruby on Rails 専門学校・RUNTEQ の菊本も言ってる。
データベースはPostgreSQL、セッション管理はRedis
そもそも、Heroku もPostgreSQL だし AWS のオーロラdb
がポスグレでしょ
AWSでサーバー立てるなら
一番安上がり それだとDBの管理が面倒くさいでしょ
フレームワーク任せのが簡単
コネクトプールとかも使えるし
>>616 AWS Aurora は、PostgreSQL なのか?
Auroraは、MySQL および PostgreSQL と、完全な互換性がある SQL駆使するプログラマはSQLにドメインロジック入れがち
テスト書けなくなる 昔はPLSQLだけでwebサイト作ってる
時代もあったね Blazor はEF使ってオープンして
スタートupでdbアクセス用のサービスを
DI化して
各クライアントのページからは
インジェクトでサービスを取り込むのが
標準のようになってる >>623
ほぼオンメモリで動くあれは爆速だったな。
まだcgiが主流でようやくmod_perlが普及し始めたくらいの当時。 Blazorの@pageルーティングでリストの数で複製させるってどうやるのでしょうか
例えばリストに1~5までがあったら
@page "/1"
@page "/2"
@page "/3"
@page "/4"
@page "/5"
ってのが自動生成されるようにしたいです @page "/{変数}"これですか?
これをどうやってリストの数字と置き換えるかに迷ってます
まさか
@foreach(int i in List)
{
@page "/{i.ID}"
}
とかにするわけじゃないですよね??? そうじゃなく/?number=1とかでいいじゃんってこと
numberそれぞれ別ページにするんじゃなく同じページじゃいかんのか? >>629
なるほどそういう方法もあるんですね
その場合どうやれば良いのでしょうか? >>631
ありがとうございます!
参考にします! これって例えばなんですけど
左のサイドバーにリストの数字が羅列されててその数字にリンクが貼ってある
サイドバー
@foreach(int i in List)
{
‹a href=$"/?{i.ID}/›
}
のときもそのサイドバーのリンク踏むだけで移動できるものなのでしょうか? なんでやってみないの?
表示されたリンク踏んで望んだページに遷移するかをまず確かめる
望んだページでなかった場合は正しいURLをアドレスバーに打ち込んでみる
それでも遷移できなければルーティングが間違ってる >>639
なるほどありがとうございます
少しずつ覚えていきます .NET MAUI HighSchoolですが私のことですか?
このコテは.NET MAUI用に作ったものなので他のスレでは使わないようにしてます server触ってるけど直接DB触れるんだな…楽だ 大規模アプリでも静的型付けだから楽になるはずなんだけどな 大規模でserverはパフォーマンスもやばそうだし
プレゼントテーション層でDBアクセスしたりビジネスロジック書き出すやついそう おかげさまでBlazorアプリできました
https://mauiwiki.azurewebsites.net/
最初のLoadingにアニメーションとかインジケーターとか入れたいのですが可能でしょうか?
可能であればどこに入れればよいでしょうか? >>651
そうなんですか
ありがとうございます! >>652
ありがとうございます!
色々迷惑かけました 機能/操作性はおいといて
ロード長すぎ(つかWebアプリならロード時間不要)
パフォーマンス悪すぎやな 2回目でも更新されてたらまたロード長いからなぁ。
表示が始まるまで7-8秒からかかり、
表示された後も数秒ロードw
5秒過ぎだら毎日1億アクセスあるようなサイト以外
殆どの人はバックボタン押すからな。 自分は新サービスたぶんそんなに人使わないと踏んで
Blazor Serverを選んだけど
毎日1血�Aクセスで想鋳闥ハりだわ(遠い目) そのロード負荷(精神的な)を減らすためにアニメーションとかあればいいなぁと思ってる
初っ端のチュートリアルみたいなやつだけでもjsとHTMLとCSS使って表示させとくとか
まぁできないかもしれんけど wasmかserverかしらんけどこんな掲示板に近いようなサービスでspaにする必要ある?
https://webassembly.org/docs/use-cases/ >>659
loading...のとこ変えればいけるはずだからいけるはず(語彙力) ASP.NETにホストされたWebAssemblyでのIISデプロイの仕方がわから~ん
なんでか発行するとエラーが出てできないんだが… IISにはデプロイできてlocalhostでは開けるのにそのサーバーのIPアドレスと任意ポートでアクセスしようとしたらダメだった… >>666
おお〜
ちと断定するまではできないけど
確かにそれっぽいな! builtwith.com/
で、使っている技術を分析してみれば? >>665
自分が読み違えているかもだけど、
エイプリルフール用アプリをBlazorServerで作ったんじゃなくて、社内で使う開発用ツールをBlazorServerで作ったんじゃないの?
社内で使うようなツールはServerで作った方が楽ちんってことよね
ユースケース的にも合致してて納得
不特定多数の人が使うようなものをServerで作っちゃうとリソース爆食い >>669の理解で合ってると思う
CysharpってC#使うための会社なのに、そのCysharpですら社内ツールにしかBlazor使ってないということにむしろ驚くわ >>670
wasm自体、使い所がゲームか業務システムくらいだし
CySharpも謹製のマジックオニオンがまだBlazorWasmに対応してない(未来永劫対応しないかもしれない)ので、
ブラウザで動くゲームは公開しないんじゃないかな
自分はコテコテのSIerなので、業務システムをBlazorで作ってみたい気持ちもあるけど
つぶしが効かなさそうなので二の足踏んでる wasmはたまに使うんだけど、c#から書き出したものはまだちょっと時期尚早かなぁ。
BlazorはクラシックASPみたいにサーバがジリ貧になりそうなので怖いわ。 使ってみればわかるけどReactよりも直感的になったブラウザでもC#を使えるようになる技術だぞ?
潰しとかどうこうじゃなくね?
普通にC#やってれば使えるしBlazorだけでなくてもバックエンドでもデスクトップでもモバイルでも活用できるだろ >>673
C# ができるのと、Blazorができるのはまた違うだろ >>677
そうか?
ほぼC#のようにBlazorアプリ作ったけど >>678
極端な話Unityいじっててインターフェースの概念すら知らない人もC#経験者に含まれてくるからね
分けて考えておくのが吉かと SPAをやるならReactやSvelte等のJSフレームワークの方が圧倒的に潰しがきくのは厳然たる事実なんで、低レベルな議論は虚しいだけだぞ
BlazorはAPIの実装とか面倒なことをしないで従来のWebFormsのように社内ツールをお手軽に作れる技術であり、それ以上でも以下でもない そりゃなんでも覚えたら損はしないけど時間は有限なのだ。
自分が個人的に何かWebサービス作るならBlazor wasm使うけど、会社で若手に習得させるフロント技術を選択せよとなったらReact選ぶわ。