Jör*_*tag 68
Mono有一些.NET没有的功能.
Mono是高度模块化的.您可以在小小的打碎它拆开,只部署正是那些你需要的部分.不想要System.Xml?很好,它已经消失了.
单声道是可嵌入的.您可以在C/C++应用程序中托管它,以允许用户从安全的托管沙盒环境中编写脚本.最着名的例子是mod_mono,它在Apache网络服务器中托管Mono,例如,是在Mono中实现ASP.NET的方式.该特征与上述模块化一起很好.
这已经提到:静态链接.模块化也很好.
编译器即服务是另一个.Anders Hejlsberg已经讨论了很长一段时间了,也许,也许它可能会为C#5.0做好准备.好吧,Mono已经拥有它,并且实际上拥有它多年.
Mono的首席开发人员Miguel de Icaza也有一个他称之为"Embrace and Extend.NET"的计划,该计划以其他CLI实现(包括.NET)无法(目前)的方式扩展CLI.到目前为止,Embrace和Extend.NET有三个功能.
Mono.Simd,可以安全,可控地访问底层CPU的SIMD指令(例如Intel上的SSE或PowerPC上的AltiVec).用于游戏和图形.
64位数组索引,ECMA规范允许,但Mono是唯一实际提供它们的VM.用于超级计算.
最近,延续.这实际上是Mono第一次超出规范范围:长数组索引完全符合规范,Mono.Simd也适用于每个CLI兼容的实现(尽管非常慢),但Mono.Tasklet需要特殊的来自VM的支持,不属于CLI或.NET.这用于游戏逻辑,例如在Second Life中.
Kib*_*bee 63
因为Mono没有实现.Net 100%与MS .Net Framework相同,所以你可以在Mono上测试而不必在Linux上运行.Mono也有绑定与GTK制作表格,MS不支持.
Joe*_*orn 24
例如,mono支持静态链接,因此您无需单独的运行时安装程序即可构建,编译和分发应用程序.如果你构建了一个依赖单声道跨平台的应用程序,那么与.Net存在一些差异,因此在Windows上坚持使用mono可以更好地保证兼容性.
BCL中有一些地方尚未移植到单声道,例如WPF和Winforms等.
如果你想要一个也可以在mac/linux上运行的应用程序,你可能希望首先开发单声道,即使你在windows上做了大部分的工作.
注意:所有这些预先日期.Net Core/Standard.
Oha*_*der 13
从Mono的技术常见问题解答:
为什么支持Windows,什么时候可以运行真实的东西?
原因有很多:
支持Windows帮助我们从非便携版本中识别Mono的便携部分,帮助Mono在未来变得更加便携.
它可以帮助我们,因为我们可以通过对问题进行分区来解决Mono中的问题(是运行时问题还是操作系统问题?).
Mono的贡献者大约有一半是Windows开发人员.他们有很多不同的理由为这项工作做出贡献,我们发现让这些开发人员在Windows上运行运行时而不强迫他们使用新的操作系统非常重要.
Mono不会大量修改Windows注册表,更新系统DLL,将DLL安装到Windows/System32路径.
它可以帮助基于Windows的开发人员在部署到Linux之前在Mono下测试他们的代码.
可以在没有安装程序的情况下部署Mono和嵌入Mono的应用程序(您可以"xcopy"部署应用程序和所需的Mono文件,而无需安装.NET运行时).
Joa*_*uer 12
如果您想在C#中开发跨平台应用程序,那么使用Microsoft的实现并不是最明智的事情,因为其他平台没有完全兼容的替代方案.
因此,在Windows上使用Mono开发应用程序可以确保将其移植到其他操作系统时遇到的麻烦很少(前提是您避免使用P/Invoke等其他操作系统).
有些人使用它是因为他们不允许在他们的Windows PC上安装.Net框架,因为注册表和系统文件数量很大.(在严格控制的环境中.)
另一方面,Mono自包含在Program Files中,只编写一个带有路径的注册表项(不需要运行).
我认为这有点傻,但这是多个用户告诉我们的.
| 归档时间: |
|
| 查看次数: |
16105 次 |
| 最近记录: |