WPF(.NET, WinUI) GUIプログラミング Part33

1デフォルトの名無しさん (ワッチョイ 835a-A2Rd)
垢版 |
2024/08/20(火) 21:16:46.38ID:mRLJAUv40
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

WPF(Windows Presentation Foundation)について語るスレ。

前スレ
WPF(.NET, WinUI) GUIプログラミング Part32
https://mevius.5ch.net/test/read.cgi/tech/1694210576/

関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2024/10/26(土) 10:46:17.67ID:xLXwJUeA0
>>316
良くないだろw
2024/10/26(土) 10:48:21.88ID:+Hh1BO/+0
そいやvscodeのavaloniaの動くようになっていた
VisualStudioでやればいいんだけどさ
2024/10/29(火) 18:16:49.05ID:gJRCsGwu0
AvaloniaStudioとかいうVisualStudio風味のIDEがGitHubにあるな
2024/11/10(日) 19:58:12.81ID:7uuscMCZ0
WinUI3のコントロールの中にWindowsTerminal組み込んで見たの図

https://youtu.be/x1Nn_WWLe-A?si=UpKK07w3lM1sip0q

こいつにディレクトリのツリービューとか追加してダブルクリックでそのアイテムのパスをコピペするようにしたりコンソールアプリのパスを登録したリストビュー作ってその中からアプリを選んだらそのパスがコピペされたりとかになればコンソールもだいぶ使いやすくなるぞ
2024/11/10(日) 22:38:26.57ID:zIwJaoPmH
そんなもん適当なコマンドランチャー使えばいいでしょ
2024/11/11(月) 12:30:45.71ID:2eVgzzz70
>>321
コマンドランチャーってコマンド引数入力できるの?
2024/11/11(月) 17:29:08.35ID:NYpo9nL7M
VzEditorのファイラー便利だったな
2024/11/12(火) 20:27:22.08ID:tFjNYueo0
コンソールの親ウィンドウを設定しただけに見える
ネタなら前にあったLINE風のコンソールのが面白いね
2024/11/12(火) 21:18:59.73ID:WQpvpJyo0
>>324
そうそう、Process. Startしてウィンドウハンドルを取得
DllimportでSetParentしただけ
2024/11/12(火) 21:26:18.82ID:gBESn8sB0
ただWindowsTerminalの設定をそのまま引き継げるしタブも使えるしなかなか便利だ
ツリービューからパス選ぶのもいったんクリップボードにパスを文字列で入れてsendinputでCtrl+Vを入力してるだけ
超お手軽で色々応用が効くといったもの
個人的にターミナル使う時わざわざエクスプローラー起動して~右クリックでパスコピーして~ってやってたからこういうのあれば個人的に助かるってやつを作ってみた
2024/11/12(火) 22:28:26.76ID:Hlpr+M7J0
「ターミナルで開く」
2024/11/17(日) 01:14:13.58ID:voYpa1+g0
最新のc#で作るならどれ?wpf?
329デフォルトの名無しさん (ワッチョイ a30c-Pccd)
垢版 |
2024/11/17(日) 12:24:25.53ID:r72Z/PFa0
windowsだけならWPF
クロスプラットフォームはAvalonia
2024/11/17(日) 13:11:47.15ID:jIxmQ+Br0
Blazor
331デフォルトの名無しさん (ワッチョイ 7b58-nj0J)
垢版 |
2024/11/17(日) 13:14:55.45ID:dobbbVxQ0
UWPやMAUIって現状どうなん?
C#でのGUI開発だとWPFの方が名前が挙がるけど、これは単に移行が進んでないだけ (可能なら移行したいとは思ってる) なのか、WPFの方が安定してるなどメリットがあるのか
2024/11/17(日) 13:24:38.77ID:7IxkAmkp0
UWPは今後も無いな
WinUI3やMAUIは完成度がね…
2024/11/17(日) 20:58:49.33ID:NAlpxgDu0
React
はいもうこの話は結論付いている
MicrosoftですらReactを使っている
2024/11/17(日) 23:26:25.20ID:jIxmQ+Br0
「C# で作るなら」って書いてあるのが読めないの?
335デフォルトの名無しさん (ワッチョイ 7b58-nj0J)
垢版 |
2024/11/17(日) 23:30:20.47ID:dobbbVxQ0
仮にWeb系技術だとしてもなぜReactだけ?
2024/11/17(日) 23:37:44.13ID:MAZWGKFr0
で、
業務アプリケーションは何使われてるの?
2024/11/18(月) 00:14:20.12ID:VW7sHWGL0
業務なら普通にWebよ
と言うと、外部機器の制御などでデスクトップアプリの必須な分野もある、といった反論があるだろうが、
そういう分野の連中って結局何やってもWinFormsから移行しないからMSはもう投資してないよ
2024/11/18(月) 19:27:53.22ID:1mdid6am0
いまどきの業務アプリなんて生成AIでノーコードなんじゃないの
逆にC#の出る幕なんてあるの
2024/11/18(月) 19:48:54.91ID:FOm+z+jk0
>>338
はやく生成AIで業務アプリ作って公開してくれよ
2024/11/18(月) 20:57:21.25ID:i/NsWVfo0
>>339
アシスタントにAIは普通なってきましたよ
因みにC#でもアシストしてくれると思います
2024/11/18(月) 22:12:23.17ID:FOm+z+jk0
>>340
話がずれすぎ
生成AIでノーコードで業務アプリ作れることを証明しろって話
2024/11/18(月) 23:00:55.55ID:x8ZZBVl/0
SilverLightでもええで~♪
2024/11/19(火) 22:16:25.69ID:uTHoNWAl0
>>337
Webやってないのは進歩しない人間と言いたい十年一日のような議論
2024/11/19(火) 22:29:29.89ID:tyB4taC20
個人開発ならまだしも、プロジェクト毎の技術選定において「決定権」を持つのは開発組織の上位層であって、多くの技術者ができることはいわゆる「提案」に留まる
2024/11/20(水) 00:39:09.58ID:aJUirW5V0
日本で下手に提案したら責任もとらされるからね
346デフォルトの名無しさん (ワッチョイ 42c8-YlA6)
垢版 |
2024/11/20(水) 00:47:47.27ID:qdA5YbiO0
ワールドワイドウェブなのにWebブラウザの仕組みの話になっているのは知識がなさすぎる。

