◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:WPF(.NET, WinUI) GUIプログラミング Part33 YouTube動画>3本
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1724156206/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
WPF(Windows Presentation Foundation)について語るスレ。
前スレ
WPF(.NET, WinUI) GUIプログラミング Part32
http://2chb.net/r/tech/1694210576/ 関連スレ
Windows 10 UWPアプリ開発Part 3
http://2chb.net/r/tech/1627556967/ コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
.NET 9の新機能を眺めてたらHybridWebViewなる新規コントロールがあって仕様を読んでみたらなんと MSの.NET版(.NET Frameworkではない)Tauri実装と呼べる代物でクソワロタ MSもやっとフロントエンドはWebで勝負着いてることを認識したよーやな これはかなり期待できるわはよ触って見たいが変更多そうやからとりあえずRCか正式リリースしてからやな
Webviewの中は何をやろうが関知しないから 勝手に好きなライブラリーで書けや!って事? 笑 MSが主要なViewライブラリーとの js<->c#のブリッジ用意してくれんのなら それはそれで有用だな
WebView2をクロスプラットフォームにするって言ってたのに 音沙汰無いと思ったら新しいコントロール作ったんか。動けばなんでも良いけど。。。 Electronはともかく、TauriやWailsみたいな最近のフレームワークは ファイルシステムやウィンドウの制御みたいな、 主要なネイティブ機能をすぐにフロント側で使えるようにあらかじめSDKで用意してくれてたり Wailsはバックエンド側で定義した関数の型をフロント側にエクスポートして使えたり かなり便利になってきてるから、その辺MSがやる気あるのか、コミュニティにぶん投げるのか まあMS自らが今まで自分が作ってきたコントロールに一つずつ引導を渡すようなことにはなるけど笑 でもGoやRustよりはネイティブ層をC#で書きたいって層はいるだろうから期待はしてます
js側からネイティブダイアログとか呼び出せるApi用意してくれんのならスバラシイぞ!(*бωб)
てかデスクトップアプリのTeamsもwebview2実装してんだから一般公開するたけだよね->MS
webview2でもc#のクラスそのまま公開できるんだから簡単なラッパークラス作るだけじゃん
そのレベルでは無くて、Windowsの主要なAPIがSDKとしてHybridWebViewの初期化時にロードされて起動してくる感じ。なのでネイティブのWindows出すとかもろもろJSのコードだけで完結する事を想定。
今んとこ、SendRawMessageメソッドが生えてるだけに見えるけど、週末にでも触ってみる。 VS立ち上げるの久々だ笑
.NET 9の新機能にその機能がないのでおかしいと思って調べたら HybridWebViewは名前空間がMicrosoft.Maui.Controlsのコントロールの話だった 今のところMauiの話でHybridと言うのはそういう話では?
そやから.NET(.NET Franeworkではない)て親切書いてやってんのにこのスレほんまにレベル低い奴ばっかやな・・・ MAUIの意味はMulti-Platform App UI(.NET MAUI)やぞ そもそもマルチプラットフォームでWebとデスクトップでフロントやバックエンドのロジック共有させたいからHybridなんやが 話が通じなさ過ぎて頭くらくらするわ
あなたは.NET Frameworkが何か多分勘違いしてると思います
もうこのスレで質問するんじゃねーよマウント取られた情弱が逆恨みしてレスバでスレが汚れるから他所でやれ
まあ特に話すことのないオワコン技術の老人会スレなんだから 喧嘩でもなんでも好きにすればとしか
C#版Tauriって、別に現行のWebView2でも出来るんじゃないの?
Maui(Multi-Platform App UIやぞ!(略))の新規webviewにwindows sdkのネイティブAPI呼び出しを期待するのは 根本的に何か間違ってると気が付いてくれたのだろうか?
>>19 Windows以外でうごかないやん
(以下ループ)
OSの上にOSのライブラリが乗っててその上にC#が乗っててその上にC#ライブラリが乗っててその上に各種OSのGUIを利用する層が乗ってて その上にMAUIが載っててその上にwebviewが乗ってる そこから何かtauriみたいな層のAPIを介してnative APIを叩く このジェンガかパイプラインかミルフィーユのどこか一部が壊れてたら全部動かない 間の各層の責任者も違うので修正されるかも不明 早期の破滅しか見えないんですけど
そんなこと今更言われても・・・ 機械語で書くわけじゃないんだからフレームワークの抽象化なんてそんなもんでしょ すでにMAUIなんて破滅しかかってるんだし 動きゃラッキーくらいのオモチャとしか思ってないわ
別に破綻していないし問題なく使える ただここはWPFスレであってMAUI(Xmarin)は関係ない
ここはXAMLに捕らわれた者のスレなんだ Reactスレ盛り上げろ
MS経営陣にまともなアーキテクトがいないのでずっと迷走してる 現場は失敗が目に見えるようなのをガンガン指示されてるんだろ その結果真面目だが真剣ではない(昔よく使われたあれ)状態が続いてる
どてっぱらに大穴が開いた船でもう沈没するのはわかってるけど上からの指示で水を掻きだしてる 仕事だからまじめにやってるけど船を助けようとするレベルの真剣さではないわな 現場の人間としてはどうせこんなバカなプロジェクトはダメになるから勉強のために自分の作りたいコントロールを作る 報告のあった不具合のデバッグなんてめんどくさいのは後回し さぼりはせず真面目に仕事はしてるけど何とか全体の完成度を高めてまともな業務に使えるようにしようと言う真剣さはない 嫌なことはチームリーダー任せ 外から見るとこういう状況
最近の.NET関連でちょっとググると キータかなんかでMSの中の人が書いた、全然いいね付いてない記事しか引っ掛からなくて 可哀想だなとは思う (もちろん記事があれば良い方)
>>34 マイクロソフトの公式ドキュメントを見てないのか?
URLと内容が紐づくものだけを見てしまうのは情報の探し方が間違っている。
やりたい事でググってアフィ記事すら出てこないのはエコシステムとして終わってるだろう それを探し方が悪いとかどんだけおめでたいのか
公式マニュアルの内容をページ単位で公開していたら管理できなくなるわ
記事がみつからないということは自分の手段が間違えてるのではと推測できるわけで その判断は概ね正しい
いつのまにかVSCodeの拡張機能にAvalonia for VSCode Communityできたいたのね まぁ入れてもコンパイルできなかったんですが…
VSCodeは開発環境構築が大変すぎる コミュニティやドキュメントが整ってないマイナーフレームワークだと ちょっと触ってみるかでどツボにハマるからVSのありがたみを実感する
PropertyChanged.FodyとCaliburn.Microの組合せが楽できて素晴しい WinUI 3(+CommunityToolkit.Mvvm)も試してみたが.NETのままでいいやという結論になった 別に見た目を変えるだけならModernWPFもWPF UIもあるしな
windowsform経験者からwpf学んでくには、どんな教材が良いですかね。 とりあえず、udemyが気になってはいますが。
Copilotが今時の流れだよググるよりTabエンター WPFのような枯れてる技術なら新しい話題が少ないのでAIで解決した方が速い
それは逆 未経験のフレームワークを使って開発するなら新規案件で1からやるより既存物の追加開発から入る方がハードル低いだろ? 最初の一歩をAIに頼って足場を作ることで、最初のハードルは大幅に下がる
AIは理解してるんだからAIに応用させればいいのよ人間が理解したいならそれもAIに聞けばいい
残念ながら、今のAIが生成するコードは大半の業務系コーダーよりよほど高品質だ
wpfくらい枯れてるとAIも生成しやすいだろうね Webフロントエンド最前線みたいなのだと API変わってて動きそうで動かないみたいなトラップが増えたり平気でメンテされてないライブラリガンガンぶっこんできおる・・・ こないだ炎上してたZennの技術選定の記事は既に判断材料にAIが生成しやすいかが含まれてて興味深かったな
>>57 よほど低品質なコードを書く人たちに囲まれてるんだね
難しい内容は、ChatGPTでは解決にはならないことが多い。
>>55 AIはそれっぽく作るのが上手いだけで理解なんかしてない
統計的に頻度が高い=それらしい回答が上手なだけだしな
流石にAIに関して今時その認識はやばいよ 職人堅気も結構だけど、10年後に路頭に迷わないように祈っておくことだな
まあ知恵袋ではAIのやってるのは平均や統計という結論になってるからそう思う土方が増えても仕方がない
>>64 ほんそれ
AIは小泉セクシーと同じタイプ
外注の粒度が劇的に縮小して作業者レベルに降りてきたってだけ 明快な指示を出せない人は適切にアウトソースできず(自分より割安なリソースを活かしきれず)、やがて淘汰される
プログラミングの文法は理解しているから俺より役に立つのは確かだ
今のLLMは流行り始めた頃に比べてコンテキストウインドウが大幅に拡大しているから、 指示の出し方よりもコンテキストとして適切な背景知識を十分に与えてあげることが重要になってる 既に人間より頭良いから、むしろ必要十分なコンテキストがあれば指示は雑で曖昧なものでもよくて、適切に意図を汲んで見事に仕事してくれる もうすぐコンテキストの考慮も不要になって人間不要になるんだろうな
>>69 意味を関連で辿るタイプのAIはまだPCクラスじゃ無理だからなぁ
それが指示でないと言うのならもはや何も言うまい...
「10年後に路頭」 10年も余裕あるなら焦る必要ないだろ
バグありのコード書くのは人間に外注したって同じだろ 個人的に1番AIが便利に使えてるのは、既に完成しているコードのライブラリを差し替えたりライブラリ不使用に書き換えたりする、ゴールが明確で固定されてるが、それまでの道筋を変える、とにかく面倒な作業の肩代わり。これが1番得意。 あとはjsonやcsvの使い捨て変換スクリプト書かせるとか。変換前のデータと欲しい最終出力のサンプル突っ込むだけで何とかしてくれる
>>78 >既に完成しているコードのライブラリを差し替えたり
>ライブラリ不使用に書き換えたりする、
>ゴールが明確で固定されてるが、それまでの道筋を変える
GPLロンダリングですね判りますω
WPFどころかC#すらわかってないJavaScript初心者さんでもコパイロットがあれば あっという間にハローワールドまでできるようになるじゃないか 依存関係プロパティもビヘイビアもあっさり解決さ
言語としての最先端だよなあC#は なんでエンジニアたちは他のゴミ言語なんか使ってんだろ
あくまでJava系(クラスベースOOP+静的型+C系文法)の中での完成系だからね。 まあJava系としてKotlinとどちらが上かは意見の分かれるところではあるが。 C#はどれだけ魔改造しようと今更TypeScriptのようなstructual subtypingベースの言語にはなれないし、 Rustのような厳格なメモリ管理をする言語にもなれないし、 Haskellのような純粋関数型言語になるのも不可能だ。 それらとJava系のどちらがパラダイムとして優れているかは分野や用途次第であり、銀の弾丸はない。
長年C#でJava勢と張り合って孤軍奮闘してけたけど そのJavaも衰えて自分もTypescriptでUI書くようになって永くなり 今じゃTypescriptが凄すぎでC#でUI書きたいとはとても思えんようになったからね
C#をこれから学ぼうと思ってるんだけど、C#の強みってどういうところ? 自分はJavaもC#も経験がない (C++, Python は分かる) からまだ分かってない C++, Pythonでもクラスは使うけど、C#やJavaの方がよりOOPな言語だと聞く どういう所に違いがあるのか、それがいまいち分かってなくて
スレチだけど回答 言語自体の強みは薄い 最近の言語に慣れた人にはやぼったいと感じるだろう タイピング量は多いし一画面に表示するロジックも少ない 強みはMSがバックアップしていると言うこと
>>85 無料で最強IDEが使えるのと1つ覚えるだけでなんでも作れるところ
Windowsデスクトップはもちろん、Mac, LinuxデスクトップもAvanonia使えば作れる
ゲームはUnity、Webは.NET Core、Blazor
モバイルも一応作れる
C#の一番の強みは、OS、フレームワーク、IDE、DB、等々全てMSが用意したものを使えばよくて、 雑多な周辺技術に惑わされて時間を無駄にしなくて済むこと …だったんだけど、最近ではもはやC#の役割としてMSが本気で投資してるのってAzure上でのWeb開発だけになっちゃって、 もはや以前の万能言語の姿は見る影もない状況なんだよね せっかく幅広いプラットフォームで使えるようになったのに、結局特定のプラットフォームに縛られた言語を脱せずに斜陽期を迎えてしまった
C#の用途はWindowsアプリとUnityだよ 他にもできることはたくさんあるけど他の言語に負けないのはこの2つ
Javaの糞性はメンテナンス工程で発覚する物が多いからなぁ
いつからC#は万能言語になったんだ? 少なくと複雑なUI実装にはまったく向かない
複雑なUIってのがCADとかDAWを超えているならWinAPIから作れや(^^)v
複雑なUIもC#は他を圧倒してるよ UnityよりすごいUI作成ツールって他にないだろ
paint.netがwin32APIを直呼びしている時点でお察し
paint.netはGPUアクセラレーション使うから仕方がないでは 最新のVer.5.0ではレガシーなC++/CLIのコードをC#に置き換えてるそうだけど
非常に何とも言い難いね 自分もC# C++ハイブリッドでやってるけど非常にめんどくさい でも速度的にメリットがあるので続けるしかない 一般的なコードで等価なコードが等価なバイナリになればいいけど無理だな
安全寄りの設計思想のC#が無防備なC++に近づくのは限界があるわな とは言え、最近の.NETは高速化に力入れてて.NET Frameworkと比べると結構速くなった
C#もSpan<T>とかSIMD叩けるようになったりして久しいし.Netのバージョンを指定できる環境ならそれなりに高速動作するのでは?
WinUI3がAOT実装したのに話題にならないね ちょっとした高速化以上に今まで悩まされた難読化が標準になったのにさ
winUI3のdatagridでitemsourceに指定してあるObservableCollectionを変更しても画面が更新されない… セルを更新したときに下のセルが空欄なら同値で埋めたいんだけどObservableCollectionの値は更新されてても画面が変わらないのはどうすればいいんですか?
>>106 ObservableCollection<T>のTにもINotifyPropertyChangedの実装が必要
複雑なUIを妙なスクリプトで対処するなよ 改修大変なんだわ
WPFはCG以外の各種コントロールもDirect3Dで描いてんの?
CGの定義はともかく、今のWindowsはWPFとは無関係にほとんど全てをDirect3Dで描画している WPFは更にその上で無駄な抽象化レイヤを幾重にも重ねてDirect3DやCPUで描画しているので極めて非効率
WPFはDirect3D9のラッパー そしてこれがWPFがWindows以外の.NETで提供されない理由
むかしsilverLightがあったじゃん あれはどーーなの?
xamlはスクリプト言語で、C#に変換さるるんじゃなかったっけ?
されない。等価なバイナリデータに変換された上で、C++で書かれたランタイムがそれをレンダリングする。 ただしXAMLの最古のレガシー実装であるWPFについてはXAML処理系はC++ではなくC#で実装されており、パフォーマンス上のボトルネックとなっていた。
>>111 silverLightは
>>111 に対する話し
>CGの定義はともかく、今のWindowsはWPFとは無関係にほとんど全てをDirect3Dで描画している WinFormsも? テキストボックスもDirect3Dなんだ。なんか面白いな。
逆にWindowsでパフォーマンスの良いGUIフレームワークとなると何が候補になるの?
WebView2やElectronでReactを使うのが最良だろうね。メモリ消費量は多めだが複雑なGUIを極めて高速に描画できる。 WinUI系は迷走しまくってるからお勧めできない。
VB6.0もWinformsもWPFも公式にしろ非公式にしろ10年後も動いてると思うたぶん ソースがあればビルドもできると思うたぶん でもElectron上のアプリが10年後も動いてるかと言ったら… そもそも10年後にビルド環境を用意できるかどうかとなると極めて怪しい
そりゃ思い込みだな ReactとElectronのリリースは11年前、最も成功したElectronアプリであるVSCodeもなんと9年前だ SPA系のモダンWebも実は既に十分に枯れた技術なんだよ
>>129 11年前のコードがそのまま動くとでも?
VB6.0のように動かすだけならできるだろ 何が極めて怪しいんだ
あと10年経つと文字小さすぎて読めないとかボタン小さすぎて押せないとか言われてると思われる ViewBoxなんてカレンダーコントロールにしか使ってなかったが、対処療法には使える
VB6.0が動くの正確な意味って解像度とか作成時の状態を踏襲した上でって意味だろうに なんでそれと同じ条件で語らないんだか
>>134 普通に無理やろ
VB6はruntimeが脆弱性対応で更新されてもそのまま動くし既存のOSが生きてる限りサポートされることが約束されてる
Reactのホスト環境はそうはいかない
ホスト環境やReact自身の更新に追随して変更していかないと使えない
環境を凍結して動かすだけならハードに問題ない限り動かせるけどそういう話じゃないだろ?
>>137 Reactのホストって何よ
基本クライアント側だけで動く機能だぞ
>>139 JavaScriptがホスト環境無しには動かない言語なのは知ってる?
ElectronはChromiumを丸ごとバンドルするんだから全部塩漬けにするなら10年後でも普通に動くだろう セキュリティパッチ云々はまあ.NET Framework の方ならわかるが、 5以降ならクライアントアプリは全部バンドル塩漬け前提になってしまってて、 後生大事にセキュリティ更新だけ当て続けるような運用はもはや不可能なんで、 状況は大して変わらんよ
JavaScript界隈は数十年前のDelphiのEXEやランタイム糞でか問題を現在進行形でまだやってるんだよな ブラウザ側に金玉握られてたらエンジンごと抱え込むしかないよなあ ほんと頭悪いわ
>>142 .NETも今はCLRから何から全部抱え込むのが基本よ
AvalonEditが高速で気に入った 1メガ位のテキストをTextBoxに放り込んだら重くて大変だったけど快適になったわTextBox使えないわ
今からWPFを勉強する際におすすめの参考書やWeb資料ってある?
WPFはすでに終わった技術で行き止まりみたいなものでMSもそこを広げていこうとはしてない 新たに入ってこようとする人間もあまりいないので書籍がない 説明資料もない 素の状態では使いづらいのでライブラリを使うけどそのせいで人がばらけてる それもずっと研究段階で絶対こうしたほうがいいと言う統一した使い方がない 過去のweb資料も時代遅れになっている
他の言語したことあるならネットの情報だけで学べるやろ
WPFと言ってもWinFormsとかわらんし。
XAMLはテキトーにサンプル作ればその内わかる。
(最初はポトペタでもいいと思ってる)
データバインドはWinFormsにはないけどバインドする必要もないし。
https://qiita.com/inf102 qiitaにはそれなりにある。
MVVMパターンやデータバインディングにこだわりすぎるとハマる
データバインディング、テンプレート等とWPFのMVVMは分けて考えるべき 初学者には絶対無理だけど
非MVVMのWPFが自分的にはサイコー。 50-60人~ の大規模での開発なければMVVMの恩恵はない。
mとvmの境界が分からない IPropertyChangedがあればvmになるの? Commandの中身はvmじゃなくてmに書くべき?
難しく考える必要はない。 VMの仕事はMの状態をビューに反映させることと、Mに対して何らかのコマンドを送出すること、それだけ。 コマンドってのは例えば梱包済み商品の発送処理を開始せよ、みたいなやつね。 発送処理開始ボタンが押されるとVM上のイベントハンドラが実行される。 なお、MVVMではこのイベントハンドラをコマンドハンドラなどと呼ぶことがあるが、上記のコマンドと紛らわしいからここではイベントハンドラと呼ぼう。 そして、イベントハンドラは関連するパラメータと共に発送処理クラス(これがMに相当)の処理実行メソッドを呼ぶ。これがコマンドの送出だ。 そしてVMはメソッドの戻り値等を介して「発送処理中」ステータスに更新された受注情報のリストを受け取り、その内容を自らのプロパティに反映する。 結果として、画面上の受注情報のステータスが更新されることになる。 泥臭い話と思うかもしれないが、君の憧れるMVVMやドメイン駆動といったアプリケーションアーキテクチャのキラキラワードの実態は本来こういうものだ。
別にMVVMを全部コードで書いてもよい これからわかることは...
WinUI3 でバリデーションエラーをTextBox に表示するのってどうやるの? INotifyDataErrorInfo はあるし VisualState にもそれっぽいのあるからできると思うんだけど。。
「ViewModelはViewのための橋渡しをするだけで、他のロジックはModelが持つ」と理解したんだけど、例えば以下のような感じ? 数値カウンターアプリを作る場合にCounterState みたいなモデルを用意して、「現在値」というプロパティと、インクリメント/デクリメントするためのメソッドを実装する ViewModelはそれを画面の表示やボタン動作に紐付けるために、「現在の値」というプロパティと、ボタン押下時のコマンド (内部的にモデルのインクリメント/デクリメントメソッドを呼ぶ) を定義する ……といった具合の実装をMとVMとで行うと理解したんどけど、合ってる? 役割は違うけど、VMとMとで同じプロパティを書く冗長さがある感がする INotifyPropertyChangedみたいなWPF特有の知識をModelに持たせない、という考えは納得できる
>>153 変更イベントでTextをintに変換とかいちいちしてるの?
>>158 それで正しい
面倒ならCounterStateを完全にイミュータブルにして、そのインスタンスを直接プロパティで公開してしまえばいい
それならCounterStateがINotifyPropertyChangedを実装する必要はなくなる
その方がReactなんかのモダンWebアーキテクチャに近い今時の構造になるが、WPFの場合は更新時にモデル全体を差し替えるようなことをすると更新範囲が広くなっちゃうからパフォーマンスは犠牲になる
PropertyChanged.Fodyも[ObservableProperty]も使ってないって情報古すぎる 今時手書きはないよ
質問者が問題視しているのはプロパティの重複とWPF特有の要件をMに持ち込むことだから、 それらのツールは何ら本質的な解決にはならないでしょう
xamlってWidth={Binding Path=vm.Width×0.9f} みたいな形でバインディングプロパティを加工出来ないのがつらいよな Converterあるけどあれだと0.9fとか0.5fとかいろいろなサイズに対応するために複数のコンバーター作らないといけないし
WYSIWYGなGUIビルダーが前提の時代遅れな設計だから仕方ない Reactなら普通に式書けるが、ああいう手書き前提のアーキテクチャではビジュアルデザイナを実装するのが困難だ 業界がまだRADの幻想に囚われていた時代の遺物よ
今からデスクトップアプリは何で開発すればよいの?結局、未だにWPF?
WebベースならElectron、Tauri、WebView2あたり Webが嫌なら、もはやWin向けではMS謹製となった React Nativeだな
>>168 簡単な奴ならWinUI3でいいけど業務アプリとかガチめのやつはWPFが安定
>>172 あとConverterにプロパティを書いておくと、x:Keyと一緒に指定できるよ
Web系ならGo製のWailsという選択肢もある Tauriよりもビルドがだいぶ早い (RustはC++と同様にビルドが長くなりがち) ただしElectron等はWeb系のフロントエンドの知識 (TypeScriptだったり、フレームワークやCSSだったり) が必要だから、C#に慣れてるならWPFになると思う 自分は試したことないけど、Avaloniaも評判は良さそうに思える
Webベースで作る時に、見た目をWindows風にするスタイルシートってある?
それこそReact Native使えば? UWPだからWindows風どころか正真正銘WindowsネイティブUIよ
Webなら格好いUIつくれんのに Windowsの古めかしい方に寄せるのは何故?
>>180 客に「違和感がある」とか文句付けられないようにするため
Windowsアプリなんだから格好いい悪いじゃなくて他のWindowsアプリと揃えなきゃだめだろう まあネイティブとWebViewだとテキストボックスの挙動すら違うんだけどな
windowsのアプリとかみんなバラバラじゃん、OS周り以外は
ダサくて使わないけどfluentUI
https://react.fluentui.dev/ そろそろスマホでもアプリの時代が終わりつつある 些細なことでアプリを入れたくないと言う心情は理解出来る スマホに100以上アプリ入れてどこに何があるのかもわからないし要らない通知ばかりされる アプリはもうすぐ死ぬ
サービスは主要なインフラアプリに統合されて ツールはツールで残る
react nativeってopenGLとかopenCV使える?
>>183 リアクトのfluentUIダサいよな
WindowsのfluentUIはそこそこかっこいいんだが
単純にアクリルがあるかないかの違いかもだが
Blazor HybridでFull C#がいい TS/JSのエコシステムを組み入れる必要がないから MSスタックで長くやってきた会社には向いてるはず
いくらMSどっぷりといえど、HTML/CSS使えるのにJSできないというのは考えにくいでしょ そもそもMSってなんだかんだJS大好きだしなあ
そもそもGUIってのはアプリごとに操作を覚え直さなくていいようにパーツを統一するところから始まってるわけで WindowsもXPぐらいまではかなりのレベルで統一されてたはずなんだ… Webアプリが主原因だけどWPFアプリの見た目がWin32とちょっと違ったのも一因だよな…
>>191 そりゃないね
VSCが馬鹿でかいボタン集めて作られてもかなわんからな
VSCode含め、最近では不特定多数向けのGUIアプリって基本的にMacで開発されているものが多いから、 Windowsの作法なんてそもそも開発者の眼中にないんだよ Macはむしろ伝統的にWin以上にOS側でUXを統一する思想が強かったわけだけど、Apple陣営としては開発者の取り込みのためにはWeb開発者に迎合せざるを得なかった そして結果的に当のApple陣営の存在がアプリの独自UX化を強力に助長してしまったというのは皮肉な話だ
Avaloniaってどうなの Blazor Hybridとどっちがいい?
個別のアプリと言うもの自体が死にかけてるからなんでもいいんじゃないかな 今がピークで本当にマルチなGUIはドンドン必要なくなってくると思うよ
ここってWPFかWinFormsしか使えないジジイたちが時代についていけずアレがいいのか?コレがいいのか?と右往左往するスレだよな
>>193 言うてMacOSは今でもOS標準アプリは一貫した作法のままだしな
標準アクセサリですらまるでバラバラなWindowsは格が違う
>>196 色々な技術が乱立していて自分で主体的に取捨選択しなきゃいけないのは決して今に始まったことじゃないんだけどな
お仕着せのMSスタックに身を預けることしかしてこなかったジジイたちが、ここにきて遂にMSに梯子を外されてしまい右往左往している構図
梯子外しって何のこと? 今も現役だし、サポート終了の話が出てるわけでもないぞ 新機能が追加されるようなことは無いだろうけど
MS的にはUWP→WinUI3を追いなさいと言うことだけど それもネイティブアプリ自体が死にかかってるので微妙
ネイティブアプリ作る案件は あってもモバイルだけだかんな
>>184 >>201 ネイティブアプリから、Webアプリに変わってきているということ?
>>203 トレンド的にはそう
とはいっても、一般ユーザーの目に入りにくいだけでデスクトップアプリの開発は今も普通にあると思う
エンタープライズ系だったり、CADや解析ソフトだったり、計測器の制御だったり
んでその一般向けのモバイルアプリ開発ももう多分徐々に下火になってくる この前どこかの市で1億3000万かけてモバイルアプリ作ったけどインストールしたのは400人ってニュースがあった 特定の案件以外はweb+LineやXですませばいいんではないかと…そういう流れになるはず 一般人はスマホに入れてるアプリは50ぐらいらしいけどそれでもうアップアップ 各種スーパーやドラッグストアに行くたびにアプリ入れてたら10個ぐらい入れてる コンビニはまた別 それ以外にもレストランやファミレスとか回転ずしとかのアプリが合ってアホがどんだけ囲い込みしたいんだよと思うわ
ああいう会員アプリの目的は囲い込みではなく顧客の識別と購買情報なので、入れておいてくれるだけでいいんだよ Webだとセッション切れたらITリテラシーの低い一般人は高確率でパスワード忘れて再ログイン不可になる
>>203 業務系のシステムとか10年以上前から全部Webだよ
ネイティブアプリをリッチーアプリと言っていた時代はまだWebと棲み分け出来てたけど今やもう昔話だ
業務のシステムをネイティブで作る意味なんてもうないもんな スマホやタブレットに後から対応なんて考えず最初からWebでいい 残るのはツールぐらいかな
ネイティブアプリの存在意義はWebじゃ厳しいからだったけど もうそのケースがほとんど無くて 逆にインターネット上のアプリやリソースとシームレスに連携出来なかったりで嫌がられる時代よいま
>>196 なんだReactだのVeuだので争ってるWeb系と一緒かw
デスクトップも結局RestAPIやりとりすれば何ら問題ないんだけどね
いやいや生粋のデスクトッパーにRESTは要注意だぞ あいつらクライアントへのプッシュのためにクライアント側がHTTPサーバーを兼ねる設計とか、とんでもないことやるからな
1億3000万のアプリがクソしょぼいと言う…中抜きか?
>>212 Web上にアプリが無いので各種のバラメータをブラウザー経由で受け取れないし
そもそもシングルサインオンしてないので認証とおってなかったり
連携の時の遷移先はWebアプリなわけで大変だし、遷移先のアプリから返却値受け取れないわで大変よ
人類はHTTP以外の通信プロトコルの経験を失ってしまった
>>215 別にブラウザ経由で受け取る必要なくね?
Jsonでのやり取りで充分じゃね?
シングルサインオンもPOSTの時JSONにアカウント情報載せてやればサーバー側でチェックできるだろ
実際クライアント側へのプッシュ通知って結構面倒だけどね
MSが最後まで梯子を外さずに残すGUIフレームワークってVB6になると思う そうなるのが何年後かはわからないが
>>220 ActiveXコントロールは2025年10月までと発表されているぞ?
>>218 そのSSOのアカウント情報をそもそもクライアント側でどうやって取得するのかって話
DBユーザーのuser/passやDBのテーブルに格納されたuser/passじゃなくて、Google、Okta、ADのような外部のIdPで認証するのは流石のデスクトッパーでも知ってるよな?
IdP側でM2M用のキーを発行する手もあるが、セキュリティリスクが高いし運用的にスケールしない
Webブラウザの方が偽装しやすいこともわかんねえんだろうなw
>>225 多要素認証が必要になる理由を考えたことがないのか?
>>222 30年も使ったから
そろそろ賞味期限が切れたのでは
>>225 WebブラウザはOSやハードウェアの情報を正確に取得できない
セキュリティ上の問題
httpで外部からリモートアクセスできないように対策をし続けていまに至る
Webブラウザからアクセスしているように偽装するのは簡単
>>227 そうじゃなくて古いもので作られている業務システムが多いから。
Macみたいにシェアが低ければ簡単に切れるが。
昔から海賊版だらけのデスクトップアプリはセキュリティ問題ないのか
RAD Studioか Delphiは好きだけども…
今年が2024年だということもわからなくなった高齢者なんだろう
Win32だとコモンコントロールを使わなくても同じような枠線を引くAPIがあって ちゃんと作ってればOSのバージョンアップに伴って見た目もある程度自動で連動できてたのに 最近はOSのテーマに追いつくのはアプリの責任になっててひどくない?
この時代、ゴミみたいな単価でそれなりに見栄えのするデザイン作れるデザイナはいくらでもいるし、 それを寸分違わず実装するのも(WPFはともかく)今時のテックスタックなら大した工数じゃないからねえ 悲惨なUIにならないようにOSがお膳立てしてあげないといけなかった時代は、(業務ドカタ開発を除けば)終わったんだよ
wpfのテンプレート無効にしてまでカスタムしてる変態もいるんだぜ
日本人は同じ見た目でないと怒り狂う変なやつが多いしな。
XPのガキっぽいのはヒデーなと思ったけど 8や10の視認性の悪さを体験すると評価が変わった
NT4でOSとしては完成してたね VB6.0もコレを対象にしてて、いまだに一部業界で稼動中 これらに比べたらWPFはゴミ
あんな作法に惑わされ過ぎ 工数が嵩むばかりで何のメリットも無い
ユーザーが入力した値の検証や表示用に変換が必要な場合には向いてる
そんなんMVVMじゃなくても出来るし 一度作ったらそれっきりなんだから 意味が無いんだよ
MVVM便利だけどな やっぱ層が分離されてるって気持ちいいよ
俺はMVVMSを提唱してるけど Mはもう構造体だけにしてSでMを加工しVMに情報を与える SはサービスのSね
TextMateSharpっていうTexMateという一般で広く使われてる規格からシンタックスハイライトを作成するライブラリを使ってWinUIのRichTextBlockにシンタックスハイライトを実装するライブラリ作ったんだがこれってライブラリ化とかした方が良いかな? プログラムは単純にTextMateSharpのデモをパクってRichTextBlockに合うように呼び出しを変えただけなんだけど ふつうにGitHubなんかにサンプルとして投稿する感じがいいのかな?
>>251 なんか、
やりたくで作ってるだけじゃなく、
必要になって作ってるわ
MVVMの
Prismだかは無しで
>>253 Prismみたいなフレームワーク使わないとめんどくさいだろうなぁ
個人的によく使ってるのはMVVMToolkitだわ
CommunityToolkit.MVVMのNugetで使えるようになる
確かWPFでも使えたはず
vue.jsとかのMVVM知ってると WPFのはあまりに馬鹿らしくて泣けてくるぜ
>>255 すまんVue.jsやったことないんだけどどのへんがWPFがクソなの?
全部って感じ... 他はMVVMにかかる手間なんて一切無い ので話題にも上がらない感じ
そも、VisualStudioって、MVCモデル用だれ?
>>260 例えば Vue.js の MVVM でここが優れてる!
ってのはどんなのがある?
ただ Vue.js 言いたかっただけなんじゃないの?
MVVMToolkitはマジで記述クソ簡単になるからオススメ 一応Microsoft既製っぽい(実際はコミュニティで作ってる)しパフォーマンスもPrismより良いらしい
>>265 ほう
使ってみますわ
内部の仕組みとかは気にしなくてええの?
不安だわ
>>266 Prismとか、
使ってええもんかどうか…
>>267 Prismは必要以上に肥大化して複雑になっちゃったから手を出さない方が良いと思う
CommunityToolkit.MVVMは後発なだけあってシンプルで分かりやすくて良いよ
これがもっと早くにリリースされてればWPFのMVVM嫌いをここまで量産しなかったかもしれない
>>269 あー
初心者だから大変だわ
とりあえずToolkitでさっきから作り始めたわ
>>270 とりあえずToolkitでさっきから作り始めたわ
何も無しで自力作ったWPFアプリケーションをToolkitに移植してるけど、
仕組みがよくわからんわ…
>>272 まあ、
自分で書くソースコードは短くなるな…
>>272 普通こういうのはプロパティの値が変わってもUIに反映されないんだけどINotifyChangedって言うプロパティの値が変わったら自動的にUIに反映させる実装を裏の方でしてるだけ
MVVMToolkit使わないならわざわざその処理を手書きで記入しないといけないところをMVVMToolkitは裏で自動で実装してくれるわけ
その裏で実装されてるのが
>>270 この記事の終わりの方にあるアナライザーのところに勝手に作られるコードってわけ
>>274 そうだね
INotifyChangedとか書いてたわ
だいぶ短くはなった
>>257 >他はMVVMにかかる手間なんて一切無い
>
>ので話題にも上がらない感じ
WPFについても同じように思っている人はいると思う。一切無いとまで言い切ることはしないが。
自分はそれほど困ってないが、ちょくちょくWPFをディスりに突撃してくる変な人がいるなあ、という感想。
>>277 >>WPFをディスりに突撃してくる変な人
以前WPFに人生投資してた人でお節介ながら警告してくれてんじゃないの?自分もそうだけど
で自分はWPFに関してはMVVMだけなら単純なバインディング機能とコードビハインドだけでもっと簡単にサクッと書けんじゃないのと思ってる
諸悪の根元はMicrosoft Expression Blend系機能に代表的されアンチコードビハインドの原理主義
MicrosoftがMVVMの為に言語を歪めてコンパイラで特別扱いする勇気があれば、最初からもっと簡潔に書けていただろう なぜ素のC#で書かせたのか
>>278 そんなのは過去ログやWEBの評判みりゃ分かることだし、要らぬお世話だよ
何度も長々と同じ話してて、邪魔にしかなってない
それに今は以前と比べてかなり簡単に作れるようになってる
>>279 自動プロパティにget set init 以外に bind set付けるだけなのになあ…
VSエクスプレスでコミュニティツールキットMVVM Ver.8以降を使う方法ってありますか?
テスタビリティが低いから GUIフレームワーク込みじゃないとテストできなくて自動テストとの相性が悪い 双方向バインド、テスタビリティ、宣言的UIがMVVM三種の神器
流行りなだけで単純なアプリ作るだけなら不用だしなぁ
ViewとModelで、 独立して開発できるって認識で合ってる? まあ、本格的に企業で開発してみないと実感がないな…
モダンUIフレームワーク視点から捉えたMVVMの現在地↓
「SwiftUIでMVVMを採用するのは止めよう」と思い至った理由
https://qiita.com/karamage/items/8a9c76caff187d3eb838 >>289 Modelを全部ObservableにすればVMは不要である
と読めた
何年か前にそれを見たような気がするけど呪文が多くて別物だと思った GUI部分は宣言的にコード書くのは楽なんだよな 書いた通りにしか動かないから
書いて無いのに動くプログラム。怖すぎ。 コックリさんか、小人さんが補完するのけ?
>>289 本質はただの言葉遊びにしか見えんね
VMを別の言葉で言ってるだけ
なんか余計なコード書かなきゃならあかん事が増えて かえって工数が嵩んでるって思うわ
意味不明瞭な変な用語を使いたがるキチガイどものいつもの会話
XAML+双方向バインディング VS コンポーネントベース+単方向データフロー それぞれ切っても切り離せない関係にあると思うが、MVVM云々よりこっちの方が古今の開発体験の差になってるように思う
XAMLは単一方向フローでもいけるだろ 当時はXAMLのパフォーマンス改善の方策の一つだったぞ
winui3ではx:BindとBindingで違うね Bindは静的バインディングでモードを1回だけ、単方向、双方向で変えられる 毎回指定しなきゃいけないの面倒だけどね Bindingは動的バインディング
マテリアルデザインの5.1って動きます? 4.9までは動いてたんだけども、見つからなくなっちゃった App.XamlでMaterialDesign3.Defaults.xamlに変更したりしたけども、見つからない 動かすだけなら4.9に戻せばいいだけなんだろうけども
動くよ App.XamlでSecondaryに書き換えるとこもある
MS自体、小規模ならMVVMは使う必要ないと言ってる。
C#の入門レベルの本だといまだに「WinFormでアプリを作ってみよう」という例が書いてある印象はあるよね
「UWPでアプリを作ってみよう」よりかは需要のある知識
高DPIも対応したしwinformsは手軽にGUI作れるフレームワークとして今後も有力だと思う
WPFのHiDPI対応は何も考えなくてもできるけど、 WinFormsのHiDPI対応は難しすぎる
WPFに比べてWinFormsは敷居が低い。ま、x:name使えば大差ないけどな。
>>311 MVVMとかやんなきゃ
変わんねーーだろ
これが最新のMacOSで動くというのがシュールすぎるw
そいやvscodeのavaloniaの動くようになっていた VisualStudioでやればいいんだけどさ
AvaloniaStudioとかいうVisualStudio風味のIDEがGitHubにあるな
WinUI3のコントロールの中にWindowsTerminal組み込んで見たの図
VIDEO こいつにディレクトリのツリービューとか追加してダブルクリックでそのアイテムのパスをコピペするようにしたりコンソールアプリのパスを登録したリストビュー作ってその中からアプリを選んだらそのパスがコピペされたりとかになればコンソールもだいぶ使いやすくなるぞ
そんなもん適当なコマンドランチャー使えばいいでしょ
>>321 コマンドランチャーってコマンド引数入力できるの?
コンソールの親ウィンドウを設定しただけに見える ネタなら前にあったLINE風のコンソールのが面白いね
>>324 そうそう、Process. Startしてウィンドウハンドルを取得
DllimportでSetParentしただけ
ただWindowsTerminalの設定をそのまま引き継げるしタブも使えるしなかなか便利だ ツリービューからパス選ぶのもいったんクリップボードにパスを文字列で入れてsendinputでCtrl+Vを入力してるだけ 超お手軽で色々応用が効くといったもの 個人的にターミナル使う時わざわざエクスプローラー起動して~右クリックでパスコピーして~ってやってたからこういうのあれば個人的に助かるってやつを作ってみた
windowsだけならWPF クロスプラットフォームはAvalonia
UWPやMAUIって現状どうなん? C#でのGUI開発だとWPFの方が名前が挙がるけど、これは単に移行が進んでないだけ (可能なら移行したいとは思ってる) なのか、WPFの方が安定してるなどメリットがあるのか
UWPは今後も無いな WinUI3やMAUIは完成度がね…
React はいもうこの話は結論付いている MicrosoftですらReactを使っている
「C# で作るなら」って書いてあるのが読めないの?
業務なら普通にWebよ と言うと、外部機器の制御などでデスクトップアプリの必須な分野もある、といった反論があるだろうが、 そういう分野の連中って結局何やってもWinFormsから移行しないからMSはもう投資してないよ
いまどきの業務アプリなんて生成AIでノーコードなんじゃないの 逆にC#の出る幕なんてあるの
>>338 はやく生成AIで業務アプリ作って公開してくれよ
>>339 アシスタントにAIは普通なってきましたよ
因みにC#でもアシストしてくれると思います
>>340 話がずれすぎ
生成AIでノーコードで業務アプリ作れることを証明しろって話
>>337 Webやってないのは進歩しない人間と言いたい十年一日のような議論
個人開発ならまだしも、プロジェクト毎の技術選定において「決定権」を持つのは開発組織の上位層であって、多くの技術者ができることはいわゆる「提案」に留まる
ワールドワイドウェブなのにWebブラウザの仕組みの話になっているのは知識がなさすぎる。 いまはWebアプリケーションはSPAだらけで、Webブラウザの基本的なプロトコルでもはや実装していない。
>>348 初回アクセス時にjsのソースをローカルにロードしたら以降は全部ローカルで動作する(なのでサーバーアクセスも不要)
初回アクセス時にローカルストレジにキャッシュも出来るので、そうすると起動時のサーバーアクセスすら完全に不要になる
こうなるとWebアプリじゃなくて実質クライアントアプリだね
データをローカルストレージに書けるようになったらそうだね
オンラインとオフラインで動作を変えてる オンライン接続されたたローカルで作ったデータを鯖に送ってアップデートする それが最低限の挙動
>>352 軽く言ってるけど、データの整合性とかはどうやって担保してんの?
>>354 そのルール作りが大変だろうが。下手なルールだと不整合がバンバン起こる。
それにそんなんが可能な業務も限定的だろが。
何にでもケチをつけないと気が済まないんだなとしか…実際に実装されてるし一般に売られている本などでも実装手順は書かれている 大変だろうが。で終わる話ではないんだけど そもそもがオフラインの状況自体がかなり限定的で その状態でどの機能を有効にするかを取捨選択するのかは顧客と話し合って仕様決定する それが仕事の人がいるので決まった仕様に沿って実装するだけなんだよ…
「だけ」と軽く流して具体性に欠ける回答だから突っ込みが入って当然だろう こういうのは何でもケチをつけるには当たらないと思う
具体的に説明しようとしたら、こんなところの数行のやりとりで終わらせられるような話では無かろうよ で、ここはそれに適切な場なのか?
何にでもケチをつけないと気が済まないんだなとしか…
オフラインでしか使えない状況でも使いたい場合もあるでしょう 山奥の家で保険の更新とかだと電波なんか届かないでしょう 大規通信模障害でわざわざアポ取ったのに当日キャンセルなんてしないだろう そういう時にはオフラインで操作して後で更新するだけで終わりだよ 複雑な在庫を奪い合ったり相互に関係するリレーションを破壊するには向いていないがそんな業務を避けるだけで オフラインで業務報告や日報入力など普通に使えないツールは困るだろ 状況に合わせて適宜ルール決めるだけ 本当にこれだけだろう
仕様を決める人間と 決められた仕様に沿って実装する人間とでは 物事の見え方が違うという典型例だね 両方やってればもう少し物事を多面的に見れる
ちょっと違うけどイメージしやすい実例を挙げるとしたら Git とかになる? fetch だけオンラインでしとけばオフラインでもコミットなどはできる。 オンラインになったときにプッシュする。 データが不整合(コンフリクト)になったときどうするかは、 要件に応じて設計
横からだけど、その例はちょっとズレてるんじゃないかな そのような汎用的なツールは誰にでも受け入れられるように極力勝手な前提を設けずに小手先のテクニックで頑張る方向 一方で、業務アプリのように特定のユースケースを前提とするなら、汎用的なコンフリクト解決の仕組みとか要らないの 衝突した場合には、ある特定のデータ項目に関しては常に端末側のものを採用したい、といった要件は個別に話聞けば普通に出てくる 仕様決める人はそういうのをクソ真面目に話聞いて仕様に落とし込んでるわけだね 基本的に客は馬鹿なので、必ずしもそういうアプローチが汎用的なアプローチよりも優れている訳ではないのだが、 ともかく上の「仕様を決める」というのはそういうことを言っているのだと思う
>>363 書けば書くほど素人臭がキツくなるな
「Gitと同じように作るだけじゃないの?」とかリアルで言ってそう
WinUI3の画面にWindowsTerminal埋め込んだったwww
https://qiita.com/C-Sharp_is_GOD/items/d02a2da67690342eb18f VIDEO WindowsTerminal標準の設定も使えるしタブ機能も使える
ChatGPTの公式デスクトップアプリがMac版はネイティブなのにWinではElectronになったのには、当初WinUI試したけどあまりにもクソだった →実際Winアプリって最近のメジャーどころはMS製含めだいたいWebベースなんだからもうWebでいいじゃんという判断があったそうだ あまりにもライブラリが未整備だし誰も使ってなくてエンジニアの確保も困難とのこと 一方MacはUIフレームワークの乱立&放置が繰り返されたWinと比較してネイティブアプリ用のUIフレームワーク何使えばいいか極めて明確だし、大部分のコードをiOSと共通化できたそうだ WPF以降の迷走によって崩壊したWinのUI開発エコシステムの惨状を象徴する良い事例だな
バックエンドと高頻度にデータをやり取りするとか、 バックエンドでリアルタイムに生成した画像を大きく表示するようなアプリだと Electronはレスポンス悪くなるんじゃないの?
Webはそういうユースケースに最適化されてるからむしろWPFなんかより遥かにレスポンスいいんだよなあ
じゃあ、逆にElectronはどんなタイプのアプリには向いてないの?
一般的には、メモリ消費量の少なさや起動の早さが重要な小物には向かないとされる(WPF比では微妙だが…) ChatGPTなんかまさにそうで、Win版がElectronアプリであることはかなり非難されてるね
一般的には、メモリ消費量の少なさや起動の早さが重要な小物には向かないとされる(WPF比では微妙だが…) ChatGPTなんかまさにそうで、Win版がElectronアプリであることはかなり非難されてるね
ネイティブであってもXAMLレンダリングしてるならElectronでHTMLレンダリングしてるのと内部でやってることあんま変わんなくね?ってのが
AIアプリなんてネットワーク越しでAPI叩いてるだけじゃないの?ローカルクライアント側のパフォーマンス差なんて AIのレスポンスに比べればたかが知れてる気がするけど
処理速度的にはその通りというかむしろ極限まで最適化されてる分HTMLの方が大抵速いのだが、 ブラウザを丸ごと同梱するのは本来必要な機能に対して膨大な無駄があるからどうしてもメモリ食うし起動にも時間がかかる
webアプリをクロスプラットフォームに移植する上でelectronだと楽だから使われてるだけで 最初からwin用のネイティブアプリ作りたい用途ならWPFの方が向いてる
それは思い込みだと思うよ WPFの開発者なんて確保できない
ChatGPTのアプリってWeb版と何も変わらないじゃん、ショートカットがあるくらい? それを例に出すのは流石に頭悪いと思う Edgeで任意のサイトのアプリ化する機能とやってることは変わらん Webアプリがクロスプラットフォームの肩書きを得るために楽なのがElectronだから一応用意してるだけ、ブラウザでアプリ化するのと対して変わらん
web開発者は低価格でいつでもいくらでも提供されるので成果物が同じ機能ならコスパが良いのは web技術を流用したほうになる
単にChatGPTがアプリの特性を考えてElectronを採用しただけ その開発者でもないのにそれを引き合いに出して他技術を貶めるのは流石に頭が悪い ChatGPTはバックエンド側が価値があるわけでフロントエンド側なんて別にどうでもいいわけ ネイティブアプリが向いてるのはアプリ側がメインで処理を行うもの 動画プレイヤー ターミナル IDE PDFリーダー こういった類のものを一から作る上でElectronやJSを採用する意味はない アプリの特性を考えて適切な技術を選択してるに過ぎない
そういうものはおいそれと一から作られないと言う事実を無視してる 需要がない WPFは死んでる 役割を終えた winUI3もそんな感じだ
俺WPFでアプリ作ってgithub star 1000以上あるけど?使われてるんだが? クロスプラットフォームならAvaloniaでもいいよね JetBrainsがdotpeekやdottraceでAvalonia使ってるけど? C++なんで全員使いたいわけでもないし、C#でネイティブ作る需要は普通にある お前は何も生み出さず他人の受け売りしかできないゴミだね
どんどん小学生のようなレベルに落ちていくな 俺のお父さんは社長だぞーみたいなレベル 論理のかけらもない 上から順にスレを見返していけばいいのに
内容で反論できずに無意味レスw C++じゃなくてもC#で作られてますよね?って事実を指摘して涙目敗走w
> 俺WPFでアプリ作ってgithub star 1000以上あるけど?使われてるんだが? これが痛々しいと言うことに気が付かないんだから本当に鈍感だろう Avaloniaの話を出したりする時点でじり貧なのがよくわかる このスレの流れの元になったレスから見直せばそういう話にはならない ライトウェイトなジャンルでもWPFが使われないのは生産性の問題だろう そこをなぜ無視するのか
ChatGPTで使われてないだとかはどうでもいい 他技術を貶める他人の受け売りしかできないゴミは 何も価値を生み出したことがないお前みたいなゴミが多い 何か生み出してかいってみたらどうなの そもそもネイティブアプリの需要が低いってのがそもそもあるんだけどね、金稼げないし、割られるだけなんでね
他人にゴミゴミ言って突っかかってくる人間が一番問題あるんだと思うけどな 生産性がない
WPFが使われてないんだー、Electronの方が使われてんぞ! うんそうだね、だから何? ビジネスをする上でElectronが適した場面が多く、WPFが適してない場面が少ないだけなのでは? 逆に適してる場面で採用すれば生産性は高いのでは? Avaloniaを持ち出したのもWPFとほぼ同じで学習コストが低いから クロスプラットフォーム採用する上で、自分が慣れてる技術を選択することが重要なわけで
ごみごみ言うのは辞めたのか?書いてよかった 教育って大事だな
それにドンドン自分の書いた主張の内容をなぞって書いてくれるようになった 自分の主張が受け入れられて相手の思想を上書きしていると実感できる
使われてる使われてないとかどうでもいい なんでそんなことを気にする必要があるの? 自分が作りたいものに適してていいものだと思えばそれでいいんじゃないの?
>>387 いやいやMac版のChatGPTのアプリってVSCodeなど他のアプリと連携したりするんだぞ
今後オートパイロット機能などよりシステムと密接に統合されていく方向なのは明らかで、
ネイティブアプリの方がシステムへのアクセスのしやすさにおいて有利なのは目に見えてる
まあWinについては完全にCopilotと競合するから、やりすぎると大株主のMSから怒られる可能性が高く、やる気がしないという面もあるかもね
OpenAIにとってはWebのChatGPTのUIをほぼそのまま流用できる安い手段としてElectonが採用されただけだろう Electronで実現不可の事はやらんだろうし最初からWPFが出てくる幕なんて無いのでは
だとしたらMacよりも金をかける価値がないってことになるぞ Claudeのuse computerみたいにスクショベースでの連携ならElectronでも全然問題ないだろうけど、 Mac版ChatGPTの他アプリ連携ってOSのアクセシビリティAPIを使ってUIに深く踏み込んでるんだよね 仮に同じことをWindowsでやるとしたらUI AutomationとWin32みたいな世界だから、まあOpenAIは雇わないだろうねその辺得意なドカタPGは
WinUI3とMAUIって別物? いまいちこの2つの関係がよく分かってない
WinUI3は次世代のwindowsネイティブSDK MAUIは事実上xamarinの後継でマルチプラットフォーム用のSDKで実際のコンポーネントなどは 既存の各プラットフォームのSDKを使ってる で、windowsではWinUI3を使うことになる
AppleとOpenAIが提携したから何かやるつもりでネイティブにしてるんじゃないんか
MS的にはCopilotで自前で自由にして良い権利を得てたのかも知れんけど、結果は散々だな 今のMSにエンドユーザー向けの気の利いたサービスを開発できる能力があるとは思えん
MS365 Copilotは酷いよなあ 基本的な応答の品質からしてChatGPTと同じモデル使ってるとは俄かに信じられんレベルだしOffice連携も冗談みたいなゴミ 唯一役に立つのはTeamsの要約くらいだな 近年のMSのエンタープライズ向けプロダクトの例に漏れず情シスという名のブルシットワーカー達が経営陣に「やりました」と言うためだけに作られていて、 全くユーザーの方を向いていないしプロダクトとしての思想が何も感じられない ただ機能表に丸を記入させるためだけに開発されている
WPFのフレームワーク周りがよく分かってないので聞きたい 調べると CommunityToolki.MVVM, ReactiveUi, ReactiveProperty, Prism などが見つかるけど、これらはどれか一つを選んで使うようなもの? どれもMVVMのためと聞くけど、これらは同じ目的を持った異なる設計思想のライブラリという感じなのか、それとも異なる用途のもの (組み合わせて使える) なのか スレ民のおすすめ、好みなどもあれば教えてもらえると嬉しい
>>413 俺は Prism 使ってるけど、どれでもいいと思う
MVVM Toolkit は INotifyPropertyChanged の実装とかで code generator 使えるのが売り
Prism は機能が豊富なのが売りでダイアログやナビゲーション機能(Pageの代替) とか他にはないのが多い、ただしライセンスが特殊
.NET9 & C# 13 preview だと fieldプロパティ使えるから code generator 使わないでもシンプルにかけるんだよね
こっちの方が当然コンパイルも速いし、View から直接Modelにジャンプできるのが便利
.NET10 & C# 14 では この書き方が標準になるはず
```
# INotifyPropertyChanged
public class Model : BindableBase
{
public string Name { get; set => Set(ref field, value); }
}
# ICommand (lazy初期化)
public DelegateCommand HogeCommand => field ??= new(() =>
{
MessageBox.Show("hoge");
});
```
フレームワークは DI使えればなんでもいいかな
Webではフレームワークというとフレームワークが主でアプリケーションコードをその上に乗っけるようなものだが、 ああいうのを念頭に置くならWPFのはフレームワークというより単なるサンプルやツールの寄せ集めと言った方が近い 基本的に必要なものを適当に掻い摘んで使うもの、何ならソースコードをコピペしてきて自作してもいい
短かく簡単にしたいっていうならPropertyChanged.FodyとCaliburn.Microの組み合わせが頭おかしいレベルに省略できる。
>>414 の例によると、Set()も要らないしDelegateCommandも書かずに動作する。
だから問題なのはMVVMをどうするかではなくXAMLをどうするかに始終。
C#はシンタックスシュガーお化けなのにXAMLはこれっぽっちも短縮系がないのは何でなんかね 何もかもがクソ冗長で嫌になってくる
View側で何でもできるとそれはそれでスパゲッティになる React がその例 Viewにロジックを極力書かないのがWPFの流儀なんでそれに従うしかない
>>418 本当のスパゲッティソースを見たことがないんだな
山岡さんの気持ちがわかったような気がする
コード量はXAMLの方が何倍も多いよ 糞フレームワークのおかげで
XAMLが大成功して広く使われてたら今頃はとっくに virtual DOM & one-way data flow アーキテクチャに移行していただろうし、 C#にもJSXのようにXAMLをインラインで書けるようにする拡張が入っていただろう そうするほどの存在感をXAMLは示せなかったというだけのこと
ReactからWPF使って快適になったんだけどこれは俺だけ? 流行ってるからいい技術って思ってんだろうけど単にWebの方が拝金主義者にとって都合がいいだけに過ぎない
派手なコントロール作ればいいんじゃね? スタイルのカスタムとか無視してゴリゴリ画像とか貼りまくればいい
>>424 どこがどのように快適になったのかを具体的に教えて
>>427 UIとロジックが分離してるおかげで標準コントロールをそのまま使うだけでよい
このことから生成AIとの相性が抜群
テーマはサードパーティのを入れるだけで勝手にモダンな見た目になる
>>425 デスクトップアプリはマシンリソース使えるアプリ使えたりするし
UIなんかより動作するアプリ側に価値があるものを提供できる
それができればUIなんぞどうでもいい
>>428 UIとロジックの分離なんてReactでも当然に実現されてる
テーマは適当なCSSフレームワーク使えば余裕
まあまともに使ってないんだろうな
>>429 全然分離実現されてないから、使ってないのはお前だろ
ReactはViewしか存在しない、react hooks とかいうゴミを導入したことでさらにスパゲティが悪化した
テーマもCSSフレームワークを使えばそれに強く依存することになる、それが問題だといっている
State管理もいろいろ乱立し終わってる
WPFだとViewとロジックが分離されているし、標準コントロールにテーマを適用する形になるからほとんど改修は必要ない、これが大きなメリット
フロントエンドはAngularの方が良いな
よく使われている=いいもの ではないのよ。
そんなことはどうでもいいからtextboxにプレースホルダぐらいは実装してくれよ…
WPF推してるやつの時代錯誤感やベェなw ここまでとは思わんかった
既製品でよければExtended WPF ToolkitにWatermarkTextBoxがあるだろ 自作してもいいのよ
>>425 手間暇かければ出来ないってことはないだろう
割に合うかは別として
>>436 CSSと比べるつもりは無いんだけど
WPFでは不可能な複雑な画面ってどんなのさ
>>437 webのデザインシステム見たこと無いのか?
手間暇かかってやってられないならともかく、作れないってのは分らんな もしかしてカスタムコントロールやビヘイビア等の力業無しのXAML縛り前提の話なのかな
>>432 わざわざ推してないもののスレに来てるお前の方がやべぇよ
webが好きなら一生webをやってろ、俺はそれに価値を感じていないだけ
価値のあるwebアプリってのを見たことがない、価値があるのはそこに提供されるコンテンツや
ChatGPTのようなバックエンドサービスであって react だのそういった技術に価値を感じたことはない
生産性度外視してWPFだって出来るもんって言ってもなあ XAMLなんて控えめに言ってもバッドノウハウの塊だろ GridやStackの各種パネルがくんずほぐれつしてる他人の書いたXAMLなんか読めねえよ さらにそこにリソースやテンプレートが乗っかってきたらもう死にたくなる
いい加減CSS最高君に構うからいけないんだと気づこうぜ
>>441 全てViewに固めてるReactの方が読めないわ
何useStateだとかuseEffectって?
JSXの中で三項演算子やら複雑なロジックが書いてあって意味わかんねーよ
大体XAMLなんてデータ表示してるだけでロジックがないんだから読む必要なんてない
読む必要があるのはロジック
XAMLに文句言ってる奴はqtやらWinformsでGUI作ったことがないんだろうな ReactだのWeb技術を持ち出すのがその証拠 少なくともWindowsアプリ開発において開発生産性でWPFより右に出るものはないでしょ
とはいえ今時のWindowsアプリって、不特定多数向けの新規開発はMS謹製のもの含め大半がWebベースになってるからねえ 生産性は慣れやスキルセットの問題もあるから単純にどっちが上というものではないが、事実として時代は変わってしまった
やべー 最近のアプリなんて何ひとつ使っていなかったわ……
マイクロソフト自身もVS CodeなどはWeb系の技術で作ってるからな Windows限定ならWPFはそれなりに有力だけど、世の中のニーズがマルチプラットフォームアプリやWebサービスに向かってる以上はWeb技術は避けられないと思う React hookが嫌いとかはたぶん慣れの問題で、逆の立場 (React分かるけどWPFは未経験という人) から見たら同じようにWPF難しい、ってなるだけかと思う
>>449 WPFは最初は難しいが慣れると快適で生産性が高いと感じる、実際に自分がそうだった
Reactは最初は簡単だが、慣れるとクソに感じてくる。React Hooksも同様。
Angular の方が断然いい
人気だからよいものとは限らない
React Hooksとか超コードみじかいんだが... 変な状態管理のコードでもつかったからだろ MVVMみたいな糞選択がすれば、糞な結果になるのはReactも同じって事よ
MSはOutlookをWebView2に移行したね WPFの最大の敵はこんなところにいるアンチ達ではなくマイクロソフトなのだ
ところでクロスプラットフォームなら名前の出たQtのQMLは超いいよ Windowsではネイティブコントロールを使ってくれないので違和感があるのが欠点だけども
>>455 https://learn.microsoft.com/en-us/microsoft-365-apps/outlook/overview-new-outlook#architecture > The new Outlook for Windows, built upon modern service architecture, is inspired by the Outlook web experience. It operates within a streamlined Native Windows Integration Component and utilizes WebView2.
なおReactを使用している模様
https://www.neowin.net/news/microsoft-plans-to-unify-outlook-across-platforms-using-web-technologies/ >>452 単にアプリの要件に合わせて適切な技術を選択しているだけなのでは?
Outlookはwinネイティブの機能は何一つ使わないだろうからクロスプラットフォームにする上でWebを使いまわせるメリットが大きいんだろう
Windows11の電卓は?動画プレイヤーは?
>>451 コードの短さ=保守性の良さ、高生産性と思ってる時点でレベルが知れるね
Reactなんてone wayアーキテクチャが大規模において使い物にならないからいろんなstate管理のパターンが乱立してるんだけどね
state管理の難解さは人間の方に問題がある気もするけど 状態の組み合わせ爆発で人間の脳では追いきれない バグがあって当たり前
>>457 その例はちょっと苦しいなw
PCでの動画再生なんて今時ほとんどWebだし、電卓、、まああなたが開発しているのが電卓なんだったら何も言うまい
WPFデザインのメリットって何? WindowsFormでも行けるよね?
>>461 one wayなFlowアーキテクチャで十分ならなぜState管理のライブラリが乱立してるの?
Angularはそうでもないけど
>>463 WPFのMVVMライブラリがなんで乱立してんの?を自問自答してみれば自ずとわかるのでは?w
>>457 >Outlookはwinネイティブの機能は何一つ使わないだろうから
これマジで言ってるの?
>>463 WPFしかやってないと、
Reactとかアカデミックな技術論の盛んさに腰を抜かすだろうね
Geminiの回答 UIのViewModelにおけるデータフローがTwo-wayからOne-wayにシフトした主な理由は、 * 複雑性の軽減: One-wayはデータの流れが単方向で、状態管理がシンプルになり、バグの発生を抑制できる。 * テストの容易性: 各コンポーネントを独立してテストでき、テストケースの作成が容易になる。 * 大規模アプリケーションへの適応性: スケーラビリティが高く、コンポーネントの再利用が容易になる。 * リアクティブプログラミングとの親和性: データの変化をリアルタイムに反映させやすく、非同期処理をサポートする。 これらのメリットから、現代のフロントエンド開発ではOne-wayが主流となっています。 より詳しい説明が必要な場合は、お気軽にご質問ください。
>>463 angularはフルスタックフレームワークだね
意味分かるかな?
Webだって競争の結果、今に至っただけなんだよなぁ One-WayのMVVMフレームワークが良ければVueだってあるわけじゃん? 最近触ってないから、最近のVerでどんな実装が主流なのか知らないけど
one-way dataflowって要は ビューはモデルの状態を反映するのが仕事 ビューはモデルに指示を出すのが仕事 状態の更新はモデルの仕事 というだけのことで、MVVMでもまともな作り方してたら基本的にそうなってるはずなんだけどな ただ、2-way bindingしちゃうとモデルの状態を反映していたはずのVMのプロパティがビューの状態変化によって汚染されてしまう それを考慮して適切に同期をとらなきゃいけないのは複雑だから2-way bindingはやめようということだね しかしその辺は実装上のテクニカルな問題であって、本質的には前述の役割分担が適切に行えてさえいれば大きな違いはないのだが、 この残念な人は責務の分離が正しく理解できてなくてVMに状態更新のロジックを書いちゃってるんだろうね
両方触ったうえでReact糞WPF快適と言ってるんだがw お前ら口だけのクズと違ってWPFで割と高度なアプリ作って1000スター持ってるからね 悔しかったらそれぐらいの実績上げてみろよ わざわざ嫌いなもののスレにきてWPF下げてReact持ち上げる癖にReactでもWPFでも大したアプリ作ったことないんだろ IT土方にも適用できず発狂しちゃったんだろうね
技術的な良し悪しとは違うけど、今からWPFを学ぼうとすると情報を探しづらい (古い情報が多い) のがつらい感じはする 人気再上昇みたいな未来は見えづらい
このスレ見てるとWPFを学ぶ気が失せる 特にCSS使えないってのはかなり致命的だった MS奴隷しか使わないフレームワークなんだって事が判ったよありがとう
ReactというかFlutterでもSwiftUIでもなんでも良いんだけど、最近のFlux/コンポーネントベースのフレームワークはガチで使いまわせるが WPFのユーザーコントロールは結局既存のコントロールの拡張を遠回しに実装するだけで 複数のアプリで使いまわせた試しがほとんどない 見た目を分離することと生産性の向上は全く関連性はない
>>477 じゃあCustom Control作るか、標準コントロールにtheme適用すれば?
そもそも見た目を分離するってのはユーザーコントロールの話じゃないからね
ViewとViewModelを分離することも言ってる
例えばある処理中に Spinner を実装する場合は、Reactだと Viewに状態を含むロジックをすべて書くことになっているから
非常にテストがしづらいしスパゲティになるんだけど
WPFだと プロパティとAsyncCommand を定義するだけでViewModel上でSpinnerが完結するから
完全に見た目とロジックが分離していることになる
よってViewModelだけテストすればよいし、Viewはただ表示するだけのシンプルなものになる
MVVMを叩いている馬鹿は、WinformsやらQtやらでそれなりのGUIを作ったこともなければReactやらでまともにテストを書いたことがないんだろう
複数アプリで使い回す?ってのをそもそもライブラリ提供者でもなくアプリ開発者が普通やるんかね。デスクトップアプリ開発は標準コントロール使うのが基本だと思うけど 俺はCustom Controlをわざわざ作りたいという状況になったことはほとんどない、ライブラリ開発者ではないから 同じアプリで1つのUserControlを複数使い回す方がよっぽどReactのコンポーネント指向に近いものだろうけど DependencyPropertyとRoutedEvent使えば同様のことができるでしょう DependencyPropertyの構文はひたすら冗長で確かにクソだけど慣れたら別にどうとでもなる 単にWPFに慣れてないだけに過ぎない、それでいちいち嫌いなもののスレに来てWeb技術を持ち上げるのはなぜ? そのWeb技術を使って革新的なアプリでも作ってろよ、時間の無駄だから
MahApps.MetroもWPF UIもあるので好きなだけ見た目変えたらいい 標準がいいと言われてもな、ToggleButton好きなやつおる?
トグルボタン(トグルスイッチ)と言えばね、効果がすぐ体感できる対象でしか使うべきではないとガイドラインにもあったと思うが OSのWindowsの設定では不要と思える箇所にもスイッチが頻出して階層の深さとも相まって相当カオスなUIになってる OSアップデードの度に項目の場所が変わるし動的に増えたりするギミックもあるし作ってる側は楽しいかもしれんが 使う側は一体何がどこにあって何が規定の設定だったのか把握するのは困難 これってどうにかなりませんか?MS奴隷の方々
>>474 英語ならいくらでもあるね、pluralsightとか。
ドキュメントや技術本程度の英語すら読めない雑魚はそもそもエンジニア向いてないから辞めるか英語の勉強から始めた方がいいと思う
>>475 お前みたいに5chなんか見て技術を選定するような馬鹿は何もできないだろうから使わなくてもいいよ
自分の作りたいものがあれば自分に適した技術を選択して、それで開発すればいいだけ
俺はWPFで価値があるもの作れてるからそれでいいのよ
webスレに人がいないからな ここに来るしかないのだ ム板も限界集落だけども
正直現役世代の技術をこんなとこで話さないからね 昔話と、時代に取り残されたジジイをからかうだけの場所
node.jsのdgramモジュールを利用してElectronでデスクトップアプリとして作れるけど。 しかも当然MacでもLinuxでも動く。
別にMicrosoft.Extensions.AIの話をしてもいいんだけど、ここWPFスレだし? ObservableCollection<ChatMessage>の使い方とかこじつけとこうか
>>485 20代で趣味でOSS開発してるだけですけど。それでスター数1000ありますけど。
勝手にジジイ認定して面白いか?
>>482 証券取引の業務クラアイアントで
アーキをWPFからWebに移行した俺が
10年以上まえからWebでやってる
reactなんて古式ゆかしいステートマシンがアーキテクチャのルーツだろ? MVVM脳のままで使おうとすればそりゃぐちゃぐちゃになるわな フレームワーク使うなら前提とするアーキテクチャには100%従うのがスタートラインだろ そこから外れたことをやろうとするとたちまち破綻するのはどんな優れたものを使っても同じ
他のスレに投下してスルーされたけど ファイラースレより Electron製TabSpaces Tauri製spacedrive 触ってこいって 酷いもんよ
>>478 , 479
tailwind cssやshadcn/uiみたいなのが流行ってるのは他人やAIが書いたコンポーネントをコピペしてそのまま動くからだよ
v0なんかの生成AIサービスもそれ前提の仕組みになってるしね
それくらいコンポーネントベースのフレームワークは再利用性高いって話
俺WPFで生成AI使いまくってけどかなりコピペで済んでるけどね 標準コントロールだけ使って見た目はライブラリに任せてるだけだし お前のメリットで言うとWPFの方が上じゃないの?標準コントロールだけ使うだけで済むけどWebはそうは行かないでしょ ロジックとUIの分離ができないから
『ロジックとUIの分離ができないから』(・ω・#)?
たぶんVMとVの分離のことを言っているのだろうけど、それが再利用性にどう寄与すると思っているのかは謎だね 現実には再利用を前提にするならVMがセットになったコントロールなんてありえないんで、SpinnerのようなケースではWPFでもコントロール自体に局所的な状態をカプセル化してしまうのが普通だね
WPFは参照元が増えるときっつい ListViewでMVVM使ってると listviewのVM listviewitemのVM (ItemsSourceのItem)l listviewitemのコンテキストメニューのVM 等が合ってそれらの条件に基づいたStyleとかも適用されてどこがどこだか判りにくい場合がある ユーザーコントロールなんかにすると外に公開するプロパティも組み合わさってめんどくさくなる
>>496 再利用性よりもロジックを分離することで保守性とテスタビリティと高まると言ってる
さらに生成AIとの相性も良いと言っている
俺再利用性なんて言ったか?文盲乙
ReactはViewに全てのロジックをごった煮で詰め込むから少し規模が大きくなるとまともにメンテできなくなる
JSXで三項演算子やらを乱用し、React hooksとか言うゴミで状態管理もViewと密結合になってまともにメンテできない
Reactで単体テストやろうとすると実質ブラウザテストのようなものになってしまうから意味ないんだよね
『ReactはViewに全てのロジックをごった煮で詰め込むから』(・ω・#)?
DataContextは親のを参照するからListViewItemのためにVMは要らない。 具体的には<Image Source="{Binding DataContext.UserIcon, RelativeSource={RelativeSource AncestorType=ListView}}" />という書き方をする。 詳しいことはgithub copilotがサンプルまで示して教えてくれるだろう。
よく読んでからレスしないとエアアドバイスになってるぞ
よくある例としては懐かしのダウンローダーみたいなのがあって ダウンロード一覧で右クリックから停止させたりタスク削除したりで各モデルなどの状態に応じてメニュー表示を切り替えたりとかするの非常に判りにくい Ancestorで辿れないvisualツリーとかめんどくさい
ListViewItemViewModelが作られるのは単に可視化要件に応じた変換を入れたいだけのことが多いけど、 やりたいことに対して必要なコード量増加や可読性悪化のコストが大きすぎる嫌いがあるよね 一方Reactの場合は極めてstraightforwardだけど、まあ残念な人の言うとおりtestabilityの問題はあるね 直接モデルからJSXに出力しないでViewBag的なものを間に挟むようにすりゃいいだけの話だけどな
ちなみに文盲とは文字自体読めない人のことなのでこの件は文盲とは違う
>>497 d:DataContext設定すれば補完も出るしrelativesource使っても補完出るし別にわかりづらいと思ったことないけど
Reactの配列.mapsも別にわかりやすいと思えんけど
なんかVMとModelを混同してない?なんで全てViewModelなの?
誰かが主張しているAIコピペで済まない例だからだよ
>>506 俺の作ってるアプリはお前みたいなゴミには作れない高度なアプリだけどそれはモデル側だからな
ゴミアプリで星1000とれるわけないでしょう
ViewModelとUIは表示するだけのシンプルなものだからAIに任せてるってだけ
wpfが生産性高いとか嘘だろ 高dpiとかあるから仕方なしに使ってるだけだわ はるかに簡単なwinforms使いたい・・・
イベントハンドラーベースでつかえば WPFでも変わらんと思う。
今ってコントロールは同じものが揃ってるの? WPFでdatagridviewあったっけ?
WinFormsのHiDPI対応って、そろそろマシになったの?
今時WinFormsやWPFが選択肢になるようなとこなら解像度下げりゃいいだけ 老眼にはその方が喜ばれる
より高性能のDataGridというのがある。5-6倍速い。 ただし難易度高い。
GridViewとListViewは初心者がドハマリして退散してゆく要因なのよね これは常々思う。もしforeachで書けてExcelみたいに使えてたらWPFの未来は大きく変わってたのに
何がそんなに難しいのかわからん ChatGBTに聞いたら大体教えてくれるでしょ
聞かなきゃわかんないほど複雑だからだろ 直感的に書けるようなのだったらよかった
WPFの思想的には本来はListView使えばいいんだけど、 ListViewってWeb的な要件定義やデザインが前提なのでWPFのユーザー層と致命的に相性悪いのよね 当初はWebアプリ置き換えも狙ってたから仕方ないのだけれど、結果的にWPFの普及を妨げた大きな原因の一つ
セルのなか右寄せしたいんだけど…… の回答を見て、なにこれ…(退散)
DataGridは何でもできるし、かなり早い。が、難しい上に資料も皆無。 上手く使えれば良いものだけどな。
そういえば数年前にMAUI触った時、DataGrid無いと知ってがっくり。今も無いよね? 仕方なくAvalonia使った
Flutterにもデータグリッドは無い (ただ格子状に要素を並べるだけのものはあるが) 業務系ドットネッターにとっては驚くべきことに、データグリッドはUXの要素としてそれほど一般的なものでも必要不可欠なものでもないのだ
誰も話題にしてないけど、.NET9でFluentテーマ追加されてた ライトモードとダークモードにも対応
WPFだけでなく、WinFormsでも現代的なことはだいたい何でもできるようにする方針になったらしいな ダークモード対応とか
MicrosoftがWindows上で成功して後世に残せた事ってCOMぐらいだな 後はゴミの山だ
右クリックだろう Windowsがオリジナルという訳ではないが、重要なUX要素としてはWindows上で成功してMacが追従した極めて稀なケース
マウスはMacが先 そもそもOSもMacが先だしコンピュータ自体Macのほうが先に作られている windowsは何もかもMacのマネ
マウスとアプリでPC操作…世界を変えた初代Mac 貫かれたジョブズの美学と革新性 #なぜ話題(Yahoo!ニュース オリジナル 特集)
#Yahooニュース
https://news.yahoo.co.jp/articles/b05f947581a8167c57cd854157ea61f71127f902 マウスは1ボタンマウスがアップル、2ボタンはmicrosoftってのが言われるけど 歴史的にはもっと古い comは素晴らしいって言われてるけどごみごみごみマジでごみ
マウスの発明者はダグラス・エンゲルバートでAppleはそれをパクっただけでしょ ゼロックスPARCのAltoからGUIをパクって作ったのがLisaやMacintoshだし、元祖はAppleじゃないね Windowsもパクリ元はAltoでしょ
>>530 ゼロックスの研究所にゲイツが泥棒に入ったところ既にジョブズに盗まれた後だった...
というエピソードは、それなりに知れ渡った笑い話だと思っていたが
ここで続ける話でも無いけど、Appleって有り物寄せ集めてきれいにパッケージングして製品作るのうまいけど、新規技術を生み出して…ってのは無いよね
Appleはジョブズが戻る前には面白いネタのような外見のマックをいっぱい作ってたぞ その頃はパチモン臭かった
>>537 アプリに他のアプリを埋め込めるなんてなかなかない
リンゴのハイパードックもあまり成功してない
隙あらばスレちな昔話 インターネット老人会いい加減にして
>>537 *nix界隈が嫉妬してて似たようなの作ろうとしたら案の定失敗してた
>>539 OLEはWindowsをゴミのように不安定にした黒歴史の立役者だろ
結局後世にも残ってないしな
COMはオブジェクト指向IPC技術としては高く評価されるべきだが、UIのコンポーネント化技術としては大失敗
消えたのはセキュリティ上の問題だよ 基本動作がDLLインジェクションでなりたってたから悪用を防ぎようがなかった 新しい技術はその辺が改善されてる Windowsを不安定にさせる癖はWPFでも継承中
今でもやってるWord内にExcelの表を挿入するのってOLEでしょ
>>542 無理やりWPFの話題に戻った感あるけどw
WPFでWindowsを不安定にさせるって何のことだ
いくつかあるけど一番危ないのはBitmapImage廻りの処理 Windowsをクラッシュさせる不具合がある アプリクラッシュぐらいなら笑っておまえが悪いって言えるんだけど、OS落とすのは笑えない
githubで検索したら再現コードあるよ 興味あるなら探してくれ ビルドして24時間実行したらアプリ終了しても本当にWindowsが使えなくなって後悔した
なんで貼らないの? てかWPFというより.NETやOS側の問題では?
16ビット時代なら いつからアプリ終了するとリソースが開放されると錯覚していた?
>>543 OLEドキュメントに変わる新しい技術ってなんかあんの
どんなドキュメントでも相互に埋め込めるのはそれなりに夢はあった
Wordに埋め込んだPowerPointの図表が全部表示されなくなって埋め込み直す作業やってたチームがあったなぁ 元のpptがもうなくて作図からやり直してたのもあったなぁ 無駄に工数増やせる優れた技術だよなぁw
埋め込みドキュメントって、Web版やスマホ版officeだとどうなるんだ?
新しくアプリをインストールすると登録されるcomコンポーネントをハックするのがたのしみだったって事がある。 実際にLotus NotesにExcelコンポーネント埋め込んで納品した事あるな
>>555 COM連携はWindows以外の環境では実現不可能なんだ
何十年も前からあるこの程度のことが今はできない
今の技術者はアホしかおらんのよ
こんだけゴミクソのWindowsが生き残ってるのはCOMのおかげと言っていいから もしWindowsを潰したいならマルチプラットフォームでCOMの車輪の再発明をすればいい
WPFおじさんも現実を見れてなかったがCOMおじさんはさらにその上をいってるな ここまで来るともうどうしようもない
comは何でもできるけどアレは難しいしバグあるとヤバい。
.net前は昔VBでcom大量生産しとったな j++なついわ
COMにもいくつかレイヤーはあって、統一的なABI、実行時型情報、プロセス間通信、OLEオートメーション、コンポーネント埋め込み…とあるうち 大体のOSでもプロセス間通信まではどうとでもなる。LinuxのdBusやMacのAppleScriptではOLEオートメーションのようなこともできる 無いのはコンポーネント埋め込み(OLEドキュメント/ActiveXコントロール)ぐらいでこれはほんと惜しい
色をTomatoとかSalmonとか配色に応じて修正してるけどさ、面倒くさいよね WPFらしさというなら、やはり、Foreground="Red"なのだろうか、青のグラデーション、中央に表示されるMessageBox、そして警告音 古き良き00年代を懐しむデザイン
observableCollectionもっと使いやすくならないの?何で範囲指定できないのか。
observableみたいな変な仕組み一掃してもらいたい UIのせいでデータ側に変更強いるのは思想に反してるだろ
変更があるたびにイミュータブルなVMを毎回作り直すようにしてone-way bindingのみにするだけで遥かにシンプルになるのにね さすがにDataContextを根本から差し替えるのは非効率すぎるからReactのVirtualDOMのような最適化は必要 VMの差分比較だけでいいんだから技術的にはVirtualDOMなんかよりよほど簡単なはずだけど、そういうフレームワーク無いのかな
名前の無いPropertyChanged放てば全部更新されるだろ
>>573 それだと変更のない箇所まで更新対象になるから非効率でしょ
あと、DataContextにイミュータブルなVMを直接設定しちゃうと結局丸ごと差し替えるしかないから、
DataContextのオブジェクトを入れ替えなくていいようにプロキシ的なものを間に挟むケアが必要だね
observablecollectionにもう少し文句あるけど、項目ごとにいちいちpropertychangeで監視するコードを書かなきゃいけないのなんでよ。項目内の変更は無視してリスト数の変更だけ取りたいことなんてあるか?
含まれてる要素ぜんぶ追っかけたら、追っかける必要ない要素まで処理することになるし その辺効率よくするの難しいから・・・プログラマに丸投げ
それいうたら どうしてPropertyChangedいるんだまでいかない?
>>575 何言ってんだこいつ
リスト自体に変更ないならListでいいよ
BindableCollectionならRefresh()で解決 ObservableListでも多分できる知らんけど
あくまでもVSCode上での動作やコンパイラが速くなるだけだぞ
TypeScript 6 (JS) で TypeScript 7 (ネイティブ)って言ってるからガチじゃね?
TypeScript「コンパイラ」をgoで書き直したってだけじゃなくて?
TypeScript 5系 <-- いまここ TypeScript 6系 まだJS ・コンパイラは早くなる・ネイティブ化への布石 TypeScript 7系 完全ネイティブ化する だろ
typescriptをコンパイルしたらexeができるようになるんじゃないのか
Why go?
https://github.com/microsoft/typescript-go/discussions/411 MicrosoftがGoを選んだというのが興味深いけど、案の定
なぜC#ではないのか?→C# AOTはゴミ
とかコメがいろいろ荒れとる
>>585 流石に文盲が過ぎる
一連のワークフローにおける省メモリ化と高速化を主な目標として、コンパイラを含む各種ツール群をGoで書き直すプロジェクト「TypeScript 7(native)」が進行中ってニュース
重大な(破壊的な)変更が含まれる前提であり、前身の「TypeScript 6」にて対象となるAPIや機能を非推奨としてマークする計画であるとも
どうでも良いけどアンダース・ヘルスバーグって64才でまだ現場やるんか、超人かよ
TypeScriptはWeb系に受け入れられやすいようにMS色を抑えてるからC#は論外だわな いくらヘルスバーグがいるといってもtscの開発チームなんて基本的にUnix系でMSスタックには馴染みがない連中だろうから、あえて.NETを選ぶ必要性もない Rustにしなかったのは移植が面倒だからだろうね
そらvscode動かすのに.NET必須ですってなったら、折角エディタ業界を制覇したのにWindows以外でのシェア全滅するだろ
tscなんてファイルIOと基本的なテキスト処理と最低限のHTTPサーバーの実装ができりゃいいだけだから、Goだと変な依存関係なしにほぼ標準ライブラリだけで作れるはず tscみたいにシンプルな要件の中で継続的にロジックだけ手を入れていくような性質のものには適してそう
WhyGo?、ヘルスバーグも書き込んでるじゃん 全然関係無さそうなC#おじがここぞとばかりに集合してて面白い ヘルスバーグの、他の動画引用の発言含めて興味深かったのは ・我々は関数型スタイルで書いている、TSCコアはクラスがまったく使われていない →このコードベースを移植するのに最も適したGC対応の言語がGoだったという事らしい ・C#AOTは10年以上更新されておらず、最初からそう設計されたものではない ・でもC#は大事だよ! →といいつつ、OSSとコミュニティのコラボレーションが最優先、とも。いかにも苦しいな
>>596 ネイティブコンパイル出来るようになったんじゃなかったの?
>>600 nodejsで書かれてたTypeScriptコンパイラ…トランスパイラと言った方がいいのか?をネイティブ実装するという話で
最終生成物はjsのままっしょ?
このスレAIしかいないのかってぐらい会話になってなくて笑える
>>601 そういうことなのにわかってない連中ばっか
さすがC#さん
セルフコンパイルを諦めてまでやるってことだからJavaScriptって本当に遅いんだな
残念ながらUIまで含めればWPFよりは遥かに速いんだよなあ
いやもう時代は下々のプログラマーの実装言語はTS(JS)でそれをトランスパイルするコンパイラがC++ or Rust or Goに集約されたっちゅーことや もうJavaもC#も死にゆく言語やねんJavaもAndroidの中間言語としてかろうじて生きながらえてるだけで実際の実装はDartとFlutterで記述してるからな ヘルスバーグが既存TSの移植に一番適してたっちゅー理由でGoを選択してまたGoが脚光を浴びたことでGoogleがAndroidにtsgoを採用するかもしれんのが楽しみやな
FlutterがJava/Swiftより使われてる笑 エアプ乙
googleがFlutterを見放したって話ですよ奥さん
Flutterはめちゃめちゃ負債化の香りがプンプンする
>>611 ほんそれ
JSじゃなくてDartである必然性がない
結局IT後進国の日本ではJavaドカタを有効再利用するためだけの理由でKotlinがトップシェアだから尚更Dartの存在価値がない
日本て未だにネイティブ信仰が強くて合理化や効率化を無視してんのもマルチプラットフォームには向かい風なんよな
ちょっとUno触ってみようかなーって思ったらIME非対応で草
HTML+CSSの柔軟さと楽さに慣れたらXAMLとか苦行でしかない
人は苦行に喜びを感じて受け入れることで悟りを開くと聞いた
winUIとかいうWPF劣化版の再生産やめてほしい。スマホに浮気する暇ないだろ。
ネイティブコードから使えて現代的な見た目の標準GUIツールキットが存在しないのはさすがにOSとしてまずいからね 従来.NETでWinFormsやWPFで作ってたような重いGUIアプリの分野はいまやWeb一択 その反面、相対的にちょっとしたユーティリティ(極端に言えば標準の電卓とか)みたいなシンプルな要件で速さ軽さが求められるネイティブ開発の重要性が相対的に高まっている というわけでWinUI3はその状況に素直に対応しようとしているわけだけど、現状WinUI3はパフォーマンスが劣悪なので本末転倒な状況だね
Redditの海外ニキですら.NETサブレでこんな議論しとんのやで 「C# は死に絶え、プログラマーは強制されてのみそれを使用している」 ( self.dotnet ) (クリックベイト的なタイトルで申し訳ありません) 私はスタートアップ企業(管理/バックオフィス向けオープンソース AI コード生成)で働いており、主要言語として C# を選択しました。 投資家からは、「友人に聞いたところ、C# は廃れており、レガシー製品に取り組まなければならない開発者だけが使用しているとのことでした」といったフィードバックも寄せられています。 これは間違っていると思いますが、スタートアップがすべて Typescript または Python を使用している場合、説得するのはまだ困難です。 私が考え出したいくつかの議論は次のとおりです。 - C#/dotnet はオープンソースであり、Microsoft から多額の投資を受けています。おそらくどの言語よりも多くの投資が行われています。 - C# は、購買力のある大企業でよく使用されます。 - Stackoverflow の調査によると、依然として非常に人気のある言語です。 - もう 1 つのポイントは、LLM を使用してコードを生成するときに良い結果を得るには、静的に型付けされた言語が必要であるということです。静的に型付けされた言語では、コンパイラを使用してほぼすべての LLM エラーを見つけることができますが、Lovable anv v0 などのサービスでは、実行時エラーを待機する必要があり、その修正ループでユーザーを困らせます。 あなたの意見を聞きたいですか?
フロントエンドやUIはもう全部TypeScriptでいいよとは思う まあそのスレ流し読みしてても思うけどC#はバックエンドで生き残りそう
勿論フロントはWeb一択だが、海外だとパッケージソフトやSaaSのサーバーサイド言語としてはC#はまあまあ使われてるらしいね 国内だと技術的な良し悪し以前の問題としてまともにWeb開発できるC#エンジニアを確保するのが困難なので、スタートアップでの採用は論外
問題はGoでの移植により10倍高速になったTSで開発したマルチプラットフォームアプリが仮にC#のMAUIよりも速かった場合 XAMLとASPが完全に\(^o^)/オワタなんやがMAUIとかゆー産廃なんにかに多額の投資しててどーすんの?って感じでクソワロタ
文盲は文章の意味が取れない人じゃなくて 教育を受けてなくて文字自体が読めない人 日本にはいない
SEO的な問題もあるがそのWeb系UIはwasmまでいくのか? Blazor wasmかflutter wasm ちょっとWeb個人アプリ作ろうと思ってflutter wasm調べてる
flutter webって技術デモみたいなもんじゃないの? 実用になるの?
QtとC++でやったほうがマシじゃね感 ネイティブアプリにもなるしスマホアプリにもなるらしいしwasm化してWebでも動かせるらしいし
>>629 実用になるかどうかわからんから調べてる
QtとC++じゃUIがショボくなるんじゃね
まぁ、Flutterでモバイルアプリは作ってきたから新しく覚えることはほぼないが
Blazor wasmはC#は大丈夫だけどblazorは触ったことねぇ
計画ではVPS借りるからなるべく軽いやつで ということで バックエンドはgo+フロントは? .netでフルスタックするとメモリ食うよね?vpsメモリ少ないからな
最近のQtはCSSライクなQMLでUIを記述する ショボくないUIになるかはがんばり次第 個人的には悪くないと思うけど商用ライセンスの値上がりが凄いのがね オープンソース版はやる気ないし
Google EarthはアプリもWebもFlutter製 Web対応の体裁だけ整えて放置する会社は見習えと言いたい
令和になってもffmpegをアセンブラで書き直したら爆速になったみたいな事やってるし、機械学習もllama.cppが流行ってるし AI時代はエコシステムの勝ち馬に乗るか、 低レイヤーをしこしこ頑張るか、 技術選定はどんどん二極化すると思う そういう意味では今から愚直にcppでwasmという選択は筋としては悪くない気がする まあuiまではやらなくてもと思うが。 flutterも.netも中途半端、使い道はどんどん限られるだろう
どうしてもhtmlとcssをやりたくない連中ばっかだな
あれでもないこれでもないって言いながら一生手を動かさないまま終わればいいんじゃね?w
c#はガチで遅いもんな。たまにc++使うとまじで驚く
今時はサーバーサイドでReact動かしてレンダリングしちゃうのが主流になりつつあって、wasmは逆に存在感を失いつつあるね
サーバーサイドでやるんだったらASP.net Coreでいいんじゃ?
>>640 それブログとか商品カタログとか商サイトの場合
gmailとかカレンダーとかアプリ系はCSRでないと使い物にならない
>>639 起動時間だけだろ明確に違うのは
AOTで改善しつつあるしほぼ差はないよ、それより高速な実装にするプログラマーの技量の問題
>>644 WPFはAOT対応してないしオーバーヘッド大きい
.NET9でもWinUI3でAOT機能せんで っちゅーかリフレクション使うとAOT使えないって時点でC#の仕様上かなり終わっとるやろwww
.NETのアプデペース凄いな .NET Frameworkはもう不具合対応しかしないなら、いっそ非推奨にしてくれ
.NETT5,6,7はもう不具合修正すらされないんだよね
LTSの.NET6はもう少し長く(具体的には次々のLTSの.NET10のリリースまで)サポートして欲しい
>>650 自分は.NETは馬鹿だなって思うけど
自分で価値を下げている
LTSはせめて5年はほしいよな 現代だとセキュリティが重視されるし、ライブラリも言語も継続的に更新し続けるのが求められるんだけど、体力ないところにはキツい
企業でもともと安定運用してるアプリがあってそれが.NETのサポート終了したとしてそれをどうするんだろうか? 金を払ってコンパイルしなおしてもらうのか? 不具合対策がされているなら.NET Frameworkで十分だろう 使う側にとって.NETは罠でしかないと感じる
そういうの気にするようで気にせず使い続けるよ 脆弱性があったとこでそこを突いて悪さできるほどオープンでないことがほとんどだから
.NETはこういう仕組みでしてアプリを作成するだけでなくセキュリティ上わが社とサポート契約必須ですとか しょうもないことで金取ってそう
日本の大手案件は今も昔も.NET多いけどな 理由はベンダーがMSで顧客を納得させやすくて安心感があり金さえ払えばMSKK通じてやレドモンドが直接インシデント対応してくれるから そやからワイがかかわった数百億から1000億規模のは開発とか大抵データとかが絡んでるから.NET多かった しかもデータはてらそるなとかゆー自社のゴミフレームワークが.NETやし
このスレッドは思っているよりも高齢者だらけだな 大企業がデスクトップアプリケーションを使っているとか、何年遅れの情報なんだよ
世の中適材適所なんだよ 普通にデスクトップも使うし新規でも作る
試験装置などの制御ソフトは今もデスクトップアプリは多いぞ 物理的なモノを制御するという性質上、SaaSのような形態にはなりえず、Web形への置き換えが進んでないという意味でもあるけど (機器側にWebサーバーを持ってて、ブラウザから制御できるというものも増えてはいる) 解析なんかも多分そう 大企業が使うというのは、勤怠管理などの事務系だけでなく、メーカーの研究部門や実験開発部門も含む 一般的に知られるものでないから仕方ないけど、「今時のアプリは殆どweb」というのも狭い見方
大手は今でも内部で独自言語使ってるところがある コボルの偽物が…
老害もくそも日本のこの業界自体がゼネコンのビジネスモデルそのもののガラパゴスやんけ 技術力なんて求めてなくて中抜きしたいからあえて無能な人間を大量投入したいだけの炎上前提のまさに炎上商法 日本国内で圧倒的に一番需要ある言語て未だにSQLやぞ?www 次いでCOBOLでこれ以降は超えられない壁でJavaPythonJSC#その他って感じな現状をご存知ない? 本職のPGやない都内の業界のことなんも知らん余所者のニワカがイキんなや半年ROMってろ
SQLとプログラミング言語を同列に扱って比較って それニワカが作ったランキングだろうしニワカしか話題にしないだろ・・・
自分はもう業務系はなれちゃったもんで Unity以外で、C#が今本当にどこで使われているのかというのは気になる やっぱり未だにデスクトップアプリが主戦場なの?
>>665 機器側の組込みはもちろんC/C++だけど、それをPCから制御するアプリはC#も使う
.netのバージョン問題って結局PaaSのランタイムの保持の話だよね IaaSだと気にしないし AzureだとAppServiceがまだ.net fw4.8用ランタイム用意してくれてるけど.net6はもう無い
Fluent ThemeだとTextBoxの右端についてくるバツボタン消せなくなってるのな 邪魔で仕方ないからTextBoxCollapsedClearButtonBehaviorを作成した
>>671 >>674 なるほどねー。となるとJavaと行ったり来たりみたいな人も多そうだね
>>673 SQLなんて誰でも書けると思ってるんだろうが
他人が書いた1000行以上のストアドを解析して修正・機能追加とか
秒間3万件の問い合わせに対応するための最適化とか
こーゆーシビアな要求を現実にはできるやつがほとんどいない
そして日本はCOBOLの需要が高い理由の金融系案件や決済処理案件が多くSQLを習熟したプログラマーが求められてんのが実情なんやが?
しかもガラパゴスなジャップはMBaaSやNoSQLどころかEFすら毛嫌いするからな
SQL?とかSQLを言語wwwとかゆーとるアホは明らかに日本国内のIT業界を知らんド素人確定でクソワロタwww
そういうのは現状のレガシーシステムだったり特定メーカーの汎用系開発環境に対する習熟が重要なのであり、SQLのスキルの問題ではない
開発時にSQLは手で書いちゃダメ chatGPTさんに書いてもらいなさいと言う時代が来ると思う
面倒だから全部EF任せ それでも呼び出し方で速度まったく変わるけど
>>679 要件・仕様と業務知識とSQLのスキルを混同してる時点で会話が噛み合ってないの草
まぁキミがド素人かそれと変わらんロースキル案件ガイジなのは確定ですわ
>>680 それは大量の情報を与えないといけないので禁止事項にしている企業が普通
一般に、他人が書いた1000行のストアドを読み解くのに必要なのは、そのアプリケーションとDBの仕様の知識だ 純粋なSQLのスキルなんて新人研修で3日やりゃ充分
>>685 いまだにストアドプロシージャがSQLだと知らないやつが多いしな
>>685 >一般に、他人が書いた1000行のストアドを読み解くのに必要なのは、そのアプリケーションとDBの仕様の知識だ
>純粋なSQLのスキルなんて新人研修で3日やりゃ充分
5chてこーゆーガイジばっかやなそらまともなコミュニケーションにならんのやから過疎るわなアホらしwww
この人、書き振りからは下請にいる歳だけ食った癖強おじさんを想像してたけど、 その割にはアプリ側で更新される意味不明な大量のフラグが並んだテーブルとか見たことないのは不自然なんだよな 意外と若い人なんだろうか、それともアプリ見ないオペかな
SQLは簡単なSELECTと簡単なDMLだけと思っているジジイは昔からいる
SQLは構文だけ知ってりゃいいわけじゃないのはそうだけどこの関西弁ガイジは触っちゃダメだと思うの
聞いた話だと余所が限界集落してて仕方なくここへ来てるんだと 他に行く宛がないらしい
>>689 DB板の有名荒し
アプリは門外漢でDBのお守りをしてる爺さん
見識が狭く論理的思考が出来ないから
誰とも議論が噛み合わない
とにかく上から線で書き散らかしたいだけ
システム開発企業が利用中のAIツール、ChatGPTが最多、GitHub Copilotが続く。課題はユーザーの要件定義が決まらないこと。 まぁ日本では客の頭の悪さと客の御用聞になってるだけの元請けの低脳チンパン境界知能SIerがITゼネコンビジネスを支配しとる限りどんだけAIが進化しようとも意味ないっちゅーこっちゃwww つい最近もIBMがNHKから民事訴訟起こされてた内容も酷かったわな 日々変更される要件定義によって費用が膨らんで追加請求するも突っぱねられて逆に訴訟起こされるとゆーワイら日本のPGからするとごく日常的で業界の悪しき因習なんやがIBMからしたら日本人ガイジすぎる思っとるやろうな
WPFってほんとにオワコンなの? 従来のwinフォームデザインから脱したいんだけど、WPF使うのはありかな?
機能追加やバグフィックスされずメンテ終了してるって意味ではオワコンやで ただデスクトップ専用アプリ作る場合はOS依存の機能を使うことになるから未だに.NET Framework使っとるデベロッパーは多い そんでWindows App SDK1.5xになってから.NET CoreスタックでWinForms/WPF開発が可能になったからそーゆー意味ではオワコンではない ただ.NET Coreゆーても他のプラットフォームでは実行不可でWinRTなんかを内包して最新のWinUI3に対応させただけやからXAMLのカスさは相変わらずやな まぁワイも未だにWinUI3でシコシコXAML書きながらWindows専用の自分が使うためのアプリ作っとるからな ちょっとしたWindows専用アプリ開発すんのにわざわざ環境構築がめんどいReact Nativeなんかを使う必要ないんよ
visual studioがwinUI3になったら考えればよい
>>698 .NET9/10でFluentテーマに対応させたりちょっとだけ軽微なバグ修正したりと
最近また微妙に手を入れてるから急に使えなくなるとかは考えなくて良さそう
そもそもdot NETの始まりがJavaのパクリでマルチプラットフォームを前提としてたんよ そやけどOSS化に遅れ開発者を呼び込めずしかも結局プラットフォーム固有の機能を使うとバイナリ互換を捨てざるを得なくてC#/dot NETがただ起動がクソ遅いだけの産廃になってもーたのが現状ってわけ
WPFは死んでる 一番感じるのはカラーemoji対応していないところ Fluentテーマなんてどうでもよい
Javaのようなクロスプラットフォームというよりはあくまで同じWindowsの中で32ビット/64ビットやx86/IA64で同じバイナリを動かすことを狙ってたように思う
同じバイナリ = 中間コード という意味ならそうかもな
2005のころwindowsCE向けのバイナリを間違ってwindows上で起動したら普通にフォームでて動いてビビった arm専用と言う話じゃなかったと
おい、ワイはここで長々とXAMLのクソさとReactなんかについてドヤ顔で散々能書き垂れてきたんやが
もしかしたら今までのワイの発言は全部間違ってたんかもしれん・・・
簡単に理由を説明するとChromeやEdgeと同じChromiumのVivaldiがクソ重い
↓
Edgeに移行するとめちゃくちゃ軽くて快適、同じChromiumやのになんでや!?
↓
EdgeはReactやめてMSが独自実装したWeb ComponetsのFluent UIで作ってました~!
↓
なんでReactやめてもうたん?
↓
Microsoft EdgeがReactをWebコンポーネントで置き換える方法
://thenewstack.io/how-microsoft-edge-is-replacing-react-with-web-components/
↓
Web Componentsってなんや?
↓
HTMLにカスタム要素を実現する標準技術Web Components。事例をもとに技術特徴を解説
https://levtech.jp/media/article/column/detail_403/ ↓
ん?これまんまXAMLやん?もしかしてXAMLは19年時代を先取りしてたから流行らんかったんか? ← 今ここ
正直ワイはショックを受けとるで
初期のVueやAngularの方がよっぽどWPFしてたと思うが。 結局React以降のFlux/コンポーネント志向とは別物よ
EdgeのUIでReact使ってたのを置き換えただけだろ? Edgeのユーザー数を考慮すれば、実装コストと延べ実行コストを天秤にかけたら前者が少々増えても後者を改善したほうがいいのは当然であり、 一般的なアプリケーションとは次元が違う話 速くなるならWebComponentsすら使わず直DOMでもいいくらいだろ
>>709 XAMLというか一度捨てたxhtmlというか。
静的なタグとclassで頑張っても結局jsxみたいなのは欲しくなるわけだしね。
namespaceが無いぶんXMLベースの規格よりまだ原始的だけど。
>>709 Web ComponentsはRedditが大々的に活用してるね
shadow-rootやslotだらけになるので、スタイリング等のカスタマイズがメッチャやりにくい(一般のユーザーCSSマネージャでは対応できない)
構造体のメンバ変数を複数クラスからアクセスする時、初回は初期化して、2回目からは初期化しないで値の読み書きをしたいです。 例を教えてくれませんか。
WPFというよりC#の質問だと思うけど、その用途なら System.Lazy じゃない?
はい、wpfというよりc#です。 using は include? さっき partialの意味も分かった。
CまたはC++から来た人かな ファイルの先頭に書くusingはincludeというよりも名前空間の利用 (C++のusing namespaceと似てる) 例えば Foo.Bar 名前空間に Baz というクラスがある場合、usingしてなくても var bar = new Foo.Bar.Baz(); のように書けば使える けど、名前空間のネストが深かったり、よく使うクラスの場合だといちいち名前空間を書くのは面倒くさい ファイル先頭で using Foo.Bar; ってしていれば、そのファイル内では var bar = new Bar(); のように Bar という名前だけで利用できる (C/C++のincludeだと、 includeしていないものはそもそも使えない) 最近のC#だと.NETのライブラリ (System名前空間から始まるもの) のいくつかは自動的に using されている これは多くのプログラムでよく使うものだからそうしている 例えば Sytem.Lazy などは、明示的に using System; って書かなくても使えるはず usingというキーワードは他の構文でも使うのでそこは注意
>>715 C#, C♯, C#相談室 Part98
/2chb.net/r/tech/1719656321/
まぁワイは優しい男やから構造体の解答教えたる /www.programiz.com/online-compiler/3EGuracYwkCAp
C#の作法としてはバッキングフィールドを作って外部からは必ずプロパティでデータの受け渡しをすることをMSが推奨しとるからそっちに変更したもの /www.programiz.com/online-compiler/6Hd0AjaVMLBWY
あーー メンバーはprivateか publicでは駄目なのね
何がしたいのか全くわからんコードやな
そもそも
>>715 みたいな構造体の使い方がおかしいやろ
>>715 初心者にありがちな必要以上に難解な設計をしようとしてるだけな気がする
何がしたいのかもっと具体的にして聞いた方が良いよ
ふらっと C#,C♯,C#(初心者用) Part161
2chb.net/r/tech/1739970583/
あ…
https://x.com/migueldeicaza/status/1922409129567563855 > Microsoft laid off the senior engineers of .NET on Android and key figures of Maui.
ちまちま人削るんじゃなくてMAUI終了宣言してエンジニア解放してやれよ やる気ないのにダラダラ続けてもだれも幸せにならないだろ
>I mean, if you find someone using Maui you can make a wish マウイ島を使っている人を見つけたら、願い事をすることができます 海外ニキってほんまにユーモアあるよな5chの低脳チンパンレスとはインテリジェンスの差をめちゃくちゃ感じるわwww
しかし海外ニキの間でもMSのUIフレームワークはリスクが高すぎから信用しないし使わへんっちゅーんが総意なんクソワロタwww
海外ニキは今まで通りWPF使うから問題ないって認識でクソワロタ
ワイの個人的な感想やけどええ加減XAML捨ててEdgeで使われてるFluent UIで良くね?って思うんやが どんなUIフレームワーク作ろうともXAMLである限り絶対失敗するに決まっとんねん もうHTML+JSでええやん、特にウェブ界隈ではみんな新しいフレームワークやテクノロジーにうんざりしとんねん
まあでもWeb系フロントエンドエンジニアですらhtmlとcssはまともに使えないけどな 特にcssは絶望的 tailwindもまともに使えない連中ばっか
Avalonia UIがメインストリームになるわけないやろ 特に最新UIFWはクロスプラットフォーム対応マストやのにXPFが有料のプロプライエタリな時点でお察し MS謹製のFluent UI Web Componetsに一本かすりゃええねん
>>738 Avalonia UIとAvalonia XPFは別物
UIの方もクロスプラットフォーム対応
MAUIのチーフみたいな人がクビになったんだろ? もしかして凄腕の主任が来る可能性も!()
mauiが潰れたらwinui3にデザイナー実装されるかな? > コミュニティからの何年にもわたる要望にもかかわらず、マイクロソフトがこの機能を提供しなかったことは受け入れがたいことです。 > これは、Microsoft が次のように言っているようなものです。「Visual Studio ではサポートされないため、当社のフレームワーク (WinUI または Maui) は使用しないでください。」
Avalonia ⭐︎27646 maui ⭐︎22669 uno ⭐︎9364 見たまえ、ゴミのようだ
ま~だポトペタVBジジイがデザイナーとかキチガイなことゆーとんの草 Live Preview(Hot Reload)あんのにデザイナー実装しろ!とか.NET周りの狭いテクノロジーですら全く理解してへんただの能無でクソワロタ
XAMLは元来ビジュアルデザイナでの編集を意図して設計されていて、XMLなのはあくまでプログラミング言語中立にするのが目的 なので手書きすりゃいいみたいなマウントは筋違い
デザイナーとホットロードが両方あるのが望ましいだろ 結局ホットロードは何も解決しないから
俺はデザイナーなくても使えるから要らないと言うのただの自己中 デザイナーが無いと使えない人にとっては無ければwinUI3は存在しないのと同じ
書ける人であってもXMLなんか手書きしたくないしな
>>742 electron 116778
tauri 92557
wails 28220
flutter/flutter 185000 JetBrains/compose-multiplatform 18000 expo/expo 41000 Flutterは次元が違うとして、JB Composeにギリギリ勝ってるのは意外 まあ企業規模を考えるとMSのコスパの悪さが際立つな
WinUI 3でunpackagedで、 Assetsにどうやってアクセスするの?
MVVMを学ぼうとしてるけど、 Model とViewModel の関係がどうあるべきかがいまいち判断が付かない VM から M への通知が必要な場合は、やっぱり INotifyPropertyChanged を使うのが良いの? MVVM関連の情報を見ると、VとVMのバインディングについての説明はあるけど、Modelがどうあるべきという話が見えづらい気がする
ModelとViewModelで似たようなプロパティを書き、かつどちらにも通知の仕組みを持たせると、Modelが実質的に「VMとほぼ同じ、かつロジックを含んでる」ものにならない?
外してたらごめんだけど基本的に メッセージ通知 = メソッド なので普通にmodelのメソッド呼べばいいかと それがプロパティならプロパティ操作でも良いがその操作に理由や意味が明確にできるならメソッドが良いかと
横からだがそのmodelを永続化するリポジトリクラスがあったとしてリポジトリにmodelを引き渡すのはvmになるの?
>>755 Application Service
MVVMの枠組みで言えばMの範疇
MVVMは基本的にGUIのための仕組みなのでそれ以外はご自由に 結局リポジトリサービス呼ぶのはどの段階が適切なのかは設計によると思うよ
>>756 >>757 なるほど、サンクス。
vmがApplication Serviceを呼ぶのか。
>>754 自分が最初の質問の文章をミスってました
質問したかったのはMからVMの通知で、例えばモデルがセンサーの値を監視し続けてる等をしてる (ユーザーの操作に関係なく状態が変わる) ような場合
この場合だと、 Model にも INotifyPropertyChanged を実装して、 そのイベントをViewModel 側で拾えばいいのかな
VMからMへの操作はメソッドというのは了解です
一般的には専用のinterfaceかイベントを定義して普通に通知した方がいいんじゃないかな INotifyPropertyChangedはフレームワークのバインディングのためのもので、人間が使う分には表現力不足で不便で分かりにくいだけだよ
なるほど、イベントは素直な実装になりそう 他に IObservable でも良いのかな 「専用の interface」というのはちょっとわからなかったけど、これは interface 経由で Model から VM のメソッドを呼び出して更新する (VM が Model の生成時に this を渡す) ということ?
>>752 ModelはWPF非依存のコードを書いて、ViewModelはWPFのViewにBindする前提で作るイメージ
WPF以外に移植する気もないならModelとViewModelは一緒にしてもいい
(ModelでINPCイベント発火してもいい)
ViewModelは文字通りViewのモデルであり、ビュー側に属するもの MVVMが定義するのは実際にはVとVMだけなので、ViewModelに表示以外のロジックも全部書いてしまうのはMVVM的には間違いとは言えないが、 アプリケーションアーキテクチャとしてはいわゆるビューとロジックの分離ができてない典型的なダメな状態に他ならない
今の環境ならデータモデルは全部ノーティファイ付けときゃいい データとサービスでクラス分けときゃロジック分離の完成だ
lud20250612133408レス:1-200 201-400 401-600 601-800 801-1000 ALL
このスレへの固定リンク: http://5chb.net/r/tech/1724156206/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。 TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「WPF(.NET, WinUI) GUIプログラミング Part33 YouTube動画>3本 」 を見た人も見ています:・WPF(.NET, WinUI) GUIプログラミング Part32 ・WPF(.NET, WinUI) GUIプログラミング Part29 ・WPF(.NET, WinUI) GUIプログラミング Part31 ・WPF(.NET, WinUI) GUIプログラミング Part26 ・WPF(.NET, WinUI) GUIプログラミング Part27 ・WPF(.NET4.x, .NET Core) GUIプログラミング Part23 ・WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part22 ・Linuxプログラミング 2 ・Gtkプログラミング on Windows!!! ・【プログラミング】IT素人だがスマホアプリを作りたいんだが「.NET MAUI」ってのを覚えれば良いのか? ・プログラミング ・膣プログラミング ・動画プログラミング ・エクセル指向プログラミング ・Windowsゲームプログラミング 質問スレ ・Google NaCl プログラミング 2mol ・Windows VS Macプログラミングに適したOS ・クラシックMacでプログラミング [C言語] [その他] ・【教育】子がプログラミング 悩む親 ・プログラミングに適したOSはWindows10かMacOSXか? ・プログラミング言語の人気ランキング ・Webでオブジェクト指向プログラミング ・プログラミング言語別の求人数ランキング ・【IT】iOS13でプログラミング言語Swiftの利用が倍増 ・Switch『はじめてゲームプログラミング』が2週連続で首位を獲得! ・Nintendo Switchにプログラミングツールが登場。Switch上でスイッチ用ゲームを作ることが可能に ・オプーナ隔離スレ80 権利付き!うれのこってわかる はじめてワゴンプログラミング ・【朗報】Switch「はじめてゲームプログラミング」 発売から10日が経過もアマラン2位! ・【嫌儲プログラミング部】人気プログラミング トップ15 —— 企業価値20億ドルのGitHubが発表 ・GUIプログラミング総合 ・プログラミングって「IF」と「GOTO」がすべてじゃん。こんなの馬鹿でもできるじゃん。おまえら馬鹿未満なの? w ・俺「プログラミングの勉強するか」 教材「i = i + 1」 俺は諦めた ・【嫌儲IT部】6歳の女の子が開発したプログラミング言語『Kuin』が公開される「HSP並に書きやすく、C++並に実用的」がコンセプト ・プログラミングをしたい ・プログラミング言語 ・数独プログラミング ・自動プログラミング ・プログラミングで何か書く ・GTK+プログラミング ・七行プログラミング ・プログラミングしようぜ ・プログラミングにはMac ・プログラミング英語検定 ・プログラミング初心者なんだが ・プログラミング大学生 ・プログラミングって儲かるの? ・プログラミングおしえて ・プログラミングを教えてくれ ・プログラミング言語Egison ・プログラミングにはMac ・プログラミングって簡単だな ・狼プログラミング習得部 ・プログラミング詳しい人来て ・プログラミングの好きになり方 ・無職のプログラミング学校 ・プログラミング言語C#の欠点 ・情報工学科でプログラミング苦手な人 ・底辺のプログラミング講座だお! ・ノンプログラミングツール ・プログラミング言語Pythonの弱点 ・プログラミングのお題スレ Part19 ・プログラミング言語 Rust 4 ・プログラミング教えてるが… ・サウンドプログラミング6
01:38:59 up 67 days, 2:37, 1 user, load average: 9.32, 9.58, 9.51
in 0.016088962554932 sec
@0.016088962554932@0b7 on 062314