WPF(Windows Presentation Foundation)について語るスレ。
前スレ
WPF(.NET, WinUI) GUIプログラミング Part30
https://mevius.5ch.net/test/read.cgi/tech/1667010874/
関連スレ
Windows 10 UWPアプリ開発Part 3
https://mevius.5ch.net/test/read.cgi/tech/1627556967/
コードを貼る場合は以下のサイトの利用をお勧め。
https://ideone.com/
WPF(.NET, WinUI) GUIプログラミング Part31
レス数が900を超えています。1000を超えると表示できなくなるよ。
2023/01/22(日) 05:53:16.97ID:oY263ilm
810デフォルトの名無しさん
2023/08/24(木) 20:56:22.03ID:U1/Wc6cv812デフォルトの名無しさん
2023/08/24(木) 22:13:47.33ID:Tz9EhHoC がんばれ!
813デフォルトの名無しさん
2023/08/24(木) 23:13:10.10ID:ypVJRmCU >>811
あのコードは何人で書いたんだ?
あのコードは何人で書いたんだ?
814デフォルトの名無しさん
2023/08/24(木) 23:34:26.49ID:Ax2+ubkj どう見ても一人だろ
815デフォルトの名無しさん
2023/08/26(土) 11:36:32.15ID:UpJ7Bk8S 初心者じゃないんだから、5chブラウザつくるとしても
少し挑戦的な事してここの視聴者楽しませてよ
少し挑戦的な事してここの視聴者楽しませてよ
816デフォルトの名無しさん
2023/08/26(土) 12:52:15.75ID:d6TpiO9T ツマンネ。もっと気の利いたこと書き込めよ
817デフォルトの名無しさん
2023/08/26(土) 14:29:43.74ID:QKHGYPpz コード見るとわかるけど違和感しか感じない
C++?とか
C++?とか
818デフォルトの名無しさん
2023/08/26(土) 14:37:18.36ID:QKHGYPpz ともかくいろいろとちぐはぐしてる
人に見られることを前提とした普通に自分で組むには不要なコメントとか
大きなサービスとか…
人に見られることを前提とした普通に自分で組むには不要なコメントとか
大きなサービスとか…
819デフォルトの名無しさん
2023/08/26(土) 15:09:41.41ID:hcnbZQTk なんだそのふわっとした具体性のない指摘は
無理にケチ付けることないのに
無理にケチ付けることないのに
820デフォルトの名無しさん
2023/08/26(土) 15:24:12.70ID:QKHGYPpz コードを見ればわかるよ
821デフォルトの名無しさん
2023/08/26(土) 15:35:06.57ID:QKHGYPpz もともとc++などを含めた他の言語で野良コードを書いてた人が
ビジネス向けの専門学校みたいなところでC#を学んでDIとか色々知識があるような印象
そして丁寧にコードを書いてるけどまだC#が血肉にはなってないので元の癖が出る
それか仲間の先生に当たる人が乱雑だったので変な癖が残っているか
誰か別の人間がところどころコードを書いたのかコピペしたのか
ビジネス向けの専門学校みたいなところでC#を学んでDIとか色々知識があるような印象
そして丁寧にコードを書いてるけどまだC#が血肉にはなってないので元の癖が出る
それか仲間の先生に当たる人が乱雑だったので変な癖が残っているか
誰か別の人間がところどころコードを書いたのかコピペしたのか
822デフォルトの名無しさん
2023/08/26(土) 15:44:44.01ID:FILnRN1t 本当に具体性のない空っぽな指摘だな
こういうのが上司につくと辛い
こういうのが上司につくと辛い
823デフォルトの名無しさん
2023/08/26(土) 17:09:36.31ID:UpJ7Bk8S824デフォルトの名無しさん
2023/08/26(土) 17:15:40.72ID:lyifkqna825デフォルトの名無しさん
2023/08/26(土) 17:15:42.20ID:QKHGYPpz826デフォルトの名無しさん
2023/08/26(土) 17:28:24.81ID:QKHGYPpz このスレの他の人はオリジナリティの話をしてる
昔からあるドラマや漫画で出てくるような芸術作品や演奏に対する指摘のようなもので
君の作品には情熱が感じられない教科書通りでつまらないみたいな話
いまだとばらかもんが丁度似た様な話をしてる
自分は今現在はそこまでの話をする段階にないと思う
適当なところで切り上げて色々デザインして経験してみたほうがいい気がする
その後に作ったものが自分が楽しんで使ってることに喜びを感じるレベルになれば人からもそういった面で良い評価を貰えると思う
昔からあるドラマや漫画で出てくるような芸術作品や演奏に対する指摘のようなもので
君の作品には情熱が感じられない教科書通りでつまらないみたいな話
いまだとばらかもんが丁度似た様な話をしてる
自分は今現在はそこまでの話をする段階にないと思う
適当なところで切り上げて色々デザインして経験してみたほうがいい気がする
その後に作ったものが自分が楽しんで使ってることに喜びを感じるレベルになれば人からもそういった面で良い評価を貰えると思う
827デフォルトの名無しさん
2023/08/26(土) 17:41:00.84ID:UpJ7Bk8S せっかくアプリ作って公開しましたと面白そうなネタが投下されたが
だめそうだな
だめそうだな
828デフォルトの名無しさん
2023/08/26(土) 17:56:06.42ID:hcnbZQTk それっぽいこと言って偉そうにしたいだけか
どうりで中身が皆無なわけだ
どうりで中身が皆無なわけだ
829デフォルトの名無しさん
2023/08/26(土) 18:25:05.72ID:W2Um6gjp アクロバティックなものを所望ならBlazor Hybridもいいと思うのよ
実用性あるかは別の問題として、前例のないことをやるという点は満たしてる
実用性あるかは別の問題として、前例のないことをやるという点は満たしてる
830デフォルトの名無しさん
2023/08/26(土) 22:00:12.76ID:16WUCkmH 書き方なんてどうでも良いのよ?
ゲイツはみんなと違う画期的なコードで時代を切り開いた。
ゲイツはみんなと違う画期的なコードで時代を切り開いた。
831デフォルトの名無しさん
2023/08/27(日) 00:46:17.43ID:W3b+7qIa >>825
では俺も ID:QKHGYPpz のレスを見て指摘でなく違和感を書こうかな
誰の何の役にも立たない独り言なら、多数が集う掲示板でなくチラシの裏にでも書いて誰にも見せず捨てればいいのに
会話できず、するつもりもないと開き直るなら掲示板にくるのは無駄だし害悪ですらある
これに気が付かないにぶーいID:QKHGYPpzに自分の見解を伝えてみた
では俺も ID:QKHGYPpz のレスを見て指摘でなく違和感を書こうかな
誰の何の役にも立たない独り言なら、多数が集う掲示板でなくチラシの裏にでも書いて誰にも見せず捨てればいいのに
会話できず、するつもりもないと開き直るなら掲示板にくるのは無駄だし害悪ですらある
これに気が付かないにぶーいID:QKHGYPpzに自分の見解を伝えてみた
832デフォルトの名無しさん
2023/08/27(日) 09:09:39.66ID:4wYaVVdN お前の方こそブーメラン刺さってねw
833デフォルトの名無しさん
2023/08/27(日) 11:36:52.09ID:3H5CXIUM >>830
どんなの?
どんなの?
834デフォルトの名無しさん
2023/08/27(日) 12:46:27.21ID:W3b+7qIa835デフォルトの名無しさん
2023/08/27(日) 12:58:47.33ID:t0g5o5TS そんなこともわからない>>832の頭の悪さときたら
ってことでしょ
ってことでしょ
836デフォルトの名無しさん
2023/08/27(日) 13:51:55.91ID:vknuNgDk viewmodelsって対応するviewに表示するためのデータとロジックを持ってるって認識で合ってる?
コード見てると他のviewmodelファイルでインスタンス化されたりプロパティが呼び出されてたりしててあれこういうのありなの?って
コード見てると他のviewmodelファイルでインスタンス化されたりプロパティが呼び出されてたりしててあれこういうのありなの?って
837デフォルトの名無しさん
2023/08/27(日) 14:43:13.39ID:Qf4ZUzrP 例えばどのファイルのどこがおかしい、改善すべきと言わないと
838デフォルトの名無しさん
2023/08/27(日) 21:19:33.66ID:vknuNgDk 機能修正の事前準備としてリファクタリングさせてください
とか言ってもひとまず機能修正優先でとか動いてるんだから余計なことするなとか言われるのがオチだよね
とか言ってもひとまず機能修正優先でとか動いてるんだから余計なことするなとか言われるのがオチだよね
839デフォルトの名無しさん
2023/08/27(日) 21:40:22.11ID:IUQW/AR/ もうその5chブラウザの事ほっとけよ
作者があまり顔出さないのに
作者不在のままここで毎回ゴタゴタが発生であほらしい
ほっとくのが吉
作者があまり顔出さないのに
作者不在のままここで毎回ゴタゴタが発生であほらしい
ほっとくのが吉
840デフォルトの名無しさん
2023/08/28(月) 19:25:42.52ID:Ed5E1clR 心理的安全性の低いスレだな
841デフォルトの名無しさん
2023/08/28(月) 19:58:34.85ID:BueC5+dS 攻撃しても何もいいことはないのになあ…
googleの本でも読めば良いのに
googleの本でも読めば良いのに
842デフォルトの名無しさん
2023/08/28(月) 20:00:38.72ID:BueC5+dS ふと思ったことや感じたことを言うと叩かれる → 心理的安全性が低い
他人の行ったことを否定する → 心理的安全性が低い
本人に自覚がないのが恐ろしい
他人の行ったことを否定する → 心理的安全性が低い
本人に自覚がないのが恐ろしい
843デフォルトの名無しさん
2023/08/28(月) 20:44:27.43ID:QJ/DbKdl マスゴミって批判しないで、記者が萎縮してしまいます。でも自分達は批判も攻撃もするけどね。みたいな二重基準?
844デフォルトの名無しさん
2023/08/28(月) 21:29:09.23ID:6uHv/wqC 技術的な話とかに関して色々批判はいいと思うけど
最後は人格攻撃と不毛な事になるのが多いからなw
最後は人格攻撃と不毛な事になるのが多いからなw
845mdysdev ◆XSDsAilQpD0E
2023/08/30(水) 09:16:29.73ID:rmxbhQ8d MVVMって例えばWPFでいうなら、VMでSystem.Windows名前空間をusingしないっていう認識で合ってる?
要はVMだけでOS非依存のdll化できるか
要はVMだけでOS非依存のdll化できるか
846デフォルトの名無しさん
2023/08/30(水) 10:42:16.63ID:mm/q7vOw そんな定義は聞いたことないな
847デフォルトの名無しさん
2023/08/30(水) 11:12:09.35ID:FKrsdOsE 究極の疎結合って意味では合ってる
CommunityToolkit.mvvmもプラットフォーム非依存だし極端な話、上側がWinUI3でもVMそのまま動くってことでしょ
ただ実際問題すげーめんどくさいとは思うがw
CommunityToolkit.mvvmもプラットフォーム非依存だし極端な話、上側がWinUI3でもVMそのまま動くってことでしょ
ただ実際問題すげーめんどくさいとは思うがw
848デフォルトの名無しさん
2023/08/30(水) 13:38:27.33ID:Zjd+Qgp2 だね、5chブラウザのほうでViewModelでウィンドウクラス?を参照してたのは気になってた
まぁ、最初の1回だけは勉強のためMVVMガチガチにやって頑張ってもいいし
そこは本人次第
まぁ、最初の1回だけは勉強のためMVVMガチガチにやって頑張ってもいいし
そこは本人次第
849mdysdev ◆XSDsAilQpD0E
2023/08/30(水) 14:56:17.68ID:rmxbhQ8d ありがとう、System.Windowsを分離してみる。
>>848
確かにWindowは分かりやすく「ん?」ってなるけど、
ClipBoardとかBitmapImageとかもみんなSystem.Windows配下なんだよね。
これらの処理を全部持ってくと、Viewにも結構ロジックが必要になりそう。
UIフレームワーク固有の機能なんだから疑問を持つのがおかしいのかもだけど
>>848
確かにWindowは分かりやすく「ん?」ってなるけど、
ClipBoardとかBitmapImageとかもみんなSystem.Windows配下なんだよね。
これらの処理を全部持ってくと、Viewにも結構ロジックが必要になりそう。
UIフレームワーク固有の機能なんだから疑問を持つのがおかしいのかもだけど
850デフォルトの名無しさん
2023/08/30(水) 23:23:43.59ID:I012WzjW View固有の機能じゃなければ分離しなくてもよい
851デフォルトの名無しさん
2023/08/31(木) 00:04:15.85ID:tqam1yBh その前にenumの機能のおさらいをしたほうが良い
852デフォルトの名無しさん
2023/08/31(木) 01:17:12.25ID:UxD03clT MVVMといえばうちの会社でのプロジェクトでさぁ例えばだけどmodelにcircleクラスがあるとするじゃん
んでそれをコンストラクタの引数に取るVmCircleなるクラスをわざわざ作るのよ。んでそれを各種viewmodel内部でいじるんだけど、VmCircleはCircleのviewmodelとか言ってるの
おかしいでしょそれはviewmodelでもなんでもないでしょって言ったんだけどいやviewmodelだって
これ俺がおかしいのか?
んでそれをコンストラクタの引数に取るVmCircleなるクラスをわざわざ作るのよ。んでそれを各種viewmodel内部でいじるんだけど、VmCircleはCircleのviewmodelとか言ってるの
おかしいでしょそれはviewmodelでもなんでもないでしょって言ったんだけどいやviewmodelだって
これ俺がおかしいのか?
853デフォルトの名無しさん
2023/08/31(木) 01:44:14.25ID:k/7LWfvb >>852
サーバサイドでも使う Entity とかを .NET Standard で共有して、
クライアントサイドではそれをINotifyPropertyChanged を実装したクラス (VM) に変換する必要がある、
もしくは将来的に変更通知が必要になる可能性を見越してそうしておく、
とかならありえなくはないんじゃない?
サーバサイドでも使う Entity とかを .NET Standard で共有して、
クライアントサイドではそれをINotifyPropertyChanged を実装したクラス (VM) に変換する必要がある、
もしくは将来的に変更通知が必要になる可能性を見越してそうしておく、
とかならありえなくはないんじゃない?
854デフォルトの名無しさん
2023/08/31(木) 07:06:57.56ID:BoGIe8nI >>845
変な理解しているな。
ViewModelでBitmap加工などは普通にやる。 当然、System.Windowsをusingする。
Viewのエレメントに直接アクセスするなという事だけ。 いわゆる委譲だな。
例えば、Viewにパラメーター渡すために、IxxxViewRepositoryインターフェースをViewに継承させ、そのレポジトリをViewModelにインジェクションすればそれでOK。
ContainerのChildrenは、ViewModelにダイナミック生成バインドできないので、Add、Remove、Move操作をそういう方法でやる。
DDDなどのクリーンアーキにチャレンジしてみれば、その辺はインチュイティブに理解できるようになるよ。
変な理解しているな。
ViewModelでBitmap加工などは普通にやる。 当然、System.Windowsをusingする。
Viewのエレメントに直接アクセスするなという事だけ。 いわゆる委譲だな。
例えば、Viewにパラメーター渡すために、IxxxViewRepositoryインターフェースをViewに継承させ、そのレポジトリをViewModelにインジェクションすればそれでOK。
ContainerのChildrenは、ViewModelにダイナミック生成バインドできないので、Add、Remove、Move操作をそういう方法でやる。
DDDなどのクリーンアーキにチャレンジしてみれば、その辺はインチュイティブに理解できるようになるよ。
855デフォルトの名無しさん
2023/08/31(木) 07:56:35.25ID:UxD03clT >>853
そもそもviewmodelってviewとmodelをつなぐ役割をするものじゃないんですかね
別に対応するviewなんて何も無いただデータとそのメソッドを持つだけのクラスをviewmodelと言えるんでしょうか
そもそもviewmodelってviewとmodelをつなぐ役割をするものじゃないんですかね
別に対応するviewなんて何も無いただデータとそのメソッドを持つだけのクラスをviewmodelと言えるんでしょうか
856デフォルトの名無しさん
2023/08/31(木) 11:36:17.81ID:GMvg4a1K https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/stable-channel#version-14
うんこ品質の時間です
突然1.4がリリースされやがった
9月末が予定じゃなかった?
うんこ品質の時間です
突然1.4がリリースされやがった
9月末が予定じゃなかった?
857デフォルトの名無しさん
2023/08/31(木) 12:07:44.06ID:+9swg57/858デフォルトの名無しさん
2023/08/31(木) 12:40:08.29ID:k/7LWfvb >>855
俺の理解が間違ってるかもしれないけど、
その Circle クラス?が画面上の円のコントロールかなにかの DataContext になってるなら ViewModel であるといえるんじゃないだろか。
画面上のどこにもバインドしてないんなら違うと思うけど。
例えば ListBox の ItemsSource にバインドするコレクションの各要素の型は ViewModel と言えると思う。
ListBoxItem を 1つの View として見た時にその DataContext になるから。
↓これとか ItemViewModel というのを定義してる。
https://blog.okazuki.jp/entry/2016/04/08/233620
ItemViewModel
俺の理解が間違ってるかもしれないけど、
その Circle クラス?が画面上の円のコントロールかなにかの DataContext になってるなら ViewModel であるといえるんじゃないだろか。
画面上のどこにもバインドしてないんなら違うと思うけど。
例えば ListBox の ItemsSource にバインドするコレクションの各要素の型は ViewModel と言えると思う。
ListBoxItem を 1つの View として見た時にその DataContext になるから。
↓これとか ItemViewModel というのを定義してる。
https://blog.okazuki.jp/entry/2016/04/08/233620
ItemViewModel
859デフォルトの名無しさん
2023/08/31(木) 13:22:03.44ID:WwAx/vtc viewmodelはmodel用のviewじゃなくてview用のmodel
各種viewmodelでcircleモデルのview用の変換やviewからの入力に対してモデルとの橋渡しをする場所としてvmcircleを作ってるんならまあ理解できる
各種viewmodelでcircleモデルのview用の変換やviewからの入力に対してモデルとの橋渡しをする場所としてvmcircleを作ってるんならまあ理解できる
860デフォルトの名無しさん
2023/08/31(木) 14:00:23.53ID:+wESSzqb 何なら納得するんだろうか?
画面に複数のタブページがあるアプリがあって
メインVMに複数のタブページ用のVMがリストなどで持たれている(直接のモデルじゃなくて)
これでおかしいと思うのかどうか
画面に複数のタブページがあるアプリがあって
メインVMに複数のタブページ用のVMがリストなどで持たれている(直接のモデルじゃなくて)
これでおかしいと思うのかどうか
861デフォルトの名無しさん
2023/08/31(木) 15:36:13.08ID:KSwuKB63 XAML Islandsとか名前がよくない
絶海の孤島のイメージだ
絶海の孤島のイメージだ
862デフォルトの名無しさん
2023/08/31(木) 15:53:03.73ID:A6umWt5F Islandsで孤島?
863デフォルトの名無しさん
2023/08/31(木) 16:07:40.97ID:qE8kvwKZ 複数形だから孤島ではないな
864デフォルトの名無しさん
2023/08/31(木) 16:52:36.04ID:BoGIe8nI >>857
VieModelの再利用?
再利用するのはViewの方であって、ViewがViewModelへのバイディング権がある。
それで、フレキシブルな画面構築ができる。
ロジックの再利用は、Domain層にまとめる。
VieModelの再利用?
再利用するのはViewの方であって、ViewがViewModelへのバイディング権がある。
それで、フレキシブルな画面構築ができる。
ロジックの再利用は、Domain層にまとめる。
865デフォルトの名無しさん
2023/08/31(木) 17:36:52.11ID:+9swg57/ >>864
ん?例えばMAUIとかWASMに移植するときはViewModelを全部作り直すってこと?
大変じゃね?っていうかそれってMVVMじゃなくね?
MVVMって画面とロジックの分離であって、画面が変わるたびに作り直さなくちゃいけないなら
それはViewModelではなくViewの範疇では?
ん?例えばMAUIとかWASMに移植するときはViewModelを全部作り直すってこと?
大変じゃね?っていうかそれってMVVMじゃなくね?
MVVMって画面とロジックの分離であって、画面が変わるたびに作り直さなくちゃいけないなら
それはViewModelではなくViewの範疇では?
866デフォルトの名無しさん
2023/08/31(木) 18:44:34.81ID:+wESSzqb ViewModelはviewとmodelの間が互いにデコボコしてて
綺麗にくっつかない場合に間に入るつめもの
もともときれいにくっつくなら不要
Viewが変わればまた形に添ったViewModelが必要になる
綺麗にくっつかない場合に間に入るつめもの
もともときれいにくっつくなら不要
Viewが変わればまた形に添ったViewModelが必要になる
867デフォルトの名無しさん
2023/08/31(木) 19:17:40.59ID:0zAKJthF クライアント側にあるView層にViewとViewModelがある
サーバー側にModel層があって自分の場合はREST full APIで作られたSaaS出ある場合が殆ど
業務ロジックはModel層内に全てあるので再利用可能
サーバー側にModel層があって自分の場合はREST full APIで作られたSaaS出ある場合が殆ど
業務ロジックはModel層内に全てあるので再利用可能
868デフォルトの名無しさん
2023/08/31(木) 19:22:25.33ID:0zAKJthF View層にはWPFを動作させるための処理しかない
View層をReactで作ってもそこにあるのはReactを動作させるための処理しかない
業務ロジックは全てサーバー側にあって全く無駄にはならない
View層をReactで作ってもそこにあるのはReactを動作させるための処理しかない
業務ロジックは全てサーバー側にあって全く無駄にはならない
869デフォルトの名無しさん
2023/08/31(木) 21:51:01.50ID:lnQo2el+ >>762
今思いついたんだが「sugar dragonfly」はどう?
今思いついたんだが「sugar dragonfly」はどう?
870デフォルトの名無しさん
2023/09/01(金) 16:45:19.11ID:ba1FgNHl 機器の通信サンプルアプリをWPFで作るのは有り?
サンプルを参考にする相手がWPFを使ってるかわからないから、WinFormsの方が無難かな?
一番無難なCUI版は出来たからコアの通信部分は変わらなくて、通信結果を見やすくするだけなんだけども
サンプルを参考にする相手がWPFを使ってるかわからないから、WinFormsの方が無難かな?
一番無難なCUI版は出来たからコアの通信部分は変わらなくて、通信結果を見やすくするだけなんだけども
871デフォルトの名無しさん
2023/09/01(金) 17:16:03.23ID:E0s4hvcN ActiveXでExcel VBA対応するのが無難だな
872デフォルトの名無しさん
2023/09/01(金) 19:47:27.67ID:+613Qa0i >>866
それはVMじゃない。どっちかというとMVCのCに近い。
それはVMじゃない。どっちかというとMVCのCに近い。
873デフォルトの名無しさん
2023/09/01(金) 21:56:19.74ID:42muqi3u >>866の説明はCよりVMよりだと思う
VMはModelを特定のView用に変換した状態を持っておくもの
MVC
Vーーーーーーーー 監視 ーーーーーーー>M
Vーーー入力ーー> C ーーー入力ーー>M
V<ーーーーーーー 通知 ーーーーーーーーM
MVVM
Vーーー監視ーー> VM ーーー監視ーー>M
Vーーー入力ーー> VM ーーー入力ーー>M
V<ーー通知ーーー VM <ーー通知ーーーM
VMはModelを特定のView用に変換した状態を持っておくもの
MVC
Vーーーーーーーー 監視 ーーーーーーー>M
Vーーー入力ーー> C ーーー入力ーー>M
V<ーーーーーーー 通知 ーーーーーーーーM
MVVM
Vーーー監視ーー> VM ーーー監視ーー>M
Vーーー入力ーー> VM ーーー入力ーー>M
V<ーー通知ーーー VM <ーー通知ーーーM
874デフォルトの名無しさん
2023/09/01(金) 22:06:47.51ID:XOi5r4E6 みんなめちゃくちゃだな..
875デフォルトの名無しさん
2023/09/01(金) 22:16:55.21ID:+613Qa0i >VMはModelを特定のView用に変換した状態を持っておくもの
なにその珍解釈
なにその珍解釈
876デフォルトの名無しさん
2023/09/01(金) 22:33:11.78ID:dq5C6mfu 一人だけ俺様理論がおるな
877デフォルトの名無しさん
2023/09/01(金) 22:55:04.64ID:86UzGWyS みんなVIEWを差し替え差し替えでMODELを流用することやってるの?
878デフォルトの名無しさん
2023/09/01(金) 23:31:31.63ID:hl1Bipr4 いや全然
879デフォルトの名無しさん
2023/09/02(土) 00:18:16.99ID:fOS98KnE 自己満ですなーー
WPFのMVVMがまさに究極の自己満
MVVMとかvue.jsとかangular、androidとかでも普通に使うし
そっちは実装コストもかからん
WPFのMVVMがまさに究極の自己満
MVVMとかvue.jsとかangular、androidとかでも普通に使うし
そっちは実装コストもかからん
880デフォルトの名無しさん
2023/09/02(土) 05:21:08.01ID:6VujaKd3 android studioはwindows formのポトベタと同じ感覚なんだが?
881デフォルトの名無しさん
2023/09/02(土) 08:18:23.73ID:Fau+Wvgs >>877
モニターアプリでは良くやるよ。
化学プラントの製品毎の画面やライン管理の製品毎の32~4096接点モニターとかね。
モニターと非常停止等の共通アクション画面なら流用する。
ただし、Viewのビハンイドコードトリミングは必要。
それらを再利用というには微妙だな。 VMはペアで消費するものと考えるのが普通。
再利用というのはロジックの再利用を言うのが一般的じゃね?
モニターアプリでは良くやるよ。
化学プラントの製品毎の画面やライン管理の製品毎の32~4096接点モニターとかね。
モニターと非常停止等の共通アクション画面なら流用する。
ただし、Viewのビハンイドコードトリミングは必要。
それらを再利用というには微妙だな。 VMはペアで消費するものと考えるのが普通。
再利用というのはロジックの再利用を言うのが一般的じゃね?
882デフォルトの名無しさん
2023/09/02(土) 09:33:36.47ID:fwdoqn2z 結局VMに何らかの描画以外のロジックを書いてる人が多いんだろうなと
mvvm原理主義者じゃなければ別に好きなようにしたらいいんだが
WPFは結局どのように実装すべきなのかハッキリとしたパターンが確立されなかった
これが一番の問題だった
明確に役割分担してオブジェクトの生死を適切に管理してる人間がどれだけいるのか
mvvm原理主義者じゃなければ別に好きなようにしたらいいんだが
WPFは結局どのように実装すべきなのかハッキリとしたパターンが確立されなかった
これが一番の問題だった
明確に役割分担してオブジェクトの生死を適切に管理してる人間がどれだけいるのか
883デフォルトの名無しさん
2023/09/02(土) 09:49:03.02ID:fOS98KnE884デフォルトの名無しさん
2023/09/02(土) 10:06:25.37ID:fwdoqn2z 状態と言う意味が通じていないので話をしても無駄
v vm mでそれぞれ状態は持ってる
普通はmの状態のことを話すんだけど双方の話がかみ合っていない
v vm mでそれぞれ状態は持ってる
普通はmの状態のことを話すんだけど双方の話がかみ合っていない
885デフォルトの名無しさん
2023/09/02(土) 10:12:13.25ID:fwdoqn2z 本来はMと全層から利用されるビジネスロジックが主体なんだけど
vmでガッツリロジックなり制御なりのコード書いてる人が多い
そういう人から見るとvmは状態を持っていると言う主張になる
vmでガッツリロジックなり制御なりのコード書いてる人が多い
そういう人から見るとvmは状態を持っていると言う主張になる
886デフォルトの名無しさん
2023/09/02(土) 10:21:43.71ID:Fau+Wvgs >>882
だね。
ViewModelはインスタンスプールの場という認識が無いとそうなるね。
Bitmap加工にしても、ロジックは別の層に置くもの。
ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。
だね。
ViewModelはインスタンスプールの場という認識が無いとそうなるね。
Bitmap加工にしても、ロジックは別の層に置くもの。
ロジックはDomain層、ドライバーはInfrastructure層でカキコしておけば再利用というスタイルの本筋が見えてくる。
887デフォルトの名無しさん
2023/09/02(土) 10:42:05.01ID:ePvjWEyO wikipediaだとこうだな。VMはVが表示すべき状態を保持するというのが普通の理解だと思う。
ViewModel
ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに
伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。
ViewModel
ViewModel(ビューモデル)はViewを描画するための状態の保持と、Viewから受け取った入力を適切な形に変換してModelに
伝達する役目を持つ。すなわちViewとModelの間の情報の伝達と、Viewのための状態保持のみを役割とする要素である。
888デフォルトの名無しさん
2023/09/02(土) 10:53:39.97ID:UWvP69T4 という事はバリデーションもvmじゃなくてmでやるの?
889デフォルトの名無しさん
2023/09/02(土) 11:59:17.23ID:+7egXD0v >>887 の定義だとちょっと密に思えてしまうな
https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm
大まかに言うと、ビューはビュー モデルを "認識" し、
ビュー モデルはモデルを "認識" しますが、
モデルはビュー モデルを認識しておらず、
ビュー モデルはビューを認識していません。
したがって、ビュー モデルではビューをモデルから分離させ、
ビューとは独立してモデルを進化させることができます。
https://learn.microsoft.com/ja-jp/dotnet/architecture/maui/mvvm
大まかに言うと、ビューはビュー モデルを "認識" し、
ビュー モデルはモデルを "認識" しますが、
モデルはビュー モデルを認識しておらず、
ビュー モデルはビューを認識していません。
したがって、ビュー モデルではビューをモデルから分離させ、
ビューとは独立してモデルを進化させることができます。
890デフォルトの名無しさん
2023/09/02(土) 12:40:51.82ID:CPf5VJuY 君たち一旦モデルの事はわすれろよ
めちゃくちゃすぎる
めちゃくちゃすぎる
891デフォルトの名無しさん
2023/09/02(土) 13:16:00.96ID:CPf5VJuY892デフォルトの名無しさん
2023/09/02(土) 13:18:09.94ID:fwdoqn2z アプリケーションの真の実態はMなんだから忘れることじゃないな
勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体
VMは表層でしかない
メッセージの仲介所
上で書かれたインスタンスプールでもない
仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ
ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない
VMはMに単純なメッセージ飛ばすのが仕事
勘違いされがちだけどMはデータ置き場でもライブラリでもないアプリケーション本体
VMは表層でしかない
メッセージの仲介所
上で書かれたインスタンスプールでもない
仕事をするにあたりただどこかにあるモデルへの参照を持っているだけ
ModelAとModelBを参照して計算してModelCに入れるのはVMの仕事ではない
VMはMに単純なメッセージ飛ばすのが仕事
893デフォルトの名無しさん
2023/09/02(土) 13:35:29.82ID:CPf5VJuY ロジックを単にロジックと表現したりするとこみると
ロジックをビジネスロジックとプレゼンテーションロジックに分けて
考えてないよね
ここで>>882のじゃあ明確なその区別のルールは?って問題が出てくるが
ロジックをビジネスロジックとプレゼンテーションロジックに分けて
考えてないよね
ここで>>882のじゃあ明確なその区別のルールは?って問題が出てくるが
894デフォルトの名無しさん
2023/09/02(土) 13:44:31.42ID:fwdoqn2z895デフォルトの名無しさん
2023/09/02(土) 13:46:57.02ID:fwdoqn2z あ、vmが状態を持つのはそのように書いたからであってあまり意味はない
適切なのかどうかは知らない
適切なのかどうかは知らない
896デフォルトの名無しさん
2023/09/02(土) 14:04:49.20ID:CPf5VJuY でも>>892の見ると、君完全にFatModelの某riga◯◯氏の主張だよね
897デフォルトの名無しさん
2023/09/02(土) 14:09:38.75ID:fwdoqn2z898デフォルトの名無しさん
2023/09/02(土) 14:19:20.78ID:CPf5VJuY >VMは可能な限り薄くすべきだよ
いやいや、ViewModelは作る画面をモデル化したものだから
それは作る画面次第だから
VM薄くするために要件にまで介入する気なの?
(もちろん、VMに限らずスパッゲッティ排除したりすることはいいことだが)
いやいや、ViewModelは作る画面をモデル化したものだから
それは作る画面次第だから
VM薄くするために要件にまで介入する気なの?
(もちろん、VMに限らずスパッゲッティ排除したりすることはいいことだが)
899デフォルトの名無しさん
2023/09/02(土) 14:32:46.57ID:Opj29vAW >>888
サーバー側でも結局必要になる処理なんで
バリデーション機能を提供するWebAPI定義してそっちでやってる
パフォーマンスもローカルでやるのと変わらん
自分設計の案件は
小計行の合計値など画面に表示されるものほぼ全てサーバー側での計算値だ
サーバー側でも結局必要になる処理なんで
バリデーション機能を提供するWebAPI定義してそっちでやってる
パフォーマンスもローカルでやるのと変わらん
自分設計の案件は
小計行の合計値など画面に表示されるものほぼ全てサーバー側での計算値だ
900デフォルトの名無しさん
2023/09/02(土) 14:40:30.69ID:CPf5VJuY >メッセージの仲介所
>デコボコしてて綺麗にくっつかない場合に間に入るつめも
これが先じゃないんだよ
例えば、学生を扱う時に「Student」クラス作ってNameとかAgeとか
状態持たせて「モデル化」するのと同じように
作る画面を同じように状態抜き出してロジック与えて名前を
付けたものがViewModel
こっちが先
>デコボコしてて綺麗にくっつかない場合に間に入るつめも
これが先じゃないんだよ
例えば、学生を扱う時に「Student」クラス作ってNameとかAgeとか
状態持たせて「モデル化」するのと同じように
作る画面を同じように状態抜き出してロジック与えて名前を
付けたものがViewModel
こっちが先
901デフォルトの名無しさん
2023/09/02(土) 14:48:44.91ID:CPf5VJuY で、ViewModelの実装において画面が複雑なら、ビューモデルに書くプレゼンテーションロジック
が複雑になるし、Modelにドメインロジックの実行を依頼したりする
だから、
>メッセージの仲介所
とか表現が極端すぎる
ViewModelは画面をモデル化したもので、立派に独自のプレゼンテーションステート
やプレゼンテーションロジックも持つ立派な1つのエンティティです
が複雑になるし、Modelにドメインロジックの実行を依頼したりする
だから、
>メッセージの仲介所
とか表現が極端すぎる
ViewModelは画面をモデル化したもので、立派に独自のプレゼンテーションステート
やプレゼンテーションロジックも持つ立派な1つのエンティティです
902デフォルトの名無しさん
2023/09/02(土) 15:38:06.62ID:5BMaIqoW >>900
>作る画面を同じように状態抜き出してロジック与えて名前を
>付けたものがViewModel
作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
言い換えればViewを所与のものとして受け取っているかどうかの違いでは?
それ以外の点はほぼ賛同できる
>作る画面を同じように状態抜き出してロジック与えて名前を
>付けたものがViewModel
作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
言い換えればViewを所与のものとして受け取っているかどうかの違いでは?
それ以外の点はほぼ賛同できる
903デフォルトの名無しさん
2023/09/02(土) 16:13:13.84ID:ePvjWEyO >>902
>作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
アプリケーションの実装はそう考える場合があるかもしれんがMVVMパターンとして
MとVMにそういう関係があることを求めてはいないと思うがな。
>作る画面(View)のもとになるのがModelなのでその過程をどの程度意識しているかどうか
アプリケーションの実装はそう考える場合があるかもしれんがMVVMパターンとして
MとVMにそういう関係があることを求めてはいないと思うがな。
904デフォルトの名無しさん
2023/09/02(土) 16:37:06.13ID:CPf5VJuY905デフォルトの名無しさん
2023/09/02(土) 17:02:01.28ID:fwdoqn2z 自分でロジックブーメラン投げて刺さってるし触れるだけ無駄なんだなと
ヒマつぶしにriga○○が何なのか調べてみたけどわからなかった
更に調べるとかなり前から懐かしのugayaのことをrigayaと言ってる人物がいる
多分この人なんだろう
rigayaと言うのは別人がいてNVEncの作者
ヒマつぶしにriga○○が何なのか調べてみたけどわからなかった
更に調べるとかなり前から懐かしのugayaのことをrigayaと言ってる人物がいる
多分この人なんだろう
rigayaと言うのは別人がいてNVEncの作者
906デフォルトの名無しさん
2023/09/02(土) 17:08:17.47ID:CPf5VJuY907デフォルトの名無しさん
2023/09/02(土) 17:18:55.85ID:fwdoqn2z ロジックブーメラン
908デフォルトの名無しさん
2023/09/02(土) 17:35:30.95ID:CPf5VJuY 何、しつこく
それも謝ってほしいのか?
すみませんでした
それも謝ってほしいのか?
すみませんでした
909デフォルトの名無しさん
2023/09/02(土) 17:45:52.02ID:ePvjWEyO なんの話をしているんだろうと思ったがこれか?
https://ugaya40.hateblo.jp/entry/model-mistake
https://ugaya40.hateblo.jp/entry/model-mistake
910デフォルトの名無しさん
2023/09/02(土) 17:57:45.40ID:CPf5VJuY そうそれ
全部Modelに押し込めってことか?って事で
FatModelって勝手に呼んだけど
完全な正解はないから俺も含めてみんなおれおれMVVMを信じるだけw
全部Modelに押し込めってことか?って事で
FatModelって勝手に呼んだけど
完全な正解はないから俺も含めてみんなおれおれMVVMを信じるだけw
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 青銅聖闘士のパンチは音速←わかる 白銀聖闘士はその数倍←まぁわかる 黄金聖闘士は光速←は?
- 【悲報】ワイの母親、アンチ秋篠宮家だった😨 [279254606]
- ハゲがレジやってるコンビニって
- 4時だから窓から4回ちんこ出した
- クマどもが冬眠拒否
- さわやかって
