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

1デフォルトの名無しさん (ワッチョイ 835a-A2Rd)
垢版 |
2024/08/20(火) 21:16:46.38ID:mRLJAUv40
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

WPF(Windows Presentation Foundation)について語るスレ。

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

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

コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2024/10/13(日) 17:37:12.38ID:pdU5irXc0
ああいう会員アプリの目的は囲い込みではなく顧客の識別と購買情報なので、入れておいてくれるだけでいいんだよ
Webだとセッション切れたらITリテラシーの低い一般人は高確率でパスワード忘れて再ログイン不可になる
2024/10/13(日) 19:55:15.87ID:hqn+/Dq/0
>>206
アナタのITリテラシーも疑問符ですよ
2024/10/13(日) 20:01:11.97ID:hqn+/Dq/0
>>203
業務系のシステムとか10年以上前から全部Webだよ
ネイティブアプリをリッチーアプリと言っていた時代はまだWebと棲み分け出来てたけど今やもう昔話だ
2024/10/13(日) 20:14:01.10ID:ZFUcuNx5M
業務のシステムをネイティブで作る意味なんてもうないもんな
スマホやタブレットに後から対応なんて考えず最初からWebでいい

残るのはツールぐらいかな
2024/10/13(日) 20:22:16.23ID:hqn+/Dq/0
ネイティブアプリの存在意義はWebじゃ厳しいからだったけど
もうそのケースがほとんど無くて
逆にインターネット上のアプリやリソースとシームレスに連携出来なかったりで嫌がられる時代よいま
2024/10/13(日) 20:40:47.88ID:mAdiZuY60
>>196
なんだReactだのVeuだので争ってるWeb系と一緒かw
2024/10/13(日) 20:52:14.67ID:mAdiZuY60
デスクトップも結局RestAPIやりとりすれば何ら問題ないんだけどね
2024/10/13(日) 21:06:36.45ID:ii5+beJfd
いやいや生粋のデスクトッパーにRESTは要注意だぞ
あいつらクライアントへのプッシュのためにクライアント側がHTTPサーバーを兼ねる設計とか、とんでもないことやるからな
2024/10/13(日) 21:53:24.17ID:ZFUcuNx5M
1億3000万のアプリがクソしょぼいと言う…中抜きか?
2024/10/13(日) 22:07:06.65ID:hqn+/Dq/0
>>212
Web上にアプリが無いので各種のバラメータをブラウザー経由で受け取れないし
そもそもシングルサインオンしてないので認証とおってなかったり
連携の時の遷移先はWebアプリなわけで大変だし、遷移先のアプリから返却値受け取れないわで大変よ
2024/10/13(日) 22:19:28.81ID:USukL5ei0
人類はHTTP以外の通信プロトコルの経験を失ってしまった
217デフォルトの名無しさん (アウアウエー Sa3f-mL/d)
垢版 |
2024/10/13(日) 23:39:18.58ID:cfTcGRh7a
ロストテクナナシーのスレへ
2024/10/14(月) 02:02:58.36ID:AlInx0gf0
>>215
別にブラウザ経由で受け取る必要なくね?
Jsonでのやり取りで充分じゃね?
シングルサインオンもPOSTの時JSONにアカウント情報載せてやればサーバー側でチェックできるだろ
2024/10/14(月) 02:27:59.52ID:tPoL367j0
実際クライアント側へのプッシュ通知って結構面倒だけどね
2024/10/14(月) 03:32:20.56ID:Dv8nxsKQ0
MSが最後まで梯子を外さずに残すGUIフレームワークってVB6になると思う
そうなるのが何年後かはわからないが
2024/10/14(月) 04:02:31.75ID:bzUsIhmK0
ComCtrl32よ、永遠なれ!
222デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 04:25:35.71ID:iqlRL8W80
>>220
ActiveXコントロールは2025年10月までと発表されているぞ?
2024/10/14(月) 08:12:19.20ID:7Nipznt/0
>>218
そのSSOのアカウント情報をそもそもクライアント側でどうやって取得するのかって話
DBユーザーのuser/passやDBのテーブルに格納されたuser/passじゃなくて、Google、Okta、ADのような外部のIdPで認証するのは流石のデスクトッパーでも知ってるよな?
IdP側でM2M用のキーを発行する手もあるが、セキュリティリスクが高いし運用的にスケールしない
224デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 08:35:48.49ID:iqlRL8W80
Webブラウザの方が偽装しやすいこともわかんねえんだろうなw
2024/10/14(月) 11:37:04.23ID:7Nipznt/0
偽装って具体的にどんな攻撃を想定してる?
226デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 12:36:53.08ID:iqlRL8W80
>>225
多要素認証が必要になる理由を考えたことがないのか?
227デフォルトの名無しさん (ワッチョイ 8b22-wMW8)
垢版 |
2024/10/14(月) 12:38:18.52ID:frzdEHtE0
>>222
30年も使ったから
そろそろ賞味期限が切れたのでは
228デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 12:42:16.56ID:iqlRL8W80
>>225
WebブラウザはOSやハードウェアの情報を正確に取得できない
セキュリティ上の問題

