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/
2021/06/20(日) 19:37:49.51ID:Gtwxv8wt
まあ理解できないうちはXAMLとか糞に見えるもんな
俺もそうだったけどなれたら簡単になるから早く慣れたほうが良いよ
7デフォルトの名無しさん
垢版 |
2021/06/20(日) 19:41:41.54ID:Zphs/5+o
MVVMが理解できないならMVVMやらなくてもいいのにプライドが高い老害が多いんだろうな
それで十数年廃れるって言い続けてる
2021/06/20(日) 20:03:15.61ID:IOfHBDeH
mvvm = WPF って思ってるの多すぎ
2021/06/20(日) 20:05:13.57ID:IOfHBDeH
どっちかというと、
mvvmアーキのフレームワークで
ぶっちぎりに最悪なのがWPFってかんじ
10デフォルトの名無しさん
垢版 |
2021/06/20(日) 22:08:58.85ID:5dugBd6b
XAMLが特級のクソなだけだよ
冗長なBinding式やBehaviorやCommandなど、他のMVVMフレームワークが大量に生まれた中で誰が採用した
挙げてみろ
Javaで言うところの検査例外相当のクソ
11デフォルトの名無しさん
垢版 |
2021/06/20(日) 22:14:56.41ID:Zphs/5+o
クソだと思うなら関わらなきゃいい
なぜ理解できないものに粘着するのか
2021/06/20(日) 22:47:51.64ID:X7PAuK/l
>>5
でもHTMLやXAMLよりむしろ便利なことも多いが。
2021/06/20(日) 22:49:47.76ID:X7PAuK/l
HTMLから入った人は、それが母国語の用になっているので、WinFormsやSwing
方式よりXAMLの方が便利に見えるのだろう。
MVCやMVVMもそういう人のために有るといわれている。
ところが、人気が有るのは、WinForms方式であることもまた事実だ。
なぜなら、そのほうがコントロールし易く、プログラムのソースコードから
見てもわかり易いから。
2021/06/20(日) 23:00:26.10ID:akuykRB/
まぁ、宣言的な記述が受け入れられなくて、なんでも逐次的・手続き的に処理されないと理解できない人は一定数いるね。
15デフォルトの名無しさん
垢版 |
2021/06/20(日) 23:49:25.07ID:Zphs/5+o
WinFormsが人気ある?
GUIはマークアップ言語でやるのが主流だと思うが
2021/06/21(月) 00:03:57.42ID:ZafEWlbz
>>10
WinUI3とPrismなどのMVVMライブラリ使えばだいたい解決できる話ですね
2021/06/21(月) 00:12:54.72ID:85An+spJ
>>10
Javaの検査例外の問題って、例外機構自体が内在している問題を検査例外で静的にチェックしたせいで
白日の下に晒されてしまったに過ぎないのよな。
2021/06/21(月) 00:16:47.60ID:DBAAgUVQ
>>10
それXAMLじゃなくて
XAMLの上に作ったBehaviorとかの糞ライブラリ群ね

XAMLはそんなに悪くない
2021/06/21(月) 00:21:15.41ID:DBAAgUVQ
>>16
そんなの使ったって
いろいろ肥大化して更に糞まみれになるだけですよ

ダイアログ一つ表示するだけなのに
見通しの悪い糞まみれコード書かなきゃならないのは変わらないんですから
20デフォルトの名無しさん
垢版 |
2021/06/21(月) 00:50:53.72ID:KYdCJjvS
冗長君は何年もWPFに粘着してるWinForms信者です
2021/06/21(月) 01:24:30.80ID:PP3lMGGZ
>>15
C#の中ではWinFormsが一番人気。
2021/06/21(月) 04:35:36.83ID:3t67Nua5
>>15
30年前からGUIは頬杖つきながらマウスでD&Dしてプロパティをポチポチするのが主流ですよ。
2021/06/21(月) 07:01:52.54ID:NDZaXBVn
>>21
人気なんじゃなくて技術レベルが低くてWinFormsしか使えない底辺PGが多いだけ

