在Mac上运行Silverlight浏览器外应用程序需要什么?

我认为标题是全部解释。 我想为Windows开发.Net GUI应用程序,它也可以在Mac上运行而不需要太多额外的努力。 我猜WPF在这里不是正确的选择。 无论如何,我该怎么做才能使我的Silverlight浏览器外应用程序在Mac上运行? 只需在该机器上安装Silverlight?

Silverlight的Out of Browser模型在Mac上运行良好,并且从一开始就是如此。 只需开发应用程序并在Windows上进行测试,它基本上保证在Mac上具有相同的行为,除非您依赖于仅限Windows的function(例如Silverlight 4受信任的应用程序中的COM互操作)。

编辑:为了进一步澄清我的答案,在Mac上运行OOB应用程序需要安装Silverlight Runtime之外的任何内容。 因此,如果用户能够在浏览器中运行您的应用程序以执行安装序列,那么他们将能够安装应用程序OOB并使用它。

当然,这仅适用于Silverlight 3+,就像function发布时一样。 因此,如果最终用户安装了Silverlight 1或2,他们将无法安装您的应用程序,但他们可以升级到最新的运行时能够这样做(除非他们在PPC Mac上,因为它只支持Silverlight 1.但是现在大多数Mac都是英特尔,所以这并不值得一提。)

根据Silverlight 3的入门指南,在Windows和Mac上都可以使用OOB而无需额外的运行时。 这是来自channel9的安装过程的演示 。

至于特定的挂断,这超出了我的经验。 但听起来,一般来说,在OS X上运行SL应用程序以外的浏览器没有特殊要求。

我已经构建了一个状态宽泛的Silverlight 4.0应用程序,它在浏览器和浏览器之外运行。 根据我的经验,它在Mac上运行得非常好,但我会说它并不完全相同。 它非常接近,但安装体验存在细微差别,我在隔离存储中遇到了一些我在Windows机器上无法获得的错误。

总的来说,我肯定会说Silverlight是我用过的最好的跨平台开发平台。

在Mac上为OOB构建了一个SL应用程序后,我发现了一个给我带来困难的错误。 如果您正在使用域服务,并且有一个尝试获取当前身份validation上下文以在服务器端提取userID的方法,则会失败。 它可以在Windows OOB上运行,但不适用于Mac OOB。

解决方法是将userID从客户端传递到需要它的域服务查询。

我使用标准的SL Business应用程序模板遇到了这个问题,并在SL论坛上与各种用户进行了确认。