httpで外部からリモートアクセスできないように対策をし続けていまに至る

Webブラウザからアクセスしているように偽装するのは簡単
229デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 12:43:32.88ID:iqlRL8W80
>>227
そうじゃなくて古いもので作られている業務システムが多いから。

Macみたいにシェアが低ければ簡単に切れるが。
2024/10/14(月) 13:40:11.82ID:p9x+u5aF0
昔から海賊版だらけのデスクトップアプリはセキュリティ問題ないのか
231デフォルトの名無しさん (ワッチョイ 6b01-F6D9)
垢版 |
2024/10/14(月) 17:23:20.69ID:+Avko6/y0
https://blogs.embarcadero.com/ja/native-windows-is-back-to-center-stage-ja/
MFCまさかの復活か!?
2024/10/14(月) 18:06:11.25ID:JsqeaFKW0
2024/10/14(月) 18:10:14.35ID:5kKNYXwC0
RAD Studioか
Delphiは好きだけども…
2024/10/14(月) 18:34:50.90ID:ykeeYhPa0
俺には2021年の記事に見える
235デフォルトの名無しさん (ワッチョイ 1f78-oCgE)
垢版 |
2024/10/14(月) 18:37:59.71ID:iqlRL8W80
今年が2024年だということもわからなくなった高齢者なんだろう
2024/10/16(水) 02:02:15.67ID:le2L2D3b0
意外とデスクトップアプリでもWebView+Blazorで開発してるアプリあるなぁ
DevToysってやつ見た目WinUIそっくりでもWebView使ってBlazorでUI構築してるみたいだ
https://github.com/DevToys-app/DevToys
https://apps.microsoft.com/detail/9nbn8w1ds547?rtc=1&hl=ja-jp&gl=JP
2024/10/16(水) 03:36:39.86ID:uG9ZN9Ip0
Win32だとコモンコントロールを使わなくても同じような枠線を引くAPIがあって
ちゃんと作ってればOSのバージョンアップに伴って見た目もある程度自動で連動できてたのに
最近はOSのテーマに追いつくのはアプリの責任になっててひどくない?
2024/10/17(木) 12:50:12.39ID:WL+hUh7C0
この時代、ゴミみたいな単価でそれなりに見栄えのするデザイン作れるデザイナはいくらでもいるし、
それを寸分違わず実装するのも(WPFはともかく)今時のテックスタックなら大した工数じゃないからねえ
悲惨なUIにならないようにOSがお膳立てしてあげないといけなかった時代は、(業務ドカタ開発を除けば)終わったんだよ
2024/10/17(木) 15:37:14.46ID:l9ooUbGgp
wpfのテンプレート無効にしてまでカスタムしてる変態もいるんだぜ
240デフォルトの名無しさん (ワッチョイ 1f45-oCgE)
垢版 |
2024/10/18(金) 07:43:58.79ID:HW2s8lVK0
日本人は同じ見た目でないと怒り狂う変なやつが多いしな。
2024/10/18(金) 08:48:23.41ID:vAVjBES80
主語がでかい
2024/10/18(金) 12:07:44.52ID:dl90zbNnM
XPのガキっぽいのはヒデーなと思ったけど
8や10の視認性の悪さを体験すると評価が変わった
2024/10/18(金) 12:40:18.78ID:Hbjuz6+L0
昭和賛美はジジイの始まり
244デフォルトの名無しさん (アウアウエー Sa3f-mL/d)
垢版 |
2024/10/18(金) 13:53:32.48ID:wVDH4S6Qa
2000が最強
Meはゴミ
2024/10/19(土) 11:07:39.01ID:SVPedUfi0
NT4でOSとしては完成してたね
VB6.0もコレを対象にしてて、いまだに一部業界で稼動中
これらに比べたらWPFはゴミ
2024/10/20(日) 06:09:31.07ID:gVGzm2Bz0
MVVM作ってみた

