[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2ch.scのread.cgiへ]
Update time : 08/19 22:35 / Filesize : 185 KB / Number-of Response : 857
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

MVVMについて語ろう



1 名前:デフォルトの名無しさん mailto:sage [2012/06/06(水) 11:03:33.21 .net]
WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!

461 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 17:05:54.35 .net]
テスト

462 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 20:05:32.67 .net]
行き過ぎたBlend主義。
俺もサービスにするかな。

463 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 22:36:46.09 .net]
VMからのメッセージでアニメーションを開始させたいときなんかにはビヘイビアが便利かも
と思ったけどそんなビューの細かいことをVMで意識するのも本末転倒な気がするな
そこはメッセージとXAMLは直接繋がないと割り切った方がいいのかも

464 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 22:46:23.39 .net]
俺はビヘイビアで済ませたほうが楽かな

465 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 22:52:24.24 .net]
Livet教のMVVM…ドカタMVVM
IoC使うPrism系のMVVM…JavaっぽいMVVM

466 名前:デフォルトの名無しさん mailto:sage [2012/11/15(木) 23:15:07.41 .net]
MVVM Light…光のMVVM

467 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 00:05:50.69 .net]
よく話にでるlivetってライブラリ落としてみたけどクラス名にまでlivetって入ってんのね。
ダサすぎる。

468 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 00:08:09.15 .net]
てゆーか、9割以上がPrismとMVVM light toolkitのパクリコードってのはどうなの?
Ugayaはずいぶんえらそーなことを言ってたがただのパクリライブラリじゃんか。

469 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 06:32:58.08 .net]
そうだなC#はJavaのパクリだもんな

つーかソース見たことはないが本当にパクリなら大問題だしそれならここで言ってないで大々的に批判すればいいんじゃないか



470 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 09:52:41.30 .net]
>>459
見ればわかるがおおざっぱに言えばLivetの独自部分でメソッドキャッシュとT4コンバーターぐらいじゃね?


C#っつーか.NET Frameworkだろ
1.0のころはパクリだったんじゃないの?
実際Javaがなければ今と同じ1.0は生まれてなかった

471 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 10:11:39.47 .net]
なんだコード盗用とかじゃなくて概念の話だったのか

472 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 11:07:14.48 .net]
>>461
>>458はコードと言ってるな

473 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 12:09:36.74 .net]
>>461
綺麗に言えば、車輪の再発明?
ぱくりライブラリと言われても仕方がない代物ではある
何を目的にやってるのか分からないところもあるし

インフラを乱立させたって混乱するだけだし
ドキュメントやサンプル充実させて裾野を広げるってわけでもないし
尾上が自身の狂った思想から少しでもずれてる意見を発見すると
死ぬまで粘着されるしな

尾上は自分が日本での唯一のMVVM啓蒙者になるために
他人がおいそれと語れないようにしてるだけ

完全に癌でしかない

474 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 12:14:26.42 .net]
MVVMの土台として画面遷移は極めて重要だと思うが、そこがいい加減なのはいただけない
同期ダイアログによる遷移のみってWinFormsかよw WinRTじゃそんなもん使えないぞ?

475 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 12:30:02.96 .net]
>>464
MVVMはMSが本気で取り組まない限り無理。
言語、.NET Framework、IDEが三位一体で対応しないと今はまだ欠陥が多すぎる。

476 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 12:38:05.90 .net]
>>465
WPF自体は様々な画面遷移のシナリオを実現するのに十分な機能を備えてるし、
IDEでどうするもんでもないだろう
Prismは画面遷移かなり頑張ってるぞ? というか画面遷移をまともに扱ってるのはPrismだけ。

477 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 13:33:39.79 .net]
U氏に親殺されたやつ多すぎだろ

478 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 14:04:28.46 .net]
>>467
叩かれてる奴に「氏」付けるのは本人だけ
ってだいぶ前に小学生の妹が言ってたよ。

479 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 14:08:17.71 .net]
画面遷移についてはMVVMと絡めてもっと真剣に議論されるべきだと思うぞ?
U氏関係なく。自称MVVMインフラではたいてい完全スルーされてるが(Livetでもおまけ程度)
どうしてもインフラ的なコードを書くことになる部分だし、MVVM使ってるなら画面遷移の設計も
それに強く影響されることになる。



480 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 14:08:19.65 .net]
>>466
> WPF自体は様々な画面遷移のシナリオを実現するのに十分な機能を備えてるし、
WPFの話じゃなくてMVVMな
> IDEでどうするもんでもないだろう
IDEにどれだけ恩恵受けてるかわかってないの?
MVVMだってフレームワークだけではどうにもならないことがある
> Prismは画面遷移かなり頑張ってるぞ? というか画面遷移をまともに扱ってるのはPrismだけ。
Prismがもっと使いやすく標準で.NET Fxに乗らないと無理ってこと

481 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 14:44:14.95 .net]
コードビハインド前提のMVVMフレームワークが出てきたら少しは前進すると思う。
Livetがダメなのは作者がコードビハインド完全否定してることと
>>458が言う通り、既存フレームワークの単なる2番煎じで
MVVMの問題点を克服するものではないから。

コードビハインドいいと思うんだけどな。
うがやのサイト見ていると分業とか書いてるが
Vをデザイナーに別注してるチームってあるのか。
デザイナーとデベロッパーの分業なんて幻想じゃないのかな。
XAMLをフルに理解してるデザイナーなんて一人もいないと思うよ。

482 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 14:57:27.23 .net]
>>471
その点に関してはすでに奴は考え改めてコードビハインドの有無はどうでもよくなってるみたいだぞ

483 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 15:03:53.77 .net]
VMの処理中にユーザの入力を求めたくなった場合とかかね画面遷移は
ぶっちゃけどのライブラリも何かあるたびにクラスやらインターフェイスやら増やさないとならなかったりして面倒だわ
MSはMVVMを推奨するんならASP.NET MVCくらい充実させるべき

484 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 16:41:52.99 .net]
>>473
そういう遷移はビューだけで完結するのでほとんどMVVM関係ない。
ビューの実装の詳細だ。
設計に大きく影響するのはVMごと遷移するやつな。

485 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 17:27:45.79 .net]
具体的な例で言ってくれよ

486 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 17:34:46.35 .net]
例も何も、無理にVMくつけなきゃ 一覧画面 <-> 編集画面 とか大概の画面遷移はVMごと遷移だろ
ダイアログベースならそんなに意識しないだろうけどさ

487 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 17:43:10.77 .net]
それならDataContextにVM突っ込んでもらうだけでよくね

488 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 17:54:24.04 .net]
そのコードをどこに書くのかとかいろいろ問題があるよ
本来、一覧画面VMで 画面遷移しろ("編集ビュー", selectedItemId); だけで済むはずで
一覧画面のVMやVが遷移先の画面のVやVMのクラスを知っている必要は全くないけど
そう書けるようにするためには結局インフラがいるんだよね

489 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 18:03:52.82 .net]
railsのscaffoldみたいにサクッとアプリを作れるようなインフラが欲しい・・・



490 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 19:28:02.12 .net]
>>472
どうでもいいわけないよね?
氏のMVVMサイト見てくれば。

491 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 20:46:12.52 .net]
プロ粘着なら奴のツイッターも観察すべき

492 名前:デフォルトの名無しさん mailto:sage [2012/11/17(土) 23:51:38.42 .net]
>>481
前はフォローしてたんだけどね。
自分とちょっとでも意見が違うと噛みついて粘着のパ

493 名前:^ーンが多すぎて
ずいぶん前にフォロー解除したよ。
あの人ちょっとアスペ入ってるよね。
ちょっとというかかなり。
高卒で会社員経験なし、ってとこで人間の底が知れるわ。
[]
[ここ壊れてます]

494 名前:デフォルトの名無しさん [2012/11/18(日) 00:01:26.49 .net]
と2ちゃんねるで批判するガキwww

495 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:03:44.32 .net]
>>483
ugayaの負けず嫌いもここまで来ると褒めたくなるなw
せっかく社会人になれたんだから2chで自演擁護とかやめたら?wwwww

496 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:09:01.67 .net]
>>484
まともな社会人は多少の煽りには反応しねーんだよ
お前みたいな無職のクズとは違うんだよ
分かったらとっとと寝ろ

497 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:11:32.55 .net]
ugayaは2chの煽りにtwitterやブログでキレまくってたけどなw

498 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:17:22.53 .net]
>>486
いいから早く寝ろよ

499 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:20:54.13 .net]
反応はしてたけど別にキレまくってたってほどじゃなかったろ



500 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 00:24:44.54 .net]
MVPVMの(Uによる)煽りはひどかった

501 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:06:10.42 .net]
お前ら本当に暇なんだな
文句があるなら一度でいいからGoogleの検索トップになってみろよ
U氏のサイトはMVVMで検索すると余裕でトップなんだが

502 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:10:17.68 .net]
そんなんだと宗教に騙されるぞ
U氏も言ってるだろ? 「MVVMだからこうしなければならない」じゃなくて目的を考えろと

503 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:14:55.07 .net]
>>491
自分の考えた最強の目的しか許さず
その目的を達成するにはこうするしかないと決めつける
そこから外れたツイートを見つけると相手が黙るまで粘着ツイート
相手が黙ると「都合が悪くなると無視かよ、これだからクズは困る」的なツイートで〆

尾上さんのそこにシビれる!あこがれるゥ!

504 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:15:09.27 .net]
目的を考えろと言ってる本人が一番権威主義を煽ってる元凶という皮肉

505 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:19:48.67 .net]
尾上を擁護してるのはいったい誰なの?
誰がどう見てもアスペルガーじゃん。

尾上にへこへこ媚び売って家畜に成り下がってる奴って
高野将かぐらばくぐらいなもんだろ?

506 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:40:50.56 .net]
相手を擁護と認定してしまえばどんな誇大を使って過激に叩いても正当化できて安心だもんな

507 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 01:49:36.48 .net]
文句があるなら同じMVVMの土俵で反論すればいいじゃないか。
このスレに持論を垂れ流すだけでも人格攻撃よりはマシだしまともな議論なら歓迎だぞ。
考え方に関してはここはわりとU氏に反発してる人が多いみたいだし(俺もその一人だが)。

508 名前:デフォルトの名無しさん [2012/11/18(日) 07:01:25.21 .net]
MVVMの思想に関してはいい加減多少は理解したから、
そろそろMVVMの実装について語って欲しいなぁ、

509 名前:デフォルトの名無しさん [2012/11/18(日) 07:25:20.92 .net]
とりあえずインフラ使っとけっていう風潮?って
MVVMじゃなくてMVVMライブラリの使い方を憶える事になる
危険性高い気がするのよね。

MVVMインフラが解決しているであろう、
様々な問題を自力で解決できるように成らないと
ほんとうの意味でMVVMやXAML環境を理解したとは言わない気がする。

MVVMの啓蒙者ならそのぐらいまでやってくれないと片手落ちだろって思う。



ところでMVVMインフラってどんな問題を解決してるの?



510 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 13:25:29.40 .net]
コードビハインドのこともそうだしModelの責務の話もそうだけど
言ってることがコロッと変わるのはどうにかならないものなのか

なんか昨日もフォーカス制御をModelでとか唐突に言い始めるわけですよ
それが正しいかどうかは別として
ざんざん大声で他人を罵倒してまで言い続けてたことを

511 名前:
ちょこちょこ小出しでさりげなく路線変更してくる卑怯なところが俺が気に入らないところ
といういか、それがうがやが叩かれる原因じゃね?
[]
[ここ壊れてます]

