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

■ このスレッドは過去ログ倉庫に格納されています
2021/09/19(日) 18:43:39.82ID:9XIs1/Nq
WPF(Windows Presentation Framework)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2021/12/10(金) 10:58:21.08ID:IaTPmX3X
>>393
依存関係プロパティーはかなり遅いようだが、対WPFで考えるとBinding VS x:Bindのアドバンテージは別に有るから
トータルでどっちが早いとか遅いの情報がないと判断つかないわな

テストはバインディングせずに直接依存関係プロパティーに値を入れているベンチマークだからね
2021/12/10(金) 18:47:07.68ID:d11P/pJ3
>>197だけど
x:bindとかでどうこうなる次元じゃない遅さだと思う
2021/12/10(金) 19:23:09.60ID:EMIJiqQw
>>199に書いたとおり、x:Bindでもクッソ遅い場面がある
使用に耐えないレベルだった
ただ0.8.4までしか試してないから、もし1.0で改善してたらごめん
2021/12/10(金) 21:37:20.02ID:KHN3i945
1.3から本気出す
398デフォルトの名無しさん
垢版 |
2021/12/10(金) 22:07:40.25ID:uwE9EWvi
1.0の正式版とそれ以前では違いそう
.net 6も正式版の直前までパフォーマンス酷かったし
2021/12/13(月) 08:59:15.68ID:H9a7rgZr
1.0

>これはMicrosoft Windows App SDKの実験版です。

おやすみ
2021/12/14(火) 10:31:50.74ID:BWRxmoJr
WPFはいつ如何なるときもMVVMで作るのが良い設計だと思い込んでるWPFビギナーを何とかしてあげたい。

誰が戦犯だ?
2021/12/14(火) 10:39:33.53ID:8wUcfeCA
すまん、俺
2021/12/14(火) 11:33:17.84ID:0FaSrzOE
>>400
俺だな
2021/12/14(火) 11:55:32.17ID:bZYBqm0X
使い分けた方が良いと思ってそうしてたけど
想定外に規模が大きくなって後からMVVMに直す方が手間だと気が付いてからは
確実に大きくならないのが分かってる時以外はなるべく最初からMVVMにするようにしてる
2021/12/14(火) 12:01:24.45ID:mpAOsF0a
所詮ビューをどう作るかの問題でしかないのにそんなに大した話かね
作り方が悪いんじゃない?
VMにビジネスロジック書きまくってそう
2021/12/14(火) 12:53:06.59ID:GyJmmLrf
良い悪いというより慣れるとMVVMが楽になる
イベントハンドラにコード盛り付ける時代に戻りたくない
2021/12/14(火) 13:03:12.96ID:O+PKsBTV
2021/12/14(火) 13:09:09.39ID:mEb6s25z
配布する際のexeやdllを難読化(逆汗防止とまでは行かなくても)する有償無償問わずお勧めのツールありますか?
2021/12/14(火) 13:22:20.11ID:nNuI17B5
使い捨てじゃない限りMVVM使うね
2021/12/14(火) 13:51:02.06ID:AFzuPhiG
staticおじさんは今、MVVMおじさんに
2021/12/14(火) 13:57:56.89ID:bZYBqm0X
そのコンバートは対極過ぎて無理だろw
2021/12/14(火) 14:34:25.04ID:AFzuPhiG
昔:全部staticでええやん

今:全部MVVMでええやん
412デフォルトの名無しさん
垢版 |
2021/12/14(火) 15:22:35.56ID:NSBldbYQ
MとV以外に定まった構造なんてない
MVVM原理主義者なんて無視が正解。相手するだけ時間の無駄だから
2021/12/14(火) 15:28:37.04ID:gkdtl+wP
まあフォームズですらビジネスロジックは切り離すしな
2021/12/14(火) 18:12:11.50ID:cTWCNRiH
>>409
staticよりもDI使うね
415デフォルトの名無しさん
垢版 |
2021/12/14(火) 18:19:08.48ID:QT7QgCvl
いや切り離したらデータ検証など分割、重複してめんどくさくなるから全部Viewでやったほうが簡単
ユーザーエクスペリエンスが高くなる
wpf向けのエラー通知装置が何種類もあり迷走しているのが何よりの証拠
2021/12/14(火) 18:28:22.54ID:O+PKsBTV
おまえらReactとかやんねーーの?

