开源Mono框架将C#编程带到iPhone、Android和Wii
Mono,作为.NET运行库的开源实现,正在将微软的技术带到未曾预料到的地方,包括iPhone,Android和Wii。 根据Novell公司的首席Mono开发者Miguel de Icaza称,Apple的App Store中有多个应用程序是基于Mono。
这可能会让那些熟悉苹果应用程序限制政策的人感到意外,因为苹果公司严格禁止开发者使用解释语言和第三方运行环境——在很大程度上就将.NET和Java之类技术排除在外。
静态编译(Static compilation)是一道特别的沙司,正是它使得Mono在iPhone中运行成为可能。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开发。除了iPhone和Wii之外,一位开发者正试验性的将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安装器中包含了IronRuby 和IronPython。
其他改进:
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
本文来自云栖社区合作伙伴“doNET跨平台”,了解相关信息可以关注“opendotnet”微信公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
伪Android应用BeNews的攻击机制是怎样的?
Hacking Team数据泄露事故表明,伪装Android应用可通过使用动态加载技术绕过Google Play Store中的过滤功能。这种攻击的工作原理是什么,用户和企业可如何检测这些恶意应用? Michael Cobb:备受争议的IT安全公司Hacking Team沦为网络攻击的受害者,攻击者宣布他们正在通过Hacking Team自己的Twitter账号将其客户文件、合同、财务资料和内部邮件提供公众下载。(该公司专门向政府、执法机构和企业销售“攻击性”入侵和监控工具及服务,这400GB泄露数据向我们揭露了政府和企业监控及间谍活动的精彩世界。) 在这些泄露的文件中还包含文件解释如何使用Hacking Team的软件,以及某些应用的源代码。安全软件公司Trend Micro研究人员在这些数据中发现了恶意Android应用样本,该应用伪装成新闻app,并使用BeNews作为名称(这是现已解散的新闻网站的名称),这个app看似合法,并且,该应用不包含漏洞利用代码,在安装时只要求三个权限。这种无害的伪装让它可通过Google Play的审批过程。然而,在安装该应用后,它会使用动态加载技术...
- 下一篇
间谍软件公司悬赏100万美元征求 iOS 9漏洞
安全初创企业 Zerodium 宣布一个前所未有的史上最大的漏洞奖励:100万美元征求一个基于浏览器的 iOS 9 漏洞。 Zerodium是一家以零日漏洞交易厂商,其创始人 Chaouki Bekrar 一直从事于零日漏洞行业,除了新创立的Zerodium之外,他还是法国黑客公司Vupen的创始人,Vupen是一家研究流行软件的入侵技术,并将其售卖给全世界的政府机构。 Zerodium不只提供这100万的单一奖项,还准备了达300万美元的 iOS 9 的漏洞奖金。但这些奖金的发放有时间限制,漏洞研究人员需要是万圣节(10月31日)下午6点之前提交漏洞。 “iOS 9 是当今最安全的移动操作系统,想要开发出漏洞利用程序来绕过种种安全设置非常的困难。因此,我们认为只有100万美元才能激发许多天才研究人员接收挑战。” 从奖金设置来看,Zerodium的100万美元是史无前例的。目前的漏洞奖励平均只有200美元,最大的单个漏洞奖励是谷歌Chrome漏洞,11万美元。被一名韩国安全研究人员 JungHoon Lee 获取。 Zerodium于今年7月创办,是一家独立的私人企业。Bekrar表示...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7