WPF(.NET4.x, .NET Core) GUIプログラミング Part24

レス数が950を超えています。1000を超えると書き込みができなくなります。
2019/12/09(月) 12:36:14.49ID:9LsUsH++p
Windows Presentation Frameworkについて語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/01/31(日) 08:36:11.85ID:r9k2b4HI0
>>898
Viewとmodelの分離は
疎結合は関係ないんじゃ...

「ビューはモデルを素直に反映するように」
これも...
2021/01/31(日) 09:12:12.67ID:I7rtGHH8M
ViewとModelの分離で結合が疎にならないの?
>>899の思ってる「疎結合」の定義を聞かせてほしい

「ビューはモデルを素直に反映するようになっていれば」という前提の整理について
>「ビューはモデルを素直に反映するように」
ここだけ抜き出して「これも..」と指摘してるのはいったい何が言いたいの?


なんか逆張りで根拠もなくケチつけてるだけに見えるんだけど
901デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/01/31(日) 09:17:07.25ID:Odha2eMQ0
昔の方が作りやすかった気がする。
2021/01/31(日) 09:19:16.44ID:xVSriNge0
>>897
自動テストの話じゃないの
2021/01/31(日) 09:21:31.64ID:r9k2b4HI0
>>900
「密結合してViewとmodelを分離」
「密結合してViewとmodelを素直に反映」
しても結果は同じでは?
2021/01/31(日) 09:28:45.68ID:I7rtGHH8M
???
ごめん>>903の国語力か俺の国語力かどっちかに問題があって
あなたの主張したいことがわからない

で、あなたの思ってる「疎結合」の定義について説明をお願いしたいんだけど
2021/01/31(日) 09:29:51.76ID:r9k2b4HI0
>>901
昔というか、
WinFormsと同じようにWPFでも書けるよ。

実際サンプルコードはコードビハインドで
イベントハンドラーで書いてあるもの多い。
2021/01/31(日) 09:34:58.64ID:xVSriNge0
>>905
mvvmのサンプルじゃ無きゃ
イベントにベタ書きのサンプルだらけ
2021/01/31(日) 09:43:32.25ID:r9k2b4HI0
>>904
良い説明をググッてみたけど
見つからないので簡単に書くと、

コンパイル時に参照が切れた状態になる実装を
疎結合。WPF流MVVMでバインディングで繋ぐと疎結合になる。

対してC#で普通に書くと密結合。
2021/01/31(日) 09:48:53.55ID:r9k2b4HI0
ちなみにMVVMで
XAML(View)とmodel間の接続を、
例の難解なバインディング構文を使わずに
コードで書く(密結合)事もできる。
909デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/01/31(日) 09:49:01.23ID:Odha2eMQ0
>>905
それで売りの高解像度にも対応してるなら
それでいいやね。

>>906
MVVMもそのうち消えるだろう。
2021/01/31(日) 09:50:58.51ID:xVSriNge0
>>908
バインドが難解だと?
2021/01/31(日) 09:53:51.31ID:r9k2b4HI0
>>910
初心者には難解じゃない?
コード補完も効きにくいし。
最初の多きな(大きすぎる)ハードルでしょ。

設定間違えると動きも変わるし。
2021/01/31(日) 09:59:52.50ID:qyMGxVkO0
ビューとモデルの分離って、ロジックに影響なく簡単に見た目を変えられることにあると思うのだが
2021/01/31(日) 10:01:10.65ID:r9k2b4HI0
>>909
>>MVVMもそのうち消えるだろう。

MVPの派生だし消えるほど酷くはないけど。
自分はReactとかでViewModelとかいう概念は
便利に使わせてもらってる。

