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

■ このスレッドは過去ログ倉庫に格納されています
2021/06/20(日) 17:04:18.66ID:7UVkl7BZ
Windows Presentation Frameworkについて語るスレ。

前スレ
WPF(.NET4.x, .NET Core) GUIプログラミング Part25
https://mevius.5ch.net/test/read.cgi/tech/1612522463

関連スレ
Windows 10 UWPアプリ開発 Part 2
http://mevius.2ch.net/test/read.cgi/tech/1499658092/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
142デフォルトの名無しさん
垢版 |
2021/06/25(金) 21:36:11.44ID:BnS8egAD
ここ最近WPFが善か悪かの議論しかしてないよな
何か他に話題は無いん?

…まぁ、無いかw
2021/06/25(金) 21:38:17.66ID:zVVssHd/
>>144
https://qiita.com/tags/wpf
https://qiita.com/tags/winforms
2021/06/25(金) 21:38:53.51ID:zVVssHd/
>>141
>>143
2021/06/25(金) 21:41:33.62ID:zVVssHd/
WPF : 記事数1,123, フォロワー625
WinForms : 記事数78, フォロワー6

これが現実
146デフォルトの名無しさん
垢版 |
2021/06/25(金) 21:42:58.30ID:595fcDMG
>>117
MSは社内ですら方針統一できてないのがなあ
CairoやLonghornがコケた頃から何も変わってない
2021/06/25(金) 22:13:07.08ID:i6/+pAU6
なぜそのタグで検索して比較したw
2021/06/26(土) 03:46:23.80ID:XXzuMEQx
>>145
Windows Forms で検索すると、1513
WinForms:258
Forms:4412
WPF : 1903
2021/06/26(土) 03:50:38.30ID:XXzuMEQx
Xamarinで検索: 1726
タグのXamarin:968記事、906フォロアー。

如何にQiitaの読者層が信用ならないかが垣間見えるような。
2021/06/26(土) 03:56:28.35ID:XXzuMEQx
Qiitaではなく、Quoraだと、
C++: Follow 1M
C#: Follow 382K
Java: Follow 1.3M
つまり、人気は、
Java > C++ >> C#
2021/06/26(土) 04:39:37.06ID:XXzuMEQx
Google Trendsだと、WPF,MFC,Flutter,Qtが互角くらいで、WinFormsとUWPは低迷。
2021/06/26(土) 04:46:05.20ID:XXzuMEQx
Flutterは上昇中。MFC,WPFは徐々に下がってきている。
Xamarinは横ばいで低迷。
QtやFlutterはマルチプラットフォームなのに対し、MFCは古くからありWindows
専用な割には未だにかなり強い。
2021/06/26(土) 06:35:43.77ID:ZRPAi/RT
>>150
人気言語なら
Rust > TypeScript > Python > Kotlin > Go > Julia > Dart > C# >
Swift > JavaScript > SQL > Bash/Shell/PowerShell > HTML/CSS > Scala > Haskell > R > Java > C++

習得したい言語なら
Python > JavaScript > Go > TypeScript > Rust > Kotlin > Java > C++ > SQL > C# >
Swift > HTML/CSS > Dart > R > Ruby > C > Scala

糞な言語なら
VBA > Objective-C > Perl > Assembly > C > PHP > Ruby > C++ > Java > R > Haskell > Scala >
HTML/CSS > Bash/Shell/PowerShell > SQL > JavaScript > Swift > C# > Dart


by SO 2020調べ
2021/06/26(土) 06:53:11.90ID:ZRPAi/RT
GitHubリポジトリ数

Flutter(21,854) > WPF(5,679) > Xamarin(3,434) > WinForms(3,373) > UWP(1,630) > MFC(355)
2021/06/26(土) 11:27:25.79ID:TqdTR7t2
Flutterの人気がスゴいってのは分かった
2021/06/26(土) 11:54:16.49ID:XXzuMEQx
githubは特殊性が有ると思う。
vue.jsは、185k star、29.4k fork で、スポンサー(ほぼ知らない企業ばかり)も大量に
付いているが、実際の使用例はとても少ないと聞いてるし。
逆に、qtなんかは、1.4k star, 680 fork だけど、ウェブではないところで
結構使われていることが分かってる。
2021/06/26(土) 12:09:15.30ID:XXzuMEQx
>>145
Qiitaは、Webにちゃんとまとまって書いてないことを、自分で調べた人が
書く場所。だから、Webに情報が少ない事が書かれる傾向がある。
いくつかの調査で、WinFormsはWPFより使われていることが分かってる。
2021/06/26(土) 12:16:53.81ID:XXzuMEQx
2020/07/26 の時点で、マウスイベントで頻繁に更新される多くのDatagridviewsを使った
ビジネスアプリは、古いPCだと、WinFormsはマウスの反応が即時だがWPFはマウス
をクリックしてからUIが反応するまで数秒掛かると書いてある。

