我喜欢用.NET编程,特别是C#3.0,.NET 3.5和WPF。但我特别喜欢的是Mono .NET与平台无关。
现在我听说Mono的橄榄计划。我找不到某种Beta。
它已经有效吗?有没有人对此有任何经验?
编辑:我知道月光。但我想要一个独立的WPF应用程序。 因为 Moonlight我希望Linux上的WPF能成为现实。
答案 0 :(得分:22)
使用Moonlight会有更好的运气,它定位Silverlight API,它是完整WPF的子集。
编辑:当然,Silverlight并非“适用于”桌面,但没有理由不在应用程序中嵌入silverlight引擎。之前已经完成过,例如the Mac NY Times Reader
上的Miguel帖子答案 1 :(得分:12)
更新:由于人们不断提出这个问题,我想指出它已经过时了 long 。 Mono多年前被MS收购,他们对开源的态度发生了变化,所以请考虑这个帖子已经过时了。 (与WPF框架本身一样过时,呵呵)。
Mono在Winforms和WPF等微软API方面处于一种令人不安的位置。 .Net技术的一个子集是ECMA标准,但这些API的免费实现可能在更加不合理的法律基础上。我相信这是Novell和微软之间契约的一个重要因素,这对Novell客户有利。但是,使用不是Novell客户的Mono的人不受保护。出于这个原因,F / OSS社区中的很多人都看到了Mono,尽管它具有技术优势。
出于这个原因,Gtk#将永远是首选,因为它是真正免费的。很多人认为它无论如何都要优于Winforms。就WPF而言,它几乎肯定是Novell的低优先级。他们最终可能会实施它,但我希望Moonlight能够成为您在可预见的未来中最接近的。
自发布此消息以来,Microsoft已将其约定延伸至anybody who implements the ECMA 334 & 335 standards。
答案 2 :(得分:7)
此时,Mono项目确实如此 没有计划实施Windows Presentation Foundation API as 该项目的一部分。
Moonlight是silverlight的一个实现,它是基于浏览器的基于WPF子集的闪存技术。
在我看来,不实施WPF的选择是单一最大的错误。因为WPF正在迅速成为新的.net用户界面的默认选择。 See this blog for more
答案 3 :(得分:4)
如果您检查this link的已知错误(还包括在Ubuntu上安装.NET所需的步骤)或this,您可能会发现某些(可能是错误的)WPF版本适用于Wine现在。我现在没有找到任何明确的测试,但值得尝试运行WPF" Hello world"。
UPDATE2:
我已为IlSpy
16.04的最新Wine
运行了最新Ubuntu
。 32位版本的dotnet45
和corefonts
通过winetricks
安装,兼容Windows 7。
这个时候没有崩溃,一切正常。字体看起来非常好。
IlSpy
通过WPF显示,loves programming with .NET
是必不可少的工具 - 反编译器。
我下载了最新的便携式SharpDevelop(使用WPF构建),没有额外的。它开始了。无法创建WPF项目。创建WinForms。打开一些cs文件并证明一些故障后,尝试输入 - 然后崩溃了。
更新
我按照步骤操作,在Ubuntu 14.4上运行最新的ILSpy.exe。
下一项需要注意的事项:
wine表示64位配置不支持dotnet40,更改为32位
字体很难看,但可读
基本功能很好 - 我可以看到反编译代码 - 这对于某些开发来说已经足够了,但是View - >搜索和查看 - >选项 - >显示崩溃。
结论:
Linux上的WPF是可能的。但需要某种方法来解决问题。
答案 4 :(得分:3)
有一个名为Silverform SDK的库,旨在提供跨平台的WPF和Silverlight实现。
该库以托管代码实现,目前可与OpenTK和Unity3D一起用作渲染后端。主要功能(如绑定,布局,主要控件和基元)已经实现(请参阅Unity网络播放器演示here)。最初它一直专注于Unity3d渲染,而对独立Mono应用程序的支持将在未来作为单独的版本添加。
免责声明:我是该图书馆的开发人员之一。
答案 5 :(得分:2)
答案 6 :(得分:2)
是的,可以使用NoesisGUI实时多平台XAML实现。在Linux中已经发布了一些使用此技术的游戏,如VoidExpanse
披露:我是该产品的开发者之一。
答案 7 :(得分:0)
我几周前听过一个播客采访了miguel de icaza(单声道导演),所以可能是2008年12月中旬,他说他们根本没有WPF支持。
答案 8 :(得分:-2)
理论上,可以针对WinPR或LibWine编译WPF的剥离版本以在Linux上运行。
当前没有这种设置,因此需要有人进行设置。希望这会很快改变。
无论是在完整的Wine环境中还是在完整的Wine环境中运行,我认为这都是严重的过大杀伤力,并且会导致大量的膨胀,因此值得使少量的其他程序起作用。