[转]Wally McClure谈MonoTouch与Mono for Android的未来

Wallace B. McClure是《Professional iPhone Programming with MonoTouch and .NET/C#》以及即将出版的《Professional Android Programming with Mono for Android and .NET/C#》一书的合作者。我们刚好在Xamarin将从Attachmate手上接管Mono这一消息公开前后进行这次采访的。 InfoQ: 现在距Miguel宣布Attachment裁员及创建Xamarin已经过去两个月了。您对这个情况有什么看法吗? 第一个问题是在7月16号提出的,两天后Miguel宣布创建Xamarin以及与Novell合作。 Wally McClure: 作为一个面向移动设备的.NET开发者,我有几个必须关注的问题。其中最大的问题就是:“我该如何针对移动平台进行开发才可以赚最多的钱?”对我来说,这相当于“我该如何开发iPhone和Android应用程序?”许多人跟我提起过iPhone开发,有时候也会谈到Android。那么作为一个.NET开发者,我该如何简单快速地针对这些平台进行开发?我可以去开发一个HTML 5应用程序,但是Web程序并不能利用设备的所有功能,客户也会要求原生应用而非Web应用程序。HTML 5应用会有一席之地,但是它们无法解决所有客户的所有问题。 作为一个.NET开发者,如果想要开发原生应用,则可以选择学习Objective C和Java。学习语言需要一些时间,还包括开发环境等等。开发人员可能会认为学习语言没什么难度,但就我的感觉来说,事实并非如此,我没法使用一个周末的几个小时来学会一门语言。当然我也可以使用其他一些产品,例如把HTML应用程序作为原生应用的基础。然而,我还是时常会关注跨平台与原生应用之间的比较,所以我还在寻找其他方式。 我比大部分人知道更多东西,因为我除了是一个开发人员,也会关注许多金融方面的消息。在2009年末至2010年初的时候,我听说了Novell的事情,他们正通过CNBC寻找买家。对我来说,这意味着可能会有些麻烦了。此外我还听说了Novell业务部门之间的一些摩擦,其中也包括Novell的裁员以及Xamarin建立的事情。我的看法是: 市场并没有拒绝MonoTouch。我和许多付费用户交谈过,有些暂停使用MonoTouch/iPhone,不过并非所有人都拒绝MonoTouch,有些人继续在iPhone和MonoTouch上投入。 已有的MonoTouch产品也不会就此无法使用了。我还是可以创建在iPhone和iPad上运行的程序,一切正常,而他们也认为可以在3个月内构建一个产品。他们是六月份动手的,所以九月份可以完成,这也差不多是下个版本iOS发布的时候。 MonoTouch本身有一些风险。例如,Xamarin和他们的iPhone .NET产品可能会有一些版权纠纷。这是事实。我和一些比我更具有法律背景的人交谈过,他们提出的问题是: Xamrin可能会面临这些风险。Miguel de Icaza已经对此发表过申明,表示这方面已经没有什么问题了。 部分API是基于iOS及Andorid的API而定义的。不过这方面出现版权纠纷的可能性不大。 在Novell公布裁员消息之后的两个星期我重新尝试了Objective-C和Java开发,最后得到了与我2009年相同的结果。Objective-C与我内心所想相差甚远,对于.NET开发者来说会是十分陡峭的学习曲线。想要获益的唯一办法便是投入大量时间。对于我们这种已经在其他领域投入许多的人来说,这个门槛实在有些高。 在仔细审视了这些问题之后,我发现MonoTouch和Mono for Android依然有着十分重要的意义,这与两年前的状况一致。 InfoQ: 我们开始采访的不久,Attachmate就宣布向Xamarin提供有关“Mono,MonoTouch,Mono for Android以及Mono Tools for Visual Studio”的永久授权。现在法律问题已经解决了,你觉得采纳iPhone和Andorid上的Mono还有哪些障碍呢? Wally McClure: 这真是美妙的一周。一周前,我醒来后看到一堆指向 http://ios.xamarin.com/ 的内容,我发现Xamarin获得了这些工具永久的知识产权。这周末我又参加了Monospace会议,整整两天,我了解了许多关于Xamarin的消息,也和其他参与者进行了交流。上周我和一个潜在客户进行了沟通,他们是财富500强公司,对MonoTouch很感兴趣,已经投入iOS平台,并使用.NET开发他们自定义的业务应用产品。不过现实情况是,目前有些公司依然有顾虑。我想关于Attachmate的法律问题已经解决了,我估计接下来还会和其他一些公司达成协议,这会更进一步减少法律风险,我想接下来几个星期应该会有相关消息。从法律角度来说,我觉得已经没什么问题了。除了一些目前还无法得知的风险,我已经找不到暂缓使用MonoTouch和Mono for Android的理由。就我个人来说,过去的六个星期可谓是马力全开,我也会继续保持下去的。 我还听说过一个问题,是说“MonoTouch和Mono for Android有bug,所以不该使用”。其实每个软件都有各种各样的bug,Android和iOS也都在持续更新,有问题都会即时修复。Xamarin的计划是定期更新他们的软件,就像过去24个月那样。当发现bug的时候,我们会在trunk上修复它,并打包在下次升级的版本中。之前的更新一直很有规律,我想这应该也会保持下去。发布频率大约是2到3个星期一次,所以你无需等好几个月才能获得新版本,而可以很快地更新,很快地更新项目。最终用户都不愿等待,我们都明白这一点。 InfoQ: 有没有哪方面你觉得是MonoTouch和Mono for Android做得尤其出色的呢? Wally McClure: 理论上说,它们是向六百万.NET开发者开放了两个最流行的移动平台。对我来说,作为一个.NET程序员,在2009年早些时候还在考虑如何进行iPhone开发,那时候MonoTouch的出现真可谓神来之笔。我还是需要学习特定平台的内容,但我完全不需要学习新的语言,就好比Objective-C。这对我来说至关重要,在学习iPhone理念的同时还要学习Objective-C真可谓是难以逾越的高山。虽然我还是需要使用Mac,我必须使用MonoDevelop进行开发,但这笔投资还是相当值得的。我可以使用HttpWebRequest来调用服务获取内容,再使用LINQ处理数据,在许多地方都可以使用这些代码,这实在是太棒了。 从技术角度来说,我会关注基础方面的内容。我每天早上都会在iPad上使用一款新闻工具,它时不时就会崩溃一下,我猜这是因为指针计算或是内存使用方面的问题。有了垃圾收集器之后,我们就可以减少内存使用的麻烦,也无需担心指针问题了。 我认为它们还有一个重要的优势,它们是在运行平台上进行“真正针对性的开发”。简单的说,它们只是为底层操作系统提供了一个C#调用层,最终执行的还是平台上的原生API,只不过使用C#而已。这对开发人员来说十分关键。尽管我会推荐有关MonoTouch和Mono for Android开发的书籍,但我们完全可以通过一本使用Java的Android的书籍来学习Mono for Android。它们并没有为用户界面控件提供什么通用的容器,而是完全直接使用平台上完全相同的那些控件。MonoTouch应用程序和Objective-C应用程序完全相同,Mono for Android应用程序看上去也和Java程序毫无二致。这对用户来也是个优势。 ...

