任何人都可以向我指出一个链接,其中详细说明了Silverlight的工作原理。我的意思是,它是作为一个单独的进程运行还是在与浏览器相同的进程中运行? Silverlight插件是否负责解析XAML并呈现Silverlight与浏览器在同一地址空间中运行?基本上更多关于如何解析和呈现Silverlight代码的细节以及处理它的过程以及这个过程在哪里运行?
TIA
答案 0 :(得分:2)
我还没有看到您正在寻找的深度信息。 所以,请按照我所知道的一些内容。
Silverlight的运行方式取决于浏览器插件架构。请查看以下链接:
http://blogs.msdn.com/b/jstegman/archive/2008/12/21/silverlight-browser-support.aspx
http://kb.mozillazine.org/Plugin-container_and_out-of-process_plugins
这个链接有一点关于你的要求(SL1):http://help.outlook.com/en-us/140/bb412366.aspx
上面的这些链接都没有超出你想要的深度。
我所知道的是Silverlight插件是一个运行时环境,就像.net或java vm一样。
为Silverlight应用程序(c#,vb,f#)编写的代码首先编译,打包并压缩在xap文件中
在IE中,Silverlight使用ActiveX技术。在其他浏览器中,它使用NPAPI。
在运行时不解析/解释源代码。 Silverlight应用程序采用二进制格式,就像常规.net应用程序一样。
xap文件是包含二进制文件(dll)和内容(xaml,images,...)的部署单元。Visual Studio负责为您生成xap。但你也可以自己做。 xap扩展名只是一个重命名的zip文件。
一旦浏览器收到xap文件,插件就会启动并解压缩并执行应用程序。
AppManifest.xaml(xap中的一个文件)告诉插件哪个类是入口点。运行Silverlight应用程序时,仅在运行时解析UI控件的Xaml部分。
输入首先由浏览器处理,然后由插件处理。一般来说,你并不关心它,但确实有一些后果。
Silverlight插件还能够将Xaml直接嵌入到Html中。
插件能够与页面交互并可以将对象模型暴露给JavaScript,并且应用程序还可以调用JavaScript函数和交互与DOM。
如果是为此设计的,Silverlight应用也可以在浏览器外部运行。