专栏首页张善友的专栏开源Mono框架将C#编程带到iPhone、Android和Wii

开源Mono框架将C#编程带到iPhone、Android和Wii

Mono,作为.NET运行库的开源实现,正在将微软的技术带到未曾预料到的地方,包括iPhone,Android和Wii。 根据Novell公司的首席Mono开发者Miguel de Icaza称,Apple的App Store中有多个应用程序是基于Mono。

这可能会让那些熟悉苹果应用程序限制政策的人感到意外,因为苹果公司严格禁止开发者使用解释语言和第三方运行环境——在很大程度上就将.NET和Java之类技术排除在外。 静态编译(Static compilation)是一道特别的沙司,正是它使得MonoiPhone中运行成为可能。Mono还允许开发者使用ahead-of-time(AOT)编译,它能将.NET的通用中间语言(CIL)直接在编译中转变成原生码,这意味着应用程序不必要使用运行时编译执行技术(JIT),以在运行时产生原生码。de Icaza提到,开发者还开始使用Unity,基于Mono的开发3D游戏的第三方商业编程框架。 目前App Store中大约40款应用程序是基于Unity和Mono。一个Wii上的德国游戏My Animal Center,代码主要是C#,用Unity和Mono开发。除了iPhoneWii之外,一位开发者正试验性的将Mono运行库移植到Android平台。这一切都展示了开源的价值和内在的适应性。

Mono是一个开源的跨平台的.NET运行环境,支持Unix, Windows, MacOS等操作系统

Mono 2.10是基于mono在github上的主分支Mono 2.8的一个重要升级,发布于2011年2月15日。

Mono 2.10主要更新和改进:

  • Google Native Client Support 支持Google本地客户端,允许本地代码在浏览器中运行。Mono虚拟机,垃圾收集器和Just-in-Time编译器可以运行于本地客户端的沙箱中。
  • New Profiler engine 新版Profiler解决了原先的Profiler在处理多线程、multi-appdomain应用程序以及大数据量时的诸多问题,GC新增的触发事件让开发者可以针对自己的程序编写更先进的profiling工具和GC tracking工具。
  • Faster socket stack 更快的socket堆栈,Socket异步操作直接发送至IO池,节约了内存和CPU时间。SocketAsyncEventArgs支持每个操作使用一个线程。
  • Improved Parallel Framework 增加的并行框架。
  • SGen Precise Stack Scanning and Many performance improvements. SGen(mono的垃圾收集器)的精确堆栈扫描和性能增强,欲更多了解SGen,请阅读这里
  • Unified MonoTouch/Monodroid runtime support 统一的MonoTouch/Monodroid运行时支持。
  • Cecil/Light Cecil是一个可以生成ECMA CIL的类库(有点类似于.NET中的Reflector),可以用它加载存在的程序集,浏览其中的类型,修改其中的代码,并将修改后的代码保存至程序集中。
  • New C# Compiler backend (can now use any custom mscorlib) 新的C#后台编译器,基于 IKVM.Reflection API ,允许开发者引用第三方的mscorlib.dll、或者自己定制的mscorlib.dll、或者来自其他项目的(比如:微软的MicroFramework)。下一版本的mono,batch compilers (gmcs, smcs与dmcs)将全部切换至IKVM.Reflection。
  • VB Compiler can now compile to both 2.0 and 4.0 profiles. VB编译器用cecil/light取代原来的Reflection,这样可以通过一个编译器生成使用不同版本运行时的程序集。
  • Supports ASP.NET MVC3, Razor and new WebPages. 支持ASP.NET MVC 3, Razor, WebPages。虽然ASP.NET MVC 3是开源的,但它依赖一些非开源的类库,而且这些类库并不是.NET Framework的一部分。Mono中没有这些类库的开源实现,所以ASP.NET MVC 3应用程序不能无缝地运行于mono,你需要移除对Microsoft.Web.Infrastructure.dll的引用,使用mono自己的实现。Razor与WebPages可以直接使用微软.NET的程序集运行于mono。
  • New WebMatrix.Data database API. 微软WebMatrix.Data的mono实现。通过这个API,可以利用C# 4.0的动态特性编写数据库访问代码(代码示例)。欲了解更多WebMatrix.Data, 推荐阅读re-introducing WebMatrix.Data
  • Improved OSX Mono 提供了一些OSX Mono的更新。
  • F# and IronRuby 从Mono 2.10开始,将F#编译器和工具打包进来。在Linux安装包和Mac安装器中包含了IronRubyIronPython

其他改进:

  • Winforms bug fixes
  • Updates to msbuild
  • Improved Moonlight support, and faster build times for Moonlight
  • WCF:
    • System.ServiceModel.Discovery
    • WCF 4.0-style configuration
  • ASP.NET 4.0:
    • BaseMenuRenderer
  • Sytem.Xaml: significant improvements on serialization of complex types and properties in .NET compatible format. Now it can be built on mobile profiles.
  • More 4.0 APIs implemented
  • Version tolerant serialization
  • C# 4.0 significantly improved based on the Microsoft test suites for Silverlight

详细发布信息请查看:http://www.mono-project.com/Release_Notes_Mono_2.10

下载地址:http://www.go-mono.com/mono-downloads/download.html

转载自创造 本文链接地址: 开源Mono框架将C#编程带到iPhone、Android和Wii

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .NET程序员应该关注开源社区

    如果你是一位net开发人员,请关心一下开源社区吧!俺也是net程序员,我也深深的了解net程序员的优缺点。请你们不要排斥开源,也不要一味的使用MS的产品。有的时...

    张善友
  • 国内 Mono 相关文章汇总

    一则新闻《软件服务提供商Xamarin融资1200万美元》,更详细的内容可以看Xamarin的官方博客Xamarin raises $12M to help y...

    张善友
  • Mono 4.0 Mac上运行asp.net mvc 5.2.3

    Mono 4.0 已经发布,二进制包已经准备好,具体的发布说明参见:http://www.mono-project.com/docs/about-mono/re...

    张善友
  • .NET程序员应该关注开源社区

    如果你是一位net开发人员,请关心一下开源社区吧!俺也是net程序员,我也深深的了解net程序员的优缺点。请你们不要排斥开源,也不要一味的使用MS的产品。有的时...

    张善友
  • 国内 Mono 相关文章汇总

    一则新闻《软件服务提供商Xamarin融资1200万美元》,更详细的内容可以看Xamarin的官方博客Xamarin raises $12M to help y...

    张善友
  • 微软开放.NET框架源代码和Mono

    微软一直在朝着更加开放的方向努力。例如,公司首席执行官萨特亚纳德拉(Satya Nadella)在Windows 10预览发布会上声称微软喜欢Linux,这并不...

    张善友
  • 基于.NET平台常用的框架整理

    自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件...

    小曾看世界
  • 2019大数据开源项目汇总

    github地址:https://github.com/LittleLawson/ChinaTelecom

    用户5997198
  • 前端|网页制作秘密武器 之发光边框

    学习前端,我们除了要学会如何制作静态的网页,我们还要学会一些特殊的效果,运用我们所学的知识,制作出属于我们的有个性的东西,接下来,就让我们一起来学习一下荧光...

    算法与编程之美
  • Css3新特性总结之边框与背景(一)

    本系列主要总结Css3一些新特性的认识,来源于《css揭秘》书。 一、半透明边框 css3最好用hsla,而不是rgba,hsla是:h:颜色值(0~360);...

    sam dragon

扫码关注云+社区

领取腾讯云代金券