MVVMについて語ろう

■ このスレッドは過去ログ倉庫に格納されています
2012/06/06(水) 11:03:33.21
WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!
2012/06/16(土) 13:20:33.52
何のコピペだっけそれ
2012/06/16(土) 14:14:46.22
懐かしいなw
2012/06/16(土) 17:03:22.48
オブジェクト指向か
2012/06/16(土) 17:52:59.93
VMのコストが高いのは事実
2012/06/16(土) 23:27:28.75
Livet で Drag and Drop やりたいんだけど、どこかにサンプルないですか?
2012/06/17(日) 11:27:52.39
時間の無駄だと思わないの?
お前がMVVM教の修験者か何かでないならコードビハインドを使え
2012/06/17(日) 14:45:06.19
Dropイベントを処理したいだけなら>>139-140
2012/06/17(日) 16:08:05.74
イベントだけ拾っても仕方ないでしょ
素直にコードビハインドを書くか、
Dropイベントを受け取って引数にデータ入れてバインドしたVMのコマンドを呼ぶ
ビヘイビアを作りましょう
2012/06/21(木) 18:57:52.75
MVVMって誰が提唱しだしたの?
2012/06/21(木) 19:34:30.00
MSの中の人
2012/06/21(木) 19:36:38.56
ビヘイビアに書くと再利用性が上がるってだけで中身はコードビハインドと大して変わらんしな
まあD&Dはどっちにしても面倒だが
2012/06/21(木) 22:54:05.30
コードビハインド書くと、VからVMアクセスするでしょ?
それがかっこ悪いのよね〜
2012/06/22(金) 23:26:34.40
VからVMにアクセスするのはコマンドも一緒だと思うが…
2012/06/23(土) 07:54:12.87
つーかほぼすべてVからVMへのアクセスだろが。
2012/06/23(土) 09:25:51.09
VMはVを知らないがVはVMを知っている
2012/06/23(土) 11:10:17.65
こんにちは!VMさん。
あなたは、Vさんにフォローされてます。

Vさんをフォローしますか?
 する
→しない
2012/06/23(土) 11:29:14.41
MVCのCとMVVMのVMって何が違うの?
データを扱うMと画面を扱うVがいて、それらを制御するCでしょ?
VMもCもいっしょじゃん。
2012/06/23(土) 15:06:23.66
>>219
ASP.NET MVCを想像してみろよ

あれはCとVMの両方を持つが、どう見ても同じものじゃないだろ
2012/06/23(土) 15:13:22.96
>>220
それが理解できていれば聞かずに済んでいるんだ、無能ですまん。
2012/06/23(土) 15:30:26.15
VMってのは、Vから扱いやすいインターフェイスを備えたMのラッパーだよ
Vを制御したりなんかしない
2012/06/23(土) 15:57:05.63
Vを制御するのは誰?
簡単な話、Viewにある文字をModelでなんかした結果で変えたいみたいな。
2012/06/23(土) 16:02:41.88
V自身がバインディングで変える
2012/06/23(土) 19:19:17.03
MVCだとVは入力を扱わない
2012/06/24(日) 17:03:07.28
Mの状態でフォーカス位置を変えたりするのがめんどい
2012/06/24(日) 17:04:30.15
SとMの関係を一言で言うと?
2012/06/24(日) 18:36:15.75
rot(M, -π) = S
2012/06/24(日) 21:45:32.65
Vを制御するのはVMだろ
Vの状態を持つためのMなんだから
2012/06/25(月) 14:05:28.44
VMがVを制御しないんならVを制御する別のオブジェクトが必要だな
そうだなープレゼンターとかいう名前にするといいんじゃね?
2012/06/25(月) 15:04:10.95
「MVVMパターンで学ぶGUIアーキテクチャパターン」? .NETラボ勉強会で話してきました!
http://ugaya40.net/architecture/mvvm_to_mvc.html
2012/06/25(月) 18:19:46.52
Mのプロパティをラップすることがあるのは、MVVM関係なく、隣人とだけ話せっていうOOPの作法だよな
MVVM的には別にどっちでもよくて、やっぱりVMの本質はVの状態を持つことだよ
2012/06/25(月) 22:39:40.76
従来のウェブアプリ(Ajaxアプリ除く)、
ウェブフレームワークといったらいいかな?

