silverlight2についての質問

タグの編集
投稿者 rin  (社会人) 投稿日時 2008/11/2 18:39:41
できましたら 管理人のるきお様にご返答をお願いいたします。
silverlight2は、リッチなGUIアプリを簡単なコードで作成できると
書かれていましたが、本当でしょうか?また、silverlight2とVBとの
関係がいまいちよくわかりかねます。
VBができなくともsilverlight2単独でいろいろなアプリが開発できるという
解釈は間違っていないでしょうか?
投稿者 るきお  (社会人) 投稿日時 2008/11/8 09:45:56
こんにちは。
ご指名ですね。
基本的には私であれ他の誰であれ指名することは御控え願います。

Silverlight2は私もとても注目している技術ですが、
まだじっくり手をつけておらずあまり深い部分は語れません。
知っている限りでお答えしますが誤解が含まれているかもしれません。

>silverlight2は、リッチなGUIアプリを簡単なコードで作成できると
>書かれていましたが、本当でしょうか?
本当です。
ただし、「簡単なコード」の内容は従来のVBの雰囲気とは異なりますので、
Silverlight2にある程度詳しくなるまでは簡単と感じないかもしれません。

>silverlight2とVBとの
>関係がいまいちよくわかりかねます。
最近の言葉を使うとSilverlight2はフレームワークで、
VBはプログラム言語というように私は理解しています。
たとえば、VBでプログラムできる環境を思いつくままに挙げてみます。
・Excel
・Access
・Windows(VBScript)
・ASP(VBScript)
・ASP.NET
・Windows Form
ここにSilverlight2が追加されたというイメージです。
ExcelもAccessもVBでプログラムできますが、制御する対象はまったく違います。
ASP.NETとWindows FormはVB2005, VB2008でも使用可能でまったく同じ言語ですが、
考え方が全然違います。
たとえば、Windows FormではForm1からプログラムを開始しますが、指定すればSub Mainから開始するように変更することもできます。
ASP.NETはそのどちらでもありません。これは考え方や特性の違いに由来する区別です。
しかし、始まる場所の考え方がどこであろうがプログラムは同じVBで行います。
値の保存の考え方もまるで違います。Windows FormではFormに共通変数を定義してそこに記録すれば、そのFormの存続期間中はいつでもその変数から記録した値を取り出すことができます。
しかい、ASP.NETではイベントの発生が終了してクライアント側に制御が戻ったとたんに変数に記録した内容はすべて破棄されます。

このように同じ言語でプログラムできる環境でも、その「環境」の仕組みによってさまざまな違いが発生します。Silverlight2はそのような新しい「環境」なのです。

>VBができなくともsilverlight2単独でいろいろなアプリが開発できるという
>解釈は間違っていないでしょうか? 
答えにくいです。たぶん間違っています。
Silverlight2では標準でXAMLという文法でレイアウトを記述します。XAMLではレイアウトだけではなく処理も記述することができます。ですから、VB(やC#)がなくてもSilverlight2でいろいろなアプリが開発できます。
でも「いろいろなアプリ」の指している広さはVB(やC#)を使った時よりも狭いです。
やはりVB(やC#)を使うとぐっとSilverlight2でできることが広がります。
もし、Accessの経験があるのでしたら、VBAを使わないでもAccessで結構いろいろなアプリケーションは作れますが、VBAを使った方がずっとずっといろいろなことができるということを想起してください。
または、FrontpageやExpressionWebの経験があるのでしたら、JavaScript(やVBScript)を使わなくてもWebページを作れますが、JavaScript(やVBScript)を使った方がもっともっと多くのことができるということを想起してください。

現在マイクロソフトはVBやC#などの言語の強化よりもフレームワークの強化の方に力をそそいでいるように思えます。最新の開発環境で使用できるマイクロソフトのフレームワークを挙げてみます。
・Windows Form -おなじみですね。
・ASP.NET -VBによるWeb開発でもっともポピュラーです。
・ASP.NET Ajax
・ASP.NET MVC
・WPF
・Silverlight2
・WF(Windows Workflow)
・WCF(Windows Communication Foundation)
中には「フレームワーク」とはちょっと言えないようなものもあるかもしれません。
でもこれらは適材適所で使い分けるもので、どれもVBでプログラムできますが発想や仕組みが異なります。

Silverlight2の得意分野はWeb環境でのリッチなインターフェースです。Flushのような存在です。Silverlight2を動作させるのにクライアントに.NET Frameworkを入れる必要はありません。

長文になってしまいましたが回答になっていますでしょうか?




投稿者 rin  (社会人) 投稿日時 2008/11/9 03:00:17
>基本的には私であれ他の誰であれ指名することは御控え願います。

大変申し訳ありません。以後気をつけたいと思います。
ただ、おかしな輩が徘徊しているので、あえてこうした文言を付与した次第です。

また、詳しく、わかりやすく説明していただき感謝しております。
有り難うございます。
投稿者 (削除されました)  () 投稿日時 2008/11/11 02:38:59
(削除されました)