512 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 15:58:45.35 .net]
>>499
やっぱ大学もいってないし、会社員としての経験もほぼ0でしょ?
どう考えても性格、人格が歪んでるというか問題があるんでしょう。
完全にアスペだよ、アスペ。

513 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 16:01:06.83 .net]
お前アスぺの意味やその性質わからずに罵倒語として使ってるだけだろ

514 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 16:06:22.21 .net]
人格の話は別の板でやれ。

515 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 16:17:28.34 .net]
私怨ならヲチでやれ

516 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 18:51:48.91 .net]
ここって元々WPFスレを正常化するための隔離スレッドだからいいんだよ。
便所の落書きスレッドで。

いやなら見るなw
by 岡村

517 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 18:59:24.39 .net]
まあアスペには違いない

518 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 20:26:20.24 .net]
尾上さんは
「日本でMVVMを正しく語れる人間は自分以外にいないッ!!」
って断言してたしスレ名を「尾上について語ろう」に修正してもよいと考えられる

519 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 20:52:02.11 .net]
ここMVVMやってる奴はキチガイだらけという見本のスレか



520 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 20:58:34.33 .net]
そもそもMVVMって何だよ
ぐぐってもクソみてーなサンプルコード乗せただけの記事しか出てこないしまともに概念を解説してるやついねーのな
コマンド(笑)とか冗長すぎてもうね

521 名前:デフォルトの名無しさん [2012/11/18(日) 21:04:18.24 .net]
わからないならこれでも勉強しろ

JavaScript製のMVVMフレームワーク「Knockout」
www.moongift.jp/2010/11/2010110212/

522 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 22:37:36.36 .net]
>>508
尾上さんのサイト見れば簡単に理解できる。
簡単に言うとPDS的にコードビハインドを記述しないで開発する手法だよ。

523 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 22:40:25.76 .net]
一応言っておくとPDSは一般的な用語じゃないから通じないと思うぞ。

524 名前:デフォルトの名無しさん [2012/11/18(日) 22:41:17.17 .net]
一般的にはフリーソフトで通じる

525 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:36:11.21 .net]
>>511
自分が知らないことは一般的じゃないと考える根拠は何だろうね
自分の無知を晒しているだけと気が付かない人には何を言っても無駄ではあるが、助言だけはしておくかな

526 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:39:05.83 .net]
Wikiにないから一般的じゃないと推定される

527 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:40:30.50 .net]
どこのWikiだよ

528 名前:デフォルトの名無しさん [2012/11/18(日) 23:42:35.17 .net]
PDS
ja.wikipedia.org/wiki/PDS
パブリックドメインソフトウェア(Public domain software)
かつてのドイツの政党である民主社会党(Partei des Demokratischen Sozialismus)。合併し、現在は左翼党 (ドイツ)に。
FTTHにおけるネットワーク構成(ネットワークトポロジー)の一つ。(Passive Double Star)
毛利元貞が考案した護身術パーソナルディフェンスシステムの略。
テレビ番組の制作会社の名称。PDS (制作プロダクション)を参照。
先駆動システム(Pre Driving System)
プラン・ドゥー・シー(Plan Do See) PDCAサイクルを参照。
アップルが採用していた拡張スロット。(Processor Direct Slot)

529 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:44:53.19 .net]
海外
en.wikipedia.org/wiki/PDS



530 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:48:19.69 .net]
>>510
PDSという概念があるよということなら納得できる
ただしPDSという言葉が一般的というのは賛

531 名前:同しかねる []
[ここ壊れてます]

532 名前:デフォルトの名無しさん mailto:sage [2012/11/18(日) 23:51:14.50 .net]
で、そのPDSとMVVMに何の関係が?

533 名前:518 mailto:sage [2012/11/18(日) 23:57:05.51 .net]
MVVMは、XAML系フレームワークにおけるP(resentation層)の問題を解決するもの
その前提としてPとD(omain層)の分離がある

534 名前:518 mailto:sage [2012/11/18(日) 23:59:12.80 .net]
とはいえこれはあくまでパターンであり、絶対の解法ではない
その証拠として、MicrosoftもXAML系コンポーネントベンダーもMVVMを推奨してないという事実がある

535 名前:518 mailto:sage [2012/11/19(月) 00:02:35.76 .net]
WPF・Silverlight・RTの公式ドキュメントで、一ヶ所でもMVVM必須と謳っている箇所があるだろうか?
また国内だとGrapeCity・Infragistics等のベンダーがXAML系コンポーネントを販売している
これらベンダーのマニュアルにも、MVVMを必須・提唱しているドキュメントは全く見当たらない

536 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:07:49.16 .net]
MがちゃんとしててVMはぺらっぺらになるのがMVVMの設計としては理想だからな
Web MVCではいくらぺらっぺらでもC無しというわけにはいかないが
VMがぺらっぺらになっていき、ついに無くなるのは別に問題ない
微妙に矛盾したパターンだよ

537 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:07:57.56 .net]
そりゃ必須なわけがない
MSDNマガジンやChannel9とかで適度に触れられている程度だな

あと「推奨していない」だと非推奨と主張しているように聞こえるから注意だ
「触れていない」あたりでいい

538 名前:518 mailto:sage [2012/11/19(月) 00:08:10.96 .net]
勘違いしてはいけないのは、パターンはあくまでパターンであり、絶対の解法ではないことだ
逆にパターンに振り回されてその本質を見失えば、返って障害が発生する場合もある
MVVMを使わずに開発できるのならそれでよし

539 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:09:31.95 .net]
VMとテスト



540 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:11:53.87 .net]
>>526
MがちゃんとしててMのテストだけで済むならそれに越したことはない

541 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:12:18.51 .net]
>>524
どうかな?
「MVVMが必須」という誤ったイメージが蔓延し過ぎて参入障壁が上がり過ぎると
Microsoftや周辺ベンダーしては返って喜ばしくない事態になると思う
・・・いやすでになっているな

「触れていない」というより、いまとなっては「触れたくない」が正解だと思う

542 名前:518 mailto:sage [2012/11/19(月) 00:15:52.43 .net]
かくいう私はどうかといえばMVVMは割と好きなパターンであるし、
実際これでかなり問題を解決できているのも事実だ
しかし、使えない、理解できない、開発速度が極端に落ちて苦痛に感じるくらいなら、
そこまで無理に使う必要もないと思う

543 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:28:44.37 .net]
VMがわかりにくいのって、CとかPとかと違ってVMにはこれといって
Mとの間に役割の違いが無いことだよ
特定のVとバインドすることを意識して作ったMってだけだからな

544 名前:デフォルトの名無しさん [2012/11/19(月) 00:53:44.94 .net]
なにいってんだ?
ビューの状態を表すモデルデータという
役割があるだろ。

545 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 00:58:48.11 .net]
別に選択状態持つためのMを設けてもいいんだぜ?

546 名前:デフォルトの名無しさん [2012/11/19(月) 01:02:55.31 .net]
それはもはやMではない。

Mの役割としては、GUIアプリではなく
CUIアプリからでも普通に使えるようなものを
目指すべきだ。

そんなGUIに依存した機能を持たせるべきじゃない。

547 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 01:04:56.93 .net]
その選択状態がGUIとしてあらわす際に必要となる選択状態なのか、
そのプログラムの動作自体を構成するにおいて存在する必然性のある選択状態なのかによるね

548 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 01:19:56.04 .net]
画面ごとのVMはいいけど、モデルごとのVMはめんどい

549 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 10:20:32.56 .net]
>>532
GUIの選択状態を維持するためのモデルをViewModelという



550 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 22:03:23.29 .net]
グリッドのボタン付けるときとかの
行ごとにVM作る派と作らない派の比率が知りたい

551 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 22:15:46.48 .net]
行って何の話だよ

552 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 22:20:34.86 .net]
WPFでデータグリッド使ったら負けだろ
それならWinForms使うわ
WPFならテンプレートで作れ

553 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 22:29:30.62 .net]
普通コンボボックスの項目毎VM作るだろ

554 名前:デフォルトの名無しさん mailto:sage [2012/11/19(月) 23:23:02.89 .net]
グリッドって何かと思ったらDataGridのほうか

555 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 13:30:22.35 .net]
>>540
???
コンボボックスにモデルのコレクションをバインドするだけでええやん

556 名前:デフォルトの名無しさん mailto:sage [2012/11/20(火) 13:54:25.91 .net]
HeaderedItemsControlとかをこねくり回すのは常套手段なのか

557 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 11:11:37.09 .net]
考え増やしたいから、
MVVM の各レイヤーの具体的な責務を教えてください

以下、テンプレ

M:
V:
VM:

558 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 11:22:45.65 .net]
>>544
> M:
ビューに関係無いデータ構造など変更部分。いわゆるモデル。UIスレッドと分離されてる事が望ましい。
> V:
ビューの見た目。極力もらったデータを表示したりインプットを上にあげるだけで何もしない。
> VM:
その両者を繋ぐもの。そのビューに関係するコーディネーター。ユニットテストできること。スレッド間の調整をここで吸収。

559 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 11:22:46.45 .net]
Set-Location : ドライブが見つかりません。名前 'M' のドライブが存在しません。



560 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 11:34:44.90 .net]
一番ありそうな間違いは、WebMVCの典型的な間違った使い方のように
M: データ
VM: ロジック
としてしまうことだな
注文画面のMは注文処理クラス。VMはあくまでインターフェイスの差を吸収するだけ。

561 名前:544 mailto:sage [2012/11/28(水) 11:45:53.66 .net]
>>547
まさにこれw

562 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 12:47:28.47 .net]
使う側ならそれでいい

563 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 14:02:32.93 .net]
Mのビジネスロジックがバックエンドに移って
結果的にMがデータだけになることはあるだろうけど
VMから見たら特に関係ない話。VMにビジネスロジックを書いてるわけじゃない。

564 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 21:50:02.31 .net]
プレゼンテーションに関わるものとしてVMに置いとくべきデータやロジックがあるって意見も耳にするけど
自分には区別が難しいので極力Mに持たせるわ。

565 名前:544 mailto:sage [2012/11/28(水) 22:50:19.03 .net]
永続化しないデータとか?

566 名前:デフォルトの名無しさん mailto:sage [2012/11/28(水) 23:14:06.28 .net]
MVVM界隈の話はVMが強調されすぎるきらいがあるよな。
本当はMの方が遥かに重要なのに。どちかか省くなら迷わずM。
VMはMVVMパターンのアイデンティティだから仕方がないけど。

567 名前:553 mailto:sage [2012/11/28(水) 23:14:52.00 .net]
間違えた省くならVM

568 名前:デフォルトの名無しさん mailto:sage [2012/11/29(木) 00:02:45.23 .net]
プレゼンテーションにかかわるものはVに書くんじゃないのか

569 名前:デフォルトの名無しさん mailto:sage [2012/11/30(金) 06:22:26.73 .net]
VMは、抽象的な、表示する「ための」データだな
例えば、VでItemsSourceにバインドして表示する一連のデータのコレクションとか
特定のデータを、手段は特定しないからとにかく強調表示しろ、ということを示すプロパティとか

Vは、具体的な、表示「の仕方」だな
同じVMからでも、同じコレクションを表示させる方法はListBoxだったりDataGridだったり単なるテキストだったり
どんな形で表示するのかはVが決めることでVMは手を出せない
また、強調表示の仕方にしても、単なる色変化だったり太字だったり、その部分だけ無意味にアニメーションさせたり
表示の仕方もVに任せられててVMは手を出せない



570 名前:デフォルトの名無しさん mailto:sage [2012/12/11(火) 16:23:56.96 .net]
VBでペタポトプログラミングしか経験ない奴にパターン教えても一向に概念理解してくれない
ましてMVVMなんか到底無理無理

