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

■ このスレッドは過去ログ倉庫に格納されています
2022/01/20(木) 05:40:40.10ID:+TySdXxT
WPF(Windows Presentation Framework)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
2022/01/28(金) 20:33:03.07ID:OmkEpZCo
>>142
Microsoft.Toolkit.MvvmはCommunity.Toolkit.Mvvmの一部っぽい

> The Microsoft.Toolkit.Mvvm package (aka MVVM Toolkit) is a modern, fast,
> and modular MVVM library. It is part of the Windows Community Toolkit ...
2022/01/28(金) 20:58:23.09ID:LxSb85up
MVVMって呼ぶからWinFormおじさんが発狂しちゃうんだよ
バインディングって言えば大丈夫
バインディングならWinFormにもあるからネ!
2022/01/28(金) 22:14:56.16ID:LR3qN1W7
>>122
>MVVM信者が作ったGUIアプリはなぜか操作性がクソだし。

MVVM信者とかリアルで出会う機会は少ないが、このサンプルは何人でアプリ何本くらいで判断した話?
149デフォルトの名無しさん
垢版 |
2022/01/28(金) 23:40:31.36ID:ofHx672K
ここの人たちって古臭い連中ばかりだな
2022/01/28(金) 23:56:11.29ID:kLTO8ApN
今どきWPF なんてやってる時点で察しろw
2022/01/29(土) 00:01:38.08ID:Alu86MyQ
>>118
.NET版が大昔からあんだろ
152デフォルトの名無しさん
垢版 |
2022/01/29(土) 00:31:49.77ID:7nTZc88q
WinUIだと他でCommunityToolkitの方のパッケージ使うことになったりするな
2022/01/29(土) 00:57:04.26ID:RQ7DuTDZ
>>133
MVVMからなぜ最新技術??
2022/01/29(土) 05:55:50.53ID:3ZSK4aSw
>>149
それならモダンな人とは?
2022/01/29(土) 08:41:43.59ID:ubDMC+kF
最初に要件定義して
・サーバークライアントかスタンドアロンか
・ターゲットはWindowsのみかクロスプラットフォームか
・言語はC#かそれ以外でもよいか

そんでスタンドアロン-Windows-C#ときたらWPFでいいだろ。
2022/01/29(土) 08:46:37.27ID:Alu86MyQ
もうMVVM使わない人かな
2022/01/29(土) 09:01:47.93ID:3ZSK4aSw
>>156
154(俺)宛て?
MVVMを擁護するつもりもないけど、単なる考え方だから関係ない気がする
固執するのも問題だけど
2022/01/29(土) 09:03:21.64ID:L6xb6JcI
.NET6でアプリの起動時間は短縮されるのかな?
2022/01/29(土) 09:15:09.71ID:Alu86MyQ
react界隈のreduxって感じMVVMは
2022/01/29(土) 09:27:43.68ID:ubDMC+kF
Hooksに相当するものが出てくればね
2022/01/29(土) 09:39:47.13ID:RlBDrRPo
みんなMはどう設計してるんだろ。
MVVMってVとVMについての設計パターンで、Mはそれ以外の領域。
だから普通は「MVVMパターンと〇〇パターンで作った」ってなるはずなんだけど、ここではあんまりそういう話が出てこないよね。
2022/01/29(土) 11:25:42.83ID:Yb/iPl5R
MVC は、PostgreSQLなどのデータベースを前提にしていると思っていたんだが、
MVVM もそうなの?
2022/01/29(土) 11:28:01.80ID:Yb/iPl5R
個人の感想としては、RailsやDjango、LaravelなどでMVCを学んだが、
MVCを使ったからといってプログラムが分かり易くなるとは思えなかった。
むしろ、柔軟性を失ってめんどくさくなるだけではないか。
2022/01/29(土) 11:28:21.65ID:Alu86MyQ
reduxってオワコンの比喩だよ
2022/01/29(土) 11:45:43.13ID:BKEOmNWv
>>162
そうだよ
まあMVCと違ってクライアントアプリなんで、DB直結よりはWCFでサーバーサイドロジックをサーバーに出して分離するのがよりクールだとされていた
WCF廃止されちゃったけどね
基本的にゴリゴリのビジネスアプリケーションが前提だよ
2022/01/29(土) 11:59:06.66ID:oA/bSKHD
>>155
要件定義するような案件でスタンドアロンなんかほぼ無いでしょ
一般的なクラサバとスタンドアロンの定義と君の理解にズレがある気がするのだが、それぞれどういうものだと思ってるの?
ちなみに一般的な定義においては、世の中のWPFアプリケーションのほとんどはクラサバに属する
2022/01/29(土) 12:49:49.65ID:3ZSK4aSw
>>166
別人だけど書いてみる