いまはWebアプリケーションはSPAだらけで、Webブラウザの基本的なプロトコルでもはや実装していない。
2024/11/20(水) 09:33:22.01ID:4ayYS315M
JavaScriptは基本的な機能じゃないからね
2024/11/20(水) 18:30:28.68ID:wCIcMF/j0
SPAはHTTPで通信しないのか?
2024/11/20(水) 18:54:14.30ID:wXNIaGZt0
>>348
初回アクセス時にjsのソースをローカルにロードしたら以降は全部ローカルで動作する(なのでサーバーアクセスも不要)

初回アクセス時にローカルストレジにキャッシュも出来るので、そうすると起動時のサーバーアクセスすら完全に不要になる

こうなるとWebアプリじゃなくて実質クライアントアプリだね
2024/11/20(水) 19:10:54.66ID:4MjVLHAc0
データをローカルストレージに書けるようになったらそうだね
2024/11/20(水) 20:02:39.41ID:wXNIaGZt0
随分まえからあったような
2024/11/20(水) 21:23:27.93ID:yiKxxO2KM
オンラインとオフラインで動作を変えてる
オンライン接続されたたローカルで作ったデータを鯖に送ってアップデートする

それが最低限の挙動
353デフォルトの名無しさん (ワッチョイ 67b4-LRiR)
垢版 |
2024/11/23(土) 11:39:44.69ID:IBbRne7P0
>>352
軽く言ってるけど、データの整合性とかはどうやって担保してんの?
2024/11/23(土) 12:36:45.49ID:DqkgFhEYM
状況に合わせて適宜ルール決めるだけ
355デフォルトの名無しさん (ワッチョイ 67b4-LRiR)
垢版 |
2024/11/23(土) 15:09:43.26ID:IBbRne7P0
>>354
そのルール作りが大変だろうが。下手なルールだと不整合がバンバン起こる。
それにそんなんが可能な業務も限定的だろが。
2024/11/23(土) 18:45:00.61ID:ZvvW/2Tu0
>>355
恐らく個人的なアプリではないのかな?
2024/11/23(土) 19:19:19.29ID:OFHXNujJM
何にでもケチをつけないと気が済まないんだなとしか…実際に実装されてるし一般に売られている本などでも実装手順は書かれている
大変だろうが。で終わる話ではないんだけど