>>22
生産性の低い地獄の作業だな
2021/06/21(月) 08:26:44.33ID:3t67Nua5
WPFはとてつもなく生産性が低いですね。
最高の技術者が集まってるVSチームでさえWPF化に5年もかかったのですから。

自分でどれだけWPFが糞か言ってて草生えますwwww
> 人気なんじゃなくて技術レベルが低くてWinFormsしか使えない底辺PGが多いだけ

このスレの当初からこんなゴミは普及しないと言われ続け、その通りになった上に、
WPFだからこそ実装できるようなキラーアプリは何一つ存在しないだけでなく、
MSのPGからも嫌われ碌なサポートもなく放置され続けた。

あなただけがはいつか普及するはず、ビッグウェーブはすぐそこまできてる、
WPFを批判してるはスキルが低い底辺PGだと念仏のように唱えてる。
25デフォルトの名無しさん
垢版 |
2021/06/21(月) 08:27:39.85ID:KYdCJjvS
それWPFでも出来るんだができないと思ってるのかな
2021/06/21(月) 08:33:47.23ID:DBAAgUVQ
>>24
WPFの生産性が悪いのではなく
WPFのBlendフレームワークの生産性が酷いだけ
デザイナーとの協業など見たこともなし
2021/06/21(月) 08:54:00.98ID:Y1XruxkF
>WPF化に5年も
それはつまりWPFの前が変更に弱い、生産性が低いってこと。
酷い作りのゴミコードを近代化するのが大変な作業なのは多くの開発者が実感してるだろう。

実際winFormsの生産性は非常に低い。
WPFで作っておけば半分の工数で済んだのにってことが何度もあった。

普及≒簡単・誰でも使える⇒代わりはいくらでもいる⇒単価下がる
2021/06/21(月) 12:50:18.82ID:/bfDvgWv
>実際winFormsの生産性は非常に低い。
使いこなせて無いだけ。
2021/06/21(月) 12:52:20.96ID:/bfDvgWv
って言うかそんなにWPFの生産性が高いのであればとっくの昔に普及してるって。
2021/06/21(月) 13:41:38.72ID:NDZaXBVn
>>28
言い訳が苦しすぎるww


vbおじいさん、winformおじいさんは勉強嫌いだろ。
生産性を高めようと思っていたらこんなものにしがみついていない。
2021/06/21(月) 14:32:57.76ID:QSvmLdyv
WPFってSilverlightと同じく失敗productだろ
2021/06/21(月) 14:56:36.21ID:DBAAgUVQ
>>29
Silverlight時代からなんで
そこそこ普及はしてると思うが、
実装方法は糞評価だね。

早い段階でflutterに食われるでしょ。
2021/06/21(月) 15:26:16.45ID:wnQSc3ge
ビヘイビアとコマンドなんてそんなものあったなあって感じ
10年くらいWPF書いてるけどその2つを使ったのって最初の1年くらいw
無くても困らないw
34デフォルトの名無しさん
垢版 |
2021/06/21(月) 18:33:02.80ID:Nu/+E6/O
俺もWinFormsからWPFに乗り換えた人間だが、明らかに開発は早くなったと感じる