多分、複数人で利用してデータを管理したりする場合:
クラサバ
2022/01/29(土) 12:54:34.91ID:3ZSK4aSw
>>166
ごめん 167は忘れて
間違って送信してしまった

多分、

複数人での利用で連携を取る:
クラサバ

ローカル環境に作用したりするだけの一括プログラム:
スタンドアロン

ってことかと
2022/01/29(土) 12:57:24.51ID:XrEcS30Z
>>166
要件定義の認識がずれてる気がする

> 世の中のWPFアプリケーションのほとんどはクラサバに属する
全く持って同意できないw
2022/01/29(土) 13:04:01.59ID:XrEcS30Z
ずれてる、だと語弊があるな
食い違ってる、で
171デフォルトの名無しさん
垢版 |
2022/01/29(土) 13:35:42.26ID:I0P/B1HZ
酷い…老害たちのゴミのような脳みその結果がこの日本の惨状なわけだ
2022/01/29(土) 15:14:13.55ID:N8fQblbv
>>161
Mは何を対象にするかによって設計が変わるんだから一般的には話せないでしょ
VはWindowsでもWebでも一般的なGUIに対して共通認識があるからまだ設計条件を共有しやすいが
2022/01/29(土) 17:20:37.44ID:ubDMC+kF
>>161
>だから普通は「MVVMパターンと〇〇パターンで作った」ってなるはずなんだけど、ここではあんまりそういう話が出てこないよね。

何を話題にしたいのかにもよるけど、目線の違うパターン同士を絡めて語ることってあまりないんでは?
MVVM自体とMに用いるパターンは直交した概念だから、MはUIを持たないソフトウェアの設計論と同じに考えて
好きなように選べばいいかと。
174デフォルトの名無しさん
垢版 |
2022/01/29(土) 17:37:02.08ID:7nTZc88q
>>158
起動も速いし、その他全体的に体感できるレベルで速い
2022/01/29(土) 19:14:57.97ID:N8fQblbv
>>173
むしろMを完全にVと分離するためのVMだからね
2022/01/29(土) 19:31:58.32ID:W9gwoTM7
PrismのようなMVVMスイートには
・Event Aggregator
・DI
・ViewModel Locater
が3点セットで入っているから、それがMVVMのM(やVB)でよく使われるパターンじゃないかな?
2022/01/29(土) 19:35:15.13ID:W9gwoTM7
VBじゃなくてVMだわw
2022/01/30(日) 08:36:43.32ID:iZvztVrx
>>176
全然違う
それらはいずれもレイヤ間のメッセージングや依存性解決の手段でしかなく、M層内での設計とは無関係
2022/01/30(日) 09:08:00.00ID:iZvztVrx
なお、MSによって発行された本来のPrismでは、Mというのは「WCFのクライアント」に他ならない
つまりリモートサーバー上に存在するWCFのサービスに対するラッパーだな
MVVMを使うのはあくまでフロント開発者であって、Mから先のビジネスロジックはフロント開発者が詳細を意識する必要すらない、
どこか別の場所にある完全にブラックボックス化された領域なんだよ
2022/01/30(日) 09:37:16.05ID:fI0x5/zS
何それめっちゃ遅そうじゃん
所詮MVVMなんてその程度の浅い認識で考え出されたアーキテクチャなんだな
ゴチャゴチャ言ってるのは全部後付けで端から複雑なアプリには向いてない
2022/01/30(日) 09:47:18.83ID:fQLZlazV
イベントアグリゲーターはVM同士でやり取りする時使うよ
匿名のボトルメールみたいな感覚だね、便利なんで使い方を覚えるといい
2022/01/30(日) 09:51:03.86ID:9+q+6HPs
>>180
REST使うSPAと変わらんやん
2022/01/30(日) 10:14:04.18ID:DDlIcWyK
M同士のやり取り?
そんなのはMの状態変化の結果として変更通知として各VMに降ってくるようにするのが筋でしょ
184183
垢版 |
2022/01/30(日) 10:14:42.92ID:DDlIcWyK
VM同士のやり取り?
の間違い
185デフォルトの名無しさん
垢版 |
2022/01/30(日) 10:19:30.61ID:xTnuhpAm
まぁメリットが感じられないフレームワークも多いよね
MVVMフレームワーク、WCF、EF、ASP.NET MVC、各層に色々フレームワークはあるけどASP.NET以外は微妙
要求が高度なアプリほど
フレームワークの使用によって得る生産性<フレームワークの束縛によって失う自由度
になってくる
2022/01/30(日) 12:31:27.69ID:KApH5n5G
マイクロソフトのフレームワークが良くないのが多すぎた
MSなら安心という顧客や上司のために仕事でしょうがなく使うってシチュエーションしかない
結局不自由だからあれこれ回避するためにキメラのような実装になってフレームワークなんて使わないほうが良かったとなる
2022/01/30(日) 12:56:42.21ID:LWsZFFBD
ASP.NET APIぐらいかな?使えるのは
ここにEF入ってくると糞になるけど...
2022/01/30(日) 13:13:47.93ID:+wZdari7
EFはEF Coreや.NET 6で多少速度マシになってたりしないの??
まぁ、元々変更追跡する仕組みだから、速度面では不利だが
2022/01/30(日) 16:07:33.81ID:ocXxzRZn
普通のアプリを作る場合には、Document・Viewアーキテクチャも、
MVCもMVVMも面倒なだけな気がする。
Win32のGDIも面倒。
OpenGLも、1.0は美しかったが1.2以後や、OpenGL ESやWebGLは汚く面倒に
なった。Direct3Dの駄目なところを取り入れてしまったような感じ。
190デフォルトの名無しさん
垢版 |
2022/01/30(日) 17:42:13.84ID:1lRRY4pr
普通のアプリって何
2022/01/30(日) 21:21:33.53ID:Zz8RS9Wg
JHTMLアプリじゃね?
2022/01/30(日) 23:00:42.20ID:fI0x5/zS
この文脈ならkick-ass appsだろ
言わせんな恥ずかしい
2022/01/31(月) 07:29:13.82ID:ekWinSEL
>>190
>>95
2022/02/02(水) 10:37:04.10ID:5deqnR/S
>未解決の問題が非常に多いため、何に取り組んでいるのか、どこで進歩しているのか

