单是准备好黄金时间? [英] Is Mono ready for prime time?

查看:228
本文介绍了单是准备好黄金时间?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有人使用单声道,在大中型项目的开源.NET实现?我想知道,如果它已经准备好了现实世界中,生产环境。是不是稳定,速度快,兼容,... ...足够使用?是否采取了很多的努力,港口项目的单声道运行时,或者是不是真的,的真正的足够的兼容,只是采取和微软的运行库运行已经写好code?

Has anyone used Mono, the open source .NET implementation on a large or medium sized project? I'm wondering if it's ready for real world, production environments. Is it stable, fast, compatible, ... enough to use? Does it take a lot of effort to port projects to the Mono runtime, or is it really, really compatible enough to just take of and run already written code for Microsoft's runtime?

推荐答案

有几个方案以供参考:(1)如果你是移植现有应用程序,并想知道如果单是这项工作不够好; (二)你开始写一些新的code,你想知道,如果单是不够成熟的。

There are a couple of scenarios to consider: (a) if you are porting an existing application and wondering if Mono is good enough for this task; (b) you are starting to write some new code, and you want to know if Mono is mature enough.

对于第一种情况,你可以使用单迁移分析器工具(现代艺术馆),以评估多远您的应用程序运行在Mono。如果评价回来出色,你应该开始在你的测试和QA,准备出货。

For the first case, you can use the Mono Migration Analyzer tool (Moma) to evaluate how far your application is from running on Mono. If the evaluation comes back with flying colors, you should start on your testing and QA and get ready to ship.

如果您的评价回来了一份报告,强调功能缺失或在他们的单声道的语义显著的不同,你将不得不评估code是否可以适应,改写或在最坏的情况下,无论您的应用程序可以工作功能将有所减少。

If your evaluation comes back with a report highlighting features that are missing or differ significantly in their semantics in Mono you will have to evaluate whether the code can be adapted, rewritten or in the worst case whether your application can work with reduced functionality.

根据我们根据用户提交莫马统计数据(这是从内存),约50%的申请工作,开箱即用,约25%需要有关工作一个星期的价值(重构,适应)另外15%需要严肃的承诺重做你的code块,剩下的只是不值得困扰移植,因为他们是如此令人难以置信的依赖于Win32的。在这一点上,无论是从零做起,或者一个商业决定将推动努力,使你的code便携,但我们正在谈论个月的工作价值(至少从报道中我们有)。

According to our Moma statistics based on user submissions (this is from memory) about 50% of the applications work out of the box, about 25% require about a week worth of work (refactoring, adapting) another 15% require a serious commitment to redo chunks of your code, and the rest is just not worth bothering porting since they are so incredibly tied to Win32. At that point, either you start from zero, or a business decision will drive the effort to make your code portable, but we are talking months worth of work (at least from the reports we have).

如果你是从头开始,情况就简单了很多,因为你只会使用那些present单声道的API。只要你留在所支持的堆栈(这是pretty的很多.NET 2.0,再加上3.5的所有核心功能升级,包括LINQ和System.Core程序,以及任何的单跨平台API),你会被罚款。

If you are starting from scratch, the situation is a lot simpler, because you will only be using the APIs that are present in Mono. As long as you stay with the supported stack (which is pretty much .NET 2.0, plus all the core upgrades in 3.5 including LINQ and System.Core, plus any of the Mono cross-platform APIs) you will be fine.

每过一段时间,你可能会遇到在单声道或限制的错误,你可能有工作在他们身边,但是这并不比任何其他系统不同。

Every once in a while you might run into bugs in Mono or limitations, and you might have to work around them, but that is not different than any other system.

至于便携性:ASP.NET应用程序的端口比较容易的,因为这些没有什么可以在Win32没有依赖性,你甚至可以使用SQL Server或其他常用数据库(也有很多捆绑的数据库供应商与单声道)。

As for portability: ASP.NET applications are the easier ones to port, as those have little to no dependencies on Win32 and you can even use SQL server or other popular databases (there are plenty of bundled database providers with Mono).

Windows.Forms的移植有时是棘手的,因为开发人员喜欢逃避.NET沙箱和P /调用他们的大脑进行配置的东西有用的改变光标闪烁pssed两个贝塞尔点连接$ C率EX $ P $ $光盘BCD形式在wParam中。或者一些垃圾类的。

Windows.Forms porting is sometimes trickier because developers like to escape the .NET sandbox and P/Invoke their brains out to configure things as useful as the changing the cursor blinking rate expressed as two bezier points encoded in BCD form in a wParam. Or some junk like that.

这篇关于单是准备好黄金时间?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