locked
Silverlight2 + Javascriptで、ホワイトボードのようなオブジェクトが動的に増加するWEBアプリを作るには? RRS feed

  • 質問

  • 初めまして。

    最近Silverlightの勉強を始め、手始めにホワイトボードのようなWEBアプリが作れたらと思いチャレンジしています。

     

    そこでネックになっているのが、マウスによる入力を判定後、グラフィックを表示させる段階で動的にオブジェクトを増やす方法です。

    Silverlight2のマニュアルを見ますと、JavaScript用リファレンスを読みますと、Rectangle等描画オブジェクトはCreateFromXAMLを用いて直接XAMLを書いて動的に生成できるようですが、これをホワイトボードのような描画オブジェクトが相当数増えていくようなケースで使うには困難だと思うのです。.

    NET Frameworkアプリケーションを作れば、そのようなことは問題がないのかもしれませんが(そもそもinkCanvasというものがあるようですね)、Flashのようなブラウザプラグイン内で動作するような汎用的なものを作りたいため(というかFlashと同じようなことが出来るかという検証でやっています)ため、ごく一般的のサーバ+ブラウザ内で動くことが前提です。

     

    Silverlight2クラスライブラリ内のようなオブジェクトを、JavaScriptで使えたりするのでしょうか?

    現状、1.0リファレンスしかないので、2.0でこの辺が変わったりするのでしょうか?

     

    Flashと同じようなプログラミングがもし実現できるのなら、表現力そのものはSilverlightの方が豊富だと思うのでいろいろ面白いことが出来るのですが…

    もし知っている方がいらっしゃいましたらご教授いただけますでしょうか?

    宜しくお願いいたします。

    2008年6月11日 10:52