そもそもがオフラインの状況自体がかなり限定的で
その状態でどの機能を有効にするかを取捨選択するのかは顧客と話し合って仕様決定する
それが仕事の人がいるので決まった仕様に沿って実装するだけなんだよ…
2024/11/23(土) 20:02:29.91ID:nU+3AwL30
「だけ」と軽く流して具体性に欠ける回答だから突っ込みが入って当然だろう
こういうのは何でもケチをつけるには当たらないと思う
2024/11/23(土) 20:31:23.62ID:ilySQ3CD0
具体的に説明しようとしたら、こんなところの数行のやりとりで終わらせられるような話では無かろうよ
で、ここはそれに適切な場なのか?
2024/11/24(日) 09:57:10.11ID:kUToI6JtM
何にでもケチをつけないと気が済まないんだなとしか…
2024/11/24(日) 10:04:49.03ID:kUToI6JtM
オフラインでしか使えない状況でも使いたい場合もあるでしょう
山奥の家で保険の更新とかだと電波なんか届かないでしょう
大規通信模障害でわざわざアポ取ったのに当日キャンセルなんてしないだろう

そういう時にはオフラインで操作して後で更新するだけで終わりだよ

複雑な在庫を奪い合ったり相互に関係するリレーションを破壊するには向いていないがそんな業務を避けるだけで
オフラインで業務報告や日報入力など普通に使えないツールは困るだろ

状況に合わせて適宜ルール決めるだけ
本当にこれだけだろう
2024/11/24(日) 11:15:56.24ID:KIGifJ380
仕様を決める人間と
決められた仕様に沿って実装する人間とでは
物事の見え方が違うという典型例だね

