刚刚发现你可以在SilverLight应用程序中使用Ruby或Python ..
链接here
..我想知道是否可以通过使用这些语言而不是C#来绕过某些SilverLight限制。
我知道SilverLight应用程序中的Ruby Engine正如.NET CLR一样被削减,所以我想知道即使没有完整的Ruby或Python引擎的所有功能:
我还能做些什么吗? 随着这些动态的使用 我无法做到的语言 在C#SilverLight?
如果我们需要下载内置的东西 由社区延长削减 Ruby实现(支持 例如Interop调用?),是什么 对部署的影响?
如果没有,如果你做不了什么 除了这些引擎之外,你无法使用c# 动态的典型好处 语言,而不是真正规避 一些限制 SilverLight的CLR,为什么会这样 选择在SilverLight中使用Ruby 应用
我的一个兴趣点是使用套接字,SilverLight中的套接字使用在每个版本中都有所改进,但由于服务器端需要xml授权文件,它仍然很麻烦。所以ruby能够使这个不必要?
谢谢,
里克
答案 0 :(得分:2)
我怀疑你无法解决这个问题。请记住,语言不是强加限制,而是运行时。准确地说,它是Silverlight本身。由于在这种情况下C#和Ruby都被编译为CIL,因此您可以使用或多或少完全相同的功能(除了键入系统中的一些差异)。
答案 1 :(得分:1)
我不确定你的目标是什么。无论语言如何,您仍然在相同的“沙盒”,安全模型中运行,并且在Silverlight中使用相同的缩减库。假设您的代码没有违反任何语言的安全模型,您可以扩展您认为“有限”的位。
您可能能够使用其他语言做不同的事情,但仍然适用相同的基本约束。
答案 2 :(得分:0)
您需要确保文件包含在xap中或使用silverlight 3 slvx系统来流式传输在C#或VB等中定义的程序集。
ruby语言应该是一个完整的ruby实现,因此您可以使用ruby提供的所有语言功能,如元编程等。 所有源文件都需要包含在xap中才能工作。 如果你正在使用ruby,那么你也会得到格式塔,你可以像今天在html页面中包含javascript文件一样包含ruby源文件。
答案 3 :(得分:0)
在.NET中使用动态语言的最佳方案之一是让用户使用自己的代码扩展应用程序,这是我在Silverlight应用程序中使用IronPython的主要原因。在Silverlight的有限.NET运行时中提供它是非常好的。它很容易集成(虽然我很难让C#扩展方法对Python可见)并且它对用户来说非常强大。