めんどくさいな
2024/10/20(日) 12:19:12.29ID:8VDaQYX+0
あんな作法に惑わされ過ぎ
工数が嵩むばかりで何のメリットも無い
2024/10/20(日) 12:29:42.70ID:R7G7/KAA0
ユーザーが入力した値の検証や表示用に変換が必要な場合には向いてる
2024/10/20(日) 12:42:27.88ID:8VDaQYX+0
そんなんMVVMじゃなくても出来るし
一度作ったらそれっきりなんだから
意味が無いんだよ
2024/10/20(日) 12:48:45.65ID:cTHcFhGQ0
MVVM便利だけどな
やっぱ層が分離されてるって気持ちいいよ
2024/10/20(日) 12:50:24.66ID:cTHcFhGQ0
俺はMVVMSを提唱してるけど
Mはもう構造体だけにしてSでMを加工しVMに情報を与える
SはサービスのSね
2024/10/20(日) 13:25:07.93ID:cTHcFhGQ0
TextMateSharpっていうTexMateという一般で広く使われてる規格からシンタックスハイライトを作成するライブラリを使ってWinUIのRichTextBlockにシンタックスハイライトを実装するライブラリ作ったんだがこれってライブラリ化とかした方が良いかな?
プログラムは単純にTextMateSharpのデモをパクってRichTextBlockに合うように呼び出しを変えただけなんだけど
ふつうにGitHubなんかにサンプルとして投稿する感じがいいのかな?
2024/10/20(日) 16:08:17.60ID:gVGzm2Bz0
>>251
なんか、
やりたくで作ってるだけじゃなく、
必要になって作ってるわ

MVVMの

Prismだかは無しで
2024/10/20(日) 16:36:51.61ID:cTHcFhGQ0
>>253
Prismみたいなフレームワーク使わないとめんどくさいだろうなぁ
個人的によく使ってるのはMVVMToolkitだわ
CommunityToolkit.MVVMのNugetで使えるようになる
確かWPFでも使えたはず
2024/10/21(月) 02:42:13.87ID:Yz2aUc2R0
vue.jsとかのMVVM知ってると
WPFのはあまりに馬鹿らしくて泣けてくるぜ
2024/10/21(月) 07:12:35.06ID:bUjh45Ks0
>>255
すまんVue.jsやったことないんだけどどのへんがWPFがクソなの?
2024/10/21(月) 09:43:37.16ID:Yz2aUc2R0
全部って感じ...
他はMVVMにかかる手間なんて一切無い

ので話題にも上がらない感じ
2024/10/21(月) 12:50:49.84ID:bUjh45Ks0
>>257
いやわからん
2024/10/21(月) 13:49:53.99ID:lU6IQ1t4p
そも、VisualStudioって、MVCモデル用だれ?
2024/10/21(月) 14:26:47.05ID:Yz2aUc2R0
>>258
糞って事
2024/10/21(月) 15:24:03.02ID:8GAgNEd+0
>>260
例えば Vue.js の MVVM でここが優れてる!
ってのはどんなのがある?
2024/10/21(月) 17:42:45.47ID:Yz2aUc2R0
>>261
全部
2024/10/21(月) 17:52:15.71ID:8GAgNEd+0
ただ Vue.js 言いたかっただけなんじゃないの?
2024/10/21(月) 17:52:48.65ID:bUjh45Ks0
なにも生産性の無い話題だったな
2024/10/21(月) 17:54:57.66ID:bUjh45Ks0
MVVMToolkitはマジで記述クソ簡単になるからオススメ
一応Microsoft既製っぽい(実際はコミュニティで作ってる)しパフォーマンスもPrismより良いらしい
2024/10/21(月) 18:30:18.81ID:x6+Rbr8S0
>>265
ほう
使ってみますわ

