2

刚刚发现您可以在 SilverLight 应用程序中使用 Ruby 或 Python。

链接在这里

..我想知道使用这些语言而不是 C# 是否可以绕过一些 SilverLight 限制。

我知道 SilverLight 应用程序中的 Ruby 引擎被精简了,就像 .NET CLR 一样,所以我想知道即使没有完整的 Ruby 或 Python 引擎的所有功能:

我仍然可以使用这些动态语言来做一些我在 C# SilverLight 中无法做到的事情吗?

.

如果我们需要下载社区构建的东西来扩展缩减的 Ruby 实现(例如支持 Interop 调用?),对部署有什么影响?

.

如果没有,如果你不能做任何你不能用 c# 做的事情,用这些引擎,除了动态语言的典型好处,并且没有真正规避 SilverLight 的 CLR 的一些限制,为什么要选择使用SilverLight 应用程序中的 Ruby?

我的兴趣点之一是套接字的使用,SilverLight 中的套接字使用在每个版本中都在改进,但由于服务器端需要 xml 授权文件,它仍然可能很麻烦.. ruby​​ 能否使这变得不必要?

谢谢,

里克

4

4 回答 4

2

我怀疑你将无法解决这个问题。请记住,在这里施加限制的不是语言,而是运行时。准确地说,是 Silverlight 本身。由于在这种情况下 C# 和 Ruby 都编译为 CIL,因此您留下的功能或多或少完全相同(除了键入系统中的一些差异)。

于 2009-10-05T05:37:28.533 回答
1

我不确定你在说什么。无论使用哪种语言,您仍然在相同的“沙箱”、安全模型中运行,并且受限于 Silverlight 中的相同缩减库。您可以使用任何语言扩展您认为“有限”的位,假设您的代码不违反安全模型。

您也许可以使用另一种语言以不同的方式做事,但同样的基本限制仍然适用。

于 2009-10-05T05:38:48.130 回答
0

在 .NET 中使用动态语言的最佳方案之一是让用户使用自己的代码扩展应用程序,这就是我在 Silverlight 应用程序中使用 IronPython 的主要原因。能够在 Silverlight 的有限 .NET 运行时中使用它真是太好了。它真的很容易集成(虽然我很难让 C# 扩展方法对 Python 可见),而且它对用户来说非常强大。

于 2009-10-06T00:54:34.880 回答
0

您需要确保文件包含在 xap 中或使用 silverlight 3 slvx 系统流式传输在 C# 或 VB 等中定义的程序集。

ruby 语言应该是一个完整的 ruby​​ 实现,因此您可以使用 ruby​​ 提供的所有语言功能,例如元编程等。所有源文件都需要包含在 xap 中才能工作。如果您使用的是 ruby​​,那么您也会获得格式塔,并且您可以像现在在 html 页面中包含 javascript 文件一样包含 ruby​​ 源文件。

于 2009-10-05T15:28:33.720 回答