在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配

具体请点击:http://www.verydemo.com/demo_c134_i37901.html

 
 

 


  前段时间在工作机上装了Mac OS X,这主要是因为我最近需要开发iPhone应用程序。虽然Xcode,Objective C一定是开发iOS应用程序的主流,但是经过一番考虑,我还是决定尝试一下使用MonoTouch进行开发。    MonoTouch是Novell公司基于开源的Mono平 台构建的一套iOS开发环境,使用MonoDevelop作为代码编写工具。不过目前的MonoDevelop较之Visual Studio可谓“萤火之光比皓月之明”,甚至还有无法输入中文的低级问题。因此,至今我所有在Mono上运行的代码其实都是用Visual Studio写的,这次自然也不例外。不过,这似乎并不是件非常直接的事情……

  什么是MonoTouch

  Mono是由Novell提供的.NET跨平台执行环境,无论别人如何进行FUD,我使用下来对Mono的感觉很不错,自认为也有足够的理由来支持我的观点,如今无论是微软Mix大会还是社区类型的NDC 2010都有Mono的内容(尤其是后者)。在我看来,如果没有尝试过Mono就发表的猜忌就很难令人接受了。

  Mono使用的授权方案允许第三方基于它上构建商业应用程序,MonoTouch便是其中的典型(还有哪些?自己看吧)。 MonoTouch是Novell公司的产品,可以让开发人员在.NET环境下开发iOS应用程序(包括iPhone 4和iPad),支持最新的iOS SDK 4.1。这样.NET开发人员就可以利用现有的知识来开发iOS应用程序,如.NET 3.5中的绝大部分类库以及C# 3.0。例如,之前有同事抱怨Android里的API没法方便地使用SOAP协议(似乎iOS下也有不便),但是在MonoTouch中,一切的一切都是最常见的Add Web Services,或是用WCF的svcutil.exe便可直接生成代理。我们同样可以复用大量.NET平台下的开源类库,只要基于MonoTouch重新编译一遍就可以了。在NDC 2010中“深入MonoTouch”演讲中便演示了在MonoTouch中使用Json.NET、FlickrNet及CoolStorage三套类库的做法。

  除了.NET 3.5中的类库之外,MonoTouch也提供了访问iOS API(即Cocoa Touch) 的.NET接口(尤其是在UI方面)。在这方面MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上将它的API改写为更倾向于.NET程序员的形式。例如UIView的Frame属性为 System.Drawing.RectangleF类型,而不是Cocoa Touch中原本使用的CGRect。当然,尤其是UI方面,MonoTouch还是使用了传统iOS应用程序的架构,包括它的MVC驱动方式。因此,即 使您使用MonoTouch,最好也要能够看懂简单的Objective C代码,因为SDK提供的文档和大量的示例都是用它来实现的。

  众所周知,Mono使用JIT(Just-in-Time)编译来执行IL代码,JIT代表了在运行时动态生成原生代码,但是iOS不允许这么做。 因此,MonoTouch实际上是使用了AOT(Ahead-of-Time)编译方式,真正部署在机器上时已经是原生代码了。此外,MonoTouch 还提供了一个Linker,它只会将SDK及我们自己编写的代码中,真正使用到的部分静态链接至应用程序中,这削减了应用程序的体积。从中我们可以看出, 使用MonoTouch开发出来的应用程序,其实和普通使用iOS SDK开发出的应用程序并没有什么区别,都是完全独立运行的。当然,这也是因为MonoTouch将一个Runtime塞入应用程序内部的关系,这会给应 用程序的体积带来大约5MB的增长,压缩后(也就是用户真正需要下载的体积)大约是3MB。

  除了MonoTouch以外,用于Android开发的MonoDroid也已经进入了beta阶段,已经向一些开发人员提供试用版本了。这意味着,在不久的将来,C#及.NET类库将成为Windows Phone,iOS,Android三大移动平台上的跨平台开发工具。关于MonoTouch的更多消息,您可以关注NDC 2010上的相关演讲。

  在Windows和Mac OS X中共享文件

  MonoTouch的开发工具是MonoDevelop和Interface Builder,后者用于编辑应用程序中的UI文件。不过编写C#代码的神器终归是Visual Studio,即便是最简单的Express版本在代码编写方面也胜出MonoDevelop很多,更别说是经过增强的高级版本了。因此,我打算使用Visual Studio编写C#代码,而使用Interface Builder开发UI界面。不过我们要做的第一件事情是在Windows和Mac OS X之间共享源文件。这里我继续基于之前Win7 + VirtualBox + Snow Leopard的环境进行配置,您也可以使用相同的方法连接两台独立的机器。

  由于Mac OS X是在虚拟机上,我选择将源文件放在Windows里,并在Mac OS X上访问。首先,我们在Windows上共享一个目录,这里我将整个E盘共享给vbox账号,取名为host-e,并赋予完全控制权限:

 

  然后在Mac OS X中打开Finder,在Go菜单中选择Connect to Server:

 

  在弹出的对话框中输入Windows的IP:

 

  点击Connect,并在下一个对话框中输入用户名的密码(注意这里需要包含机器名):

 

  点击Connnet,此时对话框会列出这个账号的共享内容:

 

  于是我们选择host-e,并点击OK。此时,您会在Finder的Shared栏目中访问到共享的内容,其中的projects目录是这里的关键:

 

  我将所有的项目都存放在e:\projects目录中,接下来也不例外。为了方便起见,我在Mac OS X的home目录下建立一个软链接,指向共享中的projects目录