571 名前:デフォルトの名無しさん mailto:sage [2012/12/11(火) 18:18:42.11 .net]
そんな動けばいいという考えの奴に何をいってもダメだ。
平気でModel部分にフォームやコントロール(UI)のインスタンスを食わそうとし

572 名前:スりするからな。 []
[ここ壊れてます]

573 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 20:12:33.47 .net]
MVVMって従来のASP.NETやWindowsフォームに慣れた人に説明するなら、

V  Aspxファイル/フォーム
VM コードビハインドのcs
M  業務ロジック
と対応してて、従来のASP.NETやWindowsフォームとの大きな違いは、
ViewとViewModelがバインディングを介すると言う制約があるので分離しやすい、
と言う理解なんだけど大体合ってるかな?

574 名前:デフォルトの名無しさん mailto:sage [2013/01/16(水) 22:46:55.45 .net]
全然

575 名前:デフォルトの名無しさん mailto:sage [2013/01/17(木) 23:06:47.49 .net]
大体合ってるみたいですね。
VB6脳なPGとJava/Struts脳なPG、どっちがMVVM覚えるのに向いてますかね?

576 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 08:37:02.03 .net]
>>561
全然違うと言われてんだろ
概念がそもそも違うがそれが分からない人間でも
・コードビハインドは画面と同一クラスだがVMは別クラス
・コードビハインドとViewは一対一だが、View:VMは1:n
・VSでコントロールをダブルクリックしてもコマンドが作られて自動的にバインドされたりしない
・そもそもコードビハインドはコードビハインドで存在するだろ
と、上げ出したらきりが無い
MVVM使うならちゃんとMVVMの概論くらいは理解させないとあとで自分が地獄行きだぞ

577 名前:デフォルトの名無しさん [2013/01/18(金) 09:03:18.93 .net]
的外れな回答()キター

578 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 14:28:02.15 .net]
いまだにVB6脳なんて他のこと何も向いてないだろ

579 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 14:46:29.63 .net]
違うって言われてるのに合ってると受け取っちゃうのはどこにも向いてないな。



580 名前:デフォルトの名無しさん mailto:sage [2013/01/18(金) 17:07:06.64 .net]
全然合ってるかもしれない

581 名前:デフォルトの名無しさん [2013/01/20(日) 07:38:18.01 .net]
559は大体あってるよね?
というより562が間違いすぎw

・コードビハインド(各種イベントで呼び出される関数)は
 手動で設定すれば Viewとは別のクラスにすることは可能だし
・V:VM は 一つのデータを別表現で表示することがあるので V:VM = n:1
・デザイナでダブルクリックしても自動で出来ない
  →細かい処理を行いたければデザイナに任せずに手動で操作するのは当たり前。
・そもそもコードビハインドはコードビハインドで存在するだろ
  →別にイベントで関数呼び出しても、
   CommandやActionのバインディングで関数呼び出してもよくね?
   

582 名前:デフォルトの名無しさん [2013/01/20(日) 07:50:01.85 .net]
そういえば、データバインディングって
ほんの少し MFCのValue変数とDDX_〜 に似てないか?

583 名前:デフォルトの名無しさん mailto:sage [2013/01/20(日) 09:40:48.58 .net]
>>568
ほんの少しな( ´Д`)y━・~~

584 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 07:57:45.76 .net]
@Grabacr07 いままでのオレオレICommandの正しい実装基底クラス

Prismのパクリなのになんでこんなに偉そうなの?

585 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 19:39:17.12 .net]
心底どうでもいい

586 名前:デフォルトの名無しさん mailto:sage [2013/01/22(火) 21:17:29.87 .net]
MVVMライブラリはすべてPrismのパクリだからな
いまさらだろ

587 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 10:23:59.51 .net]
別に偉そうじゃない件について
どれだけコンプレックス感じてんだよw ダッセーやつw ぷげら

588 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 23:38:53.69 .net]
実際やってみたらMVVMではなくWPFやSilverlight固有の部分でかなり躓いた
初見でXAMLを自由自在に扱える奴とかいるのか?

589 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 23:46:59.77 .net]
固有の約束事を理解しないといけないのはWinFormsだってASP.NETだって
PHPとかのWebフレームワークだって一緒だ



590 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:00:26.99 .net]
パネル使ったレイアウトに慣れてないだけじゃね?

591 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:07:18.85 .net]
>>574
ちなみに躓いたのどこら編?

592 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 00:11:58.51 .net]
ControlTemplateとか初見でMSDNだけで使いこなせたら神だわ

593 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 10:43:39.37 .net]
Templateカスタマイズする時点で折れるな

594 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 02:16:53.83 .net]
>>573
別にウガヤが考えたロジックじゃあないのに
まるで自分で考案したような口ぶりが臭いだけじゃろ。
特にcommandのweakeventなんてprismのアイデアそのまんまだし。
++c++やneueと違って.NETやC#(言語)の知識は薄っぺらいのに
ビックマウスだから余計に臭い。

595 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 05:30:37.24 .net]
>>580
詳しくは知らんが咀嚼して自分のライブラリとしてまとめ上げて、それを採用してくれてるとこもあるんだから、口だけ番長のお前より遥かにまし。
リアルでフルボッコにされたの?悔しいのぅ悔しいのぅ。

596 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 07:57:35.12 .net]
奴が自分で考案したみたいなことを言っているのは見たことないが
どの辺で言ってたのか気になるな

597 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 08:22:09.37 .net]
別に好きでも嫌いでもないが、世の中のMVVMフレームワークは全てLivetより下と言ってるように取れる文書ならみた
MVVMが普及しないのは既存のインフラが不十分なせいで、Livetがそれを解決するんだとか
確かアンチMVVMに反論する記事だったかと思う

598 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 08:34:30.68 .net]
現場でMVVMゴリ押しして使ったら大失敗したからアホにも使えるように作ったんだっけ?
部下も可哀想だな

599 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 08:50:43.67 .net]
まあ既存のが不十分なのはあってるな
ただLivetが必要十分かと言うとそうでもない



600 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 09:18:58.54 .net]
Javascriptエンジン組み込んでknockout.jsを逆移植するのがいいと思う
ビューに振る舞いを書けた方がいいのは、それを最初否定してたMVVM自身によって証明されたし
VMも静的言語で書くのは面倒な単純作業すぎる

601 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 09:31:08.32 .net]
ReactiveExtensions絡めて作ってるがすこぶる楽だし見通し良くなってイイよ。
まぁ向き不向き有るかもしれんが。まだ試しで作ってるだけなので後でいろいろはまるのかもしれんけど。
内部の状態遷移など含めて綺麗に落とし込みたいんだけどまだそこまで出来とらん。

602 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 10:26:40.09 .net]
MVVMとリアクティブプログラミングの相性は非常にいいね。

ただ、ReactiveExtensionsは記述が冗長になるので
人にはお勧めできないな。

async,awaitみたいにコンパイラ支援があればいいんだけど。

603 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 10:36:58.35 .net]
>>588
非同期として扱うだけなら冗長になるかもしれんがその以上やるならあんなもんじゃない?どの変が気になる?
F#だとその辺を自分でクエリ構文を定義してよしなに出来なくもないけど。

604 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 12:29:20.69 .net]
MVVMって何ですか?

605 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 12:40:25.22 .net]
wwwwみたいなAAの一種

606 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 12:51:58.26 .net]
>>588
俺は非同期についてはasync,awaitを使ってるから気にしてなくて、
リアクティブプログラミング本来の "関係性を記述する" って部分で冗長性が気になる。

例えば、
int A { get { return B ? C : D.E; } }
って単純な関係性を記述するだけでも、それなりの量になる。

> F#だとその辺を自分でクエリ構文を定義してよしなに出来なくもないけど。
F#の計算式は羨ましいね。

async, awaitがTask<T>を生成するのと同じように、
計算式で ReactiveProperty<T> を生成すると非常にすっきり書ける。

607 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 13:51:35.91 .net]
>>592
> int A { get { return B ? C : D.E; } }
> って単純な関係性を記述するだけでも、それなりの量になる。
自分もまだそこまで突っ込んで触ってないのでなんだが、自分で用途に合わせた複数要素を取れるZipみたいな物とか作らないと記述が冗長になりそうな気はしてる。
Zip重ねてとかでもいいけど見た目的にも身微妙な気がしなくもない。

> 計算式で ReactiveProperty<T> を生成すると非常にすっきり書ける。
その辺でSelectManyとかSwitchで上手く合成出来ると綺麗に書けるんかね( ´Д`)y━・~~

608 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 15:41:47.19 .net]
F#で計算式を使うと言っても、do!やlet!でやるのは
ReactiveProperty<T>からをT型の値を取

609 名前:セすると同時に値の監視を開始するだけだから
C#でも似たようなことはできるけどね。

上の int A { get { return B ? C : D.E; } } の関係性なら

ReactiveProperty<int> A
{
get { return ReactiveProperty.Create(x => x(B) ? x(C) : x(x(D).E)); }
}

と書けるReactiveProperty.Createは実装可能。

逆に言えばF#でも同程度の記述の冗長性は残るという事になる。
[]
[ここ壊れてます]



610 名前:デフォルトの名無しさん mailto:sage [2013/01/29(火) 16:11:47.74 .net]
>>594
自分が言ってるのはQueryExpressionsの方。
使ってる例としてはこんな感じ。
mnajder.blogspot.jp/2011/09/when-reactive-framework-meets-f-30.html
これはクエリ式への直接変換的な感じだけど、望みのクエリ式を追加できるので独自のDSL的に定義できる。

611 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 18:31:22.62 .net]
従来型のほうがいいだろ
誰かさんにプレゼント

優れた言語より流行ってる言語
優れたフレームワークより使われてるフレームワーク

612 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 18:52:28.14 .net]
アプリケーションで、各種バー表示のon/offや配置等の、GUIに関する設定がよくあると思いますが
そういう設定の保存・読み込みロジックはVMでいいんですよね?
MVVMの概念がまだあやふやで確信が持てません。

613 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 18:55:35.45 .net]
一番使われてるフレームワークが一番、ってのなら、
一番のラーメンはインスタントラーメンだぜ?

614 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:04:13.88 .net]
Haskell大流行だもんな

615 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 19:13:05.88 .net]
>>598
フレームワークとラーメンとが置換可能であることを証明できれば完璧だな。
イグノーベル賞がんばれよ。

616 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:13:22.03 .net]
COBOL最高だろうが

617 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:49:05.37 .net]
>>597
Vでしょ
というかそういう作り込みが必要な画面にMVVMを適用するのは不適切だと思うよ。
大してメリットがなく面倒なだけ。使うならダイアログとかで使う。

618 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 20:55:18.66 .net]
メニューとか(共有の)ツールバーとかウィンドウ制御のようなシェル的な部分に
MVVMを適用しようと考えてはいけない
そういうのはインフラとしてMVVMの枠外で実装して、その中で扱うドキュメントには
必要に応じてMVVM適用するのがスマート

619 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:12:56.62 .net]
あくまでVの都合だしな
MVVMは本体処理とUIの組み合わせ方のパターンでしかないので、ウィンドウのサイズ保存とかはロジックとは無関係



620 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:13:53.89 .net]
>>602
え?Modelじゃないの?
煽りじゃなくて、真面目な質問です

621 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:14:56.02 .net]
あぁ、確かにビジネスロジックではないのか

622 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:45:08.78 .net]
あえてシェルにMVVMを適用するんならMだろうな
どちらにしろGUIに閉じた話であって、ビジネスロジックの世界とは分けて考えるべき

623 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:47:03.45 .net]
>>597
VMで正しいよ。