まあ小っさいの作るならWinFormsの方が楽だろうけどね。MVVMの骨格を整備するの面倒だし。
GUIとロジックを分けて書ける有難みはそこそこ複雑なものを作って分かったよ
35デフォルトの名無しさん
垢版 |
2021/06/21(月) 18:38:34.44ID:Nu/+E6/O
まあWPFの良し悪しは置いておいても、マークアップ言語でのGUI構築には慣れておいた方が良いことは間違い無いと思う
なんせ今はWebアプリが強い時代だからね。それでも俺はデスクトップに残り続けるがw
2021/06/21(月) 19:07:10.23ID:SD9Vy51I
WPF以降だとサムネイル表示とか一瞬で作れるもんな
formならこうは行かないと思うけど
効率重視のformの人はformのリストビューみたいなので我慢できる人なの?
2021/06/21(月) 19:20:34.66ID:jqlm888h
>>10
jsとかの他のMVVMは確かにそんなもんつかってねーな
2021/06/21(月) 19:24:32.35ID:jqlm888h
Livetやprism使ってありがたいと思ってたけどそもそもがそんなもん使わせるなよよw
これ以外何も思わない
そのPrismですらコロコロ内容が変わる
2021/06/21(月) 19:55:49.41ID:1n0nC/ay
割と最近になってMVVM Toolkit for .NET(Microsoft.Toolkit.Mvvm)なんて出してきた
2021/06/21(月) 20:02:52.09ID:ZPTvRcij
べつにだれもマークアップ言語でのGUI構築にケチつけてないだろ
41デフォルトの名無しさん
垢版 |
2021/06/21(月) 20:08:46.88ID:Nu/+E6/O
>>38
それに関しては禿同。
外部に頼る前提のフレームワークって何なんだよとw
MSが吸収したりしないもんかね
2021/06/21(月) 20:13:51.82ID:A6ZWHwGn
今更何を言おうが、WPFはメンテナンスモードなので未来永劫改善されることはない
2021/06/21(月) 20:19:00.04ID:1n0nC/ay
WPF自体はそのままだけど
VS2019で実行時にバインドエラーを専用ウィンドウで表示できるようになったり
開発環境は地味に改良されてたりする
2021/06/21(月) 20:39:33.26ID:NDZaXBVn
>>41
Microsoftの名前空間が付いたMVVMライブラリが出たし、これでいいでしょ。
2021/06/21(月) 20:41:17.43ID:jqlm888h
>>43
それは15年前に必要だったものでは?
2021/06/21(月) 21:08:15.72ID:mqD8ibJ4
WPFが普及しなかったのはWPFの出来とは関係ない

WPFがこれからって時に、Webアプリやらスマホの台頭で
WindowsプログラマがWPFを学ぶ前にほとんどweb,android,iosに流れてしまった

単にwindowsアプリの需要がないだけ
2021/06/21(月) 21:12:55.51ID:mqD8ibJ4
新規Windowsアプリの重要が急激になくなってwindowsアプリ作る人いなくなったのにWPFが普及しないとどうこういう以前の問題
2021/06/21(月) 21:18:34.16ID:b32VLmjg
Prismは6から7のときのだけ破壊的変更が有ったけど、それ以外のバージョンアップは後方互換性も悪くなかったけどな
7の変更のおかげでUnityからDryIocにDIコンテナを変えても、モジュール入れ替えてusing変更だけでほぼ動く
49デフォルトの名無しさん
垢版 |
2021/06/21(月) 21:27:15.04ID:Nu/+E6/O
>>43
VS2019が出るまで、我々はあのコンソール画面と睨めっこしながらバグを潰していたのか…
オ゙ェ゙ッ
2021/06/21(月) 21:28:25.72ID:mqD8ibJ4
業務アプリとかならWinFormsでもいいかもしれんけど、今風なおしゃれな見た目のアプリ作るとなるとWPFというか、WinUIになっちゃうからな
諦めるしかない
つか、お前らどうせ新しくWinアプリ作ってねぇだろ??w

俺は4年前にUWPアプリ2つ作ってから、もうずっとスマホアプリだけだわ
2021/06/21(月) 22:03:56.86ID:jqlm888h
WPFは初期だけ盛り上がってしばらくしたら誰もいなくなった
外人のスタープログラマが持ち上げてたけどそいつらもすぐにいなくなった
コードを書く以外の時間も長いし
相対的なコード量も増える


WPFの学習効率の悪さ
開発環境の劣悪さ
MVVMによるコードの長大化
MVVMのデバッグの難しさ
など