WinUI3、問題山積みって感じだな。
開発メンバーも離脱してごくわずかで細々作ってる感じだし。
MSも高確率で沈みそうな泥船に投資したくないんだろうなぁ。
Phoneが沈んだ時点でさっさとUWPを捨ててこっちに注力してればもっとましな結果になっただろうに。
2022/02/02(水) 13:34:55.83ID:qr0OhjFL
ユニバーサル・ウインドウズ・プラットフォーム(Windows10専用)だからな
それよりWinFormsとWPFの2本立ての方が成功してたと思う
高DPIに対応したWinForms2.0とかUnityでも動作するMonoFormsとか
スゲー安っぽいけどWinUIなんかより数倍マシ
2022/02/02(水) 14:17:31.87ID:/6h+iODO
さすがにWinFormsは要らない。
WinFormsでやってたことはWPFがあれば事足りる。
197デフォルトの名無しさん
垢版 |
2022/02/02(水) 14:55:30.01ID:MolDdSgs
WPFは勝手にマルチスレッドにしやがる
2022/02/02(水) 21:21:23.96ID:HZtz5wep
WPFが最初からネイティブC++で実装されてたらUWPやWinUIは生まれずWPFは統一プラットフォームとして継続的に進化して成功していただろうな
MSはなんだかんだC++大好きで、全部マネージドでいいじゃんってのは社内的に許されないんだよ
199デフォルトの名無しさん
垢版 |
2022/02/02(水) 23:39:19.90ID:uQJKdAPH
好き嫌いの問題じゃないだろ
低レイヤーの実装はC++じゃなきゃ出来ない
2022/02/02(水) 23:44:15.40ID:Tho+pX9F
リーク地獄は嫌じゃ
2022/02/03(木) 00:13:00.65ID:IbTz5ZAk
そもそも.NETがWindowsチームから嫌われてたっていうからな
2022/02/03(木) 00:44:04.17ID:hnE9Kba7
>>198
MSが好きなのはC++98(03)までだろうな。
C++11はアホが好みそうな仕様になったから。
2022/02/03(木) 07:52:29.24ID:rTgJdd8/
C++98はある種の透徹した美しさがあったな
11以降のも無駄に複雑だった部分がどんどんシンタックスシュガーで簡潔になってきて嫌いじゃない
2022/02/03(木) 08:31:47.19ID:j4oj3G8A
>>202
C++11を理解できないから嫌いなんでしょ
2022/02/03(木) 08:50:59.00ID:nrvs3IXt
>>204
横からレスごめん
C++11は使おうと思えば使えるけど、スマートポインタとかが美しくないかなと思う
メモリをどうこうしたいのならC#とかみたいにGCを実装して欲しかった…
ただ、randomやthreadが追加されたのはかなり嬉しい
2022/02/03(木) 08:58:55.45ID:n97Y9UcY
んで、ここ何のスレ?
2022/02/03(木) 09:29:22.68ID:0+ku9eIp
C++なんてバグ量産言語まだ使ってるのかよw
Rust使えよ低脳
2022/02/03(木) 09:54:13.82ID:8ADJI/49
>>199
低レイヤは当たり前だけど、MSの場合は高レイヤも全て快適にC++で記述できなければならない
それがWindowsの標準UIプラットフォームに求められる最低水準なんだよ
C++/WinRT知ってるか?奴等のC++に対する愛と執念は異常
2022/02/03(木) 10:23:17.82ID:0+ku9eIp
ゴミで有名だよねC++/WinRT
2022/02/03(木) 14:43:56.38ID:u1rmEl96
C++11以後は、最低でもStroustrupの9,800円くらいの本は読まないと
話にならないから、お金が掛かる。
2022/02/03(木) 15:04:58.00ID:rTgJdd8/
>>210
そんなことないぞ
言語仕様が整理されたからむしろStroustrupより薄い本でマスターできるようになってる
2022/02/03(木) 15:05:48.63ID:VSVU8kYC
C++相談室
https://itest.5ch.net/mevius/test/read.cgi/tech/1636969758
2022/02/03(木) 16:15:08.97ID:VWdjVpzZ
現在のマイクロソフトは昔に比べてC++の最新規格追随は熱心だと思うね
昔はC++愛が強かったってことはないんじゃないか
2022/02/03(木) 16:39:59.45ID:4SJL6nSC
C++相談室
https://itest.5ch.net/mevius/test/read.cgi/tech/1636969758
2022/02/03(木) 16:51:25.83ID:rTgJdd8/
>>208
C++/CLIという存在意義不明の言語もあってだな…
2022/02/03(木) 17:14:59.74ID:4SJL6nSC
>>215

