2008年6月11日水曜日

Silverlight2 beta2で挙動が変わったところ

多すぎるので全部をカバーする記事を書くなんて無理。
breaking changesに載ってない変更も多々あって、そういうのはMSの中の人のブログを読むとたまに載ってたりするけど、大方は丸山さんとこにも書いてあるようにトライ&エラーで潰していくしかなかったりする。

とりあえず、Managed JSでLoadModuleするとFileIOExceptionが出るようになってしまった。それならとLoadModuleFromFileすると、例外は出ないが戻り値がnull。どないせーっちゅんじゃ。
xapの作り方が変わったのか?
(追記)Silverlight Dynamic Language SDK beta2のchironを使ってみたら動いた。なんだよー。Silverlight SDK beta2のchironと何が違うってんだよー。
(追記)chironも違うけど、DLR関係のdllが違うみたい。
(さらに追記)はてブにコメントが

terurou beta2 DLRでのLoadModule, LoadModuleFromFileについて。ここに書いてある方法をためしたけど動かないんだが…。



どういう状況なのか知りたいです!!

5 件のコメント:

  1. とりあえず状況をブログにかるーくまとめました。拾ってもらっておきながらレスポンスが遅くなってしまい、申し訳ないです。

    ちょうどハマってしまった時期がプライベートの引越しとかぶってしまって、調査する時間がないままだったところを拾われてしまったという…。

    返信削除
  2. 気になる話だったので、こちらでも追試してみました。
    ポイントは、
    1.現在の最新版は、Silverlight 2 Beta 2なのでこちらをインストールする。
    2.Silverlight Dynamic Languages SDKは、ttp://www.codeplex.com/sdlsdk の「Releases」タブにある最新版を使う。
    3.LoadModule() の第一引数はモジュール名なので "lib" だが、LoadModuleFromFile() の第一引数はファイル名なので、"lib.js" にしなければいけない。
    4.Alert()の引数は文字列なので、util ではなく、util.hoge() にしないとエラーになる。
    のようです。
    試しにUpしたサンプルを、ttp://demo-n.e-neta.jp/Silverlight/2b2/samples/jscript/test_20080717/ に置いてみました。
    app.xapは、ttp://demo-n.e-neta.jp/Silverlight/2b2/samples/jscript/test_20080717/app.xap にあります。

    #コメント送信でエラーになるようなのでURLの先頭のhを削りました。

    返信削除
  3. 調査してもらったようで、非常に助かります…。

    結果としてはチェックポイントの 3. に従って直したら、LoadModule(), LoadModuleFromFile() ともに動きました。

    先週試してた時はまったく動いてなかったのに、なぜか今回はすんなりと…。
    少なくとも現状は、Silverlight Dynamic Languages SDKの最新版ではなく、Beta 2のSDK付属のChironでも動作しちゃってるので、なんだかよくわからない状態に…。

    ひとまず動いたとはいえ、なんだかすごく気持ち悪い状態なので、また何かわかったら報告します。

    返信削除
  4. わー、何もしなかったのに解決してる。

    terurouさん、動作したようで何よりです。
    っきさん、ありがとうございました!

    返信削除
  5. LoadModule()がなんか動いたり動かなかったり?して、原因が追えなかったりしますが、きっとバグなんでしょうね…。
    LoadModuleFromFile()使っとけばとりあえずはOKっぽそうですね。

    返信削除