November 2, 2012

[转]Mono相关文章汇总

一则新闻《软件服务提供商Xamarin融资1200万美元》,更详细的内容可以看Xamarin的官方博客Xamarin raises $12M to help you make better apps faster →。这篇新闻里告诉了我们目前Mono的用户规模“使用Xamarin软件的应用开发者已经超过15万,其中付费用户约为7500名。在Xamarin的客户中,还包括一些知名的企业,如美国国家仪器(National Instruments)和数字音乐订阅服务商Rdio等”。一直关注和研究Mono项目,今天把平常自己写的和园子里同学写的Mono的相关文章整理了一下,发现从2011年开始已经有非常的多人开始在项目中使用Mono,这里列一下这么多年来的园子里的相关博客内容和大家分享: 2006年,Mono最新版是1.1.13,社区出现了第一本《Mono: A Developer’s Notebook》。 什么是MONO 什么是MONO再议 “另类”的.NET——Mono 1.2发布 .NET和JAVA的跨平台,我们很期望.但是容易吗 Mono 开发 (使用.NET技术的你,绝对不能忽略Mono) 2007年,Mono最新版本Mono 1.2.6,最新版本全面支持.NET 1.1,并部分与.NET 2.0兼容,包括支持Windows Forms。.net 现在赶上了java甚至在某些领域超越了java,而且.net借助于mono项目正在超越java的跨平台。微软在不断的走向开放,微软的codeplex已经上线,微软的asp.net ajax客户端框架,ironpython,ironruby,DLR等这些都是使用完全的开源协议,开始逐步纳入Mono的版本。 倡议研究mono Mono的最合适的环境 Mono项目的新进展 我会为开源和自由学习,使用JAVA.但我决不会为了开源和自由放弃.NET 我也来说说.net开源 Mono 1.2.5 发布,提供对IronPython和DLR的支持 2008年,Mono的最新版本Mono 2.0,MonnoDevelop终于发布了一个Release版本1.0,Mono 2.0包括ADO.NET 2.0/ASP.NET 2.0/Windows.Forms 2.0/System.XML 2.0/System.Drawing/Linq/GTK#等类库的实现。这个release比1.x更为完整和成熟了。其中,C#编译器对C# 3的支持已经完整;标准库方面,WinForms 2.0的API已经完整支持,LINQ和ASP.NET的支持也比之前更为完善;执行引擎开始共享泛型代码后占用内存量减少了,同时Mono开始涉足iPhone开发领域的尝试,这也为今天的Xamarin融资打下了基础。有意思的是国内也出现了第一个Linux下的ASP.NET的Web服务器 http://www.linuxdot.net/,后面在具体介绍。 MonoDevelop 1.0 和 Mono 1.9(2.0 beta)发布了 Mono 2.0正式发布了 Mono运行于IPhone之上 利用Mono-cecil实现.NET程序的重新签名,重新链接相关库的引用 在Linux上使用Mono连接MySQL数据库 2009年,Mono最新版本Mono 2.6,MonnoDevelop发布了2.0,同时Moonlight 1.0也发布了,微软的asp.net mvc 1.0也开源了,可以在Mono上跑了,微软已经开源了不少项目:ASP.NET MVC ,NET Dynamic Language Runtime (DLR),IronRuby,IronPython,Silverlight Toolkit,Ajax Control Toolkit,Managed Extensibility Framework (MEF) ,都可以在Mono上跑了,Mono就可以快速的走向成熟。 ...