意味不明のXaml覚える半分の時間で
Reactマスター出来んぞ

その上でXamlまたやるなら大したもんだと関心するけど
417デフォルトの名無しさん
垢版 |
2021/12/14(火) 18:37:54.25ID:QT7QgCvl
WEBアプリは来年ですら動作が怪しいからやんねーよ
2021/12/14(火) 19:17:12.28ID:hChHIk3u
Reactが人気みたいだけどVueでweb入門してる
2021/12/14(火) 20:18:32.84ID:DOkC2hMC
>>407

WPF全く関係ないけど"ConfuserEX 2"
2021/12/14(火) 22:54:01.86ID:GyJmmLrf
.net nativeが御存命なら何も問題なかったのにな
2021/12/14(火) 23:26:27.41ID:mEb6s25z
>>419
ありがとうございます、試してみます。
ちなみにWPFで難読化かけると、バインディングなどリフレクションで解決する変数をpublic以外にすると
難読化されて変数名が変わってしまい上手く動かなくなるなんて弊害もありました。
422デフォルトの名無しさん
垢版 |
2021/12/15(水) 04:02:26.72ID:wG9epGnM
なんでネイティブアプリ作らせようとしないのか不思議だよなあ
423デフォルトの名無しさん
垢版 |
2021/12/15(水) 04:12:08.01ID:wG9epGnM
>>399
1.0には安定板と実験版の二つがあるんだよ
424デフォルトの名無しさん
垢版 |
2021/12/15(水) 08:31:36.35ID:PgExgZMT
>>418
SPAってまだ息してるの?
2021/12/15(水) 10:17:12.13ID:VvTx19R8
>>424
今時WebサービスはSPAだらけだぞ
SPAが出始めた当初の、一昔前でいう全面Flashのクソサイトみたいなイメージのままで止まってるんじゃない?
意外に普通のサイトでも普通に使われていて、もはや全く特別なものではなくなっているし君も気付いていないだけ
2021/12/15(水) 12:24:42.77ID:UffDh3f0
>>422