C++相談室
https://itest.5ch.net/mevius/test/read.cgi/tech/1636969758
2022/02/03(木) 18:39:21.61ID:22BdHKRp
.NET6への移行は大変そうだな
2022/02/03(木) 18:50:36.00ID:rTgJdd8/
>>216
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
2022/02/03(木) 23:24:21.93ID:oMlWvAvC
>>215
C++とC#への橋渡し?みたいな
2022/02/03(木) 23:31:13.46ID:rTgJdd8/
>>219
C++/CLIはキミの手に負えるような代物じゃない
せいぜいC#とP/Invokeで遊んでなさい
2022/02/03(木) 23:39:42.92ID:u02l46ie
で、wpfは?
2022/02/03(木) 23:47:41.12ID:oMlWvAvC
>>220
MFCで作られたオブジェクトをC#で使う必要があったのよ
2022/02/04(金) 02:11:28.44ID:tMDf8XuC
>>211
具体的にどの本の事だよ。
絶対無理だと思うぞ。
2022/02/04(金) 05:25:10.97ID:2M0/77yk
>>223

C++相談室
https://itest.5ch.net/mevius/test/read.cgi/tech/1636969758
2022/02/04(金) 08:40:15.66ID:+WNV9NYh
>>224
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
2022/02/04(金) 08:52:24.88ID:KAsheVEx
そういやC++/CLIでWPF作れるんだったね
以前やってみてすごく面倒だった
2022/02/04(金) 16:23:43.63ID:x89zi/1x
WinUI3
>バグ、機能不足、パフォーマンスの遅さが問題です。
>現在、Microsoftはこれを趣味のプロジェクトとして扱っており、開発者が投資すべき重要なSDKではありません。
2022/02/04(金) 16:48:16.68ID:Smp2NQSE
じゃあマイクロソフトさんはどのフレームワークに力入れていてどれで作れって言ってるの?
2022/02/04(金) 17:03:05.70ID:/zOk2rsO
タイムリーな質問じゃん
これでしょ
https://medium.com/flutter/whats-new-in-flutter-2-10-5aafb0314b12
2022/02/04(金) 17:10:01.29ID:Smp2NQSE
もうVSも.Netもいらないってことか
2022/02/04(金) 17:40:19.22ID:Q8cReFta
これかーー
もうMSはオープンソースに手厚いかんな
https://medium.com/flutter/announcing-flutter-for-windows-6979d0d01fed
2022/02/04(金) 18:55:12.20ID:Smp2NQSE
flutterのほうが楽しそう
もう何十年もなあなあの.Netはいらんな
2022/02/04(金) 19:05:31.82ID:fMjkdVAl
xamlも時代遅れだよなぁ。
CSSもflexやgridをサポートして自由自在に画面設計できるようになったんだから、Webブラウザーと同じく使えるデスクトップブラウザーを開発すべき。
HTML5+CSS3をxamlで再カキコしなければならないMVVMアプリ開発側としてはしんどい事限りなし。
blazorがそうなるかと思いきや、そうはならなかったな。
2022/02/04(金) 19:08:30.28ID:JrlSex4G
hta2でいいよ
activxの代わりにJScript.NET(死語)でさ
2022/02/04(金) 20:15:48.12ID:x89zi/1x
>>228
MS的にはMAUI(Xamarin)を推したいんだろうが、こんなものに手を出すのは時間の無駄。