winformsでは起こりえないいくつのマイナスポイントがあった
2021/06/21(月) 22:22:38.53ID:A6ZWHwGn
>>50
俺はバックエンドがメインになって(Web含め)GUIアプリ自体仕事では全く作らなくなったな
画面作るのは好きだがツールに振り回されるのはアホらしいわ
53デフォルトの名無しさん
垢版 |
2021/06/21(月) 22:45:13.59ID:RsRWwffr
>>46
スマホやWebのせいじゃなく、アメリカの独占企業たちが、検索エンジンやOS
やハードウェアで儲けた金で無料でプログラムを配りだして、彼ら以外に
はWindowsアプリ作っても一線も設けることができなくなったこと、
Blenderや無料Office、GRUB、Apache、gccなどのGPLな無料アプリの台頭、
などがあるのではないか。
AndoridやiOSはMSの息が掛かってなかったから、売れるチャンスがあった。
2021/06/21(月) 22:54:34.53ID:RsRWwffr
アプリ作っても無料アプリに負けることが多くなったと思う。
55デフォルトの名無しさん
垢版 |
2021/06/21(月) 23:58:30.48ID:mqD8ibJ4
WPFでMVVMを学んで、
今はandroidでもkotlin+MVVM
今はflutterでも開発してるがこれもMVVMで作ってる
MVVM最高!!
2021/06/22(火) 00:51:13.35ID:/hzWR5hC
>>51
学習高率の悪さねえ…
VB2〜6でイベントドリブン入門した層がWinFormに移行して
(奴らはこの時もオブジェクト指向だの.NET Frameworkだのでかなり苦労した)
その成功体験と開発方針を金科玉条のごとく大事にしていて
新しいパラダイムに対応できなかったことを指すならその通りだね
デスクトップアプリの開発者はWebアプリと違って新しい事にチャレンジするモチベーションが無いからな
2021/06/22(火) 01:19:42.36ID:/xD272cm
笛吹けど踊らず。パラダイムシフトとならなかったのが今の状況
2021/06/22(火) 01:33:19.95ID:/hzWR5hC
>>57
もちろんWPFは失敗だったし
失敗の原因はMSが色々と読み間違えたことにある
そのひとつがWinForm開発者のレベルの低さなのは間違いない
2021/06/22(火) 01:52:54.59ID:y59U06XH
B層に愚民愚民言い続けてたら選挙で大負けした人達みたいっすね
60デフォルトの名無しさん
垢版 |
2021/06/22(火) 02:02:53.23ID:/hzWR5hC
>>59
この場合B層が何を指すのか知らんしどの選挙の事を言っているのか不明だが
MSが支持層のレベルを読み違えていたのは間違いない
WPFはWinFormの開発者がスムーズに以降できるスキームを用意できなかった
2021/06/22(火) 02:04:10.32ID:/hzWR5hC
このスレワッチョイ無いのなw
2021/06/22(火) 02:06:29.19ID:y59U06XH
あれ、前のスレはあったのに
2021/06/22(火) 02:45:32.55ID:p6tBruNL
>>57-60
この流れが正しいだろう

まるで「自分の教えてる生徒は落ちこぼれが多くてね・・・」と嘆いている教授みたいだ
確かに、生徒のレベルが低いという事実はあるかもしれない
だが、そのレベルに対するあんたの教授法はどうなんだ、と
2021/06/22(火) 02:50:59.28ID:hVWHiksC
その頃、.net framework懐疑派もいてc++ Win32/MFCやらdelphi軍団
WinForms開発者はVBからの移行組多くてWinForms+VB.net??
だったら、WinForms開発者のレベルが低いのはしょうがない
65デフォルトの名無しさん
垢版 |
2021/06/22(火) 06:11:16.58ID:Aeo9kDkU
ここの人たちはわかってるんだな
WinForms止まりの人たちは成長しない人間だということを
66デフォルトの名無しさん
垢版 |
2021/06/22(火) 07:44:38.48ID:Xn56/PVc
XAMLは一生関わりたくないでござる
67デフォルトの名無しさん
垢版 |
2021/06/22(火) 07:51:15.99ID:jruG6CnM
じゃあ成長を促してあげようぜ
.NET MAUIの公式ドキュメントできてたんだな

