一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

在Visual Studio中使用MonoTouch開發(fā)iOS應(yīng)用程序(上):環(huán)境配置

  前段時(shí)間在工作機(jī)上裝了Mac OS X,這主要是因?yàn)槲易罱枰_發(fā)iPhone應(yīng)用程序。雖然Xcode,Objective C一定是開發(fā)ios應(yīng)用程序的主流,但是經(jīng)過一番考慮,我還是決定嘗試一下使用MonoTouch進(jìn)行開發(fā)。    MonoTouch是Novell公司基于開源的Mono平臺(tái)構(gòu)建的一套ios開發(fā)環(huán)境,使用MonoDevelop作為代碼編寫工具。不過目前的MonoDevelop較之Visual Studio可謂“螢火之光比皓月之明”,甚至還有無法輸入中文的低級(jí)問題。因此,至今我所有在Mono上運(yùn)行的代碼其實(shí)都是用Visual Studio寫的,這次自然也不例外。不過,這似乎并不是件非常直接的事情……

  什么是MonoTouch

  Mono是由Novell提供的.NET跨平臺(tái)執(zhí)行環(huán)境,無論別人如何進(jìn)行FUD,我使用下來對(duì)Mono的感覺很不錯(cuò),自認(rèn)為也有足夠的理由來支持我的觀點(diǎn),如今無論是微軟Mix大會(huì)還是社區(qū)類型的NDC 2010都有Mono的內(nèi)容(尤其是后者)。在我看來,如果沒有嘗試過Mono就發(fā)表的猜忌就很難令人接受了。

  Mono使用的授權(quán)方案允許第三方基于它上構(gòu)建商業(yè)應(yīng)用程序,MonoTouch便是其中的典型(還有哪些?自己看吧)。MonoTouch是Novell公司的產(chǎn)品,可以讓開發(fā)人員在.NET環(huán)境下開發(fā)ios應(yīng)用程序(包括iPhone 4和iPad),支持最新的ios SDK 4.1。這樣.NET開發(fā)人員就可以利用現(xiàn)有的知識(shí)來開發(fā)ios應(yīng)用程序,如.NET 3.5中的絕大部分類庫(kù)以及C# 3.0。例如,之前有同事抱怨Android里的API沒法方便地使用SOAP協(xié)議(似乎ios下也有不便),但是在MonoTouch中,一切的一切都是最常見的Add Web Services,或是用WCF的svcutil.exe便可直接生成代理。我們同樣可以復(fù)用大量.NET平臺(tái)下的開源類庫(kù),只要基于MonoTouch重新編譯一遍就可以了。在NDC 2010中“深入MonoTouch”演講中便演示了在MonoTouch中使用Json.NET、FlickrNET及CoolStorage三套類庫(kù)的做法。

  除了.NET 3.5中的類庫(kù)之外,MonoTouch也提供了訪問ios API(即Cocoa Touch)的.NET接口(尤其是在UI方面)。在這方面MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上將它的API改寫為更傾向于.NET程序員的形式。例如UIView的Frame屬性為System.Drawing.RectangleF類型,而不是Cocoa Touch中原本使用的CGRect。當(dāng)然,尤其是UI方面,MonoTouch還是使用了傳統(tǒng)ios應(yīng)用程序的架構(gòu),包括它的MVC驅(qū)動(dòng)方式。因此,即使您使用MonoTouch,最好也要能夠看懂簡(jiǎn)單的Objective C代碼,因?yàn)镾DK提供的文檔和大量的示例都是用它來實(shí)現(xiàn)的。

  眾所周知,Mono使用JIT(Just-in-Time)編譯來執(zhí)行IL代碼,JIT代表了在運(yùn)行時(shí)動(dòng)態(tài)生成原生代碼,但是ios不允許這么做。因此,MonoTouch實(shí)際上是使用了AOT(Ahead-of-Time)編譯方式,真正部署在機(jī)器上時(shí)已經(jīng)是原生代碼了。此外,MonoTouch還提供了一個(gè)Linker,它只會(huì)將SDK及我們自己編寫的代碼中,真正使用到的部分靜態(tài)鏈接至應(yīng)用程序中,這削減了應(yīng)用程序的體積。從中我們可以看出,使用MonoTouch開發(fā)出來的應(yīng)用程序,其實(shí)和普通使用ios SDK開發(fā)出的應(yīng)用程序并沒有什么區(qū)別,都是完全獨(dú)立運(yùn)行的。當(dāng)然,這也是因?yàn)镸onoTouch將一個(gè)Runtime塞入應(yīng)用程序內(nèi)部的關(guān)系,這會(huì)給應(yīng)用程序的體積帶來大約5MB的增長(zhǎng),壓縮后(也就是用戶真正需要下載的體積)大約是3MB。

  除了MonoTouch以外,用于Android開發(fā)的MonoDroid也已經(jīng)進(jìn)入了beta階段,已經(jīng)向一些開發(fā)人員提供試用版本了。這意味著,在不久的將來,C#及.NET類庫(kù)將成為Windows Phone,iosAndroid三大移動(dòng)平臺(tái)上的跨平臺(tái)開發(fā)工具。關(guān)于MonoTouch的更多消息,您可以關(guān)注NDC 2010上的相關(guān)演講。

  在Windows和Mac OS X中共享文件

  MonoTouch的開發(fā)工具是MonoDevelop和Interface Builder,后者用于編輯應(yīng)用程序中的UI文件。不過編寫C#代碼的神器終歸是Visual Studio,即便是最簡(jiǎn)單的Express版本在代碼編寫方面也勝出MonoDevelop很多,更別說是經(jīng)過增強(qiáng)的高級(jí)版本了。因此,我打算使用Visual Studio編寫C#代碼,而使用Interface Builder開發(fā)UI界面。不過我們要做的第一件事情是在Windows和Mac OS X之間共享源文件。這里我繼續(xù)基于之前Win7 + VirtualBox + Snow Leopard的環(huán)境進(jìn)行配置,您也可以使用相同的方法連接兩臺(tái)獨(dú)立的機(jī)器。

  由于Mac OS X是在虛擬機(jī)上,我選擇將源文件放在Windows里,并在Mac OS X上訪問。首先,我們?cè)赪indows上共享一個(gè)目錄,這里我將整個(gè)E盤共享給vbox賬號(hào),取名為host-e,并賦予完全控制權(quán)限:

  然后在Mac OS X中打開Finder,在Go菜單中選擇Connect to Server:

  在彈出的對(duì)話框中輸入Windows的IP:

  點(diǎn)擊Connect,并在下一個(gè)對(duì)話框中輸入用戶名的密碼(注意這里需要包含機(jī)器名):

  點(diǎn)擊ConnNET,此時(shí)對(duì)話框會(huì)列出這個(gè)賬號(hào)的共享內(nèi)容:

  于是我們選擇host-e,并點(diǎn)擊OK。此時(shí),您會(huì)在Finder的Shared欄目中訪問到共享的內(nèi)容,其中的projects目錄是這里的關(guān)鍵:

  我將所有的項(xiàng)目都存放在e:/projects目錄中,接下來也不例外。為了方便起見,我在Mac OS X的home目錄下建立一個(gè)軟鏈接,指向共享中的projects目錄

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

  此時(shí)我們就能在home目錄下看到Projects文件夾了,而在各種應(yīng)用程序中,我們可以使用~/Projects來訪問其中的內(nèi)容:

  自然,其他方式也沒有問題,您只要找到適合您自己的最合適的方式即可。例如,我現(xiàn)在提到的共享方式要求兩臺(tái)機(jī)器通過網(wǎng)絡(luò)互連,如果您無法實(shí)現(xiàn)這點(diǎn),也可以借助如Dropbox這樣的同步工具,其實(shí)也非常方便。

  安裝MonoTouch

  要安裝MonoTouch,首先您必須安裝Mono,MonoDevelop,ios SDK。我的配置是:

  • Mono 2.6.7
  • MonoDevelop 2.4
  • ios SDK 4.1

  Mono和ios SDK的安裝過程十分普通,而MonoDevelop的安裝方式對(duì)于Windows用戶可能有些特別。在加載了dmg文件以后,會(huì)彈出這樣一個(gè)界面:

  根據(jù)提示,此時(shí)您只需要將MonoDevelop的圖標(biāo)拖至右側(cè)目錄中就可以了。

  隨后,您便可以安裝MonoTouch了。MonoTouch是商業(yè)產(chǎn)品,不過您可以免費(fèi)下載它的試用版,無限期使用。不過試用版只能在模擬器上運(yùn)行調(diào)試,如果需要在真機(jī)上運(yùn)行測(cè)試、打包、甚至發(fā)布至AppStore,則需要購(gòu)買授權(quán)。企業(yè)用戶自不必說,MonoTouch針對(duì)個(gè)人用戶的授權(quán)費(fèi)用399美金,如果您真有制作應(yīng)用程序的好點(diǎn)子,那這點(diǎn)錢實(shí)在不算什么了。

  【相關(guān)文章】:在Visual Studio中使用MonoTouch開發(fā)ios應(yīng)用程序(下):開發(fā)體驗(yàn)