未だにスマホアプリに毛の生えたようなのしか作れないWinUIより
Flutterの方がずっとデスクトップアプリに求められるものは何なのか良くわかってる。

>デスクトップアプリケーションは、単に大きなスクリーンで動くモバイルアプリケーションではありません。
>キーボードやマウスなど、さまざまな入力デバイス用に設計されています。サイズ変更可能なウィンドウがあり、
>ワイドスクリーンモニタで動作することもよくあります。アクセシビリティ、入力メソッドエディター、ビジュアルスタイリングなど、
>重要な事柄についても、さまざまな慣例が存在します。デスクトップ アプリは、ファイル システム ピッカーからデバイス ハードウェア、
>Windows レジストリのようなデータ ストアまで、あらゆるものをサポートします。

・UWP→完全終了。開発側がもう使うな、はよWinUI3に移行しろと言っている。

・WinUI3→1〜2年後には業務で使えるレベルに品質・機能が上がっているかも?(しかしその頃には他のものが普及している可能性大)

・MAUI→使う価値なし(他がもっといいの出してるよね)

・WPF + .NET6→目新しさはないが安定していて間違いがない

・Flutter for Windows→注目株、Fluent Designにもしっかり対応。安定性・メモリ消費・ファイルサイズ等に問題がなければこれ一択か?


以前Dartでhello worldするコンソールアプリ試しに作ったときにやたらファイルサイズでかかったのが気がかり。
2022/02/04(金) 20:57:32.87ID:i7hWOGQn
Flutter for Desktop、ちょっと触ってみたけど想像以上に良い。
ただ、まだあんまりよくわからんコンパイルエラーが起こる事があるな。
既存の自分のAndroidアプリはそう簡単には動かなさそう。
2022/02/04(金) 21:48:15.23ID:xlLtcbiK
あーまあ分かったからflutterスレでやってね
2022/02/04(金) 22:07:14.76ID:rPvrWkyY
ウェブのhtml, css, jsの組み合わせをデスクトップアプリに持ってきた方が自然に思える
てかWindowsのみで動くアプリなんてシステムアプリくらいしか需要ないじゃん
そんなのCUIでも全く問題ないんだから
2022/02/04(金) 22:11:22.70ID:+WNV9NYh
それWebView2な
必然の流れだよ
2022/02/04(金) 22:11:24.10ID:lgLSShEn
古田はググールだから大変だな
流行らなければ斬るから信者がんばえー
2022/02/05(土) 01:21:30.57ID:WZoZVFeP
「StackOverflow」で2021年に実施された調査
https://asset.watch.impress.co.jp/img/wf/docs/1385/929/image2.jpg
2022/02/05(土) 01:58:42.02ID:vyyfl1Q+
>>241
ほとんどWeb系だろうし、単に新しいもの使える職場は環境がいいというだけの話だ
2022/02/05(土) 09:10:40.08ID:m5qwQDYD
WPF(MVVMを含む)を新しいものと見なしてるか古いものと見なしてるかで年の差感じるよな
学習コストとか今さらのように言われてもオマエ今まで何してたんだよ
10年以上前からあってとっくに枯れてるぞ
2022/02/05(土) 09:18:35.66ID:50cE9z6L
WPFをいままでやってこなかったならいまさらやる必要がないってことでしょ
アプリケーションもウェブベースで作れるものならASP.NETのWebFormsやMVCに移行してただろうし
2022/02/05(土) 10:35:28.52ID:JJnev5jz
>>238
jsはどんな領域でも使っちゃ駄目な欠陥言語。tsもわずかにマシって程度。
元々オモチャみたいな言語だからレガシーなクソ仕様をばっさり切り捨てないと手の施しようがない。

>Windowsのみで動くアプリ
昔と違ってWindows 1つあれば事足りるようになったからWindows 専用もそれほどデメリットにならない。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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