https://docs.microsoft.com/en-us/dotnet/maui/
2021/06/22(火) 08:05:17.77ID:7Ks2gqqv
デスクトップの人はMAUIよりWinUI行くんじゃね?
2021/06/22(火) 08:19:50.21ID:7j121Wmb
ざむるか久しぶりだな
遊びでWindowsPhoneのガワ作って以来だわ
当時はMVVMがまだ浸透していなくて
何それ美味しいの状態だったって覚えてる
2021/06/22(火) 09:53:59.29ID:TtlGiyRY
>>51
そしてなによりWPFは遅かった。
2021/06/22(火) 12:09:06.38ID:lNl6Rhk5
>>67
MAUIはXamarinだから地雷
2021/06/22(火) 12:52:20.11ID:v8vBbrXJ
>>71
だよな。
2021/06/22(火) 12:53:14.61ID:v8vBbrXJ
もうflutterでいいよな
MSも関与してるし
2021/06/22(火) 12:56:43.65ID:P9tLBTwV
>>70
なるほど。
WinFormsのGUIパーツは、Win32のControlを使っているから、OSの
内臓コンポーネントであるC/C++で記述されている。
一方、WPFのGUIパーツは C#で作られているはずで、その速度はC#の
良い実例。それが遅いということはC#が遅いということ。
2021/06/22(火) 13:12:45.67ID:v8vBbrXJ
リフレクションを多用するアーキテクチャがそもそも遅い
バインディンク構文使わないと早くなる
2021/06/22(火) 13:58:58.57ID:MIKkQrwG
このスレでバインディング遅いって書くとバインディング遅くないよマンがでてくるんだよなあ
2021/06/22(火) 16:13:02.61ID:bYopypDX
遅すぎず速すぎず程よい速度
2021/06/22(火) 16:32:17.27ID:p6tBruNL
速過ぎて困ることあんのか?
2021/06/22(火) 16:33:15.01ID:v8vBbrXJ
>>77
むかし遅い遅いって現場で揉めて
外部のコンサルとか乱入してきて大変でしたよ

しかもそのコンサルは非.NET系の...

2021/06/22(火) 17:03:11.34ID:hVWHiksC
UWPでコンパイル時バインディングx:Bind使っても速度的な違いわからねぇし、
そもそも、AOTコンパイルだっけ?のUWPもつまりxaml??重いんだよな...
そりゃデスクトップPCで動かせば気にならんけど、当時はatomタブレットでバッテリーにも関わるから気になったわ

今のパワフルになった?SoCなら大丈夫そうだが??
2021/06/22(火) 17:07:39.26ID:hVWHiksC
>>73
flutterでFluent システムを実装してほしい
Material DesignをWindowsデスクトップで動かした時のデザインのダサさときたら..
82デフォルトの名無しさん
垢版 |
2021/06/22(火) 18:29:12.84ID:nJBLTJzV
>>79
何系よ?
MSC++,MFC,VB,JAVA,Delphi,BCC
2021/06/22(火) 18:53:39.20ID:kB1tp0oO
最近は、そう遅くも感じない。