「一般人には"難しい"インストール作業が必要」だからでしょ。
2021/12/15(水) 14:37:16.07ID:rLyo7YcO
>>426
zipファイルを右クリックして展開、中のexeをダブルクリックするだけ
2021/12/15(水) 15:15:38.62ID:SBRyNeAi
>>427
それだとダウンロードしたファイルの実行許可みたいな処理をしないと起動しないな
429デフォルトの名無しさん
垢版 |
2021/12/15(水) 19:11:55.55ID:samTlIw/
MSIX「…」
430デフォルトの名無しさん
垢版 |
2021/12/15(水) 23:20:46.31ID:l+MEhncN
>>415
これマジで言ってんだったらヤバいなw
431デフォルトの名無しさん
垢版 |
2021/12/16(木) 15:14:01.42ID:8t4kYEOd
>>415
ウン千行のMainWindow.xaml.csでも量産してるのか?それともpartial祭り?
432デフォルトの名無しさん
垢版 |
2021/12/16(木) 15:26:56.21ID:GwGlfrLa
モデルを再利用しないならぶっちゃけ全部ビューに書いた方がメンテしやすいよね
2021/12/16(木) 15:41:48.28ID:UhnplqTN
>>432
VMは作る必要ないが、切り出せる処理は可能な限りModelに切り出したほうがメンテしやすいだろ
2021/12/16(木) 18:59:05.09ID:/RlPdQ27
MVVMか・・・ 
ドメイン駆動開発には必須だが、カスタムコントロールをListView->GridViewにDataTemplateで埋める時なんか、
DataContextがListViewのItemSpurceに固定されて二段階ペアレント遡りとかマンドクセーんだよな。
コードビハインドでやった方が簡単だし速い。
2021/12/16(木) 19:23:49.46ID:SXRV0mKl
>>434
一度React等の1-way dataflow系のUIフレームワークに触れてみることをお勧めする
MVVMなんかに戻る気しなくなるぞ
2021/12/16(木) 20:52:20.35ID:0keLIzjB
この件に関しては何であるかは関係ないだろ
XAMLがそうなちゃってるだけでflutterや他のフレームワークでMVVMやれば>>434の件とか自由にできるだろ??
437デフォルトの名無しさん
垢版 |
2021/12/16(木) 21:17:28.50ID:y2oCKs8P
VMがあるがVMは最小限にして他はコードビハインドに書くという新たなるデザインパターンを発見してしまった
2021/12/16(木) 21:20:43.02ID:P4pOcLuS
pythonに描かせたチャートを表示する方法おしえてください
2021/12/16(木) 23:10:25.71ID:mP79z56f
Reactは俺も使ってるが、WebアプリもWPFみたいに開発できたらもっと楽なのにと思う。
2021/12/16(木) 23:13:42.48ID:Uw3UXkCr
>>439
Vue.jsとか使えばjs+MVVMで開発出来るでしょ
2021/12/16(木) 23:16:19.34ID:Qqw3hXVf
React使えてなさそう...
2021/12/16(木) 23:18:07.78ID:Qqw3hXVf
もう10年ぐらい前から
backbone.jsがmvvmしてますよ
2021/12/16(木) 23:21:39.31ID:el7qs11a
winformみたいに楽に開発できるようにはなりませんかね。
444デフォルトの名無しさん
垢版 |
2021/12/17(金) 04:23:59.46ID:FDMn0ZP0
どこが難しいのかわからない
やろうとしてないだけじゃないの
2021/12/17(金) 06:23:40.15ID:FEmDTE20
>>444
難しいじゃなくて、
めんどくさいんじゃねーーの?
2021/12/17(金) 07:31:09.67ID:k0KpTC0i
Electronオワコンの兆しが見えてきた
447デフォルトの名無しさん
垢版 |
2021/12/17(金) 07:49:25.07ID:vC3aJ6Ce
VSCodeがある時点でWPFよりオワコンじゃないんだが
2021/12/17(金) 08:06:23.71ID:k0KpTC0i
そのVSCodeの元になったATOMがElectronを捨てた
2021/12/17(金) 08:24:08.08ID:QaySSAou
VSCodeはともかくATOMは💩だったからね
2021/12/17(金) 08:38:26.32ID:hyr8BiIA
>>437
VM最小限ではないだろうが、反応速度をトリミングしていけば、普通にそうなるんじゃね?
最初はActiveCommandやeventtriggerバインディングを駆使してストイックにビハインドコードを汚すまいとするが、
やっていくうちにBindingからeventへの悪魔が食指を伸ばしてくる。
Coreに必死でロジック入れまいとするが、DomainやInfrastructueから自然と入ってきて汚すDDDみたいなもんだよ。
2021/12/17(金) 09:24:17.02ID:8qM/JwoR
そこでWinUI3ですよ。x;BindでイベントをVMで処理できるし、のこりはサービス作ってVMにインジェクションすりゃ良い
1.0になって地雷が少々残っているものの動作は軽快になって実用的になっている
2021/12/17(金) 09:57:30.72ID:mQ3a9kDU
>>443
wpf使えばwinformよりは楽に開発できる
2021/12/17(金) 10:56:55.08ID:FEmDTE20
>>443
wpfでmvvm捨てれば同等までにはなる
2021/12/17(金) 11:15:05.40ID:OxYtcTfz
>>448
githubがMSに買収された時点でatomはオワコン決定だろ
2021/12/17(金) 12:20:14.61ID:tWB5K5S1
GitHub クローンで、Ruby on Rails から、Go へ移行しない、
GitLab が上場して、時価総額が2兆円!