在Visual Studio中使用MonoTouch開發(fā)ios應(yīng)用程序(上):環(huán)境配置

it知識(shí)庫(kù)在Visual Studio中使用MonoTouch開發(fā)iOS應(yīng)用程序(上):環(huán)境配置,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本高清一区二区三区水蜜桃 | 国产精品影视 | 玖玖精品在线 | 欧美成人亚洲欧美成人 | 伊人久久综合网亚洲 | 四虎影视国产884a精品亚洲 | 中国一级特黄真人毛片免 | 久久婷婷五综合一区二区 | 国产香蕉一区二区精品视频 | 精品视频一区二区三区在线播放 | 青青草国产免费久久久91 | 韩国一级成a人片在线观看 韩国一级毛片 | 久久亚洲不卡一区二区 | 一区在线看 | 国内精品日本久久久久影院 | 国产一区二区三区鲁婷婷 | 手机在线黄色网址 | 五月婷婷六月婷婷 | 久久国产精品超级碰碰热 | 激情综合欧美 | 久久综合免费视频 | 婷婷综合久久狠狠色99h | 激情综合婷婷 | 六月色天 | 五月综合激情视频在线观看 | 亚洲天堂首页 | 欧美亚洲另类图片 | 国产精品资源网站在线观看 | 黄网址在线观看 | 缴情啪啪三级小说网 | 午夜激情视频 | 激情五月亚洲 | 亚洲国产精品线在线观看 | 国产福利在线视频 | 国内精品一区视频在线播放 | 九九在线精品视频 | 亚洲成a人片777777网站 | 成人精品视频在线观看 | 国产亚洲欧美另类久久久 | 国产成人精品午夜 | 不良网站在线观看 |