両方やってればもう少し物事を多面的に見れる
2024/11/25(月) 11:51:01.20ID:Xa+HCiLI0
ちょっと違うけどイメージしやすい実例を挙げるとしたら Git とかになる?
fetch だけオンラインでしとけばオフラインでもコミットなどはできる。
オンラインになったときにプッシュする。
データが不整合(コンフリクト)になったときどうするかは、
要件に応じて設計
2024/11/25(月) 11:53:43.97ID:Xa+HCiLI0
OneDrive とか Dropbox とかも
2024/11/25(月) 12:50:11.92ID:ti7eeH670
横からだけど、その例はちょっとズレてるんじゃないかな
そのような汎用的なツールは誰にでも受け入れられるように極力勝手な前提を設けずに小手先のテクニックで頑張る方向
一方で、業務アプリのように特定のユースケースを前提とするなら、汎用的なコンフリクト解決の仕組みとか要らないの
衝突した場合には、ある特定のデータ項目に関しては常に端末側のものを採用したい、といった要件は個別に話聞けば普通に出てくる
仕様決める人はそういうのをクソ真面目に話聞いて仕様に落とし込んでるわけだね
基本的に客は馬鹿なので、必ずしもそういうアプローチが汎用的なアプローチよりも優れている訳ではないのだが、
ともかく上の「仕様を決める」というのはそういうことを言っているのだと思う
2024/11/25(月) 13:10:09.67ID:x60lCKML0
>>363
書けば書くほど素人臭がキツくなるな
「Gitと同じように作るだけじゃないの?」とかリアルで言ってそう
2024/11/25(月) 22:39:22.95ID:Xa+HCiLI0
なんかごめん
368デフォルトの名無しさん (ワッチョイ 46df-cbcK)
垢版 |
2024/12/05(木) 23:50:57.55ID:PwliRaIW0
フェッチはコピーするという意味だと知らないんだろ
2024/12/25(水) 19:20:42.54ID:pacUGaOU0
WinUI3の画面にWindowsTerminal埋め込んだったwww
https://qiita.com/C-Sharp_is_GOD/items/d02a2da67690342eb18f
https://youtu.be/EUKxCwRNE4g?si=THt6u0Izm1QRgl63
WindowsTerminal標準の設定も使えるしタブ機能も使える
2024/12/25(水) 20:22:33.08ID:QTiHuTzJM
君しつこいよ
2024/12/30(月) 19:04:40.52ID:/IGqDrzd0
ChatGPTの公式デスクトップアプリがMac版はネイティブなのにWinではElectronになったのには、当初WinUI試したけどあまりにもクソだった
→実際Winアプリって最近のメジャーどころはMS製含めだいたいWebベースなんだからもうWebでいいじゃんという判断があったそうだ
あまりにもライブラリが未整備だし誰も使ってなくてエンジニアの確保も困難とのこと
一方MacはUIフレームワークの乱立&放置が繰り返されたWinと比較してネイティブアプリ用のUIフレームワーク何使えばいいか極めて明確だし、大部分のコードをiOSと共通化できたそうだ
WPF以降の迷走によって崩壊したWinのUI開発エコシステムの惨状を象徴する良い事例だな
2024/12/30(月) 20:05:33.26ID:sFrwTalz0
だからWebでいいって大昔に結論でてる
2024/12/30(月) 20:21:17.17ID:PItkFo3l0
バックエンドと高頻度にデータをやり取りするとか、
バックエンドでリアルタイムに生成した画像を大きく表示するようなアプリだと
Electronはレスポンス悪くなるんじゃないの?
2024/12/30(月) 21:03:02.41ID:dr/DezOv0
ぜんぜん
2024/12/30(月) 21:32:22.79ID:VLSf1dH+0
Webはそういうユースケースに最適化されてるからむしろWPFなんかより遥かにレスポンスいいんだよなあ
2024/12/30(月) 22:04:44.38ID:PItkFo3l0
じゃあ、逆にElectronはどんなタイプのアプリには向いてないの?
2024/12/30(月) 22:26:17.62ID:VLSf1dH+0
一般的には、メモリ消費量の少なさや起動の早さが重要な小物には向かないとされる(WPF比では微妙だが…)
ChatGPTなんかまさにそうで、Win版がElectronアプリであることはかなり非難されてるね
2024/12/30(月) 22:38:07.94ID:sFrwTalz0
>>376
wasmの利用で死角が無くなった
2024/12/30(月) 23:01:18.81ID:VLSf1dH+0
一般的には、メモリ消費量の少なさや起動の早さが重要な小物には向かないとされる(WPF比では微妙だが…)
ChatGPTなんかまさにそうで、Win版がElectronアプリであることはかなり非難されてるね
2024/12/30(月) 23:18:27.36ID:OOGmSE5G0
ネイティブであってもXAMLレンダリングしてるならElectronでHTMLレンダリングしてるのと内部でやってることあんま変わんなくね?ってのが
2024/12/31(火) 00:42:34.02ID:DZIETbhN0
AIアプリなんてネットワーク越しでAPI叩いてるだけじゃないの?ローカルクライアント側のパフォーマンス差なんて
AIのレスポンスに比べればたかが知れてる気がするけど
2024/12/31(火) 00:44:36.08ID:TIQaqZjg0
処理速度的にはその通りというかむしろ極限まで最適化されてる分HTMLの方が大抵速いのだが、
ブラウザを丸ごと同梱するのは本来必要な機能に対して膨大な無駄があるからどうしてもメモリ食うし起動にも時間がかかる
383デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 10:06:10.65ID:Ksb/JqFh0
webアプリをクロスプラットフォームに移植する上でelectronだと楽だから使われてるだけで
最初からwin用のネイティブアプリ作りたい用途ならWPFの方が向いてる
2024/12/31(火) 10:12:02.23ID:Njrw1w1iM
それは思い込みだと思うよ
WPFの開発者なんて確保できない
385デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 10:19:11.69ID:Ksb/JqFh0
ChatGPTのアプリってWeb版と何も変わらないじゃん、ショートカットがあるくらい?
それを例に出すのは流石に頭悪いと思う

Edgeで任意のサイトのアプリ化する機能とやってることは変わらん

Webアプリがクロスプラットフォームの肩書きを得るために楽なのがElectronだから一応用意してるだけ、ブラウザでアプリ化するのと対して変わらん
2024/12/31(火) 10:31:04.49ID:Njrw1w1iM
web開発者は低価格でいつでもいくらでも提供されるので成果物が同じ機能ならコスパが良いのは
web技術を流用したほうになる
387デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 10:39:29.91ID:Ksb/JqFh0
単にChatGPTがアプリの特性を考えてElectronを採用しただけ
その開発者でもないのにそれを引き合いに出して他技術を貶めるのは流石に頭が悪い

ChatGPTはバックエンド側が価値があるわけでフロントエンド側なんて別にどうでもいいわけ

ネイティブアプリが向いてるのはアプリ側がメインで処理を行うもの

動画プレイヤー
ターミナル
IDE
PDFリーダー

こういった類のものを一から作る上でElectronやJSを採用する意味はない