内部の仕組みとかは気にしなくてええの?
不安だわ
2024/10/21(月) 18:30:40.31ID:x6+Rbr8S0
>>266
Prismとか、
使ってええもんかどうか…
2024/10/21(月) 19:05:04.17ID:CKTKnODWM
なんかこのスレにはwebやれよの人が住んでいる
2024/10/21(月) 20:27:59.59ID:Ae8vTo3KM
>>267
Prismは必要以上に肥大化して複雑になっちゃったから手を出さない方が良いと思う

CommunityToolkit.MVVMは後発なだけあってシンプルで分かりやすくて良いよ
これがもっと早くにリリースされてればWPFのMVVM嫌いをここまで量産しなかったかもしれない
2024/10/21(月) 21:53:26.66ID:SQ8zGBXh0
>>266
ソースジェネレーターってやつを使って実装を簡単にしてる
詳しくはこれを参考にされたし
https://qiita.com/MAUIHighSchool/items/ed6a90b81cb849a9148e

機能を詳しく説明してる記事はこちら
https://qiita.com/kk-river/items/d974b02f6c4010433a9e
2024/10/21(月) 23:54:17.80ID:x6+Rbr8S0
>>269
あー
初心者だから大変だわ

とりあえずToolkitでさっきから作り始めたわ
2024/10/21(月) 23:58:40.32ID:x6+Rbr8S0
>>270
とりあえずToolkitでさっきから作り始めたわ

何も無しで自力作ったWPFアプリケーションをToolkitに移植してるけど、
仕組みがよくわからんわ…
2024/10/21(月) 23:59:42.52ID:x6+Rbr8S0
>>272
まあ、
自分で書くソースコードは短くなるな…
2024/10/22(火) 00:03:10.01ID:6OfHYckZ0
>>272
普通こういうのはプロパティの値が変わってもUIに反映されないんだけどINotifyChangedって言うプロパティの値が変わったら自動的にUIに反映させる実装を裏の方でしてるだけ
MVVMToolkit使わないならわざわざその処理を手書きで記入しないといけないところをMVVMToolkitは裏で自動で実装してくれるわけ
2024/10/22(火) 00:05:22.64ID:6OfHYckZ0
その裏で実装されてるのが
>>270この記事の終わりの方にあるアナライザーのところに勝手に作られるコードってわけ
2024/10/22(火) 00:57:03.72ID:2qKbHbOq0
>>274
そうだね

INotifyChangedとか書いてたわ
だいぶ短くはなった
2024/10/22(火) 07:50:00.10ID:5GZLz77w0
>>257
>他はMVVMにかかる手間なんて一切無い
>
>ので話題にも上がらない感じ

WPFについても同じように思っている人はいると思う。一切無いとまで言い切ることはしないが。
自分はそれほど困ってないが、ちょくちょくWPFをディスりに突撃してくる変な人がいるなあ、という感想。
2024/10/22(火) 10:51:02.21ID:ZMkCoWD80
>>277
>>WPFをディスりに突撃してくる変な人

以前WPFに人生投資してた人でお節介ながら警告してくれてんじゃないの?自分もそうだけど

で自分はWPFに関してはMVVMだけなら単純なバインディング機能とコードビハインドだけでもっと簡単にサクッと書けんじゃないのと思ってる

諸悪の根元はMicrosoft Expression Blend系機能に代表的されアンチコードビハインドの原理主義
2024/10/22(火) 11:21:31.87ID:0LHYxdA70
MicrosoftがMVVMの為に言語を歪めてコンパイラで特別扱いする勇気があれば、最初からもっと簡潔に書けていただろう
なぜ素のC#で書かせたのか
2024/10/22(火) 12:19:11.75ID:M9bqFahpM
>>278
そんなのは過去ログやWEBの評判みりゃ分かることだし、要らぬお世話だよ
何度も長々と同じ話してて、邪魔にしかなってない
それに今は以前と比べてかなり簡単に作れるようになってる
2024/10/22(火) 12:24:49.65ID:ue2b+tDRH
>>279

自動プロパティにget set init 以外に bind set付けるだけなのになあ…
2024/10/22(火) 13:02:37.84ID:Ousb9TvG0
考え方が根本的に間違ってんな
2024/10/22(火) 13:17:36.06ID:Tz9XpcgzM
VSエクスプレスでコミュニティツールキットMVVM Ver.8以降を使う方法ってありますか?
2024/10/22(火) 13:38:01.40ID:ZMkCoWD80
てか、何でコードビハインドがダメなのか
2024/10/22(火) 15:18:34.69ID:cRRoaZiP0
テスタビリティが低いから
GUIフレームワーク込みじゃないとテストできなくて自動テストとの相性が悪い