だから、Go へ移行するGitHubは、2兆円以上の価値がありそう
456デフォルトの名無しさん
垢版 |
2021/12/17(金) 22:46:12.94ID:guv1lRQC
>>453
イベントドリブンごりごりで描くならWPFの方が劣るかな
GestureTextとか変なところで手間かかる
2021/12/18(土) 00:13:36.92ID:3vX4TQFs
>>456
そんな偏屈な所つつかれても...
2021/12/18(土) 06:16:02.64ID:gMZd/6Bt
>>443
>>453

>winformみたいに楽に

って言ってるんだからMVVMを使わないのは大前提。

WPFの方が楽。
同等レベルだったらわざわざWPF使う意味はない。
459デフォルトの名無しさん
垢版 |
2021/12/18(土) 09:04:39.30ID:hjFJ5hmV
Winアプリの構造がメッセージループである以上、
MVVMみたいに本末転倒で過度な抽象化をするとインピーダンスミスマッチでもっさりするのは必然
2021/12/18(土) 09:58:17.85ID:+il6Dckm
まぁ DomainのRepositoryが全てのSOLID原則の中心になっているようなものだからね。 抽象化で遅くなるのは仕方ない。
描画やIOディレイもっさりに関してはasync/syncやUser32.dllのPostMessge、WndProcで高速化しているのがハイスキル連中のテクニックとちゃう?
プロはリリース毎のコスト上昇にほとんどの神経を尖らしているので抽象化肥大は避けられない。 コスト上昇が飽和しなければ、プロジェクト崩壊している事になる。
MVVMはTDDの必須構造。
461デフォルトの名無しさん
垢版 |
2021/12/18(土) 11:12:55.77ID:lNPlbMFx
>>459
レスポンスを追求するならVに全て実装するのも最適解のひとつだよ
2021/12/18(土) 12:08:56.63ID:7vxJCvKi
賢そうに見えない話を続ける人達にあれがよいこれがよいと推されてもねえw
2021/12/18(土) 12:40:09.41ID:rMHGoE/h
>>462
もっと賢そうに見えない人がそんなこと言ってもねえw
2021/12/18(土) 12:45:09.73ID:5vur9Hw6
M(VV)M フォッフォッフォッ

賢い人ならバルタン星人に見えます。
2021/12/18(土) 14:38:05.82ID:TQAat0ge
ネットや本のサンプルコードはWinforms ばかりなのは楽だから
2021/12/18(土) 15:34:46.72ID:191O5ceb
たからmvvmはblend前提のアーキテクチャだから
blend使わない時点で...
2021/12/18(土) 15:36:40.23ID:191O5ceb
↑wpfのmvvmね