ln -s /Volumes/host-e/projects ~/Projects

  此时我们就能在home目录下看到Projects文件夹了,而在各种应用程序中,我们可以使用~/Projects来访问其中的内容:

 

....................................................................

  安装MonoTouch

  要安装MonoTouch,首先您必须安装Mono,MonoDevelop,iOS SDK。我的配置是:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《iPhone高级编程:使用Mono Touch和.NET/C#》从基本的概念入手,全面地介绍了基于monotouch使用C#/.net进行iphone应用程序开发。从monotouch和.net开发环境到objective-c和c#开发语言,从基于monotouch进行iphone开发的编程方法到应用程序的发布和销售等,《iPhone高级编程:使用Mono Touch和.NET/C#》涵盖了基于monotouch进行iphone应用程序开发涉及的方方面面。 《iPhone高级编程:使用Mono Touch和.NET/C#》的主要内容分为两大部分:第1部分包括第1-4章,这一部分介绍iphone和monodevelop ide开发的基本知识,主要包括iphone、.net framework和monotouch的相关背景和概念、monotouch使用方法、iphone用户界面和数据控件方面的内容:第ⅱ部分包括第5-15章,这一部分的内容相对独立,可以根据需要选择性地阅读:第5章介绍在iphone检索和存储数据,包括本地数据和远程数据;第6章介绍表的使用,包括表内容显示、表导航和表编辑等;第7章介绍基于corelocation和mapkit实现地图功能:第8章系统介绍应用程序设置:第9章介绍面向设备硬件编程;第10章介绍多媒体编程;第11章介绍利用第三方应用程序的编程;第12章介绍应用程序本地化和国际化编程;第13章介绍如何面向ipad编程:第14章介绍objective-c代码的阅读方法;第15章介绍将应用程序提交到应用程序商店涉及的所有过程和工作,还包括应用程序的推销途径与方法。 《iPhone高级编程:使用Mono Touch和.NET/C#》专门针对具有C#/.net开发经验并希望转到面向iphone进行编程的人员。他们可以通过monotouch,利用已有的C#/.net知识编写能够直接在iphone运行的应用程序。因此,阅读《iPhone高级编程:使用Mono Touch和.NET/C#》的读者需要具有一定的C#/.net开发经验,并希望面向iphone编程。 作者简介 麦克卢尔(Wallace B.McClure),是微软MVP、ASP Insider、INETA Speaker's Bureau会员,他的博客和播客深爱大家欢迎。 Martin Bowling是资深软件开发人员,他还是处理小规模业务的市场营销人员。 Craig Dunn自1993年开始就一直在企业环境从事Web技术方面的工作。 Chris Hardy是ASP Insider,在英国曼彻斯特从事digitalagency 工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值