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/05(日) 16:05:58.30ID:zwvwJ3GL
>>373
お前の理解度程度でw
2021/12/05(日) 22:10:53.32ID:2XZtwemX
WinUI3のWindow制御は、よく読むと必要な情報も機能も全て用意されているのは分かったが
AppWindowPresenterという概念を理解する前にuser32を使い始めたのが敗因だったわ
一応動いているけど作り直さんといかん

流石にwpfよりはちゃんとしている
2021/12/05(日) 22:59:54.39ID:Z8sJTB6x
Flutterで作られたWinアプリってなんかあんの?
2021/12/06(月) 09:10:25.40ID:kWdsX7BP
>>375
あんなの用意されてるとは言わんわ。
windows api使えば泥臭いけど色々できます、と同レベルやんけ。
378デフォルトの名無しさん
垢版 |
2021/12/08(水) 18:32:20.16ID:1/e0NkZI
WinUI 3触り始めたけどこれ現代版WPFみたいな感じだな
違和感が少なく作業できたわ
2021/12/08(水) 20:18:31.30ID:a4b1TrI6
ほぼ同じ感じだから使いたいんだけど、datagridやComboBoxのバインディングのエラーが改善されないと正直使い物にならないかなあ
かなり目立つし致命的なところだと思うんだけど、なんで放置されてるんだろ
2021/12/09(木) 02:27:48.11ID:OPHaQIOf
このスレでグチグチ言われてるのは、品質とパフォーマンスだね..
2021/12/09(木) 07:02:21.82ID:kmW2UpC8
パフォーマンスはともかく
MSに品質を期待するのは野暮ってもんだ
2021/12/09(木) 08:19:09.95ID:tGD0zOBT
ほんとα版みたいなのをリリースしてくるよね
2021/12/09(木) 11:25:12.74ID:llOrfnKn
>>380
致命的www
2021/12/09(木) 12:02:30.61ID:tGD0zOBT
フレームワークの導入なんて最初でケチが付いたら当分は様子見になるから
初期リリースから完成度上げとくべきなんだけどMSは過去から何も学ばない
385デフォルトの名無しさん
垢版 |
2021/12/09(木) 14:50:14.04ID:+JgeG0l9
描画の負荷が軽くパフォーマンスはいいと思った
バグが表面化してるのがやばい
2021/12/09(木) 14:56:43.11ID:KovgkQkM
確かに0.8は酷いものだったが1.0は割と安定しているけどな
もしかすると触らずにネットの噂と印象だけで騒いでいないのか?
2021/12/09(木) 14:59:54.86ID:SPazmN08
MSの.NET部門ってインターフェースを後から変えづらいAPIやフレームワークの開発ばっかりやってるから、
小さい機能セットで完成度の高いものを出していくという発想がないんだろうね
VSCodeみたいにデリバリー重視でMVPから開発していくスタイルで後から破壊的変更されまくっても困るだろ
2021/12/09(木) 15:15:05.48ID:OPHaQIOf
>>385
いやいや、ItemsControl系使ってみんひどいから
>>269のリンク先みた方がいい

バグに関してはちょっと本格的なアプリ作り出すと踏むこと間違いなし
俺は既に数個報告してるし
もう触るのやめた
389デフォルトの名無しさん
垢版 |
2021/12/09(木) 16:50:14.24ID:ZKyVqiYb
まぁGAFAMにいるソフトウェアエンジニアすべてが優秀ってわけじゃないし…
MSはその中でもひとつ落ちるというか、中の下〜中の中くらいのプログラマを多く抱えてそうなイメージ
2021/12/09(木) 17:27:19.06ID:tGD0zOBT
>>389
インターンが作った拡張機能とか公式で公開するレベルだからなあ
2021/12/09(木) 17:28:35.06ID:kmW2UpC8
代わりに商売上手が多いんだろう
2021/12/09(木) 23:45:52.34ID:OPHaQIOf
>>371
flutter 2.8来た
2021/12/10(金) 00:57:19.22ID:EMIJiqQw
>>269、よく見たら2019年に書かれてるじゃん
優先的に直すべき事象だと思うんだけど、今の時点で直ってないってことは修正には期待できないのかな

これがなければ普通に使いたいんだけど...
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
がテキトーな値しか返してくれないし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。