- 1 名前:デフォルトの名無しさん mailto:sage [2012/06/06(水) 11:03:33.21 .net]
- WPF/Silverlight/WinRT開発の必須技術、MVVMについて語ろうではないか!
- 75 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 16:21:57.25 .net]
- >>73
他のMVVMツールにも同様の機能はありますか?
- 76 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 17:01:49.59 .net]
- >>75
その部分だけパチってくればいいじゃん。
- 77 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 19:40:33.37 .net]
- ugaya40さん、MVVMの本書いてよ。
- 78 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:19:01.71 .net]
- 彼は文書よりもLivetのチュートリアルの優先度をあげるべきだろ。
- 79 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:39:57.25 .net]
- チュートリアルないと使えないか?
サンプルなら探せばそれなりにあると思うけど
- 80 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:47:05.63 .net]
- 使える使えないという話ではなく、広くアピールしたいならそういう地味な作業の優先度の方が高いんじゃないの、という話。
- 81 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:47:06.97 .net]
- ugaya40さんって誰?と思ってこれを読んだけど
ugaya40.net/wpf/mvvm-mvc-mvp-pm-eventdriven.html MVPとPresentation Modelの認識がおかしいな まぁ全体として意味は通じるけど…
- 82 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:52:17.02 .net]
- ところで、これってMVCとどう違うの?
MVCのときとMとVも当然違うと思うんだけど。
- 83 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 20:52:18.22 .net]
- u氏の言っていることは、VVMや実装の話についてはほぼ同意だしすごいとも思っているけど。
ただ、そこからMよりの話やもっと大きな構造の話になってくると、言っていることが微妙というか、 言おうとしていることはわかるけど、他の人の同意は得られないだろうな、っと思うことが多いかな。
- 84 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 21:28:22.45 .net]
- Livet使ってるけど2chの名無しに返信しないで欲しい、とだけ言っておきたい
- 85 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 22:11:46.33 .net]
- Livetネタは荒れるからやめろ。
本人に直接聞け。
- 86 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 22:23:47.65 .net]
- >>77
そんなニッチ層向けの本書いても売れないだろ
- 87 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 22:59:32.63 .net]
- MVVMってどれがええの?
Livetがオススメ?
- 88 名前:デフォルトの名無しさん mailto:sage [2012/06/07(木) 23:01:51.98 .net]
- mvvmlight
- 89 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 00:29:17.99 .net]
- それはプログラミングにどの言語がいいのかと聞くようなもので
PrismもLivetもMVVMLightもどれも一長一短だからな 人に聞けばたぶんバラバラに返ってくるだろうから 一度使ってみて使いやすいのを判断したほうが早い
- 90 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 01:33:55.43 .net]
- >>81
どの辺が認識おかしいの?
- 91 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 08:13:09.32 .net]
- >>89
そういうんでは、その一長一短を聞きたいんだろ。 ぜんぶ試すってのはなかなか難しい。
- 92 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 10:23:56.69 .net]
- >>86
いや、結構売れるかも知れんぞ。
- 93 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 11:41:06.72 .net]
- VMへのサービス層のDIってどうやるべきものなの?
それ以前に、VMとMを繋ぐ方法として、VMにサービス層をインジェクションする、っていう考え方はあってる?
- 94 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 11:59:23.74 .net]
- >>93
時と場合によるんだろうけど、そうするとMでやるべきのがぜんぶVMに来ない?
- 95 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 12:38:59.57 .net]
- >>94
自分が想定したのは以下の様なサービスファサードがあったとして。 interface HogeServeiceFacade { IE<Foo> GetFooList(); } HogeServeiceFacadeの実装の中では、外部サービスにアクセスしたり、ドメインモデルによる処理をしたり。 HogeServeiceFacade自体はバッチやWebでも使うものだとして。 ここがファサードになるので、それ以上Mの処理がVMに来ることは無いと思っているんだけど。 っで、このHogeServeiceFacadeとVMを接続する方法にコンテナ/サービスロケータを使う場合に どうするのかとか?、それって考え方としてそもそもあっているの?、っていうのを聞きたかった。
- 96 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 12:44:10.40 .net]
- >>95
そういうんではありなんじゃない? そもそもMVVMは大本はViewとMの分離があって、それにさらに薄いVMいれると更にセパレーションで来て良いよねって話だから。 で、ロケータ使う場合色々あるけど既存の使うか自前で作るかじゃない。 薄いやつなら実質ただのKeyValueで出来るだろうし、それで結構まかなえると思われ。Prismとかはその辺も実装されてる。DIがより良くインテグレートされてる。他は知らん。
- 97 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:03:47.05 .net]
- コンバータ(IValueConverterを実装したクラス)はMVVMのどの層に属するものなの?
- 98 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:07:30.90 .net]
- >>97
View
- 99 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:20:41.29 .net]
- コンバータ自体簡易VMみたいなもんじゃね?
- 100 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:32:59.19 .net]
- >>97
それを分類することに何か意味があるの?
- 101 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:47:18.95 .net]
- コンバータ、StringFormat、VMでの詰め替え等が混在していると保守性が悪くな
- 102 名前:閧サうだ []
- [ここ壊れてます]
- 103 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:55:44.00 .net]
- VMでなんでも出来はするるが、責務としてVMでやるのはデータ構造の変換までにして、色だの文字だのの修飾はコンバーターでやるべきだろう。
- 104 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 13:57:35.24 .net]
- 自分はコンバータも形式の変換で、修飾なりなんなりはViewにやらせるな
- 105 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 14:47:38.34 .net]
- おまえらユニットテストには何使ってるの
- 106 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 14:53:47.65 .net]
- >>96
Thx 考え方としてはありか。 Prismにはその辺の仕組みもあるのね。 じゃあ、各フレームワークでそういう機構を持っているものについて、該当クラス名とかを知っている人がいたら教えて下さい(*・ω・)*_ _)ペコリ 後は自分で調べるので。
- 107 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:13:12.05 .net]
- >>104
NUnit
- 108 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:14:23.05 .net]
- MVCとかMVPとかのパターンを判りやすく解説してる本あったら教えて
- 109 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:24:26.98 .net]
- >>104
俺もNUnit。
- 110 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:27:32.55 .net]
- 上のご神託を読んでこい。
- 111 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:36:30.90 .net]
- >>109
いや、MVVMの前提となるMVCやMVPについて知りたいんだが やっぱファウラー先生あたりの本になるのかな?
- 112 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 15:57:52.51 .net]
- 偉い先生が書いたものとか読んだことないわー
MVCとかなにかのパターン本に乗ってたけどネットで探れるのと大差ない。 MSDNでMVPVMの説明してるやつでMVC,MVP説明してるのあったお
- 113 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 16:02:11.72 .net]
- MVCではクライアントはC(イベントハンドラ、リスナー、コールバック)に
アクセスしてVがレスポンスとして帰ってくるのに対し、 MVVMはクライアントがVにアクセスしてVが帰ってくる感じだな。 HTMLならステートレスなMVCが、Viewがクライアント内にある ステートフルなappletとかsilverlight、デスクトップGUIならMVVMが良さそうだ。
- 114 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 16:12:29.99 .net]
- MVCについて知りたいならSmalltalkを調べろ。
WebのMVC(2)ならむしろRESTってキーワードで調べろ。 MVVM自体に関する本は知らん。 そしてそれとは関係無しに、PoEAAなんかも読んでおくべき。 PoEAAだけ読んで、ドメインモデルvsトランザクションスクリプト厨になったりする奴も多いけどな。
- 115 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 16:18:06.91 .net]
- そろそろ電子書籍で売ってくれ
- 116 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 17:40:37.50 .net]
- >>113
MVCってSmalltalkコミュニティから提唱されたのか
- 117 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 18:47:52.68 .net]
- たしか。
オブジェクト指向の元祖たるSmalktalkで発展したものだと効いた希ガス
- 118 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 19:10:59.99 .net]
- 良スレの予感。
- 119 名前:デフォルトの名無しさん mailto:sage [2012/06/08(金) 20:31:39.36 .net]
- やっぱりVMのライフサイクル管理やVMへのインジェクションを行うサービスロケータはあっても良いよな。
アプリケーションの構造によっては別にいらないだろうけど。
- 120 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 10:42:20.11 .net]
- 複数ViewModel間の呼び出しってどうすべき?
- 121 名前:デフォルトの名無しさん [2012/06/09(土) 11:28:54.73 .net]
- public string Name
{ get { return Model.Name; } set { Model.Name = value; } } こういう感じで VM で M のプロパティを V に伝えるためだけの プロパティってなんていうの?
- 122 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 11:41:10.30 .net]
- ごめん、knockout.js の話題はここで良い?
- 123 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 11:45:02.52 .net]
- >>120
NotifyPropertyChanged使わないなら直接Modelのプロパティにバインドしてよくね
- 124 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 14:57:44.75 .net]
- >>122
難読化でいちばん隠したい部分がまる見えになるからオススメできない プロパティ多すぎて書きたくねぇ!ってならT4
- 125 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 16:03:19.03 .net]
- 難読化か。難読化なら確かにラッピングは必要かもしれんが
internalなViewModelじゃだめなん?
- 126 名前:デフォルトの名無しさん mailto:sage [2012/06/09(土) 22:58:26.63 .net]
- ラムダ式からプロパティ名を取り出す方法なら難読化できるよ
- 127 名前:125 mailto:sage [2012/06/09(土) 23:02:50.05 .net]
- ああXAMLには影響が出るから無理か
インターフェイスが曝されるだけなら別によくない? VMでラップしまくるのも大差ないと思うが
- 128 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 02:20:40.65 .net]
- まあ全部ラッピングしたらしたでやっぱり中身の名前はそのまま出てくるわけだしな
それなら直接Model繋げた方がいい
- 129 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:31:10.74 .net]
- ふむ。
ttp://www.mnow.jp/LinkClick.aspx?fileticket=U%2b2U8DNLxfs%3d&tabid=220&mid=867 確かにナビゲーションなんかは、MessengerやBehaivorで解決できはするんだけど、 VVMの責務としてどうなのかとか、MVVMというよりもBlend至上主義になりすぎているのではと思うことはあって。 何かしら別の層があっても良いと感じてはいたが。 それをPと呼ぶかどうかはともかく。
- 130 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 19:42:58.13 .net]
- 世の中にはコードビハインドというものがあってだな
- 131 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 20:08:46.96 .net]
- コードで書くかと、コードをどこに書くかは全然違う話であってだな
- 132 名前:デフォルトの名無しさん mailto:sage [2012/06/10(日) 20:22:58.07 .net]
- ところでVS2012のデザイナはBlendベースで刷新されて前と比べ物にならないくらい良くなってるぞ
アニメーションやテンプレートやリソースの編集にはBlendがまだ必要だけど MVVMのV作るときにはそろそろBlendいらないと思う
- 133 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 07:53:21.15 .net]
- >>121 のやつ
en.m.wikipedia.org/wiki/KnockoutJS knockoutjs.com/ SilverlightとKnockoutJSの比較 www.codeproject.com/Articles/365120/KnockoutJS-vs-Silverlight
- 134 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 09:04:31.43 .net]
- コマンドもバインディングできて、シンプルなテンプレートも付いてるのはいいな。
なかなか使いやすそうな感じだね。これは確かにMVVMだ。 質問とかだったらWeb制作板のライブラリ質問スレが適当かな。
- 135 名前:デフォルトの名無しさん mailto:sage [2012/06/11(月) 09:12:27.73 .net]
- WebはWebでもJSはクライアント側でUIを扱うからMVVMなんだな
- 136 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 01:28:10.49 .net]
- VS2012になると ビュー モデルは Portable Library でサポートされるそうだ、VM と M は可能な限り Portable Library に押し込んでマルチプラットフォーム化を目指せるのか。
- 137 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 02:06:46.27 .net]
- VMが厚くなるな
- 138 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 02:23:38.61 .net]
- MetroとWPFでVM使い回しはきついだろ
ギャップが大きすぎるから、大量のコードビハインドでVMを相当抽象化することになるか 互換性のためにどっちつかずでプラットフォームの空気を読まない不自然なUIになりそう
- 139 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 07:04:36.86 .net]
- Portable Libraryは別に良いんだけど、別にVMのマルチプラットフォーム対応を目指す必要は無いと思うんだよね。
使用するビューのテクノロジーやデバイスが異なればVMに求められる構造だって変わってくるし。 WebのMVCでPCサイトとモバイルサイトで同じControllerを使う、程度には面倒で制約が多い気がする。 むしろマルチプラットフォーム化できるんならしたいのはMじゃね?
- 140 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 12:49:34.16 .net]
- Livet で、Winodws.Loaded 時にコマンド発行させたいんだが、どうすればいいの?
WindowAction みたいなので、コマンドを発行するだけの Action があればいいだんけど、 見つからなかった。 自分で作るしかない?
- 141 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 13:12:31.77 .net]
- >>139
i:EventTrigger i:InvokeCommandAction
- 142 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 16:51:30.23 .net]
- Portable Library に Model を押し込む努力はするべきだ。
Portable Library に押し込むには ViewModel は View にプロパティを提供するだけにせざる負えない。 と書いてどっかで聞いたなと思ったら。 MVPVMパターンあった。 Portable Library に ViewModel と Model を押し込んで View と Presennter をプラットフォーム依存にするのか。
- 143 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 17:21:46.72 .net]
- で、そのPresenterってコードビハインドじゃん、ってなった
- 144 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 18:36:18.33 .net]
- 状況によってはPresenter設けてもいいと思う
Viewのサイズや表示位置、グリッドのソート順や列の表示・非表示等を構成ファイルに保存/読み込みさせるのに独立したPresenter設けても可
- 145 名前:デフォルトの名無しさん mailto:sage [2012/06/12(火) 20:43:19.56 .net]
- Presenterの役割定義が昔に比べて広いものを指すようになってきている気がするのは俺だけ?
IHogeViewを実装しているビューなら、それがWPFだろうがWindows FormsだろうがConsoleアプリだろうが、 HogePresenterから操作できる、みたいなのがMVPのイメージだったんだけど、 コードを書く = Presenterな使われ方が増えている気がするんだけど、MVPってそういうものだったの? ビュー間にまたがるものやアプリケーション横断的な処理の記述箇所については、 Presenterといわずに別の定義をした方が良いんじゃねと思ったんだけど。
- 146 名前:139 mailto:sage [2012/06/12(火) 22:17:28.41 .net]
- >>140
ありがとう。 Livet 関係なくできたのか、 ぐぐっても出ないわけだ・・・。
- 147 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 02:37:56.25 .net]
- >>142
V->VMが密結合にならないのがコードビハインドとは違うところ 実際やるかどうかは別にしてVMの差し替えが可能
- 148 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 10:57:45.00 .net]
- NVPVMはあくまでMVVMの派生パターン
特殊なコンポーネント使っててViewの負荷が異常に高い場合、有効なパターンだよ
- 149 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 12:44:02.37 .net]
- じゃぁViewにプロパティを提供する入力検証の一部をする以外の、
VMでやっていることを考えてみよう。 非常にめんどくさいコーディングスタイルのコントローラじゃないのか?
- 150 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:12:22.81 .net]
- それでいいんだろ
一つのViewを異なる使い方で使いまわすときに VMごと入れ替えるのは無駄が多いからっていうのが元々のアイデアだと思う
- 151 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:19:04.84 .net]
- >>149
> 一つのViewを異なる使い方で使いまわすときに > VMごと入れ替えるのは無駄が多いからっていうのが元々のアイデアだと思う え? 一つのViewModelを異なるアーキテクチャで使いまわすときに Viewごと入れ替えるのは無駄が多いから の間違いじゃね?
- 152 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:21:02.28 .net]
- MVPVMのサンプルも、VM−Mのコンビは汎用性持たせ、Pで差分吸収するサンプルに思えたが
- 153 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:26:43.72 .net]
- 両方だろ
VがVM、VMとビジネスロジックがそれぞれ密結合しないことでVとVMの再利用性を高めるのがねらい
- 154 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:30:43.53 .net]
- こういう意見もありますが
ttps://gist.github.com/2041069
- 155 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:37:22.90 .net]
- 2chの煽りと変わらんだろw
ugayaはこういう説明の仕方を見習うべき www.global-webnet.net/blogengine/post/2010/02/05/MVPVM-Model-View-Presenter-View-Model-the-natural-evolution.aspx
- 156 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:40:07.82 .net]
- VがVMに密結合してしまってるのが問題だといってたぞ。
U氏も遷移を切り離すならしっくりくると書いてある。 VMから遷移を切り離したら何が残るの? Viewにプロパティを提供する入力検証の一部をする位じゃないの?
- 157 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:46:36.47 .net]
- >>155
VがVMに密結合するのはコードビハインドな それをPに切り出してPを差し替え可能にしてるから密結合しない
- 158 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:47:19.86 .net]
- Viewで相互運用使うならMVPVM有りとの話もあるが、実際作業するとコードビハインドしか逃げようがないんだよなぁ〜
- 159 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 13:49:10.29 .net]
- コードビハインドってPじゃねえの?
- 160 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 15:20:15.29 .net]
- 質問。
VMの第一の目的って、Mの構造をVでバインディングしやすい形に変換した形で持つ事っていうのであってる? 例えば、DBの2次元表の構造を、複雑なViewにバインディングするためLINQで変換する、とか。 なので、Mの構造そのままを表示するようなVだと、VMは単純なラッパに見えてしまう。
- 161 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 15:27:06.16 .net]
- Mの構造そのまま表示できる場合においてはVMは不要
- 162 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 15:45:57.26 .net]
- 実際に作ってみりゃわかるけど
純粋にMのプロパティだけでインターフェースは作れない タブやエキスパンダの状態とか環境設定とかの話ね めんどくせぇから全部詰め込むってのもありだけど 無駄に一緒にするのは保守性を悪くする どうせそこらへんはほとんどラッパなんだから 書くのがめんどくさい部分は全部T4使えとT4
- 163 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 15:51:40.10 .net]
- T4使いづらいって印象しかないんだが、なんか間違ってる?
- 164 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 15:57:40.49 .net]
- 外部のコードジェネレータを逐一呼び出すよりはT4でやった方が楽だろ
複数ファイルの処理が面倒なのはわかるが
- 165 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 16:36:31.97 .net]
- >>162
俺も同じ印象だ。 結局MsBuildタスクで、 d.hatena.ne.jp/okazuki/20110116/1295166605 の様な属性からコードを生成するようにしたよ。
- 166 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 17:01:14.95 .net]
- どうもこうも
ViewModelBase<T>から派生してたら partialでTのプロパティを全部ラップしてやればいいのさ 簡単だろ? T4で自分のプロジェクトからリフレクションする方法がわかりませんっていうなら 調べろとしかいいようがないが
- 167 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 17:10:39.16 .net]
- リフレクション使ったらVSのプロセス終了するまでアセンブリ掴みっぱなしじゃね
- 168 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 17:23:42.40 .net]
- > T4で自分のプロジェクトからリフレクション
このあたりは、みんなどの方法を採用してる気か聞いてみたいね。 俺はWPFのコンパイルプロセスを見習って、 自分自身を一度ビルドしてからCecilでアセンブリにアクセスしてる。 他にも Cecilではなく普通のリフレクションAPIを使ったり、 ビルドせずにRoslynやNRefactoryを使ったりという方法もあるけど こっちを使ってる人もいるのかな?
- 169 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 17:36:11.05 .net]
- >>166
アセンブリがアンロードできない・・・と来れば、あとはわかるな? そう、AppDomainの出番だ。
- 170 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 17:39:54.72 .net]
- >>168
おい、やめろ AppDomain芸をよりにもよってT4でとか地獄過ぎる RoslynはまだCTPだしT4上で現実的なところで言えばCecilだろうな コード生成じゃなくてポストプロセスでのIL書き換えでよければPostSharpなんかも選択肢に入るが
- 171 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 18:07:49.37 .net]
- うん、AppDomainは無い
まだ別プロセスを起動した方がマシ
- 172 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 20:42:48.42 .net]
- PostSharpとか使ってやるのがお手軽?
自前でTaskを作ってビルドプロセスに追加する方が良い?
- 173 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 21:09:57.27 .net]
- 一番手軽なのは某氏のDSL
- 174 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 21:11:07.57 .net]
- Castle.DynamicProxyでいいわ
コード生成だるい
- 175 名前:デフォルトの名無しさん mailto:sage [2012/06/13(水) 23:33:29.53 .net]
- >>172
えむなうさんの?あれってC#専用だよね?
|

|