ビューモデルというのは、ドメインモデルとビューとのギャップを埋めるラッパーの役割をするもので、
まさに>>597のようなビュー固有のデータを扱うのに適している。

Vに置くのは(少なくともこのスレにおいては)間違いだから>>602は気にしなくていい。

624 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 22:56:21.08 .net]
>>608
それこそビジネスロジックとUIがごっちゃになってね?
もともとビジネスロジックから見たらVの実装の詳細にすぎないことで、
それが少々複雑になるからMVVM適用しようってんなら
GUIの設定情報を持つためのMを使うのが適切だと思うよ

625 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:00:06.22 .net]
アプリケーションモデルというやつですか。

626 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:07:07.58 .net]
そもそもそんなロジックに直接関係なくてGUIに閉じた混みいった制御と
金,人間,住所,データベース,入力フォーム云々

627 名前:を一緒にして扱うのがおかしい
そこ明確に分けるのが一番大事だろ
[]
[ここ壊れてます]

628 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:19:21.22 .net]
そんなめんどくさいことせんでも、VBで画面にぽちぽちボタンとか張って、
ダブルクリックしてイベント追加したら、その中に全部処理書けばええやろww

629 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:22:23.10 .net]
PrismだとShellに対してVとVMがあって、ShellのVMのプロパティに
入力画面とかのVM渡して、ShellのVの中でその画面開いて、ツールバーなども
Shellが管理するようになってたはず。サンプルではShellに対するMは無かったけど、
ツールバーの細かい設定入れるとしたら当然この設計ではShellのMになるよね。
ShellのVMが本当に必要かどうかはかなり怪しいが。



630 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:22:30.14 .net]
>>609
ビジネスロジックというのを定形的に捉えすぎてね?
アプリケーションシェルと言った物の実装も対象が違うだけでビジネスロジックの実装と変わらんだろ。
MVVMはロジックとビューをブリッジ介して分離する仕組みでその対象がシェルでも構わんと思うけどね。
他の実装がしやすいなら無理に適応する必要はないけど。

631 名前:デフォルトの名無しさん mailto:sage [2013/01/30(水) 23:26:54.51 .net]
>>609
ドメインモデル(ビジネスモデル)からはビューモデルに対して一切関知することはなく、完全に独立している。
ビューモデルからはドメインモデルを(継承やコンポジションなどの形で)参照することになるが、
当然ながらドメインの詳細には立ち入らないため、ごっちゃになることはない。

> GUIの設定情報を持つためのMを使うのが適切だと思うよ
ここではモデル(M)をドメインモデルとビューモデルとに明確に区別しているわけで、このGUIの設定情報と
いうのがまさに表示のためのモデルであり、ビューモデルだと>>608で書いたつもり。

なんか噛み合ってないかな?

632 名前:609 mailto:sage [2013/01/30(水) 23:32:29.95 .net]
>>614-615
うん。だからシェルの抽象化がVMだしシェルのロジックやデータがMとするなら
Mじゃないかってことが言いたかった。省くならVMを省くべきじゃない?
バインディングもあんまり役に立たなそうだし。

633 名前:デフォルトの名無しさん mailto:sage [2013/02/04(月) 00:54:01.35 .net]
ViewModelHelper.ReadOnlyDispatcherCollectionのソース見てるんだけど
Dispatcher経由でViewModelのDisposeしなくていいの?

634 名前:デフォルトの名無しさん mailto:sage [2013/02/04(月) 02:17:34.63 .net]
WeakReferenceがなんとか

635 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 00:41:05.78 .net]
だからコードビハインドのあるなしとMVVMに何の関連もないと何度言ったら。。。最近コードビハインド付のMVVMしかしてない


おがやさん以前は、コードビハインドはMVVMの癌、肯定してる人は糞みたいなニュアンスのこと言ってませんでしたっけ?
この人若年性健忘症なのかな?

636 名前:デフォルトの名無しさん [2013/02/12(火) 00:45:23.42 .net]
そーとー昔じゃないかな?それ

637 名前:デフォルトの名無しさん mailto:sage [2013/02/12(火) 00:59:57.57 .net]
いくら昔でも180度真反対に勘違いするほどの痴呆症を患った高齢の方には見えなかったもので。

638 名前:デフォルトの名無しさん mailto:sage [2013/02/15(金) 08:39:40.77 .net]
>>621
ようするにやせ我慢だったと。そういう事です。

コードビハインドなんて所詮MS界隈でしか使われないローカル技術仕様の用語に過ぎず
モデル云々を語る抽象的な概念にはほど遠い。
単に趣味と程度の問題を高尚っぽく語りたい人が散見されるだけ。

639 名前:デフォルトの名無しさん [2013/02/16(土) 04:51:33.73 .net]
>>622
MS以外でも使われてるだろ
もっと幅広い知識を持たないといかんよ。



640 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 06:51:52.98 .net]


641 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 10:39:51.16 .net]
MS以外のコードビハインドkwsk!

642 名前:デフォルトの名無しさん [2013/02/16(土) 11:09:58.98 .net]
>>625
knockout.js

643 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 15:33:08.84 .net]
なんかデータバインディング持っているフレームワークなら何でもコードビハインドだとでも
言いたそうな勢いだなw

UIの画面設計の宣言的定義とUIロジックの手続き的記述を分けて書けるフレームワークなんて
MS以外にもいくらでも

644 名前:るし、データバインディングもそのための定番手法の一つではあるが
knockout.js含めて「コードビハインド」という用語がMS関連以外の文脈で使われることなんて
ほとんどね〜よ。手続き的記述の部分をMSが独自にそう呼んでいるだけの話。
[]
[ここ壊れてます]

645 名前:デフォルトの名無しさん mailto:sage [2013/02/16(土) 15:44:41.67 .net]
日本語だと分離コードになるのか。
確かにMS関連しかその言葉聞かないし、ぐぐってもMS関連しか出てこない

646 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 01:32:44.57 .net]
似たようなものだと、コードビハインドという単語ではないけどJSFの管理ビーンとか似た雰囲気

647 名前:デフォルトの名無しさん mailto:sage [2013/02/19(火) 08:22:24.77 .net]
Adobe FlexのMXML+ActionScript3がかなり似ているというか洗練されていると思う。
MXMLでのV定義は単純にAS3でのクラス定義の別記法なので、AS3でのクラス定義と
同様に実装するinterfaceを指定出来る。VMにもinterfaceを定義してあげればVとVMが
互いの実装を知らずにinterfaceだけを通してやり取りが出来る。
VMのinterfaceの先頭にBindableとアノテーションをつければ勝手にgetter・settetが
バインド可能になるのでデータバインディングでVMの値をVにはり付けるのも簡単。

648 名前:デフォルトの名無しさん mailto:sage [2013/03/03(日) 08:33:04.94 .net]
やっぱダイアログや画面遷移はView Serviceにするのが好きだな。

649 名前:デフォルトの名無しさん mailto:sage [2013/03/03(日) 10:12:08.72 .net]
同意
共通に使えるものにメッセージ使うのはアンチパターン
というかメッセージいらない



650 名前:デフォルトの名無しさん mailto:sage [2013/03/07(木) 11:13:30.47 .net]
MVVMの意図するところはこんな認識で合ってる?
・V<->VM の依存関係はバインディングに任せましょ
・VM はデータの加工と操作 (コマンド) の提供に専念しましょ

651 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 07:15:19.68 .net]
大雑把にはあってるんじゃないか

652 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 19:14:13.47 .net]
MとV&VMを別プロジェクトにして問題ある?