アプリの特性を考えて適切な技術を選択してるに過ぎない
2024/12/31(火) 10:42:43.55ID:Njrw1w1iM
そういうものはおいそれと一から作られないと言う事実を無視してる
需要がない
WPFは死んでる
役割を終えた
winUI3もそんな感じだ
2024/12/31(火) 10:44:23.87ID:Njrw1w1iM
そういうのはC++の守備範囲だ
390デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 10:49:14.60ID:Ksb/JqFh0
俺WPFでアプリ作ってgithub star 1000以上あるけど?使われてるんだが?

クロスプラットフォームならAvaloniaでもいいよね
JetBrainsがdotpeekやdottraceでAvalonia使ってるけど?

C++なんで全員使いたいわけでもないし、C#でネイティブ作る需要は普通にある

お前は何も生み出さず他人の受け売りしかできないゴミだね
2024/12/31(火) 10:53:31.07ID:Njrw1w1iM
どんどん小学生のようなレベルに落ちていくな
俺のお父さんは社長だぞーみたいなレベル
論理のかけらもない

上から順にスレを見返していけばいいのに
392デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 10:57:19.21ID:Ksb/JqFh0
内容で反論できずに無意味レスw

C++じゃなくてもC#で作られてますよね?って事実を指摘して涙目敗走w
2024/12/31(火) 11:01:21.58ID:Njrw1w1iM
> 俺WPFでアプリ作ってgithub star 1000以上あるけど?使われてるんだが?
これが痛々しいと言うことに気が付かないんだから本当に鈍感だろう

Avaloniaの話を出したりする時点でじり貧なのがよくわかる

このスレの流れの元になったレスから見直せばそういう話にはならない
ライトウェイトなジャンルでもWPFが使われないのは生産性の問題だろう
そこをなぜ無視するのか
394デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 11:04:24.31ID:Ksb/JqFh0
ChatGPTで使われてないだとかはどうでもいい
他技術を貶める他人の受け売りしかできないゴミは
何も価値を生み出したことがないお前みたいなゴミが多い

何か生み出してかいってみたらどうなの

そもそもネイティブアプリの需要が低いってのがそもそもあるんだけどね、金稼げないし、割られるだけなんでね
2024/12/31(火) 11:07:24.97ID:Njrw1w1iM
他人にゴミゴミ言って突っかかってくる人間が一番問題あるんだと思うけどな
生産性がない
396デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 11:17:53.96ID:Ksb/JqFh0
WPFが使われてないんだー、Electronの方が使われてんぞ!

うんそうだね、だから何?
ビジネスをする上でElectronが適した場面が多く、WPFが適してない場面が少ないだけなのでは?

逆に適してる場面で採用すれば生産性は高いのでは?

Avaloniaを持ち出したのもWPFとほぼ同じで学習コストが低いから

クロスプラットフォーム採用する上で、自分が慣れてる技術を選択することが重要なわけで
2024/12/31(火) 11:22:43.40ID:Njrw1w1iM
ごみごみ言うのは辞めたのか?書いてよかった

教育って大事だな
2024/12/31(火) 11:26:21.09ID:Njrw1w1iM
それにドンドン自分の書いた主張の内容をなぞって書いてくれるようになった
自分の主張が受け入れられて相手の思想を上書きしていると実感できる
399デフォルトの名無しさん (ワッチョイ 63eb-UqtM)
垢版 |
2024/12/31(火) 11:27:25.06ID:Ksb/JqFh0
使われてる使われてないとかどうでもいい
なんでそんなことを気にする必要があるの?

自分が作りたいものに適してていいものだと思えばそれでいいんじゃないの?
2024/12/31(火) 11:32:40.90ID:h8p02rZ4M
なぜかここで持ち上がるweb
2024/12/31(火) 11:32:50.05ID:Njrw1w1iM
君はわかりやすくて良い
2024/12/31(火) 14:52:49.56ID:Z+3Md4kO0
>>387
いやいやMac版のChatGPTのアプリってVSCodeなど他のアプリと連携したりするんだぞ
今後オートパイロット機能などよりシステムと密接に統合されていく方向なのは明らかで、
ネイティブアプリの方がシステムへのアクセスのしやすさにおいて有利なのは目に見えてる
まあWinについては完全にCopilotと競合するから、やりすぎると大株主のMSから怒られる可能性が高く、やる気がしないという面もあるかもね
2024/12/31(火) 17:00:27.19ID:xpoxeW+N0
OpenAIにとってはWebのChatGPTのUIをほぼそのまま流用できる安い手段としてElectonが採用されただけだろう
Electronで実現不可の事はやらんだろうし最初からWPFが出てくる幕なんて無いのでは
2024/12/31(火) 18:39:03.11ID:Z+3Md4kO0
だとしたらMacよりも金をかける価値がないってことになるぞ
Claudeのuse computerみたいにスクショベースでの連携ならElectronでも全然問題ないだろうけど、
Mac版ChatGPTの他アプリ連携ってOSのアクセシビリティAPIを使ってUIに深く踏み込んでるんだよね
仮に同じことをWindowsでやるとしたらUI AutomationとWin32みたいな世界だから、まあOpenAIは雇わないだろうねその辺得意なドカタPGは
405デフォルトの名無しさん (ワッチョイ 17bd-VGIH)
垢版 |
2024/12/31(火) 20:00:33.49ID:4QENqR2s0
WinUI3とMAUIって別物?
いまいちこの2つの関係がよく分かってない
2024/12/31(火) 22:07:55.17ID:9BKWDrSEM
WinUI3は次世代のwindowsネイティブSDK