View(React,ts)+ViewModel(ts)+Model(C#)
2021/01/31(日) 10:01:25.28ID:xVSriNge0
>>911
コード量は増えるけどバインド有ってのXAMLでしょう。
915デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/01/31(日) 10:05:34.29ID:Odha2eMQ0
>>913
よくわからんがなかなかの上級者ですな。
元MASM使いなんだが今の方が覚えること多いわ。
2021/01/31(日) 10:10:11.38ID:+eg72yeD0
>>907
あーなるほどね
俺とは疎結合・密結合の定義が全然違うわ
あなたは静的型付け・動的型付けみたいなものとして考えてるのね
疎結合は実行時解決だから統合開発環境で流れを追うのが難しくなると
まあそれも分からなくはないがな

俺の言ってる疎結合・密結合というのはそういった技術的に明確なものではなく概念的なものなんだ
インターフェースが明確に決められていて必要十分な最小限のやり取りがされるように設計されてれば疎結合
そういった取り決めがなくあちらこちらで繋がってるのが密結合
2021/01/31(日) 10:12:54.41ID:xVSriNge0
>>915
NASMって何時の時代だよw
918デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/01/31(日) 10:16:14.30ID:Odha2eMQ0
>>917
かれこれ40年はやってる。
2021/01/31(日) 10:17:36.86ID:Mg++KL660
treeの子要素にアクセスするのめんどくて嫌になる
もっと簡単にして
2021/01/31(日) 10:31:27.08ID:6A85emn00
>>911
UWPともう直ぐ出るWinUI3では、バインドでインテリセンス効くし型チェックもやってくれる
921デフォルトの名無しさん (ワッチョイ b501-merL)
垢版 |
2021/01/31(日) 10:34:11.79ID:r9k2b4HI0
>>916
説明書いててそうかと思った!

「静的型付け・動的型付け」この型付けは開発完了時に
100%分かってないとダメだろうから型固定なんだよね。
「静的型リンク・動的型リンク」が正しい(昔はそう言ってた)と思ってるけど認識間違い?

>>916
>>インターフェースが明確に決められていて

AさんとBさんが同一箇所の実装作業をしていて、
お互いが作成したクラスを呼びだす時、
その取り決めをインターフェースクラスとして作成して
これを別モジュールに切り出してお互い齟齬が出ないようにして開発する方式を
オブジェクト指向的な開発の基本と思ってるだけど、
この別モジュールのインターフェースクラスの役割を
疎結合に置き換えたプロジェクトが多いね。

テストしてても実行しないとバグわかんないし、
仕様書が必要になるから生産性下がんない?仕様書もらうより、
インターフェースクラスを寄越せと言いたくなるけど認識が低い?
922デフォルトの名無しさん (ワッチョイ b501-merL)
垢版 |
2021/01/31(日) 10:37:40.94ID:r9k2b4HI0
>>920
WPFのバインディングはちょっと難しい構文を書くと、
合ってるのに警告出たりしてウザかったりするけど完璧なものになった?
2021/01/31(日) 10:42:02.91ID:xVSriNge0
>>918
コンピュータが未だ真空管だった時代ですね
2021/01/31(日) 10:43:31.30ID:6A85emn00
>>922
逆に厳密な方チェックになっているからintとdoubleの違いでもエラーとなるから
コンバーターかますかViewModelをイジる必要がある
あとコンバーターは型チェック無いからハマる時があるのが問題だったり
925デフォルトの名無しさん (ワッチョイ b501-merL)
垢版 |
2021/01/31(日) 10:55:16.05ID:r9k2b4HI0
>>914
大昔からやってる(WinFXとか言ってた時代からやってる!!)と気づく人いたと思うけど、
WPFの開発者が目指したのは、開発時にBlandエディタが使える実装なんだよ。

Blandは別製品で今はVSに統合されたけど、使えてる人はいるのかな?
Blandを使わない時点で、WPF流MVVMの実装パターンはやりすぎだし過大だ。

そのくせ、コードビハインドは捨てきれてないし、
中途半端で今時流では欠点を指摘される事が多くなってる。
2021/01/31(日) 11:57:18.56ID:7s2vE3J90
DreamWeaver が対応しないと
デザイナーは手を出さないでしょうな
2021/01/31(日) 12:23:09.41ID:CDkVre3V0
>>925
Blendね
2021/01/31(日) 12:57:38.82ID:jQyDM6Cn0
mvvmは疎結合というか、vmからvやUIフレームワークへの依存がないというのが一番の肝だろう。
だからUI抜きの結合テストが容易にできる。
2021/01/31(日) 13:16:59.40ID:xVSriNge0
UI抜きの結合テストってなんじゃい
2021/01/31(日) 13:43:45.07ID:FiwuPv0S0
WinUIはUWPの系譜だから事前バインディング x:Bind なんでしょ
イベントも対応しててちょっとしたボタンクリック程度ならコマンドパターン適用しなくていいし楽だったわ
あとMVVMじゃなくてMVUとかいうを使えとか
931デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/01/31(日) 17:56:29.56ID:Odha2eMQ0
https://forest.watch.impress.co.jp/docs/news/1255558.html
ほう。
2021/01/31(日) 19:32:45.91ID:6A85emn00
WinUI3は4ヶ月毎のマイルストーンって言っていたから
予定だと来月に出るが、何もアナウンス無いから延びるんだろうな
2021/01/31(日) 23:15:46.66ID:Kkreym0u0
個人的にはwinform よりmvvmwpfの方が設計を考えるのが楽だとは思う
コード量がアホみたいに増えてるとは思うけど
2021/01/31(日) 23:24:50.28ID:WbkXnsTD0
WPFでUI書いて処理はイベントにベタ書きが一番楽だわ
WinFormsよりUI要素のレイアウトしやすいし
2021/02/01(月) 01:16:36.92ID:rq/3X0hM0
gridはレイアウト決めるときにすごく便利ですね
これだけでもメリットは大きい
2021/02/01(月) 06:13:34.77ID:nwGyyZLi0
>>932
先々週に次の予定発表されたやん..
3月にサポートされるバージョンの0.5
で5月のbuildイベントで0.8
で、急遽、2月中にpreview 4
2021/02/01(月) 08:30:05.02ID:FUNk1KeQd
>>925
それ一回も使ったことないわ
2021/02/01(月) 10:26:51.12ID:7mzzL5vxd
>>935
それくらいならWinFormsのTableLayoutPanelと変わらなくない?
2021/02/01(月) 14:20:35.38ID:Jz+8bDTmr
>>937
Blendつかえばmvvmの意味するものがわかるよ。
使うの多少ハードルあるけど、
なんでWPF流mvvmがこーなってるのか解る。
2021/02/01(月) 22:36:11.32ID:P+/hMLSZ0
>>936
https://youtu.be/MulUg7iD2-s
ソレのソースらしきもの見つけたが
ここではreunion0.5にincludes WinUI 3.って書いてあるのにな
それがpreview4ですか・・・
2021/02/02(火) 00:05:04.75ID:zsk2qsaN0
>>940
preview 4はその最新のロードマップが発表された後に、プレビューリリースの間隔が長すぎという批判が出て急遽リリースされることになった
https://twitter.com/marbtweeting/status/1354134751766953984
2月 preview 4
3月 reuinoin 0.5
5月 reuinion 0.8
じゃないかな?
https://twitter.com/5chan_nel (5ch newer account)
942デフォルトの名無しさん (ワッチョイ 66b5-ERTH)
垢版 |
2021/02/02(火) 00:22:15.18ID:RoIAA49z0
WPFの本のKindle版を買ってまだあんまり読んでないのに
もう別のUI出るのかよ・・・

ちきしょー、紙版買っときゃよかったぜ
それなら中古で売れるのによ・・・

WPFにはクソな思い出しかない
2021/02/02(火) 00:36:40.96ID:iARfrUqjM
WinUI以前にとっくの昔からWPFはレガシーなのに何を今更
2021/02/02(火) 03:37:50.94ID:rKbxrD500
WinFormsとかWPFのいい所は、配布先のPCでだいたいランタイムの新規インストール不要で動くとこなんだけど、
WinUIだと当面ランタイムも同梱しないといかんよね?
2021/02/02(火) 05:02:04.51ID:+YBVnJ9D0
こんな中途半端なものでレガシーとかWPF終わってるな
2021/02/02(火) 05:54:26.45ID:NxFZfFhx0
デスクトップのUIは迷走状態ですなあ
2021/02/02(火) 09:10:36.54ID:CKxQr0yQa
今ならElectronが覇権取りそう?
2021/02/02(火) 09:23:44.16ID:eretDOma0
flutterかも
949デフォルトの名無しさん (ワッチョイ 2ae6-mj3q)
垢版 |
2021/02/02(火) 20:42:27.60ID:9gegCBvb0
windowのvisibilityにデータバインドして
イベントハンドラでhiddenになったらthis.close()してやろうとしているのですが
クソコードですか?
950デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/02/02(火) 23:17:21.74ID:ys8JMHCh0
WPFも短命だなこりゃ。。
2021/02/03(水) 00:00:53.68ID:U79XHMjd0
充分生きたろ。大往生だよ。
2021/02/03(水) 00:43:16.96ID:5b6XJ+8sM
WPFのリリースは2006年、もう15才だ
一般的なソフトウェアのサイクルとしては決して短くはない
結局日の目を見ることはなかったが、ここまでよく頑張ったよ
もう楽にさせてやろう
2021/02/03(水) 00:55:28.54ID:tBRxw4yW0
WPFに関連する検索キーワード

wpf 普及しない
wpf 将来性
wpf 流行らない
WPF C#
wpf 将来性 2020
wpf サポート終了
2021/02/03(水) 01:45:34.69ID:FZBBkmjF0
十分日の目は見たやろ
2021/02/03(水) 02:46:56.03ID:suCK4Q8d0
他のキーワード
wpf 普及しない
wpf 将来性
WPF C#
wpf 将来性 2020
wpf 流行らない
WPF(Windows Form)
wpf サポート終了
WPF 入門


他の人はこちらも検索
What is WPF used for?
Is WPF Dead 2019?
What is a WPF project?
What is replacing WPF?
Why is WPF dead?
Why is WPF so slow?
2021/02/03(水) 07:52:02.77ID:9W7Ice0KM
デスクトップで悩むならWebに逃げるわな
デスクトップでしかできない要件があるなら別だが
2021/02/03(水) 08:19:18.66ID:/SpfYE47M
Web SerialとかWeb Usbあるから殆どのことは出来るのかな
958デフォルトの名無しさん (ラクッペペ MM3e-mj3q)
垢版 |
2021/02/03(水) 19:52:08.00ID:jQBwY413M
3年前のwebアプリって今動くの?
2021/02/03(水) 20:11:06.40ID:kMe6ilrT0
動かないことはないと思うがjQueryとか古い技術使ってそうね
今のreactやvue.jsなんかも数年立ったら古いって言われてると思う
Webは技術がコロコロ変わりすぎてやる気になれない
2021/02/03(水) 20:54:16.51ID:NmjXw9sF0
組み込みはずっと相変わらずc/c++だからそれはそれでモチベ維持難しいぞ
961デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/02/03(水) 23:29:27.89ID:J0iktNk60
なんだ。勉強しようと思ったら終わりかよ。
業務アプリって明快でサクサク動くのが第一条件だからなぁ。
2021/02/03(水) 23:42:55.06ID:ioJArBze0
軽さを求めるならWinForms一択
963デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/02/03(水) 23:57:50.08ID:J0iktNk60
そう。
ボタンに影つけるとかアニメーション、回転なんて実際、どうでもいいんだよね。
2021/02/04(木) 00:42:38.32ID:hcs7ROzx0
軽さならUWPだな
ライブラリの使わない部分切り捨てるしAOTだしライブラリ自体がCOMオブジェクトだし
2021/02/04(木) 02:31:54.22ID:e59RYOYD0
リユニオンでUWPもレガシー化するから、生き残るのはWinUIと、昔から裾野が広いWinForms
2021/02/04(木) 07:46:05.95ID:36EJyZsE0
>>964
C++時代にCOMとかActiveXとかに手を出して、COMアレルギーになったわ
2021/02/04(木) 08:24:26.72ID:ZtMmgGts0
生き残るかどうかといったら大体生き残るだろ。
はっきり死亡宣告されたのはC++/CLIとかGDI+くらい。事実上死亡はC++/CXとか。
2021/02/04(木) 08:27:11.93ID:nQ02ZkdOM
vb6がまだ死んでないんだぜ
2021/02/04(木) 09:29:31.02ID:lfkJlpDH0
開発環境維持するのが手間になるんだよな
970デフォルトの名無しさん (ワッチョイ 66b5-ERTH)
垢版 |
2021/02/04(木) 10:31:10.36ID:3GUGjOuU0
>>963
同感
社外に出すなら知らんけど、うちは社内の業務アプリ開発やってるから見栄えよりもパフォーマンス重視なんだよね
みんなWinFormsでやってて、社内でWPFやってるの俺しかいねぇ
リアルタイムでグラフが動いたりすると「おおーっ」と言われるが、作った俺本人は別に要らんかったなと思ってる
2021/02/04(木) 10:32:41.38ID:89VtoA6h0
もしかして俺また何かやっちゃいました?
972デフォルトの名無しさん (ワッチョイ a59b-qCTK)
垢版 |
2021/02/04(木) 11:03:30.76ID:ZzRKCYY/0
>>966
もったいないな
COMは良いぞ
2021/02/04(木) 12:00:02.99ID:aKVEM25d0
COMもうサポートされないやん
このままだとExcelもいずれ死んじゃう
2021/02/04(木) 12:01:05.22ID:3bXGR69vM
windowsはcomだらけでしょう
2021/02/04(木) 13:29:37.28ID:llP+HC4ja
COMはレジストリ使うから面倒くさい
976デフォルトの名無しさん (ワッチョイ 66b5-ERTH)
垢版 |
2021/02/04(木) 17:45:56.09ID:3GUGjOuU0
ホント、COMぁったもんだ
2021/02/04(木) 20:23:26.38ID:ZtMmgGts0
>>970
暗にWPF使うアプリケーションは見栄え重視と言いたいようだけどそんなん少数派だよなぁ。
というか本当にそれ目的でWPFやってんの?
978デフォルトの名無しさん (ワッチョイ ea6a-6WVI)
垢版 |
2021/02/04(木) 21:39:09.24ID:ih5/H8FP0
高DPI時代にWinFormsは無理
979デフォルトの名無しさん (ワッチョイ b501-M8vF)
垢版 |
2021/02/04(木) 23:48:33.11ID:rPrK7o6X0
>>963
ま、両方できるならそれに越したことは
ないがな。
2021/02/05(金) 05:42:40.73ID:OpH7IlXC0
MSはReactivePropertyとかPrismみたいなの取り込む気はあるのかな
MSでWPFの冗長さが問題になってなさそうなのが不思議
2021/02/05(金) 07:17:55.50ID:8dD588qGM
MSはWPFほとんど使ってないんじゃ…
2021/02/05(金) 08:17:47.81ID:93xMJ7WGM
>>981
visual studio
2021/02/05(金) 08:24:41.67ID:8dD588qGM
それだけだ!
2021/02/05(金) 08:26:54.02ID:93xMJ7WGM
そうかも
2021/02/05(金) 08:44:17.48ID:8dD588qGM
MSの縦割り組織の悪い面だとおもう
オフィスはReactNative
VSCodeはなんだっけな、これもjs系言語で作ってたとおもう

Windowsの衰退はWPFの衰退
2021/02/05(金) 09:27:46.93ID:I+zADhcc0
>>985
いや、単一の技術に全集中する方がヤバい
まあ余力がある企業だからできる技だけど多方面に分散するのは生き残る知恵だよ
2021/02/05(金) 09:45:22.14ID:8dD588qGM
>>986
そういうことではなくて
自分の会社が作った技術を他の事業部がほとんど使わないんだよ
色々技術つけるのはいいよ?でもその技術作った会社がほぼ使ってないってどーいうことなの?
ってなる
なんかその辺の企業にありがちなオレオレフレームワークと一緒じゃん
2021/02/05(金) 09:55:20.95ID:93xMJ7WGM
visual studioなんか自社が人柱となってベータ版を積極的に使って改善していたと言うのは過去の話か
2021/02/05(金) 10:19:13.81ID:qkdTZe/m0
ドッグフード食うって話より、例えばOfficeでもWPF使えよって話なのでは
2021/02/05(金) 10:20:52.50ID:I+zADhcc0
>>987
自分の事業部で使ってるんでしょ?
事業部制ってそう言うもんだよ
別会社みたいなもんだし、下手すると現場では競合したりもする
日本でも昔はそういう企業も多かったけど無駄だからやめようとトップダウンにして現場の士気は下がって業績もついでに下がってるw
2021/02/05(金) 10:50:00.78ID:Jm9ro3zS0
WPFというとかぎられてしまうけど、
XAMLという括りで見ると
社内開発ツールとしてのシェアないの?

windows8以降のOS周りは
全部XAMLじゃないの?
2021/02/05(金) 12:22:25.06ID:8dD588qGM
>>990
事業部制はほんとつらい
乱立するオレオレフレームワークに振り回されている…

MSと他企業の違う点は、MSは作った開発フレームワークを公開してるとこだな

>>991
それは確かに。
2021/02/05(金) 12:49:32.44ID:QFQT7eD40
MSはVisual Studioの方向性も考えたほうがいいな
以前はVSとWeb開発の親和性を高めるためにASP.NETを生み出したりしてた
こんなやり方は今後は通用しない

今後はMSが歩み寄ってVS使えばReactやvue.jsの開発が楽になります!みたいな方向になっていって欲しい
さすがに巨人MSでもWeb技術を自社で囲い込むのは無理だ
2021/02/05(金) 12:55:09.45ID:AV0Gp17OM
>>992
MSは作る立場の会社なので使うだけの会社とはちょっと違う
使うだけの会社なら標準化すべきだよ
2021/02/05(金) 18:00:33.45ID:Kj/KBKr1r
>>993
VScodeが担う役割じゃないの?
それらじゃ充分デファクトになっとるし。
2021/02/05(金) 18:40:59.80ID:QFQT7eD40
MSはVSCodeに注力しすぎだろ
このままじゃ有料のVisual Studioが死んでしまう
MSは製品販売で収益上げるのをやめるのかな

無料のVSCodeでいいソフト作ってくださいねー Azuleで動かしてくださいねー という戦略だろうか
2021/02/05(金) 18:56:04.02ID:Kj/KBKr1r
VSは随分前から
フェードアウトしてるようにみえてるけど。
2021/02/05(金) 18:58:04.45ID:xu/l+szrM
VSCodeは開発者のWindows離れ問題への対策の一環でしょ
Web開発でWindowsは使い物にならなかったのが、VSCodeやWSLによってここ数年で急速に改善された
Windowsへの繋ぎ留めが目的とはいえWeb技術に疎いドザ達だけに任せてたらエコシステムとして成長しないから、VSCodeはマルチプラットフォームにする必要があった
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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