で、MVVMを使うメリットある?
2012/06/25(月) 22:50:54.35
JSのか?
2012/06/25(月) 22:54:54.79
JS関係なくて、普通のフォーム使った
ウェブアプリ。
2012/06/26(火) 00:01:38.39
数ある既存の素晴らしいMVC系フレームワーク(あくまでWebでいうMVCね)
に乗せられるというメリットを捨ててまで使うほどのメリットは無いと思う
2012/06/26(火) 00:15:01.78
ASP.NET MVCにはViewModelと呼ばれるものがあるけど
ステートレスでただVと1対1なだけのデータの入れ物だからMVVMとは別物だと思う
2012/06/26(火) 00:17:39.51
MVVMはVが入力を扱う場合において威力を発揮する
WebのサーバサイドだとVは入力を扱わないし、MVCはVではなくCが入力を扱う
2012/06/26(火) 00:20:17.19
あと選択状態とかだろ
ステートレスなVMはただのMだ
2012/06/26(火) 00:41:58.72
そもそもウェブアプリってMVCじゃないだろ?
データとってきてテンプレートに入れるだけじゃん。
2012/06/26(火) 19:38:03.37
何を突然スレ違いなことを
2012/06/26(火) 20:46:48.60
>>233でウェブアプリの話してるじゃん。

ちゃんと読まないでレスするの良くないよ。
2012/06/26(火) 20:53:00.50
ここはMVCのスレではないし、クライアントとWebのMVCが同一だと言ってる奴も居ないけど
2012/06/26(火) 20:57:02.48
このスレの1/10には
MVCという単語が含まれているが?

MVCのスレじゃなくても
MVCと比較するのだからなんの問題もないだろ。
2012/06/28(木) 18:23:25.38
コミュ障って生きていくの大変そうだな。
2012/06/29(金) 00:08:52.57
そうだな。そういうことにしておけば?
2012/06/29(金) 14:32:07.81
そこはもちょっと親身に相談に乗ってあげなきゃ
245が自殺でもしたら大変だろ
2012/06/29(金) 15:32:22.10
ちょっと死にたい
2012/06/29(金) 16:26:05.86
コードビハインドさえ書かなければ死なない
2012/06/29(金) 17:17:54.12
いや、別に責務さえはっきりしていれば、別にコードビハインド書いてもいいんだよ。
MVVM≠コードビハインドはよくある誤解なので、ご注意を。
2012/06/29(金) 20:05:40.23
>>250が≠の意味を誤解しているのは分かった
2012/07/01(日) 09:58:01.85
LivetってPrismにあるようなナビゲーションスタイルのアプリケーションには対応してないよね
アホみたいに時間かかってる割には全体的に…
2012/07/01(日) 10:29:40.96
お前は何を言っているんだ
2012/07/01(日) 10:44:49.81
>>253
ウインドウ内で画面遷移するやつ(PrismのRegionみたいなの)
できるなら教えてほしい
2012/07/02(月) 02:00:05.07
個人製作のフレームワークがごく限られたケースにしか対応してないのはよくあること
配慮してくれないと
2012/07/02(月) 17:16:37.30
ContentControlでも使ってろ
2012/07/04(水) 01:06:26.25
Livetの中の人、ついったーがキモい・・・
2012/07/04(水) 01:21:34.90
WebMVC
http://d.hatena.ne.jp/yojik/touch/20091019/1255963600
2012/07/04(水) 10:36:51.30
>>153みたいなことしちゃうアレな人だからな
2012/07/04(水) 15:31:22.65
いやなら反論してみればいいんじゃね
2012/07/04(水) 15:43:14.21
例の人は目先の細かい実装に囚われすぎなんだよ
>>154で説明されているような
・VMをビジネスロジックに依存させないことによるVMの再利用性の向上
・VをVMに依存させない(つまりVMを直接触るようなコードビハインドを書かない)ことによるVの再利用性の向上
・Pは差し替え可能
・DIとの相性
と言ったことに全く触れられていない
2012/07/04(水) 15:56:30.88
直接言って来いよ
ここでやんな
2012/07/04(水) 18:25:12.71
技術的な話はここでいいだろ。