MAUIは事実上xamarinの後継でマルチプラットフォーム用のSDKで実際のコンポーネントなどは
既存の各プラットフォームのSDKを使ってる
で、windowsではWinUI3を使うことになる
407デフォルトの名無しさん (ワッチョイ 17bd-VGIH)
垢版 |
2024/12/31(火) 23:18:09.38ID:4QENqR2s0
>>406
サンクス、理解できた
2025/01/01(水) 15:48:34.59ID:m7HU6bkz0
AppleとOpenAIが提携したから何かやるつもりでネイティブにしてるんじゃないんか
2025/01/01(水) 15:54:30.70ID:TGBNTam3M
MS「… いや…なんでも…」
2025/01/01(水) 23:40:44.91ID:VG4r3r870
MS的にはCopilotで自前で自由にして良い権利を得てたのかも知れんけど、結果は散々だな
今のMSにエンドユーザー向けの気の利いたサービスを開発できる能力があるとは思えん
2025/01/02(木) 18:25:22.13ID:JbzIg9aT0
MS365 Copilotは酷いよなあ
基本的な応答の品質からしてChatGPTと同じモデル使ってるとは俄かに信じられんレベルだしOffice連携も冗談みたいなゴミ
唯一役に立つのはTeamsの要約くらいだな
近年のMSのエンタープライズ向けプロダクトの例に漏れず情シスという名のブルシットワーカー達が経営陣に「やりました」と言うためだけに作られていて、
全くユーザーの方を向いていないしプロダクトとしての思想が何も感じられない
ただ機能表に丸を記入させるためだけに開発されている
2025/01/07(火) 00:36:52.79ID:Q+zN30QW0
最初から脳内で結論が決まっている人達…
413デフォルトの名無しさん (ワッチョイ 93aa-8vo+)
垢版 |
2025/01/11(土) 23:04:19.08ID:TDvdfZ9Y0
WPFのフレームワーク周りがよく分かってないので聞きたい
調べると CommunityToolki.MVVM, ReactiveUi, ReactiveProperty, Prism などが見つかるけど、これらはどれか一つを選んで使うようなもの?

どれもMVVMのためと聞くけど、これらは同じ目的を持った異なる設計思想のライブラリという感じなのか、それとも異なる用途のもの (組み合わせて使える) なのか
スレ民のおすすめ、好みなどもあれば教えてもらえると嬉しい
414デフォルトの名無しさん (ワッチョイ edeb-aSuJ)
垢版 |
2025/01/12(日) 13:42:32.40ID:gtVwcuiu0
>>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使えればなんでもいいかな
2025/01/14(火) 14:52:54.36ID:It61XpnnM
Webではフレームワークというとフレームワークが主でアプリケーションコードをその上に乗っけるようなものだが、
ああいうのを念頭に置くならWPFのはフレームワークというより単なるサンプルやツールの寄せ集めと言った方が近い
基本的に必要なものを適当に掻い摘んで使うもの、何ならソースコードをコピペしてきて自作してもいい
2025/01/14(火) 15:45:33.97ID:MG7xLIZc0
短かく簡単にしたいっていうならPropertyChanged.FodyとCaliburn.Microの組み合わせが頭おかしいレベルに省略できる。
>>414 の例によると、Set()も要らないしDelegateCommandも書かずに動作する。
だから問題なのはMVVMをどうするかではなくXAMLをどうするかに始終。
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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