https://stackoverflow.com/questions/19642320/is-there-a-performance-difference-between-wpf-and-winforms

Great piece of advice here. I attempted a wpf business app with a number of
Datagridviews that were frequently updated by mouse events, and on older
production pcs, the app would take as long as a second between mouse click,
and ui response. Winforms version response time is practically immediate.
– c jk Jul 26 '20 at 23:49
2021/06/26(土) 12:21:32.22ID:w6j9gBE1
WPFのDatagridがゴミなのはもう常識だろ
2021/06/26(土) 13:01:58.02ID:+M0IgX5j
フレームワークにフレームワークが必要ってのは言語やプラットフォーム関係なく根っこが腐ってるからそうなるんだと思う
2021/06/26(土) 13:16:45.55ID:gzd4bl1h
(;´д`)
2021/06/26(土) 14:45:30.68ID:E0lcRfGC
グリッドコントロール使うアプリケーションの大半はゴミだけどな。
一覧画面と編集画面の2画面構成の方がほとんどのケースは使いやすい。
使いにくいしバグの元なんだからセル内で編集させるなよ。
2021/06/26(土) 15:24:13.20ID:TqdTR7t2
Readonlyで使うけどな
164デフォルトの名無しさん
垢版 |
2021/06/26(土) 15:26:27.93ID:hHYOAEGk
>>116
変人現るw
2021/06/26(土) 16:58:10.29ID:E0lcRfGC
ListView使えよ
2021/06/26(土) 17:03:12.16ID:KFUgiKj4
>>162
伝票入力なんかは表イメージのまま入力できる方が喜ばれるんだよ
WPFでやるならグレープシティのやつとか使った方がいいけど
2021/06/26(土) 17:10:24.36ID:E0lcRfGC
罫線付けたListViewでよくね?
ListBoxでもいいが。
2021/06/26(土) 17:12:42.88ID:zteDreFe
>>142
昔は普及はまだかの話しかなかったが、
今はもう普及は絶望的なのに評価しても仕方ないよな
2021/06/26(土) 17:33:33.64ID:SFjxv/Ip
データグリッド使わなくて済むようにカスタムリストアイテム作れるようにしたのがWPFとXAMLでしょ
(´・ω・`)おしゃれするんやで
2021/06/26(土) 18:35:14.18ID:Gmvay1qu
って言うかDataGridViewで事足りる
2021/06/26(土) 18:50:13.30ID:8sPnjTqa
その普及普及って話がピンとこないんだな。うちの周りじゃ普通にみんなWPFなんだが。
2021/06/26(土) 19:10:48.38ID:zteDreFe
Win11の前にビッグウェーブきたか!!
2021/06/26(土) 20:11:30.33ID:pEKyLLkA
UWPのDataGridは高速って話だが、WinUI3も期待できるんじゃね?
2021/06/27(日) 06:35:24.56ID:WZv5A4P4
>>164
テスト用のアプリならStackPanelかWrapPanelに必要なコントロールをドラッグ&ドロップしていく大雑把なマウス操作だけで画面完成。
超簡単でそれでいて最低限のレイアウト変更に対応できてる。

“一度WPFを知ってしまうとWinFormsに戻りたくなくなる”ってよく言われるのは
それだけWPFの方が画面作りが楽ちんだから。
2021/06/27(日) 09:27:21.88ID:TSKhpmUU
コードからWPF並みのレイアウトを構築できるだけのWinformsをくれ
2021/06/27(日) 09:36:27.68ID:aF9t9MTl
QTでも使ってください
2021/06/27(日) 09:53:59.32ID:TSKhpmUU
イヤじゃイヤじゃC++なんて使いとうない

まあC#のGUIフレームワークがうんこなのとネイティブとの相互運用がめんどくなって
毎度C++に戻っていくの繰り返しなんだけどね
要因がどっちかひとつならまだ我慢もできるんだが…
2021/06/27(日) 10:48:35.35ID:WZv5A4P4
WinFormsにXAMLを採用すればいいだけ
2021/06/27(日) 11:12:50.09ID:NJoLUHcc
ポトペタ出来るほうが楽じゃ
2021/06/27(日) 11:51:59.67ID:WIKfglo6
よし、Delphiを導入しよう
Qtよりはマシだろ?
2021/06/27(日) 12:02:07.47ID:f3id7Upp
DelphiのVCLをコピったのがwinformなんだが。
2021/06/27(日) 12:04:17.06ID:NX2lsBQd
>>179
じゃあWPFだな
2021/06/27(日) 13:39:52.48ID:jQhpCryR
>>181
コピーじゃなく本家が移った
2021/06/27(日) 14:28:53.00ID:me9wSnu9
181はBorlandの回し者か?
2021/06/27(日) 15:20:54.70ID:f3id7Upp
誤解を与えたようなので説明しよう。

世界的に実績のあるPGが開発→Winform→大人気
どこの馬の骨か分からんPGが開発→WPF→不人気

こういうことです。
2021/06/27(日) 15:22:04.21ID:8VL1opuX
昔のホームページビルダーとかExcelみたいに作れればええやろ
2021/06/27(日) 17:06:36.35ID:toTJDPNF
>>185
そういえばDelphiはGUI部分が大人気で、その開発チームがMSに移って作った
のがWinFormsだったのか。
どうりでWPFより設計が美しく感じるはずだ。
後発でも駄目なものはダメなんだよ、ここの信者が何を言っても。
2021/06/27(日) 17:28:14.85ID:bJFlr767
>>187
MFCよりもVCLのほうが断然使いやすかったもんな
2021/06/27(日) 17:35:16.09ID:WZv5A4P4
C#の言語仕様部分に主にかかわってる。
それは設計に関わっていないWinFormsの酷さを見れば分かるだろ?
WinFormsは生産性が低いし品質も低くなりがちなのは事実。信者が何を言っても。
2021/06/27(日) 17:42:49.35ID:HfXxTqRR
@ahejlsbergには終わりかかってるような環境よりTypeScriptに注力してもらった方が世の中のためになる
2021/06/27(日) 22:04:13.11ID:6ow+jL0/
reunionの名前が変わってる
Windows App SDKだってさ

検索殺しだわ
192デフォルトの名無しさん
垢版 |
2021/06/28(月) 00:59:55.07ID:mF8S9I5g
それはMSの得意技なので…w
193デフォルトの名無しさん
垢版 |
2021/06/28(月) 01:12:00.97ID:nwjsCynN
Webを見ても、UI設計はマークアップ言語でやるっていうのが正解
それはソフトウェア開発においても同じだった
WinFormsは完全に不正解
2021/06/28(月) 01:34:40.12ID:mF8S9I5g
WinFormの肩を持つ気はさらさら無いけど、あの時代はそれがスタンダードだったでしょ
JavaのSwingだってそっちに行ってたし
Delphiを神のごとくあがめる人がいるけど、そういう先見の明はなかったよね
2021/06/28(月) 02:48:41.32ID:JBMsD7o3
マークアップ言語なら同じってのはウンコとショートケーキを同列に扱うがごときだよ
もちろんXAMLがウンコでね
2021/06/28(月) 06:21:29.97ID:zyIZLp3R
他のマークアップ言語と比べてXAMLが優れてるなんて誰も言ってないんじゃないか?
WinFormsがウンコすぎてXAMLの方が数倍マシってだけで。
2021/06/28(月) 07:18:41.45ID:czRIvr8g
そもそも何が悲しくてマークアップ言語でUIを記述せなあかんのか
それに加えてあのクソバインディングの仕様