October 23, 2012

[转]使用C#开发iOS、Android和Windows Phone跨平台应用

 框架 [![](images/mono-开发框架-300x226.jpg)](images/mono-开发框架.jpg) 工具 [![](images/mono-工具-300x225.jpg)](images/mono-工具.jpg)

October 23, 2012

Mono 3.0正式发布

 经过一年半的努力,我们终于发布了Mono 3.0的正式版本。 就像我去年说的一样,我们会尽快推动Mono 3.0的正式版的发布。我们努力压缩进度,尽快地让每一个Mono开发者快点。这就意味着从此以后我们的主分支开发会走上一个正常进度,并且未来会有更伟大的版本出现在我们的主要分支中。 Mono 3.0的 release notes 列出了3.0的新内容: 1、C#异步编译器 2、统一的C#编译器的所有配置文件 3、4.5异步API简介 4、集成新的微软的开放源代码的堆栈: ASP.NET MVC 4 ASP.NET WebPages Entity Framework Razor System.Json (replaces our own) System.Json(代替Mono自己的) 新的高性能的垃圾收集器(SGEN - 许多性能和可扩展性方面的改进) 大量的运行时和类库的改进。 原文地址:http://tirania.org/blog/archive/2012/Oct-22.html

October 23, 2012

[转]Mono 之 Jexus