653 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 19:48:12.38 .net]
>>635
ないって言うかむしろしろ(´・ω・`) 

654 名前:デフォルトの名無しさん mailto:sage [2013/03/09(土) 19:48:13.70 .net]
よっぽど小規模でない限り分けるだろ

655 名前:デフォルトの名無しさん mailto:sage [2013/03/22(金) 14:44:16.04 .net]
開幕迎える前にグッバイ・モーガンになるんか?

656 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 12:24:22.90 .net]
livet 詳しい人いたら教えてくれ。

ttps://github.com/karno/Mystique/blob/master/Mystique/Views/Dialogs/SettingSub/ColoringConfig.xaml

ここの200行あたりにある感じで、ConfirmationDialogInteractionMessageAction を使う、MenuItem を作った。
でもこの方法だと、MenuItem の IsEnabled に ListenerCommand の CanXXXX が反映されない。
IsEnabled に反映させるにはどうしたらいいんだろうか?

657 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 13:51:12.65 .net]
MenuItemに直接アクション持たせてIsEnabled管理も別プロパティでやるか、
CommandのCan〜状態更新の際CommandのRaiseCanExecuteChangedを呼ぶ

658 名前:639 mailto:sage [2013/04/01(月) 19:20:38.99 .net]
せっかく教えてもらったが、いってることがわからんズラ
「MenuItemに直接アクション持たせて」とはどのようすればいいんだろうか?
サンプルのサイトがあったら張ってもらえないだろうか。

「CommandのCan〜状態更新の際CommandのRaiseCanExecuteChangedを呼ぶ」
これをやるためには、MenuItem の Command にバインディングする必要があるだろうが、ダイアログの表示はコード・ビハインドでやるという理解でよいでしょうか?

質問ばかりですまんです。

659 名前:デフォルトの名無しさん mailto:sage [2013/04/01(月) 19:58:53.84 .net]
MenuItemのIsEnabledにコマンドの可否状態が反映されないって言うからMenuItemにコマンドはバインドした状態で反映されないって言ってるんじゃなかったの?
それともコマンドをMenuItemにバインドせずにMenuItemに反映されないって言ってるの?

ダイアログの表示ならコマンドで叩かれたVMからVへメッセージ飛ばしてやるんだろ
そのために確認用のトリガとアクション書いたんじゃないのか



660 名前:639 mailto:sage [2013/04/01(月) 23:25:33.35 .net]
質問の仕方がまずかったかな。

IsEnabled と具体的なプロパティを書くのではなくて、
MenuItem の活性・不活性に CanXXXX が反映されない
と書けばよかった。

コードはリンク先に書いてあるのとほとんど同じ。
"Interaction.Triggers"に設定していあるのであって、
MenuItem の Command にはバインドされてない。

質問をかえれば、リンク先のようなコードを書いたが、
これでは SetDefaultColorCommand の CanSetDefaultColor
が MenuItem の状態(活性・不活性)に反映されません。
どうしたらいいでしょうか?
って感じです。

661 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 01:20:28.31 .net]
>>643
MenuItemはLivetのメッセージ機構なんて知らないし
DirectInteractionMessageにもコマンドの状態を反映させる仕組みは無いから
自分でやらなきゃならんだろうな。

VMにプロパティを用意してIsEnabledにバインドするとか
コマンドの状態をIsEnabledに反映させるBehaviorでも書けば?

662 名前:デフォルトの名無しさん mailto:sage [2013/04/02(火) 13:33:43.91 .net]
LivetのCommandにはCanExecuteプロパティあるからIsEnabledにそれをバインドするのがいいだろう

663 名前:639 mailto:sage [2013/04/02(火) 21:29:50.11 .net]
>>645
ありがとう。できた。
シンプルな解決策だね。

664 名前:デフォルトの名無しさん mailto:sage [2013/04/05(金) 08:36:23.77 .net]
Livetの0.98辺りの時に書いてたソースコード、
今のバージョンだとそのまま使えないんだな…
DispatcherCollectionとかWindowMessageActionとか、
コンストラクタに渡せるパラメータの型とか順番とか、すっかり変わっちゃってる

665 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 17:23:05.27 .net]
Livet .NET4.5で、読み取り専用のスレッドセーフなコレクションをModelに持たせたいんですけど
ObservableSynchronizedCollectionをラップするクラスを自作するしかありませんか?

666 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 19:50:30.83 .net]
MVVMだのスレッドセーフだの言う前にマルチスレッドをちゃんと理解しろよ
読み取り専用ならスレッドセーフだからReadOnlyCollection<T>でいい

667 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 20:35:10.02 .net]
読取専用のコレクションは変更されないわけじゃないぞ

668 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 20:47:02.14 .net]
さすがにそれは無理があるだろ…
それに、随時少しずつ変更されるんじゃなくて時々ゴソっと入れ替わるだけなら
Observable*使わなくてもコレクションごと差し替えてしまえばいい

669 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:01:42.99 .net]
っていうか作法的には>>651のやり方の方が正しく「スレッドセーフ」だと思う
Observable*使うと、連続してコレクションを変更するときに変更途中の変な状態が晒されちゃうよ
決してObservableSynchronizedCollectionなら解決するという問題ではなく



670 名前:デフォルトの名無しさん mailto:sage [2013/04/08(月) 21:35:22.96 .net]
一括で変化させるのではなく、逐一反映させたいのです。
その為読み取り専用ラッパもINotify〜でないといけません。

671 名前:デフォルトの名無しさん mailto:sage [2013/04/11(木) 14:22:53.29 .net]
Livetプロジェクトを作った時にできるInfrastructureAssembliesフォルダは何のためにあるの?

672 名前:654 [2013/04/11(木) 14:37:04.33 .net]
すいません。必要なDLLとクイックヒントのXMLっぽい事は分かりました。
でもLivet.Design.dllが何の役割があるのか分かりません。

673 名前:デフォルトの名無しさん mailto:sage [2013/04/13(土) 02:18:05.29 .net]
>>648
ReadOnlyObservableCollection

674 名前:デフォルトの名無しさん mailto:sage [2013/04/15(月) 14:41:24.53 .net]
昔の0.9xのLivetで開発してたもので、画面描画が完了したタイミングでアニメーション開始させるために

DispatcherHelper.BeginInvoke(action, DispatcherPriority.Render);

みたいに書いてたのがあるんだけど(actionはアニメーション開始させる処理)、
今のLivetだと「BeginInvokeは古い形式です」とかいう警告になってしまう。

まぁ、警告だからコンパイルできるし実行もできるんだけど…
警告出ない、古くない形式ってどう書けばいいんだろう?

675 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 00:44:11.22 .net]
UIDispatcherプロパティからBeginInvokeだったと思う。

676 名前:デフォルトの名無しさん mailto:sage [2013/04/16(火) 07:45:34.55 .net]
>>658


677 名前:
それでOKみたいですね どうもでした

0.9xと1.xで、結構変わってるとこ多いですねー
[]
[ここ壊れてます]

678 名前:デフォルトの名無しさん mailto:sage [2013/05/02(木) 16:37:49.02 .net]
MVVMでの非同期処理をする場合について質問なんですが

MはUIスレッドを意識せずプロパティやコレクションを変更し
それを監視してるVMが適宜UIスレッドにディスパッチする

という感じでするのでしょうか?

679 名前:デフォルトの名無しさん mailto:sage [2013/05/02(木) 17:18:30.55 .net]
UIスレッドというものはView側の都合だからそんな感じだな
VかVMあたりだろう



680 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 13:29:53.61 .net]
Livetの公式ページが404 File Not Foundになってる…

681 名前:デフォルトの名無しさん mailto:sage [2013/05/08(水) 14:57:34.62 .net]
よくあること

682 名前:デフォルトの名無しさん mailto:sage [2013/05/10(金) 06:05:27.27 .net]
よくあるのか
たまにしか見に行かないから、この1年半くらいで初めてだった
そのうち直るのかな

683 名前:デフォルトの名無しさん mailto:sage [2013/05/14(火) 17:27:08.94 .net]
@merancronと@ugaya40のサイレントバトルがかなり面白い

684 名前:デフォルトの名無しさん mailto:sage [2013/05/17(金) 06:09:53.49 .net]
Livetのページ、1週間以上経ってもまだ404 File Not Foundなんだが閉鎖しちゃった?
それとも移転したのか?
閉鎖にしても移転にしても何かその旨書いといて欲しい
しかしユーザー困るな

685 名前:デフォルトの名無しさん mailto:sage [2013/05/17(金) 14:40:36.69 .net]
>>666
たぶんサーバーの料金払ってないだけ

686 名前:デフォルトの名無しさん [2013/05/17(金) 15:27:29.29 .net]
MVPなんだからAzureの無料枠ぐらいもらってるだろうに……

687 名前:デフォルトの名無しさん [2013/05/17(金) 19:00:21.91 .net]
や ら な い か

688 名前:デフォルトの名無しさん [2013/05/17(金) 19:07:32.07 ID:NuBHhb8n!.net]
kon

689 名前:デフォルトの名無しさん [2013/06/24(月) 11:30:16.12 .net]
Uにリムーブされていることに気がついたw
まあ、ちょくちょく揉めてたからなw



690 名前:デフォルトの名無しさん mailto:sage [2013/10/03(木) 15:35:02.10 .net]
Vにバインドしたコマンドの内部で非同期操作を呼び出したときのお作法ってあるんですかね?

691 名前:デフォルトの名無しさん [2013/10/03(木) 16:40:34.53 .net]
俺は気にしてないが、VMでは特に気にしなくていいんでね?

692 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 22:24:40.50 .net]
>>672
同じコマンドを複数回読んだ場合、場合によっては順序が変わる可能性あるからその辺に注意ぐらいかのー

693 名前:デフォルトの名無しさん mailto:sage [2013/10/10(木) 23:00:23.03 .net]
いい加減日本語の書籍を出してほしい。

694 名前:デフォルトの名無しさん mailto:sage [2013/10/14(月) 23:43:00.78 .net]
ModelがINotifyPropertyChangedを実装する理由は
Mを操作した結果、プロパティが変化したことを通知する
という理解でいいですか?

695 名前:デフォルトの名無しさん mailto:sage [2013/10/15(火) 12:36:49.83 .net]
OK

696 名前:デフォルトの名無しさん mailto:sage [2013/10/16(水) 15:35:26.82 .net]
>>676
OnPropertyChanged で渡すプロパティ名が間違っていると View への通知が
正しく行われない。当たり前の話だけど、この種のつまらないトラブルが
多いから注意してね。

697 名前:デフォルトの名無しさん mailto:sage [2013/11/14(木) 23:01:29.82 .net]
>>394
ちょっと前の書き込みだけど、フォルダ分けみんなどうやってるかが気になる。
やっぱ、View/ViewModel/Modelって分けてるのかな?
なんか、画面が大量にある場合とかに、V/VMのクラスが大量にできて、対応するV/VMのペアが、IDEから辿りにくいんだよなぁ。。
V/VMがたくさんあるような時って、機能とかグループごとにサブフォルダでまとめた方がいいのかな。
こんな風に、、
・グループ1フォルダ
 ・View
  ここにグループ1のViewを複数入れる
 ・ViewModel
  ここにグループ2のViewModelを複数入れる
・グループ2フォルダ
 ・View
 ・ViewModel

698 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 07:23:33.44 .net]
俺も最初に参考にしたサンプルが
View/ViewModel/Model みたいにフォルダ作ってたので
それに倣ってそんな感じにしたけど、サンプル程度のクラス数ならいいんだけど
数が2桁くらいになってくるといまいちだよね。サブフォルダまで作っても。
むしろ、特定の機能のフォルダ作っちゃって、そこに
それに関連したView/ViewModel/Modelをセットで入れる、みたいなのも
逆にそこ

699 名前:セけで完結しないで複数にまたがるのが分類しにくかったり。 []
[ここ壊れてます]



700 名前:デフォルトの名無しさん [2013/11/15(金) 13:19:46.47 .net]
>>680
俺もそれが妥当と思う

701 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 14:20:43.75 .net]
少なくともView内は分けない方がいいと思う

702 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 14:31:37.31 .net]
昔はフォルダで分けてたけど、今はこんな感じ↓

  ソリューション
    - ModelLayerプロジェクト
    - ViewModelLayerプロジェクト
    - ViewLayerプロジェクト
    - UnitTestプロジェクト
    - Commonプロジェクト

703 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 14:38:30.55 .net]
書き忘れたけどもう一つ、ソリューション名と同名のプロジェクトが有るな
(仮にMainプロジェクト)

MainプロジェクトとUnitTestプロジェクトは、アプリケーションプロジェクトで
V/VM/M及びCommonプロジェクトは、クラスライブラリプロジェクト

704 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 18:56:17.04 .net]
C#の場合自動生成される名前空間にフォルダ階層が付加される仕様がこういう場合鬱陶しい

705 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 19:45:58.66 .net]
複数の機能(サブシステム)から構成されるようなアプリなら、俺も680派。
「レイヤ」よりも「機能」の方が凝集度高いんだし。
1機能内でもまだ画面が多いようなら、/機能/の下にView/ViewModelとかを作っても良いけど。
そこまででなければ、少なくともViewとViewModelはセットで。
Modelは、機能固有のものならセットにしても良いけど、だいたいはアプリケーションレベルで
考えるものな気もするので、別配置。

706 名前:デフォルトの名無しさん mailto:sage [2013/11/15(金) 23:49:30.50 .net]
ModelはともかくViewとVMは一対一で対応してること多いからなあ

707 名前:デフォルトの名無しさん mailto:sage [2013/11/16(土) 04:31:20.31 .net]
Modelはフォルダどころか別プロジェクトだろ

708 名前:679 mailto:sage [2013/11/17(日) 16:07:31.49 .net]
>>680,686
機能ごとに分けて、そのフォルダの中にV/VMを突っ込むのよさそうだね。
VとVMは一緒にいじること多くて、近くに置いておきたいし。

ありがとう!!
すごく参考になった。

709 名前:デフォルトの名無しさん mailto:sage [2013/11/17(日) 16:51:12.93 .net]
VMが扱うモデルは1つとは限らないわけで、そういうのは無理があると思うけどね



710 名前:デフォルトの名無しさん mailto:sage [2013/11/18(月) 10:21:42.10 .net]
ん?

711 名前:デフォルトの名無しさん mailto:sage [2013/11/19(火) 23:38:23.24 .net]
>>690
機能単位でまとめるのはVとVMまでにして、モデルは別フォルダとか別プロジェクトにまとめる、でいいんんじゃないかな?

712 名前:デフォルトの名無しさん mailto:sage [2014/01/13(月) 13:39:58.61 .net]
Mの設計にいまいち確信が持てないんだけど
例えばChromeみたいなタブブラウザを作る場合、開いてるページのコレクションはMで持つの?

713 名前:デフォルトの名無しさん [2014/01/13(月) 18:47:34.47 .net]
>>693
MVVMはそんなに厳密に考えんでいいと思うけどね。
VMをVIEWを軽くするためのロジック移し場所ぐらいに考えてモデルを分ける必要あるなら作ると。そのモデルは一つでも複数でもいい。
Chromeの例なら自分なら開いてるタブやその他の状態を持つアクター一個作るかな。

714 名前:デフォルトの名無しさん mailto:sage [2014/01/14(火) 13:13:51.65 .net]
MVVMの設計に関しては、
まずアプリケーションをVとMに分ける。
次にVをVとVMに分ける
くらいの考えでいいと思う

715 名前:デフォルトの名無しさん mailto:sage [2014/01/15(水) 10:21:03.85 .net]
今はMVVMPCEARELS

716 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 07:59:10.50 .net]
test

717 名前:デフォルトの名無しさん mailto:sage [2014/03/05(水) 16:17:16.97 .net]
普及している感じがしない

718 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 17:04:41.75 ID:Vv+C9W3P.net]
>>699のような手合いは一度ふぁうらー先生の本でも読んだらいいよ
関心事の分離とフレームワーク依存がわかってない

719 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 20:57:52.43 ID:PPVaI37M.net]
PoEAAは読んでるけど、どこがわかってないのかわからないので、教えてくれ。



720 名前:デフォルトの名無しさん mailto:sage [2014/05/20(火) 22:25:34.65 ID:9K9vHtgJ.net]
>>699
今迄一度もViewでこのデータが必要だからここに持たそうとかやったことのないものだけが石を投げなさい(。-_-。)

721 名前:デフォルトの名無しさん mailto:sage [2014/05/21(水) 21:50:13.56 ID:v99ZJ6SN.net]
>>699
マジでなにがどうわかってないんだか教えて欲しいんだがな。

722 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 07:24:21.57 ID:mY7MwSDJ.net]
PoEAAのMVCの説明って意味不明だよな

723 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 11:25:59.93 ID:EWfyg3GH.net]
>>702
[ModelがViewを意識]と[Modelの責務]は次元の異なる問題ではないだろうか

724 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 11:26:58.12 ID:EWfyg3GH.net]
>>703
翻訳文が意味不明なんだろうな

725 名前:デフォルトの名無しさん [2014/05/23(金) 13:12:25.80 ID:3xLYWpXM.net]
>>704
だからモデルの債務になるものでビューのことを一切意識しないで扱えるものがどんだけあんだよ。
ビューでこういう使い方するからこういう風に元のデータは持とうとかいちどもやったことないの?

726 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 13:57:11.39 ID:EWfyg3GH.net]
>>706
それはModelのデザインの話であって、責務とは別の話だろうよ
デザインと責務がごっちゃになってない?
いすれにせよ>>699の非難は的外れだけどね

727 名前:デフォルトの名無しさん mailto:sage [2014/05/23(金) 14:02:08.57 ID:EWfyg3GH.net]
大きな切り口としてアプリケーションをプレゼン層とドメイン層に分ける
プレゼン層=ビュー、ドメイン層=モデルだから当然責務は違う
しかし>>706のいうとおり、モデルがビューの使い方を意識した設計になるのは
開発の都合上当然の話だと思うな

728 名前:デフォルトの名無しさん mailto:sage [2015/02/26(木) 21:33:45.94 ID:cT7tYUid.net]
ReactiveProperty良さげなんだけど使ってる人います?
週末にでも遊んでみよう。

729 名前:デフォルトの名無しさん mailto:sage [2015/09/25(金) 15:22:24.80 ID:kx8P/2+s.net]
Livet1.3キタ



730 名前:デフォルトの名無しさん [2015/10/21(水) 22:31:30.80 ID:4/KXy1nx.net]
WPF MVVMでアプリ作ってる人いるんだろうかと思えるくらい過疎っぷりだな
ほんと情報少なくて困ってる

731 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 01:36:32.77 ID:5QLmtDbA.net]
こんなスレあったのか。今まで気が付かなかった。
MVVMは机上の空論っていうか筋が悪いの一言に尽きると思う。
これは過去にオブジェクト指向が攻撃されたような批判者の理解不足に基づく誤解では必ずしもない。

732 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 11:01:27.71 ID:T+i/NslY.net]
とオブジェクト指向の時にも同じようなことを言っていた人はいた。

733 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 12:13:21.98 ID:dfQe7r4R.net]
>>712
具体的にはMVVMのどこらへんが実情に即していない机上の空論で、筋の悪さなの?
可能であれば、古典的MVCやMVPとの比較も交えながら論じてみてほしい。

734 名前:デフォルトの名無しさん mailto:sage [2015/10/22(木) 13:13:45.09 ID:522gqyPw.net]
>>713
オブジェクト指向は筋が悪かったからな

735 名前:デフォルトの名無しさん mailto:sage [2016/01/20(水) 23:45:57.28 ID:xrqpD1Un.net]
結局どんな設計がいいの?
Rxに傾倒したけど、上手く使いこなせてない

736 名前:デフォルトの名無しさん [2016/05/01(日) 15:54:23.24 ID:tKi6j9CT.net]
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません


737 名前:デフォルトの名無しさん mailto:sage [2016/05/01(日) 22:27:00.95 ID:VrD9Va1p.net]
>>716
fluxとかかな。まだよく分かっていないけど。
状態を一箇所に集約する

738 名前:デフォルトの名無しさん mailto:sage [2016/05/03(火) 11:18:03.92 ID:uB7yk5jG.net]
fluxのデータフロー見てたらApache Strutsを再発明したかったのかなって思た

739 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 17:20:07.82 ID:sgC64ZMu.net]
MVVMって保守性が悪いよね。
WPF自体がそういう傾向が強いけど、MVVM使うと輪を掛けてそうなる。

他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。

MVVMで保守性が高くなるんだ!って喧伝してる人がいるのは知ってるけど、
正直裸の王様を褒めてるようにしか思えない。



740 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 20:43:19.06 ID:OBekjSgo.net]
結局正解はなくて最適解があるだけなんだけどさ
よくある失敗はMVC、それも頭でっかちなコントローラーをVMに置き換えているだけパターン
この場合ビューモデルが主役で、テンプレートエンジンのビューと1:1の対となる入れ物の箱モデル
を量産することになる
ちょこっとイベントハンドラーをコードビハインドに書いたら、あとは全部ビューモデルにお任せ
という中央集権国家が誕生、疎結合どこいったって話だな

741 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 21:04:44.88 ID:Urp5/7iJ.net]
>>720
>他人が見て、後で自分が見て、ここのこの機能はどうやって実現されてるのか、
>ここの仕様を変えるにはどこをいじればいいの、理解するのに時間が掛かり過ぎる。

これって単に慣れてないからってだけじゃなくて?

742 名前:デフォルトの名無しさん mailto:sage [2016/05/10(火) 21:24:17.05 ID:YLufBM4s.net]
昔のようなデバッグして追いづらいってのはあるな。

743 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 11:26:55.39 ID:sA9FQTwa.net]
やっぱりrails系は偉大だったってことかなー。
どこにどんなコードを置くのかフレームワークとして強制するって大事だね。
iOSとかUIKitってだけだから特にファイル構成に対する強制がなくて悩む。

744 名前:デフォルトの名無しさん mailto:sage [2016/11/25(金) 20:31:02.28 ID:JXCOPEY3.net]
お前らがMVVM頑張っても
画面設計者がMVVM理解者とは限らないから
どこかは破綻するんやで

745 名前:デフォルトの名無しさん [2016/12/15(木) 23:39:13.49 ID:KILwFG0x.net]
MV)o¥o(VM

746 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 17:58:48.49 ID:aO3Y1mks.net]
データを格納したdatatableをdatagridにバインドして表示させてます。
この場合、datatableはVMですか?Vですか?

747 名前:デフォルトの名無しさん mailto:sage [2017/03/23(木) 23:57:20.04 ID:pns5gc7N.net]
他のフレームワークに比べてMVVMが有用なケースって、WPF以外だとどんなのがありますか?

748 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 23:28:02.62 ID:Cc537bij.net]
>>728
Xamari

749 名前:n.Forms
vue.js
[]
[ここ壊れてます]



750 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 04:30:27.44 ID:H6APCPmE.net]
UWPみたいな大きい画面から小さい画面までサポートする奴。
UIとロジック分けられないと死ねる。

751 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 22:40:49.29 ID:NjKe635i.net]
modelからViewModelに通信の結果を返すときに、
Rxとか使わずに、interfaceを渡してコールバックを返すようにするのは何かマズいんでしょうか

752 名前:デフォルトの名無しさん [2017/05/11(木) 23:10:02.50 ID:w+/nr1Tg.net]
Rxも結局インターフェースだしいいんじゃ?

753 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 23:55:27.09 ID:NjKe635i.net]
modelは状態の公開と戻り値のないメソッドの提供のみするそうですが、
状態の公開っていうのは要はpublicなfieldってことなんでしょうか
getterで提供したらなんで駄目なんでしょうか
c#のことはよくわかりませんandroid javaを想定しています

754 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 11:29:50.90 ID:WPNdofPW.net]
>>733
メソッドの戻り値をvoidにする、setterを提供しないのはMVVM由来ではなく、非同期な作りをしたい場合に起因します。

これは非同期な作りの場合、メソッドを呼び出しても直ちに状態が変更されるとは限らないから。

なので、状態の変更が完了した時点でMが通知し、受信側がgetterを介して状態を取得することを推奨しているに過ぎない。

逆に同期的な呼び出ししかしないのであれば、setterやメソッドの戻り値も好きにすればいいと思います。

755 名前:デフォルトの名無しさん [2017/05/12(金) 12:01:49.68 ID:efiy+Fg+.net]
がや氏の戻り値返すなとかはCQRSやReactみたいに処理の流れを固定しろってのが本質と思うが本人もアーキによって返しますよとかいってるからじゃああの煽りはなんだったの感もありよくわかんね

756 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 18:50:06.13 ID:NqFIOOZC.net]
本人の中では色々な蓄積もあってその上で言ってんだろうけど、間を飛ばすから外から見たらよくわからん事になってるという印象

757 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 19:52:15.91 ID:05vfegfG.net]
とりあえず御大の言うことはスルーしておいて、Flux、Reduxなんかについて調べてから、自分で答えを出せばよろし

758 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 20:05:15.61 ID:6PqY2VyR.net]
C#で状態の公開というとプロパティを使うわけだけど、
javaにはプロパティがないからgetter使うしかないだろうし…
そもそもMVVMではgetter使っちゃダメなんて話があるの…?

759 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 20:34:29.17 ID:z/cC9xJA.net]
状態の公開が何でpublicなfieldになんのか分からん
オブジェクト指向もっかい勉強した方がいい



760 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:16:02.54 ID:Ne3HESGY.net]
いや返り値のないメソッドしかテイギシタラ駄目っていう縛りがあると思ってたから、
getterも駄目なのかと

761 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 23:10:52.37 ID:6PqY2VyR.net]
MVVMの提唱がMSからだし、MSが作った言語にはプロパティがあるから…
…javaのgetterが駄目ならプロパティ使うのも駄目になるはず

762 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 23:56:43.00 ID:XKa7CxLZ.net]
ゲッターかプロパティかは本質じゃないだろう。
ゲッターをフィールドっぽく見せてるのがプロパティなだけなんだし。

763 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 06:13:49.08 ID:Hzzf9sbT.net]
AndroidでMVVMやりたいだけなのに
C#でのMVVMとFluxとReduxとクリーンアーキテクチャと
databindingとRxとretrolamdaと全部学ばないといけないわけ?
敷居高杉ませんか

764 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 08:08:27.52 ID:JyAd7JIY.net]
MVVM含めアーキテクチャごっこをやること自体が目的なら全部学べよ。

Androidで開発しやすくしたいというのであれば、まずはData Bindingを使うことと、
APIの戻り/公開メンバとしてObservableを使ってみるところから始めろ。
DroidKaigiのアプリあたりを参考にしながら。

765 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 08:55:58.29 ID:R5mpG+FZ.net]
build 2017と関係あるのかわからないけど、UWP関連でこんなもんが
https://github.com/Microsoft/WindowsTemplateStudio

https://developer.telerik.com/topics/net/announcing-windows-template-studio/

766 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 09:01:35.75 ID:Hzzf9sbT.net]
droid kaigiですね。ありがとうございます。
他にMVVMの参考になる小規模なソースコードのgithubリンクとかないっすか

767 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 14:21:43.11 ID:DOmFl3BV.net]
Android java MVVMで検索したら色々出てくるけど…

768 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 17:26:38.50 ID:Hzzf9sbT.net]
画面遷移の処理とか結局viewでしかできないから、
view -> viewModel -> view
で行ったり来たりしてるのとかみると糞だなあと思う

769 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 21:32:34.67 ID:JyAd7JIY.net]
Presentation Coordinator
Navigation Service


なお、画面遷移の話とは別に、Androidの場合どうしてもActivity/Fragmentに
依存してしまう部分は出てくるから、その辺はあまり厳密に考えない方がいい。



770 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 12:23:45.13 ID:7qHN/0ER.net]
VMとMの分割についてきちんと説明してくれてるサイトってあまりないけど、
基本的には全部Mに入れてVMはプロパティとしてMだけを持ってそれをVにバインドするってことでいいの?
大抵のサイトでは全部VMに入ってるけど

771 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 12:55:06.49 ID:jD8c7u6v.net]
サイトは知らんが、一番しっくりくるなーと思う考えの一つは

MはDBなどのデータを格納する何か、もしくはデータそのもの。
VMはMからのデータを加工するものとVewとの橋渡しを分けてVMへ。
VはVewそのもの。

ってのが個人的に一番しっくりくる。

772 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 12:57:53.56 ID:V6q89FWa.net]
viewそのものだとactivityがviewになるのは違和感がないか

773 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 12:59:02.78 ID:jD8c7u6v.net]
違和感ある。
VMに入れたい。

774 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 14:34:21.13 ID:CXNFHBlU.net]
MVCだろ
M はDB以外のことは出来るだけしない
V は表示するだけ
C(VM) で色々する

概ね >>751 さんに同意

775 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 18:18:08.97 ID:V6q89FWa.net]
VMがactivityの参照を持ったらだめだと聞いたが。。
Xamarinだとpageか

776 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 00:49:21.51 ID:rlJlQaZI.net]
C=VMだとMVCと変わらんだろうが

777 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 02:36:40.07 ID:NvS9muX6.net]
イメージとしてはCより広い範囲のものをぶち込んでMやVに余計な物置かないのがVMって思ってる。
基本MVCと変わらん。
Cじゃないのはどこに置くとか名前から混乱してる人多かったから、VでもMでも無いのは全部VMってした方が混乱は少ない。

778 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 06:12:40.96 ID:Xdie43+z.net]
MVVMのVはMVCのV+Cだよ
MVPのVとかと同じ

779 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 06:38:23.57 ID:OOmYkqkr.net]
MVVMのVって左から3番目のVのことですか



780 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 07:01:45.39 ID:Xdie43+z.net]
2番目だよ

781 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 12:30:06.83 ID:fehtyedu.net]
めちゃ効率悪い作り方

782 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 15:34:26.98 ID:ZNc2U8qB.net]
MVVMってMVCより明確にしたもの

VMはCという漠然とした者じゃなくて
Viewに対応するオブジェクトそのもの。
だからVMのプロパティを変更することでViewに反映されるし
Viewで何か変更するとVMのプロパティに反映される。
双方向バインディングを使って実現する。

783 名前:デフォルトの名無しさん [2017/05/26(金) 19:26:58.74 ID:GnitEmTF.net]
全然進化してないな

784 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 20:59:38.95 ID:ovKX6RUR.net]
>>761
効率求めたらガチガチにVewと結びつくからな。
Vewが固定ならMVCもMVVMも要らない。
デスクトップやモバイルで中身同じだけどVewだけ違うとかだからMVCやMVVMが必要になる。
デスクトップとモバイルで同じ処理を別々に書くよりは全体では効率が良くなる。
特にモバイルが画面の大きさや画面比率が多様化してる昨今では。

785 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 21:03:56.89 ID:ovKX6RUR.net]
>>763
強いて進化と言ったらMVC時代は相変わらずクラス側でVewのプロパティに代入してもVewは古い値を表示したままで、updateで更新しないと値を更新しなかった。
MVVM独自かは不明だが、MSでは相互に値の更新を自動通知し合う仕組みが出来た。
>>762が言ってるのはそういう事。

786 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 21:40:38.92 ID:Xdie43+z.net]
>>765
そんなもん独自のわけないだろ

787 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 22:27:08.33 ID:F2M8XGQu.net]
MVVMにおいてactivityはviewでいいんだよな?

788 名前:デフォルトの名無しさん mailto:sage [2017/05/26(金) 23:41:27.21 ID:ZNc2U8qB.net]
更にいうとMVVMをさらに発展と言うか破綻しづらいようにしたのが
flux。MVVMのVMは双方向バインディングだけど
fluxの場合は、Viewの変更は直接VMに反映しない方針。つまり片方向バインディングに限定した。
その代わりVMへの変更関連をActionに集約して
Action -> State(VMに対応) -> View ->Action
と片方向への情報の流れに限定したのがflux

789 名前:デフォルトの名無しさん [2017/05/27(土) 02:57:55.41 ID:V3ffhZkY.net]
>MVC時代は相変わらずクラス側でVewのプロパティに代入してもVewは古い値を表示したまま

糞Windowsだけだろω



790 名前:デフォルトの名無しさん [2018/05/23(水) 23:07:17.16 ID:Au5e7VGg.net]
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

USCRF

791 名前:デフォルトの名無しさん [2018/07/04(水) 23:01:58.94 ID:gFgZc5FG.net]
QIC

792 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 12:35:20.43 ID:uTPDH9XV.net]
USCRF

793 名前:デフォルトの名無しさん [2019/01/28(月) 14:30:35.46 ID:2/HZJEKq.net]
LivetとPrismとはなんだったのか

794 名前:デフォルトの名無しさん [2019/01/28(月) 22:53:33.32 ID:ELKeaiTx.net]
Livetは使った事ないから知らんがWPF開発には色々便利なものあったらしいしPrismも便利なとこあるんじゃないの
自分は使わんけど

795 名前:デフォルトの名無しさん [2019/01/30(水) 03:07:28.56 ID:nTVyoRLY.net]
知らんなら答えなくて良いんじゃね?

796 名前:デフォルトの名無しさん [2019/01/30(水) 10:24:55.23 ID:g/bNoaAl.net]
評判は聞いてたからその範囲で教えてあげてんだけど?
無知すぎるボンクラは逝ってどうぞ

797 名前:デフォルトの名無しさん mailto:sage [2019/01/30(水) 10:35:20.87 ID:MXCEKHH4.net]
Prism.Unityは、UWP版のほうがシンプルでかつ十分な機能で良いんだけど
wpf版もあっち基準に改善したら良いのにな

798 名前:デフォルトの名無しさん [2019/01/30(水) 12:36:56.89 ID:m67rAUwN.net]
https://teratail.com/questions/140681
MVVMやってるのこんなのばっかりだからな死滅すればいいよ

799 名前:デフォルトの名無しさん [2019/01/30(水) 12:37:12.23 ID:m67rAUwN.net]
ハイハイ理解できないから終了ね



800 名前:デフォルトの名無しさん [2019/01/30(水) 12:38:11.42 ID:m67rAUwN.net]
>>776
知らないなら答えなくていいんじゃね?
ぼんくらは死ね

801 名前:デフォルトの名無しさん [2019/01/30(水) 12:43:13.60 ID:eltFPQSh.net]
>>776
知らんなら答えなくて良いんじゃね?
過疎スレで無駄に煽るボンクラ

802 名前:デフォルトの名無しさん [2019/01/30(水) 14:39:06.71 ID:g/bNoaAl.net]
無知が顔真っ赤にしてテラワロス

803 名前:デフォルトの名無しさん [2019/02/05(火) 22:13:49.20 ID:y7JCcM6u.net]
>>782
無知が顔真っ赤にしてテラワロスっておまw
そんなんがほんとに面白い人とかいるのかね
MVVMはどこいったのw
スレタイと何も関係ない書き込みしちゃって頭おかしくないのボンクラwwww

804 名前:デフォルトの名無しさん [2019/02/05(火) 22:15:30.79 ID:y7JCcM6u.net]
いやテラワロスってのはMVVMなんだろうな
無知なのでわからんわ

805 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 22:50:39.27 ID:sDFzuzWu.net]
>>778
>INotifyPropertyChanged はバインド専門ではありません。

これって詭弁だよね
MVVM使う時点で通常のモデルにすると不便だからINotifyPropertyChanged使うだけ

806 名前:デフォルトの名無しさん mailto:sage [2019/02/05(火) 22:57:59.44 ID:sDFzuzWu.net]
MVVMじゃない設計で作られた モデル、ビジネスロジックがあってそれをMVVMで使う場合どうすんの?ってことなんだろうけど
もう一層外からくるんだだけじゃうまくいかないからほとんどを作り直しすることになるんじゃないかな?

807 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 02:16:42.38 ID:ar/eio3d.net]
>>783
何日も前のに突然どうしたw

>>785
MMV間は好きにすればいいかと
自分はわざわざMでINotifyPChangedなんか使わんけど

808 名前:デフォルトの名無しさん [2019/02/06(水) 09:39:48.85 ID:DbH07QrE.net]
俺なんかMVCすらよくわかんないな
Webは兎も角、それ以外はMVCだと言われてるアプリを見てもCからVを書き換えてるのだらけに見えちゃうんだな
これでいいんか?それとも世の大半が間違えてるのか?どっちなんだ

809 名前:デフォルトの名無しさん mailto:sage [2019/02/06(水) 12:24:14.98 ID:ar/eio3d.net]
Cからvだけでしかないってのはダメだと思うが、結局その場合にちょうどいい程度に疎結合になってればいいと思うけどね
自分はMVにロジックも詰め込んで、でかくなってきたらMにする程度でやってる



810 名前:デフォルトの名無しさん [2019/02/11(月) 03:23:52.16 ID:h3xrvU+a.net]
いつも疑問なんだけどMVVMでダイアログ表示するときなんでVMでShowDialog()しちゃいかんの?
MessengerでViewに送ってコールバックでってやるよりもVMをDataContextにぶっこんで直接操作したほうがわかりやすくない?

811 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 04:01:02.71 ID:KW1QXsfq.net]
>>790
MVVMのVMは、UIへの依存を排除することを試みるパターン。
なので、直接呼んで良いかと問われればNo

UIの知識に起因する処理を行いたいのであれば、UIから提供されたインターフェースを介してUI操作を行うMVPの採用を検討する。

結局のところ、MV*の違いは責任範囲の違いだけであり、MVPがMVVMよりV寄りに広いパターンなので、MVVMをベースにMVPにしても構わない。

ただしその場合、混乱の元なのでMVVMとは呼称すべきではない。

812 名前:デフォルトの名無しさん [2019/02/11(月) 12:20:24.20 ID:YckZaLLU.net]
>>790
ぶっ込んで直接操作が何を指してるのかわからん。
そのダイアログを表示がらみだと思うけどもうちっと具体的に言ってくれ。
元のViewと対応したVMがあったとして、そこからダイアログ表示させる場合でいいんだよね?

813 名前:デフォルトの名無しさん mailto:sage [2019/02/11(月) 13:34:01.09 ID:NWPg0Oyv.net]
>>792
すまん、説明が悪かったかも
あと無意識にWPFを前提に話してしまっていた

MainWindow
MainWindowViewModel
MainWindowModel

DialogWindow
DialogWindowViewModel

があったとしてMainWindowのボタン押下をトリガーにDialogWindowを表示したいとする
でWPFの昨日でVMにコマンドバインディングしていたボタンの処理の中で
DialogWindowのDataContextにDialogWindowViewModelを入れる
→MainWindowViewModelの中でDialogWindowのインスタンスを生成する

みたいな感じ

814 名前:デフォルトの名無しさん [2019/02/11(月) 15:12:43.09 ID:QkJqimZ7.net]
VMからVを直接生成するのは禁じ手かと
てスタビリティーが担保できない

815 名前:デフォルトの名無しさん [2019/02/16(土) 02:23:43.23 ID:9HG1VuDS.net]
7年前から何も状況変わってなくてワロス

816 名前:デフォルトの名無しさん [2019/02/16(土) 02:52:06.72 ID:9HG1VuDS.net]
https://teratail.com/questions/74961
わからないやつは使うな!
でほんとに使わなかったケースが多かっただけみたいだな
ユーザーの質がほんとひどい
難しい案件でだけ使えばいいがな

817 名前:デフォルトの名無しさん [2019/02/16(土) 09:30:22.31 ID:9K5d8FVn.net]
自分は自分で作るちょいアプリでも使ってるけどな
といってもVM膨らませてMもそこでやってて、ややこしくなったら分離させてるだけだけど

818 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 19:22:44.93 ID:PhVDH7kZ.net]
WPF+MVVMはテストがつらい
M、VMでテストが出来てても実際にVでうまく動くかは全然わからない

819 名前:デフォルトの名無しさん [2019/02/16(土) 20:37:11.87 ID:9K5d8FVn.net]
>>798
ん?それほかのUIフレームなら出来るん?



820 名前:デフォルトの名無しさん mailto:sage [2019/02/16(土) 20:48:59.47 ID:mveZudXk.net]
アプリケーションのテストとしてはVM-M間で十分だと思うがな。
V-VM間はデータバインディングが意図通りか確認する程度だし。
少なくともFormsよりだいぶUIに近いところまで自動テストできるようになった。

821 名前:デフォルトの名無しさん [2019/02/17(日) 03:18:26.01 ID:xGFF6jRx.net]
>>798
ViewはMVの状態をそのまま表示するだけってのが理想だからね
セレニウムだっけ?WEBでのUIテスト出来る奴とかあるかもだけど、自動テストでそこまでの工数かけるのちときつくね?
VMのテストならプログラム的にしやすいからまだわかる

822 名前:デフォルトの名無しさん [2019/03/17(日) 03:07:47.90 ID:ZfsC9V3u.net]
>>698
バカには使えないありがたいアーキテクチャなので
普及とかはどうでもいい話だった

823 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 08:02:38.52 ID:F89k9A+v.net]
VisualWorksのPluggable MVCとどう違うのだろうか?

824 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 18:31:05.56 ID:drnV2zGh.net]
Pluggable MVCとはだいぶちがうだろう
Application Modelの間違い?

825 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:43:26.65 ID:F89k9A+v.net]
>>804
ValueHolder、AspectAdaptor、PluggaleAdaptorとか

826 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 22:56:42.27 ID:drnV2zGh.net]
ああ、そういうことか
もっと古典的でプリミティブなものを指しているのかと思った
aokilab.kyoto-su.ac.jp/documents/MVC/page4.html

827 名前:デフォルトの名無しさん mailto:sage [2019/03/17(日) 23:43:40.49 ID:F89k9A+v.net]
結局、ビュー寄りのモデルを作るという発想は90年代初頭にVisualWorksで提唱されていたんじゃないかと。

828 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 01:01:31.84 ID:Y1evCyMB.net]
まあその結論で合っているんだけど

ただValueHolderとかのアダプターはあくまで
ApplicationModelのプロパティでデータバインドを実現するための道具に過ぎないので
https://matarillo.com/general/uipatterns.php#p3

MVVMとの類似性に言及するのであれば
Pluggable MVCではなく「ApplicationModelアーキテクチャ」と表現する方が誤解が無くてよいと思う
wiki.c2.com/?ModelModelViewController

829 名前:デフォルトの名無しさん [2019/03/18(月) 01:37:38.06 ID:QCOM2t0u.net]
もともとMVCとかでごちゃごちゃしてきたところにMVVMってことなんだろうな
デスクトップアプリに当てはめるのは微妙だったよ



830 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 07:19:28.89 ID:Y1evCyMB.net]
いやそういう基本的な理解の欠如ではない

831 名前:デフォルトの名無しさん [2019/03/18(月) 09:45:01.81 ID:npgehNDX.net]
デスクトップに当てはめるのが微妙ってのは何だ?仮想Dom的なものがあればおさまる話?

あとMVVMはMVCを改良したってよりもXAMLのバインディング気候に合わせたって側面の方が強いと思うがな
それを改良と言えばそうだけど

832 名前:デフォルトの名無しさん mailto:sage [2019/03/18(月) 11:53:25.70 ID:sCXVSnIM.net]
もしや810はMVCとMVC2を混同してるとか?

833 名前:デフォルトの名無しさん [2019/03/19(火) 03:35:07.74 ID:3jNcVOgT.net]
実装者の能力不足が問題になるということは設計パターンが悪いんだろ
本当に理解してるか確認するが難しいようなのもダメだ

834 名前:デフォルトの名無しさん mailto:sage [2019/03/19(火) 21:56:18.31 ID:RkrxeYqz.net]
バインディングで楽が出来れば、それで満足よ

835 名前:デフォルトの名無しさん [2019/03/19(火) 22:06:06.31 ID:+Ccy7x/V.net]
>>814
楽できるかどうかじゃなくて、
画面を直接触らずに済むかどうかの問題だろ。

836 名前:デフォルトの名無しさん [2019/03/22(金) 00:42:05.87 ID:piAmWzDj.net]
こりゃ天才ですわ
https://qiita.com/hiki_neet_p/items/e381c687b0644c0e4978

837 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 12:04:36.21 ID:v6SxCCrX.net]
暇だから数年ぶりにWPFでも触ってみようかなと思ってるけど、
乱立してた結局MVVMライブラリって結局何かに統一された?
Livetは死んでしまったみたいだねw
個人的には応援してだけど

838 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 19:49:16.08 ID:YQby5rNV.net]
>>817
統一されたかどうかは分からんが、

https://github.com/XamSome/awesome-xamarin/blob/master/README.md#mvvm

によると、ReavtiveUI, MVVVCross, Prismあたりが人気らしい

839 名前:デフォルトの名無しさん mailto:sage [2019/05/30(木) 19:50:47.36 ID:YQby5rNV.net]
>>818
typo
x MVVVCross
o MVVMCross



840 名前:デフォルトの名無しさん [2019/06/19(水) 05:03:53.74 ID:tVNS+22r.net]
【出資】松本卓朗 人工知能詐欺【注意】
https://rio2016.5ch.net/test/read.cgi/rikei/1560859403/

841 名前:デフォルトの名無しさん mailto:sage [2019/07/27(土) 02:26:32.72 ID:0sBDs5f5.net]
むっちゃ初歩的なところの質問になってしまうのですが、
WPF + Prismの環境で、画像ファイル(png)をウインドウ内にタイル状に並べたいのですが、
単体でパスをSourceに指定して、Converterを通して表示、までは出来たのですが、
これをListView上でおこなおうとすると、ListviewにBindingしているObservableCollectionにAddしても、
画像が表示されません。
何かわかりやすいサンプルや、チュートリアルなどありませんでしょうか?

842 名前:デフォルトの名無しさん [2019/07/27(土) 03:17:09.73 ID:l8PDbbg2.net]
>>821
チュートリアルは知らんが、リストにテキストやボタンは表示できるの?
出来るなら今単体でコレクションの要素とビューテワやってる関係を同じようにするだけだけど

843 名前:デフォルトの名無しさん mailto:sage [2019/07/27(土) 10:04:07.36 ID:0p0d4tKK.net]
>>821
ListViewのTemplateをGridViewとしDataTemplate使うんじゃなかった? よく知らんけど。

844 名前:デフォルトの名無しさん [2019/11/01(金) 18:07:00.51 ID:hqW7WiA1.net]
>>821
どんな見た目作りたいの?

845 名前:デフォルトの名無しさん [2020/07/02(木) 15:07:15.93 ID:WhLcbIiC.net]
MMVMで言語を作る!

846 名前:デフォルトの名無しさん [2020/07/02(木) 17:47:32 ID:WhLcbIiC.net]
LLVMと勘違いした

847 名前:デフォルトの名無しさん [2021/01/27(水) 11:51:54.98 ID:cJSBZXf9.net]
てす

848 名前:デフォルトの名無しさん mailto:sage [2021/01/27(水) 23:40:32.54 ID:7/w7pDgL.net]
Win Formsでやってる人いますか?
datagridviewで値によってセルの色を変える場合、どのようにしてますか?

849 名前:デフォルトの名無しさん mailto:sage [2021/01/28(木) 01:44:53.83 ID:aQj0oWVr.net]
>>828
BindingListへの追加・変更・削除がイベントで拾えるので、
そのイベントハンドラで状態に応じてセル変更すればいいんじゃね?

汎用化するのであれば、BindingListを[M]、Gridを[V]とみなし、
その間を取り持つPresenterに移譲させるMVPパターンにするとかか

めんどくさがりやなので、前者でお茶を濁すかなぁ



850 名前:デフォルトの名無しさん mailto:sage [2021/01/29(金) 20:29:07.30 ID:czxZDJRE.net]
MVVMはバインディングを活用するために考案されたパターンなので、WinFormsでは実践できません

851 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 19:09:08.24 ID:LnwudBv/.net]
ユーザーメリットなしのオナニー

852 名前:デフォルトの名無しさん mailto:sage [2021/02/02(火) 21:40:04.70 ID:WEqR7ZrT.net]
ユーザーってのがアプリユーザならその通り
開発者は恩恵受けてるよ

853 名前:デフォルトの名無しさん [2021/04/06(火) 11:03:35.23 ID:A0Gb+cSU.net]
MVVM おっそ。
イベント発生元からトンネル経由しない前に捕まえて、View->ViewModelのイベントデリゲート呼ぶのが一番速い。
Commnad Bindingなんか使ってられない。 遅くて・・・

854 名前: []
[ここ壊れてます]

855 名前:デフォルトの名無しさん [2024/02/29(木) 21:06:03.14 ID:xliFyZcDB]
拉致ガーだの個人の尊厳や人権の意義だの都合のいい昔話ほさ゛いてる松野博一は朝鮮人大勢殺害した過去についても触れろよ
大量破壊兵器クソ航空機による強盗殺人という重大な人権侵害もスルー、税金て゛地球破壊支援.世界最悪の脱炭素拒否テロ国家に送られる
化石賞4連続受賞して世界中から非難されていながら力による一方的な現状変更によって滑走路にクソ航空機にと倍増
閑静な住宅地から都心まで数珠つなぎで鉄道の30倍以上もの莫大な温室効果ガスまき散らして騒音まみれ、静音が生命線の知的産業壊滅
子供の学習環境破壊、気侯変動させて海水温上昇させてかつてない量の水蒸気を日本列島に供給させて土砂崩れ、洪水、暴風,熱中症にと
住民の生命と財産を徹底的に破壊することで私腹を肥やす世界最惡のマッチポンプ殺人テ口組織公明党天下り犯罪集団国土破壊省斉藤鉄夫
とともに好き放題破壞と殺戮を繰り返して隣国挑發して原爆落とした世界最悪ならず者国家まで崇拝して白々しい軍拡増税
物事の本質を理解できない孑供洗脳して兵隊にして私腹を肥やそうというテロ組織に乗っ取られた日本で子なんか産むのは相当の盆暗だけ
(ref.) Тtps://www.call4.jр/info.php?ΤУрe=iтems&id=I0000062
ttРs://haneda-Ρroject.jimdofree.com/ , ttps://flight-route.com/
ttps://n-souonhigaisosyoudan.amebaownd.com/

856 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<185KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef