我目前正在做研究,准备开始一个新项目。这个项目将分为两部分,一个是轻型客户端(可能是控制台),另一个是使用silverlight的重型客户端。轻型客户端必须是跨平台的。
但是,它们将使用相同的核心(顺便说一句,核心将需要使用套接字)。
我想使用C++来构建轻型客户端,但是考虑到内核对于这两个应用程序都是通用的,如果它可以是相同的代码,我将非常感激。
所以问题很简单: Silverlight可以用C++静态库编译吗?如果可能,如何处理跨平台问题(使用moonlight)?
如果这是不可能的。在跨平台时,我可以使用哪种语言来处理silverlight?由于性能的原因,编译后的语言会更好!
感谢您的专业知识:)
发布于 2010-03-25 11:09:24
不是的。
不仅是Silverlight唯一的托管代码,它不使用标准的CRL,而是一种特殊的CRL,称为CoreCLR。Silverlight程序集是真正的.Net程序集,但针对核心Silverlight库的有限子集进行编译。当在CoreCLR中(在浏览器中)运行时,出于安全原因,Silverlight程序集在几个方面受到限制。你甚至不能用C++编写Silverlight程序集,没有任何Silverlight代码可以被标记为不安全的(我承认可能会有一种绕过这个限制的方法)。
这个答案只适用于Silverlight2和Silverlight3,虽然我没有太多使用Silverlight4的经验,但我不知道有任何东西可以让你在SL4的跨浏览器中使用这个功能。
如果你指望Moonlight能与Linux兼容,我想你会失望的。我的团队之所以选择Silverlight,是因为它可以在Firefox、IE上运行,很快还可以在Chrome上运行,在Windows上可以非正式地运行Opera,在Mac上可以运行Firefox和Safari。
编辑:注意这篇文章的作者日期,这是SL4之前的版本。
发布于 2010-03-25 07:36:53
不是的。Silverlight仅是托管代码。
但是,当在浏览器之外以提升的权限运行时,Silverlight 4将支持COM互操作。这在其他平台上是行不通的--这是Windows独有的特性。Justin Angel在他的blog post regarding the (not quite) cross-platform of Silverlight中提到了这一点。
https://stackoverflow.com/questions/2512211
复制相似问题