Jexus简介 Jexus web server for linux 是运行在Linux上的Web服务器。其安装和部署及其简单,直接支持Asp.net 。 下载Jexus wget http://linux.j66.net/down/jexus-5.0.2.tar.gz 然后解压: tar -zxv -f jexus-5.0.2.tar.gz 打开readme.txt 文件查看详细的安装、配置说明; 安装Jexus jexus 基本无需安装,只需要解压,然后注册一下全局程序集即可。 1)新建一个 /etc/jws/ 文件夹: sudo mkdir /etc/jws/ 拷贝解压好的文件到/etc/jws/ 文件夹中 3)进入 安装的文件夹, 运行sudo ./jws.regsvr 运行测试 进入安装目录,运行sudo ./jws.start 打开浏览器输入 http://localhost//info 如果出现以下界面说明jexus 运行成功。 如果没有 请查看一下log 文件,jexus 的默认日志文件夹为: log/jws.log Web server配置 这里进行最简单的web站点配置,详细的配置信息可以查看 readme.txt文件。 输入vi siteconf/default 修改其中的root 节为 root=/ /home/ubuntu/www/monotest 这里是设置URL的映射,前半部分表示虚拟目录根, 然后一个空格 后面表示网站的物理路径。 添加: index=Default.aspx 重启jexus. 可以使用 ./jws.restart 命令 via:http://www.cnblogs.com/keyindex/archive/2012/06/11/2545362.html

October 18, 2012

[转]Mono 之 Nginx

 在Linux上部署网站需要先安装Web服务器端软件,IIS只能在windows上使用,相对的我们可以选择著名的apache、Ngnix等。本文将简单Nginx的安装、配置以及利用其运行一个简单的Asp.net 网站。 Nginx Nginx (Engine X)是一个高性能的Web服务器,由于其稳定、功能丰富、低资源消耗等特点,已经有很多网站利用它进行部署(国内不少大公司开始利用nginx 取代 apache,毕竟LAMP 太教条化了)。 Nginx安装 本文将从源码开始安装nginx 目前最新版为 1.2.0,所有的安装过程都是在Ubuntu操作系统下进行的。 首先下载源码: wget http://nginx.org/download/nginx-1.2.0.tar.gz 然后解压 tar -zxv -f nginx-1.2.0.tar.gz 进入解压的目录后接着执行 ...

October 18, 2012

Mono

Mono是一个由Novell公司(先前是Ximian)主持的项目。该项目的目标是创建一系列符合ECMA标准(Ecma-334 和 Ecma-335)的.NET工具,包括C#编译器和共通语言运行平台。与微软的.NET Framework不同,Mono项目不仅可以运行于Windows系统上,还可以运行于Linux,FreeBSD,Unix,Mac OS X和Solaris。 Mono现由Novell持有双重许可,这和Qt和Mozilla应用程序包的情况相似。Mono的C#编译器及其相关工具发布于GNU General Public License(GPL)之下,其运行时库发布于GNU Lesser General Public License(LGPL)之下,其类库发布于MIT License之下。这些均是开源协议因此Mono是一个开源软件。如果你打算向Mono贡献你的源码,则你须签署一个版权分派给Novell以允许它将这些代码在其它协议下再申请许可,从而允许Novell保留其双重许可的能力来持有Mono的商业协议。[1] 微软开发了一个称为共享源码公共语言基础(Shared Source Common Language Infrastructure,Shared Source CLI)的可用于FreeBSD,Windows和Mac OS X的.NET实现版本。微软的共享源码协议并不是开源软件协议,且可能对于社区来说也是不足够的(它明文禁止了对软件的商业用途)。我们还可以见到另外一个.NET实现版本,Portable.NET项目,该项目与Mono项目有着很多相同的目标。 Mono虚拟机包含一个实时编译引擎,该引擎可用于如下处理器:x86,SPARC,PowerPC,ARM,S390(32位模式和64位模式),x86-64,IA64和64位模式的SPARC。该虚拟机可以将代码实时编译或者预先编译到原生代码。对于那些没有列出来的系统,则使用的是代码解释器。 ...

October 16, 2012

跨平台移动开发商Xamarin融资1200万美元 用于提升服务