思想に拘泥しすぎて使いづらいことになっとる
C#の言語仕様の方向性とはまったく真逆
2021/06/28(月) 08:00:53.90ID:cZa6zFVz
>>195
まあ、他のショートケーキ環境と比較してみればXAMLがいかにウンコかよくわかるかもね。それって例えばどれ?
2021/06/28(月) 08:19:26.68ID:ajvVSSfT
冗長くんの言葉のチョイスが小学生だなw
2021/06/28(月) 08:33:12.98ID:czRIvr8g
データ記述言語としてのXMLもほとんどの用途はJSONに置き換わっとるし
Webだって生HTMLの記述を避けていかに楽するかにみんな試行錯誤しとる結果がフレームワークの乱立なわけで
もうマークアップがダメなのよ、XAMLというアイデアが生まれた瞬間からダメ
201デフォルトの名無しさん
垢版 |
2021/06/28(月) 08:48:33.34ID:nwjsCynN
Formsの臭いものに蓋をしたような裏のコードを見て
コレジャナイって気付かないもんかねえ
2021/06/28(月) 08:52:45.03ID:+h03On/r
>>160
2021/06/28(月) 08:55:18.72ID:yki3tuNE
うだうだ言ってもWPFが普及しなかったという事は事実
2021/06/28(月) 10:23:14.06ID:+h03On/r
普及するかどうかと優れたアーキテクチャかどうかは
全く別の話なのも事実
205デフォルトの名無しさん
垢版 |
2021/06/28(月) 10:28:27.83ID:2Oa7bDPq
ユーザー目線では遅い重い
開発者目線では面倒くさい難しい
MS目線ではやめたい捨てたい
206デフォルトの名無しさん
垢版 |
2021/06/28(月) 11:23:45.55ID:7XtL7Dy7
>>175
wxWidgets
2021/06/28(月) 11:38:04.11ID:yLrQOr5w
古代UNIX時代のマークアップ技術をなぜ未だに引っ張り出さなあかんねん。
2021/06/28(月) 11:46:36.50ID:kyJYPXM1
ウダウダと文句を垂れ流しておられる皆様方の理想のUI記述言語はどのようなものでございましょうか?
209デフォルトの名無しさん
垢版 |
2021/06/28(月) 11:57:00.05ID:bIZ7S0Sd
>>200
jsonでUI記述するC#Framewoek作れ
210デフォルトの名無しさん
垢版 |
2021/06/28(月) 12:00:01.72ID:bIZ7S0Sd
誤解されそうなので補足しとくが
漏れはjsonもxmlもxamlもうんこだと思ってる
2021/06/28(月) 12:09:14.53ID:MUa2ipuR
それはちょっと語弊があるだろ
どんなに優れたマークアップ言語の上にでも汚物のようなスキーマは構築できるってのが正しい
クソDSLを設計して喜んでていいのってそれこそ小学生までだよねーww
2021/06/28(月) 12:38:19.33ID:zyIZLp3R
>>205
ユーザー目線:
WinForms:遅い・重い・応答なし・見づらい・使いづらい
WPF:速い・使いやすい
開発者目線:
WinForms:低機能・手の施しようがない・バグ地獄
WPF:必要なものが一通り揃っていて現代の開発に耐えられる

WPF程度を難しいなんて言っているレベルは転職をお勧めする。
2021/06/28(月) 12:40:21.87ID:TdjQ7qGS
趣味でやってる人だろ
さすがにプロでそんな馬鹿はいないと信じたい
2021/06/28(月) 13:02:13.72ID:yLrQOr5w
>>212
技術者としてそういう捏造するようになったり終わり。人間のクズ。
2021/06/28(月) 13:12:45.57ID:yki3tuNE
>>204
優れていなかったから普及しなかったのでは?単純に
2021/06/28(月) 13:16:23.14ID:DPgYMhor
だよね
必死にWPFを持ち上げるよりもどこがダメなのか議論するほうが建設的
WPFマンセー厨の人達は黙っておいたほうがいい
2021/06/28(月) 13:20:14.01ID:x0F/IlHt
×優れている
○ある面では優れている

糖質だって探せばいいところの一つくらいはある
2021/06/28(月) 13:39:01.27ID:gSJxewSh
>>216
MVVMでやろうとした時の教育コストがネックかな。
俺一人でやるなら問題ないけど、プロジェクトの都度人集めてやるような会社だときつい。
2021/06/28(月) 13:59:28.09ID:BZRfVYEc
winFormsって重いの?
まあSQLseverの大量のデータを扱う場合はそうかもしれないけど
2021/06/28(月) 14:43:55.35ID:ajvVSSfT
C++=Delphi > VB6 >>> WinForms >>Java Swing
速度だけならVB6の方が早かったからな
2021/06/28(月) 14:44:45.33ID:C7ospGa2
>>215
逆。vbから続くwinデスクトップ界隈では優れている人の方が少ないから
低レベルな人でも使える低機能なものの方が普及しやすい。