それなりにテクニックはいるけどね。
2021/06/22(火) 19:16:18.55ID:nj/DGDzB
>>80
UWPはネイティブだよ。
2021/06/22(火) 19:30:55.75ID:v8vBbrXJ
>>82
javaかな
最初はいろいろきつかったね
2021/06/23(水) 05:51:06.75ID:jt9dD4ot
Winデスクトップオンリーなら.NET6 + WinUI + WPF
モバイル主体のマルチプラットフォームならFlutter
ってところかな
2021/06/23(水) 12:22:19.83ID:d23QmeSO
遠い未来ではそうかもな
2021/06/23(水) 17:51:22.42ID:nH+qDmUa
WINUIでどの程度パフォーマンス改善されるんだろ
2021/06/23(水) 19:46:25.93ID:B+S84JMM
>>66
XAMLはいいぞ(´・ω・`)Petzoldさんも本書いて勧めている
でもストアアプリはハードルが高い(特に個人で出す場合
2021/06/23(水) 21:33:34.09ID:O7LWJ7Ln
ストアアプリは誰にもメリットなかったよね…
Windows Phone の残した亡霊
2021/06/23(水) 21:37:53.44ID:hKNB6M+8
ストアのハードルは別に高くない。
ハードルがいくつもあるだけ。
92デフォルトの名無しさん
垢版 |
2021/06/23(水) 22:49:51.77ID:KJ8ZVKXN
UWPは
・Win10以外非対応
・拡張子がexeじゃない
この辺りが原因で、特に古参中心に初めから嫌われていた印象 俺の周りだけかもしれないが
2021/06/23(水) 23:53:15.80ID:AWn9dTRx
嫌うってより開発者としてではなく消費者としてどうなの??
iOSやandroidのサンドボックスによるセキュリティに慣れたら、普通に非UWPアプリをインストールするの嫌なんだけど

有名どころのアプリやUWPの制限じゃ無理なアプリなら仕方ないけど

例えば,SNS系のアプリとかフルアクセスできるデスクトップアプリとか嫌やな
2021/06/24(木) 01:09:57.50ID:ZhZSLtyl
20レスくらいさかのぼってみたけどUWPのセキュリティが嫌だって話をしてる奴はいなかった
93は誰に対する発言なんだ?
発作でも起きたか?
2021/06/24(木) 01:37:57.30ID:lYiTQMLE
>>94
UWPのセキュリティが嫌だ、なんて>>93にも書いてないよ
96デフォルトの名無しさん
垢版 |
2021/06/24(木) 01:48:41.02ID:UNoTdpdl
開発者が何を嫌ってようとセキュリティはUWPの方が優れてるからそっちを選べよって指摘だ罠。
選ばねえよバカww
97デフォルトの名無しさん
垢版 |
2021/06/24(木) 02:35:57.56ID:u9KwmiVH
まあ単体アプリを配布する分にはサンドボックスの有用性が生きるな
Windowsの生命線ともいえる業務アプリとはこの上なく相性が悪い
iPhoneで業務アプリシステムを構築しにくいのと一緒
結局Webアプリに逃げられてしまう
2021/06/24(木) 06:21:07.27ID:PTf3B3xq
>>93
消費者としても受け入れらえなかった。
exeひとつを自分の好きな場所に配置して実行できる自由さには勝てない。
そもそもセキュリティのメリットを理由にUWPを入れたがる消費者なんてほぼゼロに近い。

会社だとストア無効化、サイドロードの設定も有効化できないようにされてるところが多いから
UWPは使い物にならない。
2021/06/24(木) 06:45:20.03ID:KjDgyD5o
ストアの画面とか開くことすらないからストアに何があるのかすら知らないわ
VS2022とかストアで扱えるようにすればいいのに
2021/06/24(木) 08:36:15.96ID:NLbTIuex
>>99
MS謹製のpythonがあったな
2021/06/24(木) 09:42:23.93ID:6hf93Vdb
UWPの問題は
・Win10専用
・DataGridが当初無かった
・EF Coreが当初SQLiteしか使えなかった
・インストーラがプライベートストア構築からとハードル高杉
辺りが問題だったね

今ならインストール以外はだいたい解決しているから使えないこともないが
2021/06/24(木) 12:54:03.18ID:j4shFytl
ストアでインストールしたのはWSLくらいっすかねえ
2021/06/24(木) 17:08:34.96ID:7n0FYJDV
Formsがオワコンかと思ったら.NET5で再び生き残ってるっぽい
リユニオンプロジェクトとかWinAPIも復活するし
分断させたいのかくっつけたいのか、終わらせたいのか復活させたいのかよく分からない体制だな
2021/06/24(木) 17:14:36.89ID:KjDgyD5o
APIは死んでないだろw
APIは使いやすく整備するだけじゃなかったっけ?
2021/06/24(木) 17:40:38.06ID:6t03e9bV
>>103
いやそれはWPFも同じw
タマがないんやw
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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