天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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

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

  什么是MonoTouch

  Mono是由Novell提供的.NET跨平臺執(zhí)行環(huán)境,無論別人如何進行FUD,我使用下來對Mono的感覺很不錯,自認(rèn)為也有足夠的理由來支持我的觀點,如今無論是微軟Mix大會還是社區(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)有的知識來開發(fā)ios應(yīng)用程序,如.NET 3.5中的絕大部分類庫以及C# 3.0。例如,之前有同事抱怨Android里的API沒法方便地使用SOAP協(xié)議(似乎ios下也有不便),但是在MonoTouch中,一切的一切都是最常見的Add Web Services,或是用WCF的svcutil.exe便可直接生成代理。我們同樣可以復(fù)用大量.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。當(dāng)然,尤其是UI方面,MonoTouch還是使用了傳統(tǒng)ios應(yīng)用程序的架構(gòu),包括它的MVC驅(qū)動方式。因此,即使您使用MonoTouch,最好也要能夠看懂簡單的Objective C代碼,因為SDK提供的文檔和大量的示例都是用它來實現(xiàn)的。

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

  除了MonoTouch以外,用于Android開發(fā)的MonoDroid也已經(jīng)進入了beta階段,已經(jīng)向一些開發(fā)人員提供試用版本了。這意味著,在不久的將來,C#及.NET類庫將成為Windows Phone,iosAndroid三大移動平臺上的跨平臺開發(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,即便是最簡單的Express版本在代碼編寫方面也勝出MonoDevelop很多,更別說是經(jīng)過增強的高級版本了。因此,我打算使用Visual Studio編寫C#代碼,而使用Interface Builder開發(fā)UI界面。不過我們要做的第一件事情是在Windows和Mac OS X之間共享源文件。這里我繼續(xù)基于之前Win7 + VirtualBox + Snow Leopard的環(huán)境進行配置,您也可以使用相同的方法連接兩臺獨立的機器。

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

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

  在彈出的對話框中輸入Windows的IP:

  點擊Connect,并在下一個對話框中輸入用戶名的密碼(注意這里需要包含機器名):

  點擊ConnNET,此時對話框會列出這個賬號的共享內(nèi)容:

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

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

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

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

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

  安裝MonoTouch

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

  • Mono 2.6.7
  • MonoDevelop 2.4
  • ios SDK 4.1

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

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

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

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

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

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

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

主站蜘蛛池模板: 无码中文字幕热热久久 | 九九热在线视频观看这里只有精品 | 国产精品99精品无码视亚 | 精品国产免费观看久久久 | 高hnp肉文| 久久99精国产一区二区三区四区 | 麻1豆传媒2021精品 | 国产成人精品免费视频软件 | 亚洲中文字幕一二三四区苍井空 | 无码人妻丰满熟妇区五十路久久 | 99九九免费热在线精品 | 国产精品99久久久久久AV蜜臀 | av色天堂2018在线观看 | 9966在线观看免费高清电影 | 日韩精品无码久久一区二区三 | 日本高清免费在线 | 奇米精品一区二区三区在线观看 | 51久久夜色精品国产 | 99热这里只有是精品 | va亚洲va天堂va视频在线 | 伊人大香人妻在线播放 | 幸福草电视剧演员表介绍 | 麻豆高潮AV久久久久久久 | 甜性涩爱在线播放 | 永久午夜福利视频一区在线观看 | av亚洲色天堂2017 | 亚洲人成人77777在线播放 | 国产精品久久久久秋霞影视 | 日本一区二区三区在线观看网站 | 日日摸夜添夜夜夜添高潮 | 高hh乱亲女真实 | 久久中文电影 | 毛片网站网址 | 亚洲精品视频在线观看免费 | 国产一卡 二卡三卡四卡无卡乱码视频 | 秘密影院久久综合亚洲综合 | 中文字幕在线久热精品 | 亚洲熟女片嫩草影院 | 最新2017年韩国伦理片在线 | 98国产精品人妻无码免费 | 国产香蕉九九久久精品免费 |