knockout.jsとかvue.jsのmvvmは結構使える
468デフォルトの名無しさん
垢版 |
2021/12/18(土) 15:41:06.33ID:sdZeToOe
mvvmがwpf特有のものだと思い込んでる人いそう
2021/12/18(土) 15:45:40.48ID:5vur9Hw6
大半は開発者はmvvmなんてどうでもいいと思ってる。
そして大半の開発者はWPFは面倒だと思ってる。
470デフォルトの名無しさん
垢版 |
2021/12/18(土) 15:57:58.52ID:sdZeToOe
付いてこれない奴はおいていくしかないわな
2021/12/18(土) 16:02:12.24ID:5vur9Hw6
切り捨て大魔王アップルと同じスタイルですな。カッコイイ
472デフォルトの名無しさん
垢版 |
2021/12/18(土) 18:07:20.87ID:eF5qVI2/
>>458
高DPI対応のレベルが全然違うわ
今から新しくWinFormアプリシステム作る意味は無い
2021/12/18(土) 18:25:17.90ID:moPm6mf8
>>472
高DPI 対応ですか…またやっかいなものが
GetDeviceCaps
がテキトーな値しか返してくれないし
2021/12/18(土) 18:47:28.71ID:sQyFW59x
4Kモニターが普及してきたし高DPI対応はもう必須やろなあ
2021/12/19(日) 11:19:58.43ID:O/qDX0wZ
そんなに優れたアーキテクチャーなら15年も鳴かず飛ばずで一体何をなさっておられたのでしょう?
2021/12/19(日) 11:38:32.30ID:kxTQmf/6
うちの周りだと普通にWPFで「いまさらForms?」みたいな雰囲気なんだけどそのへんの温度差がすごいな。
2021/12/19(日) 12:01:52.46ID:bFU6ZlAL
普通にwebでやれよ
478デフォルトの名無しさん
垢版 |
2021/12/19(日) 12:09:05.77ID:NtqS0yAI
うちの会社は逆だ
WPFなど使い物にならんと随分前に見限られてる
UIはネイティブが第一選択でそれが無理ならFormsだな
俺がWPFを提案したとき上司にそんな物プログラマーが一時の流行りに乗りたいだけですぐに廃れるって一蹴された
まぁ結果論だが上司が正しかったのかな
2021/12/19(日) 12:35:07.34ID:JBr0bC1G
一時の流行りすらなかっただろ…
480デフォルトの名無しさん
垢版 |
2021/12/19(日) 12:49:18.00ID:ZhDu//Ih
>>472
ボケボケのアンチエイリアスを高DPI対応と言われましても
2021/12/19(日) 14:10:26.84ID:dztrfhWF
>>478
当のMicrosoftがWindows10になってもOS標準のGUIをWPFに置き換えに失敗。
結局は非スケーラブルなWindows GDI残渣を片付けられなかった事で、
WPFへの支持も得られず、一足先にSilverlight 、Xamarinも終焉を迎えたもんな。
2021/12/19(日) 14:42:10.84ID:O/qDX0wZ
Xamarinは日本政府も採用してんだから終わってない
483デフォルトの名無しさん
垢版 |
2021/12/19(日) 15:02:09.45ID:4oJJoyOR
アメリカの圧力。
484デフォルトの名無しさん
垢版 |
2021/12/19(日) 15:06:41.74ID:uJG5wN6M
>>482
あれ反応したことないw
Xamarin採用に起因する不具合なのかね
485デフォルトの名無しさん
垢版 |
2021/12/19(日) 15:07:46.95ID:Dc9hXcN/
しっかしここまで「WinでGUIといったらこれ!」っていうフレームワークが存在しないのも凄いよな
どれも一長三短くらいなもの達ばっかりw

これじゃ初学者も何やりゃ良いか分からんだろ
2021/12/19(日) 15:08:45.41ID:S3M8NlfX
>>476
それが一般的なレベル。
デスクトップアプリを何で実装するかで技術レベルを測ってる企業もある。
今更Forms使ってれば最低レベルってことが一目瞭然だから。
2021/12/19(日) 15:18:47.00ID:JBr0bC1G
>>485
C++ならキラーアプリMS-OfficeのフィードバックのMFC、
C#なら高速で人気のあったVCLの後継、winformだった。

実績もなく机上の空論で実装された低速なWPFをMSが押さなければ混乱なんてなかった。
VS開発チームすら採用に難色を示した出来の悪さ。自慢は高DPI対応。
2021/12/19(日) 15:55:56.66ID:zx1ngvEK
今のマシンならWPFでも快適やろ
WinUI 3は今のマシンでも低速だけどw
2021/12/19(日) 15:58:09.64ID:/MVrxgMV
>>487
VS開発チームすら採用に難色を示したってどこの情報
2021/12/19(日) 16:08:10.00ID:3MHXzmFi
>>482
人脈が生きた結果だな
2021/12/19(日) 16:15:13.62ID:kxTQmf/6
>>487
ストアアプリやUWPは確かに混乱をもたらしたと思うがWPFとFormsは好きな方使えばいいんでは?
べつにそこ混乱する必要ないでしょ。
2021/12/19(日) 16:29:09.20ID:HjXxxksN
vs studioがwpf製だろ
493デフォルトの名無しさん
垢版 |
2021/12/19(日) 16:35:03.29ID:ZhDu//Ih
VS2010は出来が良かったな
2012以降余計な物が追加されてどんどん重くなっていって2017でリタイア
今じゃVSCodeに乗り換えた
■ このスレッドは過去ログ倉庫に格納されています