双方向バインド、テスタビリティ、宣言的UIがMVVM三種の神器
2024/10/22(火) 15:20:03.69ID:cRRoaZiP0
どれも必要ないならMVVMは無用の長物
2024/10/22(火) 15:59:14.94ID:WgkSZma6p
流行りなだけで単純なアプリ作るだけなら不用だしなぁ
2024/10/22(火) 16:02:45.40ID:2qKbHbOq0
ViewとModelで、
独立して開発できるって認識で合ってる?

まあ、本格的に企業で開発してみないと実感がないな…
2024/10/22(火) 16:43:45.49ID:klfEOsmR0
モダンUIフレームワーク視点から捉えたMVVMの現在地↓

「SwiftUIでMVVMを採用するのは止めよう」と思い至った理由
https://qiita.com/karamage/items/8a9c76caff187d3eb838
2024/10/22(火) 18:26:22.21ID:z4sRcycH0
>>289
Modelを全部ObservableにすればVMは不要である
と読めた
2024/10/22(火) 18:50:04.41ID:RcS0CrU3M
何年か前にそれを見たような気がするけど呪文が多くて別物だと思った

GUI部分は宣言的にコード書くのは楽なんだよな
書いた通りにしか動かないから
2024/10/22(火) 20:49:09.75ID:xlemdUZK0
書いて無いのに動くプログラム。怖すぎ。
コックリさんか、小人さんが補完するのけ?
2024/10/22(火) 21:02:56.75ID:3twpQX3A0
>>289
本質はただの言葉遊びにしか見えんね
VMを別の言葉で言ってるだけ
2024/10/22(火) 21:04:34.90ID:laQGBhjCp
なんか余計なコード書かなきゃならあかん事が増えて
かえって工数が嵩んでるって思うわ
2024/10/22(火) 21:28:02.57ID:MLYapXOO0
意味不明瞭な変な用語を使いたがるキチガイどものいつもの会話
2024/10/22(火) 21:31:34.30ID:TQEI3sRI0
XAML+双方向バインディング
VS
コンポーネントベース+単方向データフロー

それぞれ切っても切り離せない関係にあると思うが、MVVM云々よりこっちの方が古今の開発体験の差になってるように思う
2024/10/22(火) 22:41:09.89ID:3twpQX3A0
XAMLは単一方向フローでもいけるだろ
当時はXAMLのパフォーマンス改善の方策の一つだったぞ
2024/10/23(水) 08:06:56.79ID:mAhczU3U0
winui3ではx:BindとBindingで違うね
Bindは静的バインディングでモードを1回だけ、単方向、双方向で変えられる
毎回指定しなきゃいけないの面倒だけどね
Bindingは動的バインディング
2024/10/23(水) 13:24:02.81ID:MltH7llV0
マテリアルデザインの5.1って動きます?
4.9までは動いてたんだけども、見つからなくなっちゃった
App.XamlでMaterialDesign3.Defaults.xamlに変更したりしたけども、見つからない
動かすだけなら4.9に戻せばいいだけなんだろうけども
2024/10/23(水) 14:09:56.24ID:uGe/15wp0
動くよ
App.XamlでSecondaryに書き換えるとこもある
301デフォルトの名無しさん (ワッチョイ 3901-nV0L)
垢版 |
2024/10/23(水) 21:28:23.70ID:Qh3MumDi0
MS自体、小規模ならMVVMは使う必要ないと言ってる。
2024/10/23(水) 21:32:44.56ID:wrXNbwSN0
大規模もよ
時間の無駄の倍々ゲームになる
2024/10/23(水) 21:34:08.98ID:RnIdyZfu0
>>301
どこで言ってるの?
304デフォルトの名無しさん (ワッチョイ 8dec-Vw/z)
垢版 |
2024/10/23(水) 22:10:21.89ID:GAB82Ipr0
C#の入門レベルの本だといまだに「WinFormでアプリを作ってみよう」という例が書いてある印象はあるよね
2024/10/23(水) 23:20:22.03ID:ZDG8kcNN0
「UWPでアプリを作ってみよう」よりかは需要のある知識
2024/10/24(木) 00:04:05.62ID:DJyT9FzO0
入門ならWinFormsでええやろ
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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