今天试用了Orcas的Silverlight开发,按QuickStart的说明,很顺利的学完了第一个Sample:Event Handling。
只是想不明白Silverlight通过什么方式和服务器端的托管代码进行交互。
开始以为是Ajax,但在IE里打开HTML源码,找不到任何Ajax的痕迹。
后来开始猜测Silverlight也许是把托管dll下载到本地执行。
用工具跟踪http请求后,果然如此。

原来Silverlight按xaml里指定的类库名,下载相应的 .dll和 .pdb文件到客户端,在本地环境加载后执行。
这样看来,下载完所有库后,Silverlight运行原理就和Winform是一样的了。

也许是同样的原因,Silverlight项目编译的文件都放在一个叫 ClientBin 的目录下,意思就是说这个目录的文件都是要下载到客户端运行的。