Visual Studio Tools for Office で重い処理する場合について
VSTO を Windows XP で動かすためにはランタイムと言語パックが必要なことは分かったんだけど、Vista 以降だとどうなってるんだろう
2012-04-04 14:44:34@hidori 他のPL技術が MVVM が多いので VSTO でも ViewModel 的なものを作りたくなったりするのですが、ひたすらコードビハインドになっちゃうなぁと思ったりでして
2012-04-05 15:53:26@normalian 所詮 Office のオートメーションモデルを .NET なアドインからこねこねなわけだから、コードビハインドちゅーかなんちゅーか。
2012-04-05 15:55:17@normalian オートメーションモデルの「モデル」と MVVM の「モデル」を重ねて見ちゃダメだよ。おなじ「モデル」と呼ばれるものでも、そもそもの目的がぜんぜん違うから。
2012-04-05 16:02:49@normalian 結局、まるで無縁のモノ同士を「つなぐ」ことになるから、つなぎ目は自力で抽象化するとかの別の努力しないとダメだよん。
2012-04-05 16:03:37@normalian VBA 向けに作られた Office オートメーションモデルが最初にありきだから、そなっちゃったんでしょうねぇ>VSTO から見たアプリケーションモデル
2012-04-05 16:07:32なるほどーーーー RT @hidori: normalian VBA 向けに作られた Office オートメーションモデルが最初にありきだから、そなっちゃったんでしょうねぇ>VSTO から見たアプリケーションモデル
2012-04-05 16:07:57VSTO で Excel さんに頑張らせる処理がとっても重いので、バック側に処理を投げたいけど BackgroundWorker とか使うとかえってハマるのが分かっててどうしたものか悩んでる。STA 属性を振るにしろ、VSTOのエントリポイントってどこだろうか(汗
2012-04-06 15:48:20なるほど! RT @nakawankuma: normalian エントリポイントと言うよりWebサービスに投げるような形がべたー ★今週末は大阪勉強会!きてね! http://t.co/3UHbotVr
2012-04-06 15:49:53@ufcpp 同期コンテキストとかは全然弄って無いのでわかっとらんです。Excel の行数多くて処理中に UI がとまっちゃうことが多いので、BackgroundWorker でも使おうと思ったものの、スレッドまたぎでホゲるなぁと
2012-04-06 16:50:23@normalian こないだ見せてもらったURLでは、同期コンテキストないからって書いてあったような。BackgroundWorkerが自動でUIスレッドに処理もどすためには、SynchronizationContext.Current!=nullが必要。
2012-04-06 17:07:26@normalian こないだのURLで、SynchronizationContext.SetCurrent()とかしてたでしょ、確か。
2012-04-06 17:07:48@normalian STA で初期化するべきは VSTO アドインのコンテキストじゃなくて、「重たい処理」を実行するワーカースレッドの方。
2012-04-06 17:10:44@normalian VSTO アドインのコンテキストは、そのアドインをホストしている Office アプリケーションのもの=起動済みなので、スレッディングモデルを変更することは出来ません。
2012-04-06 17:12:14