>>218
それもWPFが普及しなかった要因。
必ずMVVMで作らなきゃいけないかのような圧力に
怯えて技術力の低い多数の人達が逃げ出してしまった。
まずはMVVM禁止で何個かプロジェクトやってメンバーの大半がWPFに十分なれてから次のステップに移ったほうがいい。
222デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:32:52.13ID:21xV/8JF
>プロジェクトの都度人集めてやるような会社

日本終わってるωωω
2021/06/28(月) 15:37:52.28ID:NB7SrI88
>>212
WPFの方が遅いと言うのを良く聞くが。
224デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:40:40.25ID:2Oa7bDPq
セレロン、MEM:2GBがノーマルお仕事環境だからな
225デフォルトの名無しさん
垢版 |
2021/06/28(月) 15:49:46.29ID:2Oa7bDPq
>>218
選択肢が多すぎるのも欠点だよね
VBぐらい選択肢がないほうが同じ事の再教育しなくて済む
2021/06/28(月) 15:52:23.31ID:D8GEhOn7
wpfスレッド大人気だな
2021/06/28(月) 15:55:45.51ID:JBMsD7o3
雑談スレじゃないのにここまで雑談で埋まってるスレは他にあるまい
2021/06/28(月) 16:17:13.79ID:HVgpozoE
ほとんど同じことを繰り返してるだけだしな
2021/06/28(月) 17:21:27.52ID:NB7SrI88
>>227
フフフ。Flutterスレがあるぞ。
2021/06/28(月) 17:22:15.07ID:NB7SrI88
あと、Rustスレも。
2021/06/28(月) 17:27:03.04ID:+NMrGGDR
WPFコントロール作ってるライブラリメーカーのガチプロは
はなから内部はMVVMとか使っとらんぞ
それが真実
一般向けに皮だけIF定義して対応させてる次第
製品で遅いのとか使えんからな
すまんの
2021/06/28(月) 18:29:08.91ID:TdjQ7qGS
質問スレにしたらマシになりそう
2021/06/28(月) 18:39:14.79ID:kyJYPXM1
質問者放置してのマウント合戦になるだけやろw
2021/06/28(月) 18:46:52.11ID:cZa6zFVz
>>231
そもそもMVVMってコントロールの内部で使うもんじゃないと思うが。
2021/06/28(月) 18:52:48.08ID:zyIZLp3R
>>223
Windows Formsのグラフィックシステムでは、最終的な描画のタイミングをアプリケーション自身が握っているため、
描画途中でディスプレイ更新が行われると意図していない崩れた描画が表示されてしまうことがあります。
一方、WPFのグラフィックシステムでは、最終的な描画のタイミングはWPFの描画エンジンが握っているため、
意図していない描画がディスプレイに表示されることはありません。
そのため、大量のコントロールを高速でスクロールしても滑らかに表示できます。

>>231
プロジェクトの種類に応じて開発手法を選ぶのは当たり前。
MVVMを使うのは端的に言えば開発スピードを上げるため。性能を上げるためじゃない。
(真のガチプロはMVVM使いつつ性能も担保するかもね)
2021/06/28(月) 19:00:07.66ID:TdjQ7qGS
gdiとか完全排除してdirect2dに置き換えたら良いのに
2021/06/28(月) 19:32:24.45ID:hSv3zN64
2021年にもなってWinFormsにしがみついてる馬鹿がいるってマ?
2021/06/28(月) 19:51:21.64ID:v/5H91nJ
MVVMで開発スピードを上げるってネタだろw

リスト出てくるとイラっとする
239デフォルトの名無しさん
垢版 |
2021/06/28(月) 19:51:47.71ID:uDpGdBC4
>>231
>>234が正解だから...
240デフォルトの名無しさん
垢版 |
2021/06/28(月) 20:07:50.55ID:9VZBfvKN
MVVMはともかく、高DPIとか要素のスケーリング対応はWinFormsでやりたくないな

ただまぁ、敷居が高すぎるとは思う
書籍はロクに見当たらないし、日本語でそこそこまとまったフレンドリーな解説が載ってるサイトほとんどないのは痛い
関連ワードで検索してもかずきか妖精しか出てこないでしょ
(この2つも途中からRxが入り込んできたりMVVM前提になってくるから脱落者多いと思う)
とほほとかdobonとかufcppレベルに噛み砕いた説明が欲しいのよ初心者は
241デフォルトの名無しさん
垢版 |
2021/06/28(月) 20:23:36.59ID:nwjsCynN
Formsおじさんはスケーリングなんて概念知らないよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。