性格批判は向こうでどうぞ。
2012/07/04(水) 18:36:48.98
そうそう、そのためのスレなんだから

MVPVMのサンプル見ると、三つのプラットホームでVMを共通化してる
VとVMの疎結合のためにPを設けてるわけだが、
現実的に考えると、VMの共通化を図る要件って実際あり得るのだろうか?
2012/07/04(水) 18:44:57.68
>>154のリンク先の例にあるような、同じV-VMペアを別の用途で使いまわすっていうのは
割とあるんじゃないかと思う
2012/07/04(水) 19:12:57.94
VMの共通化は無い派。
デバイスが変われば見た目も変えたくなるし、全てのデバイスで使えるスーパーセットのVMもどうかと思う。
Mが可能な限り共有できればそれでよいと思う。
2012/07/04(水) 19:25:18.53
要件によるけど、スーパーセットのVM使えるところも多々あるんじゃない?
使えないところだけVMを個別作るとかが望ましいなぁ
2012/07/04(水) 19:42:38.71
最近客に「文字大きくしてくれ」って言われてVだけコピペしたよ
2012/07/04(水) 22:00:23.71
ねぇ。これがどうウェブアプリに使えるの?
2012/07/04(水) 22:17:08.46
ステートフルなGUIを作るためのものだからサーバーがHTML吐くだけのアプリには無意味
SilverlightやAjaxなら普通に使える
2012/07/04(水) 23:22:11.82
うがやって彼女いるの?
24時間キモイことつぶやいてるよね 。
さっきも、アスペルガー丸出しだった。
彼女どころか友達いなそう。
2012/07/04(水) 23:38:25.94
個人攻撃に走るのはいかがなものか。
2012/07/05(木) 00:22:46.48
>>272
今Twitter見てみ?
完全にアスペだぜ?
2012/07/05(木) 01:34:01.44
何言ってるのかはみてないが24/7ではなかったな
日付が飛んでたから
2012/07/05(木) 01:42:41.83
技術的な突込みならともかく、スレに関係ない話で個人攻撃はいくない
2012/07/05(木) 07:05:45.91
個人の話がしたければヲチ板へ。
アスペの話がしたければメンヘラ板へ。
2012/07/05(木) 07:37:21.07
ウガヤ氏に罵倒された勘違いMVVMerなんですね。わかります(´・ω・`)
2012/07/05(木) 15:11:50.77
あれも2ちゃんでの話に文句があるなら2ちゃんでいえばいいのにな
2012/07/05(木) 19:40:28.20
煽り耐性ゼロだから2ch無理とか言ってたけど
正直あのエントリに比べたらここやWPFスレの方がマイルドw
2012/07/05(木) 20:43:53.52
いやさすがにそれはない
2012/07/05(木) 20:46:14.32
ム板は煽られても他人の振りが出来るからなあ
2012/07/05(木) 21:23:08.74
ここってJavaFXの話題もあり?
2012/07/05(木) 22:08:33.80
ありじゃね
2012/07/05(木) 22:53:24.29
JavaFXが最初に世に出た当時はなんでXMLじゃなくてわざわざ独自スクリプトなんだ
ボケカスと言われてたが、デザイナとプログラマの分業なんて幻想であって
ある程度ビューに振る舞い書けた方が便利だということを見越した判断だったんだな
XAMLのビヘイビア地獄よりははるかにマシだわ
2012/07/05(木) 22:57:52.73
今FXやるぐらいならSLでいいわ
2012/07/05(木) 23:14:34.76
ビヘイビア地獄ってなんだよ
そんなに地獄に感じるならコードビハインドにコード書いたっていいんだぞ
2012/07/06(金) 00:55:22.61
.triggerを手で書くのはうぜぇっていうのは同意するが
あれはblendで書く物だろ
2012/07/06(金) 01:54:31.30
ビヘイビアもトリガーもインフラが整った環境じゃないとまともに使えん
自力で整えようとすると相応の労力が強いられる
遊びや自己学習でする分には良いけど、サクッと作りたいときや仕事だと2の足を踏むなー
Blendみたいな環境が無いと本気で使おうとは思わない

コードビハインドでもMVVM自体は可能だから手っ取り早く作りたいときはコードビハインドで良いだろ
2012/07/12(木) 00:19:31.36
MVVMってプラガブルMVC劣化させたのと同じじゃねぇの?
プラガブルMVC劣化版と何が違うの?
2012/07/12(木) 00:36:47.13
XAMLのこと知らないなら黙ってろ
2012/07/12(木) 10:06:32.25
非同期処理ってモデルでSynchronizationContextとか使って面倒見たほうがいい?
それともやっぱりモデルの状態が複雑になるのは避けてVMでスレッド動かす?
2012/07/12(木) 10:13:46.36
ポリシー次第じゃない?
モデルまではそのへんを気にせずガンガン使う→VMで考慮
VMはシンプルに作りたい→上で考慮
自分は前者だな。
2012/07/12(木) 18:25:57.29
モデルで非同期してVMではメインスレッドが普通じゃない?
ViewからVM呼ぶんだし
2012/07/12(木) 18:51:53.23
UIにアクセスするとことか内部の状態を変えるとかだけVMでContextで同期取ればいいやん
2012/07/19(木) 21:22:47.22
DIコンテナは何がいい?
UnityとNinjectとAutofac試してAutofacが気に入ったんだけど
2012/07/21(土) 17:29:43.89
>>290
なんの関係が?
2012/07/24(火) 05:21:39.59
Livetの新しいの公開されたけど、これ、
旧バージョンインストールして作ってたアプリある場合、
新しいLivet入れても問題ないのかな?
旧バージョンのままじゃないと動かなくなるとかだと困る
2012/07/24(火) 06:12:23.43
Livetのプロジェクトテンプレート使ったんならLivet.dllのローカルコピーがあるべ。
2012/07/24(火) 06:28:21.45
それだと古い方のdllも残しておかないといけないってこと?
新しい方に差し替えたらそのまま動かないのかな…

新しいPCにVisualStudioとLivetの新しいのだけ入れたら、
旧バージョンで作ったアプリの修正とかはできなくなる?

上書きインストールしていいのかとか、
そこら辺、公式サイトに何も書いてないから怖くて入れられない
2012/07/24(火) 08:16:05.78
>>299
ここに書くよりも直接連絡しろよw
2012/07/24(火) 08:39:50.00
Livetのテンプレート使って作ったプロジェクトならInfrastructureAssembliesフォルダにいままでのLivet.dllはそのままあるし
参照設定もそれを参照しているから自分で明示的に置き換えない限り新しいバージョンのLivetを入れてもそいつのバージョンはそのまま
自分でProgram FilesにあるLivet.dllに参照設定してたらアップデートしたらアップデートしたバージョンのものになる
また新しいものに差し替えたとしても破壊的変更があるものはそのままでは動かないし、特定バージョン参照してたらたとえ破壊的変更がなくともリビルドが必要
Livetに限らずライブラリ使うときの基本的なことだと思うが
302デフォルトの名無しさん
垢版 |
2012/07/24(火) 10:53:05.83
>>300
諸般の事情で直接連絡したくない場合もあるんだよ
そのための2chだろうが
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。