すべての返信

  •  

    Silverlight2 の、.NET で対応するなら、こんな感じ<wankuma.com>です。
    2008年6月18日 3:02
  • 拝見いたしました。

    お返事遅くなって申し訳ございません。

     

    確かに.NET Frameworkだとそういった感じになるんでしょうけど、これをJavaScriptベースで出来ないものでしょうか?

    それとも、.NET Frameworkで作ったオブジェクトを、FLASHでいうところのswfファイルのようにMacなどから実行できるのでしょうか?(.NETのことをあまり詳しく知らないため、申し訳ございません)

     

    FLASHの代替技術として面白いかなと思ったんですが…Silverlightの表現力は面白いのですが、まだまだ制限が多いのかな、という印象を受けています。

    2008年6月24日 1:54
  • Silverlight 2 beta 2 がサポートされているのは↓

    http://www.microsoft.com/silverlight/resources/install.aspx?v=2.0#sysreq

     

    Silverlight 2 beta 2 でどんな機能がサポートされているかは↓
    http://silverlight.net/getstarted/overview.aspx

     

    もうちょい詳しいのが↓
    http://msdn.microsoft.com/en-us/library/bb404713(VS.95).aspx

     

    日本語訳版も探したんですが、まだ無いみたいです。
    まぁ、表とかをざっと見て頂くだけでもどんな機能がサポートされているかはわかるかと思います。

    Silverlight 2 では JavaScript だけではなく、.NET Framework for Silverlight もサポートされています。
    .NET Framework for Silverlight は名前の通り .NET Framework の Silverlight 版です。
    これは本家の .NET Framework とはまったく無関係で、あくまでも Silverlight 2 の一機能です。
    ですから、PC に .NET Framework が入っている必要はありません。
    もちろん Mac でもサポートされています。
    ただし、本家の .NET Framework と同じものではなく、GC やセキュリティの仕組みなどいろいろと違うところもあります。

     

    ベース・クラス・ライブラリも Silverlight 2 に一通り入っています。
    WCF や LINQ などもサポートされています (フルサポートじゃなかったような気はしますが)。
    もちろん、ベース・クラス・ライブラリも本家とはいろいろと違うところもあります (必要無さそうなものは削除されています)。

     

    XAML 的にもスタイルやテンプレート、データバインディング、コントロールなどなど WPF に負けないくらいいろいろとサポートされています。


    開発言語も C#、VB、それにダイナミック言語の IronPython、IronRuby、JScript などがサポートされます。
    私もよくわかってませんが、JScript は DLR (Dynamic Language Runtime) の上に実装されたもの、JavaScript は Silverlight 1.0 のころから使っているもの、っていうことみたいです。

    あと、きちんと確認してませんが、Silverlight 2 が使用しているアセンブリの形式は .NET Framework 2.0 そのまんまみたいです。
    なので、マネージドなアセンブリ (DLL) が作れる言語ならなんでも使えるんじゃないかと思ってるんですが、どうでしょ?>詳しい人
    (もちろん、Silverlight 2 でサポートされていないクラスを呼び出しちゃうとダメですが)

     

    と、ごく簡単に Silverlight 2 を紹介してみました。
    このように Siverlight 2 は Silverlight 1.0 とはまったくの別物と言っていいくらいに変わりますので、一度どんなものか調べてみるといいんじゃないかと思います。

    2008年6月25日 1:56
  • 青柳様、情報ありがとうございます。

     

    そうですね、Silverlight2は別物と言っていいほどいろんな機能が追加されているのは、ご紹介のページで良く分かります。

    私も、SilverlightDocumentation(Bata2)を読んで、その辺のことは理解しています。

     

    ただ、どのサンプルをみても、必ずVS2008 + Tools + ASPベースで開発されているようなので、そうでない場合で開発公開できる手段がないのかな、と。独自にASPサーバをたてて公開するのならこれでいいのですが、一般的に公開して使っていただくようなケースを想定しているので、この縛りが無い(つまりApacheサーバなど一般的なサーバでの公開ができる)方法が知りたいです。できればVS2008無し(SDKのみ)で出来ると良いんですが…

     

    SilverlightDocumentation(Bata2)には、「Silverlight1.0 - Development with JavaScript」と「Silverlight2 Bata2 - Development with .NET Framework」があるのですが、ぶっちゃけ「Silverlight2 Bata2 - Development with JavaScript」があれば解決なんでしょうけど。無いところをみると、まだ実装されていないか、あるいは実装の予定がないのでしょうかね?

    2008年6月26日 3:05
  •  MASA-P さんからの引用

    ただ、どのサンプルをみても、必ずVS2008 + Tools + ASPベースで開発されているようなので、そうでない場合で開発公開できる手段がないのかな、と。

     

    Silverlight は 1 も 2 もあくまでもブラウザ上の技術であって、サーバはまったく関係ないというのは OK ですか?
    サンプルは単に 「VS2008 + Tools + ASP.NET がお勧めだから」 それで作られているってだけでしょう。
    Silverlight を呼び出すのは HTML に object タグを書いときゃいいだけなので ASP.NET は必要ありません。
    Tools に含まれる Silverlight の ASP.NET サーバコントロールを使うとちょっと便利になるってだけです。
    ちなみに、VS2008 + Tools で Silverlight 2 のプロジェクトを新規作成するとテスト用の .aspx と同時に .html も作成されます。
    この .html は object タグが書かれているだけで、もちろん ASP.NET が無い環境でも使用できます。

     

    あと、VS2008 + Tools 無しの開発についてですけど、先にも書いたようにできるんじゃないかと思います (確認はしていませんが)。
    けど、何かと面倒だと思いますし、VS2008 を使うのはダメなんでしょうか?

     

     MASA-P さんからの引用

    SilverlightDocumentation(Bata2)には、「Silverlight1.0 - Development with JavaScript」と「Silverlight2 Bata2 - Development with .NET Framework」があるのですが、ぶっちゃけ「Silverlight2 Bata2 - Development with JavaScript」があれば解決なんでしょうけど。無いところをみると、まだ実装されていないか、あるいは実装の予定がないのでしょうかね?

     

    私も Silverlight 2 における JavaScript の位置付けはよくわかりません。
    なんとなく、Silverlight 1.0 との互換のためだけに存在するような気もしないでもないです。
    もちろん、DLR 上の JScript は IronPython や IronRuby と同じく Silverlight 2 のフル機能がサポートされるんだと思いますが (こっちの件もあまりよく知りません)。

    2008年6月26日 4:59
  • 青柳様

     

    素早いご返答ありがとうございます。

     

    実は投稿した後ヘルプドキュメントを眺めていたのですが、SDKのみでオブジェクトを作るツールがあり、それを利用することでVS2008なしに制作が出来ると思われるやり方が書かれているのを発見しました。まだ試してはいないのですが、解決できそうな気がしています。

    それから、ASP云々については私の勘違いというのか、1.0でJavaScript上でSilverlightr.jsを呼んでいたのが2.0でそれと思われるのがなかったので、ASP側で何か埋め込むことをしているんじゃないかと思ったのと、.NET Frameworkとの関係を勘違いしていてexeやdll形式のファイルをMac等で開けないのではないかと思っていたためです。objectタグで読み込む形式になったんですね。それなら納得です。

     

    確かにVS2008を導入してしまえば簡単に解決ができるのかもしれないのですが、まだFLASHと量り比べているところがありまして、個人的な事情で申し訳ないのですが、VS2005→2008のアップデート+ExpressionStudioにするか、CreativeSuite4の優待購入(FLASH MXを持っているので)にするかで迷っていて、VS2008を導入しなくてもSilverlight開発が出来るのなら、FLASHと併用できるかなと思いまして。

     

    ちょっと話が脱線するんですが、Silverlightをそもそも研究しだしたのは、「縦書きに対応するかもしれない」的なネット記事を見つけまして、今までFLASHで出来なかったので「これは!」と思って触りだしたのがきっかけでした(実際にはSilverlight2では今のところ縦書きについては非対応で、逆にFLASH Player10で対応したため、新版FLASHは出来れば欲しい)。本当ならFLASH一本でいく方が現実的かもしれませんが、Silverlightはそれはそれで面白い機能がいっぱいあるので、そのまま無かったことにしてしまうのは惜しいです。いまのところSDKのみで作るTipsがあまりないようなので、研究して発表してみるのも面白いかなと思っています。

     

    ありがとうございました。

    良いヒントがいただけましたので、もうしばらく研究してみたいと思います。

    2008年6月26日 6:51
  • そういえば、今は VS2008 Standard 以上、すなわち有料の VS2008 しか Tools を入れられないんでしたね。

     

    http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx
    こちらは Microsoft の Developer Division の Vice President (開発部門の副社長) である Scott Guthrie 氏のブログですが、ここに 「まだ VS2008 Express はサポートされないの?」 というコメントに対する答えがあります。
    Friday, June 06, 2008 11:49 PM by ScottGu
    のところです。

     

    これによると、この夏リリース予定の Visual Web Developer 2008 Express (無料版の VS2008。VWD と略される) の SP1 と VS Tools for Silverlight のアップデートで Silverlight 2 の開発がサポートされるようです。
    Expression Blend の無料版がないと片手落ちという感じはしますが、それでもテキストエディタなどで開発するのに比べればはるかにましだと思います。
    VS2005 と 2008 を同じ PC に入れることもできますし、VS2008 導入が費用的な問題であれば、この VWD2008 Express SP1 が使えるんじゃないでしょうか?

    2008年6月26日 10:19
  • なるほど、VWDなるものが今後リリースされるのですね。

    個人的にはビジュアルツールでなくても良いのですが、テンプレートを勝手に作ってくれるでしょうからきっと便利でしょうね。

    リリースされたら是非使ってみたいと思います。

    まあ、なんだかんだでそのうちVS2008にバージョンアップするとは思いますけど…(笑)

    おそらくVWDではデバッグできないでしょうから。

    高額なSuiteのバージョンアップが重なってしまったので、個人の貧乏人には辛いところです。

     

    有用な情報をありがとうございました。

     

    2008年6月27日 1:56
  • > なるほど、VWDなるものが今後リリースされるのですね。

     

    VWDの2005、2008はすでにリリースされています。
    ただ、現状のVWDではWebアプリケーションプロジェクトと呼ばれる形態のプロジェクトが利用できません。
    このため、Silverlight 2 のプロジェクトも作れない状態です。

    これがSP1が提供されるとWebアプリケーションプロジェクトが利用できるようになる、ということです。

     

    > おそらくVWDではデバッグできないでしょうから。

     

    ASP.NETの部分、およびコードの動作についてはデバッグできるでしょうね。
    Silverlightで問題になるのはExpression Blend が担当するユーザインタフェースの作成の部分でしょう。

     

    VWDのSP1についてはベータ版がでているのでそれを触ってみるものよいかも。

    ベータ版に統合できるSilverlight 2もでてたんじゃなかったかな。。。

    2008年6月27日 7:16