北京时间7月25日消息,据国外媒体allthingsd报道。近日,跨平台移动开发软件服务提供商Xamarin获得投资1200万美元,投资商分别是Charles River Ventures,Ignition Partners和Floodgate。 Xamarin公司是由两位联合创始人Nat Friedman 和Miguel de Icaza于去年共同创办,发展至今,已拥有7500多位付费用户,其中包括音乐服务商Rdio。Xamarin的技术帮助开发人员通过一套常见的编程工具来编写Android,iOS和Windows Phone软件。 Rdio工程副总裁Todd Beeman在声明中表示,“我们拥有了Xamarin就等于拥有了一切,节省了大量工程时间,通过跨平台特性打造华丽、高性能的本地应用。” Xamarin创始人Friedman称,此次资金将用于改善公司服务并建立销售和营销工作。 Friedman在一份声明中表示,“我们的使命是提供快捷、简单、具有趣味性的服务来创建强大的移动应用。在第一年中,我们取得了优异的成绩。每月有1.2万个新开发者和上百万美元的收入。这笔资金将帮助我们履行使命,使更多开发人员参与进来。” 原文链接:allthingsd

August 8, 2012

Mono重生?Mono创始人成立新公司Xamarin

Miguel de Icaza已成立了一个新的独立公司Xamarin,给Mono一个继续奋斗的机会。 最近的消息称Attachmate公司对Mono框架不再感兴趣,这个消息已经北证实。Mono都创始人Miguel de Icaza终于打破了长久的沉默,透露他已经成立了Xamarin公司来继续支持Mono项目。 Mono团队被Attachmate公司解雇,使Miguel de Icaza非常难过: 一年以来我们一直都想把mono从Novell分离出来,大家一直认为独立成立一个公司将给Mono能带来更光明都未来。 长话短说,分离 Mono都计划没被执行,反而在5月2日加拿大和美国都团队被遣散了,几天后欧洲、巴西和日本团队也不能幸免.这包括MonoTouch和 MonoDroid工程师以及其他主要Mono开发人员。虽然Attachmate公司解散了我们,但只要我们在Novell都一天我们会继续给我们都用 户提供技术支持。 Mono项目有良好的前景,它为Linux以及IOS和Andriod提供C#以及框架支持。然而所有的实现都不是完善的。所以对开发人员都又局限 性。你不能简单快速的把.NET程序移植到Mono,因为缺失相应都框架类以及其它实现,尤其是WPF。同样的,如果使用Mono为iOS或 Andriod写个应用需要学习很多知识,它和在Windows Phone 7建立应用程序的关系不大。 还有在Mono中使用都微软的专利和知识产权问题,微软声称将来可能由于专利和知识产权而导致使用Mono的产生一系列的问题,现在不会对Mono有动作,但将来不见得。很多使用Mono做项目的开源支持者都视之为是个不定时炸-弹。 除了Mono和Moonlight,Xamarin还计划商业产品,既定目标是: 为iOS建立一个新都商业.NET; 为Andriod建立一个新都商业.NET; 继续为Mono和Moonlight贡献和开发; 为Moonlight在移动领域以及苹果Appstore寻求机会; 这两个商业项目需要更多都开发来为潜在的用户提供服务,需要更认真的工作。而且在移动领域以及苹果Appsotre来探索Moonlight的发展 也是件非常有趣的事情。Silerlight并没有成为微软声称的伟大的跨平台的统一者,目前来看貌似微软已经对其失去了兴趣。如果Mono能成为跨平台 的浏览器插件,可能会进一步触发微软的不定时炸-弹爆炸。这当然也不会被苹果所接受,因为这无疑是另一个Flash。 当然一切都归结于资金,如果又足够的资金这个项目或许会有所成就,博客声称已经得到一些资金,而且还有在合同期的工程师们。这听起来比较危险,他们没有足够都资金,只能寄希望于一些勇敢都基金了。 目前看来,Mono的用户都非常支持Miguel de Icaza和他的新公司。在他的博客评论中很多个人表示想投资,但前提是如果自己有钱。但这并不能对这事起到真正都改善作用。关键是.NET社区的反应以及微软的回应。 如果你想帮助Mono,可用访问Xamarin的网站:Xamarin website

July 10, 2011