成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

.NET平臺(tái)開(kāi)發(fā)Windows Phone 7、iPhone及Android應(yīng)用

移動(dòng)開(kāi)發(fā) 開(kāi)發(fā)
本文為著名開(kāi)發(fā)者趙劼為InfoQ撰寫(xiě)的一篇文章,詳實(shí)記錄了如何基于.NET/C#,開(kāi)發(fā)面向Windows Phone 7,iPhone及Android三個(gè)平臺(tái)的應(yīng)用程序,以及其中的注意事項(xiàng)。

編者按:在Windows Phone 7發(fā)布之后,移動(dòng)開(kāi)發(fā)領(lǐng)域除iPhone和Android之外季軍即將明朗,越來(lái)越多的開(kāi)發(fā)者開(kāi)始向Windows Phone 7平臺(tái)轉(zhuǎn)移。本文為著名開(kāi)發(fā)者趙劼為InfoQ撰寫(xiě)的一篇文章,詳實(shí)記錄了在近日舉辦的Modern .NET DDD Conference會(huì)議上,著名開(kāi)發(fā)者Chris Hardy在他的演講中展示了如何基于.NET/C#,開(kāi)發(fā)面向Windows Phone 7,iPhone及Android三個(gè)平臺(tái)的應(yīng)用程序,以及其中的注意事項(xiàng)。

首先Chris列舉了三個(gè)平臺(tái)上使用的工具及框架等周邊環(huán)境:

  Windows Phone 7 iPhone(MonoTouch) Android(MonoDroid預(yù)覽版)
操作系統(tǒng) Windows Mac 跨平臺(tái)
開(kāi)發(fā)工具 Visual Studio 2010 MonoDevelop VS 2010 / MonoDevelop
設(shè)計(jì)工具 Expression Blend 4 Interface Builder XML文件 / DroidDraw
開(kāi)發(fā)框架 Silverlight for WP Silverlight 3的超集 Silverlight 3的超集
社區(qū)情況 極好 較好 尚早

iPhone VS Windows Phone 7 VS Android
iPhone VS Windows Phone 7 VS Android

MonoTouch是Novell公司推出的基于Mono的iPhone OS應(yīng)用程序開(kāi)發(fā)套件,并可以將應(yīng)用程序發(fā)布至蘋(píng)果應(yīng)用程序商店。Mono是一款基于ECMA標(biāo)準(zhǔn)開(kāi)發(fā)的.NET運(yùn)行環(huán)境,使用JIT(Just-in-Time)編譯方式來(lái)執(zhí)行IL代碼,不過(guò)由于iPhone OS設(shè)備的限制,MonoTouch使用了AOT(Ahead-of-Time)編譯方式,直接將原生代碼部署至iPhone OS設(shè)備(iPhone,iPhone 4,iPad)上。MonoTouch還提供了一個(gè)Linker,它會(huì)將SDK及程序代碼中真正使用到的部分靜態(tài)鏈接至應(yīng)用程序中,從而削減了應(yīng)用程序的體積。使用MonoTouch開(kāi)發(fā)出來(lái)的應(yīng)用程序可以在iPhone OS設(shè)備上獨(dú)立運(yùn)行,這是因?yàn)镸onoTouch會(huì)將一個(gè)運(yùn)行時(shí)放入應(yīng)用程序內(nèi)部的原因。據(jù)Chris稱(chēng),這會(huì)給應(yīng)用程序的體積帶來(lái)大約6MB的增長(zhǎng)。

使用MonoTouch,.NET/C#程序員可以利用現(xiàn)有的知識(shí)進(jìn)行開(kāi)發(fā),能夠使用反射、泛型、LINQ、Lambda等各種高級(jí)的.NET/C#特性。面向原生API的綁定存放在monotouch.dll中的MonoTouch命名空間下,并與CocoaTouch(即用于iPhone OS開(kāi)發(fā)的原生Objective-C框架)的命名空間映射。在綁定時(shí),MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上將它的API改寫(xiě)為更傾向于.NET程序員的形式。例如UIView的Frame屬性為System.Drawing.RectangleF類(lèi)型,而不是Cocoa Touch中原本使用的CGRect。對(duì)于一些如NSArray這樣的類(lèi)型,MonoTouch也在合適的地方將其轉(zhuǎn)化為強(qiáng)類(lèi)型的數(shù)組。在調(diào)試方面,MonoTouch使用了Mono的Soft-Debugger,支持在模擬器、真機(jī),甚至通過(guò)WIFI進(jìn)行調(diào)試。

MonoDroid是針對(duì)Android系統(tǒng)的應(yīng)用程序開(kāi)發(fā)套件,大體和MonoTouch相同,目前正處在預(yù)覽發(fā)布階段,只有少量早期預(yù)訂的用戶拿到了SDK。

據(jù)Chris稱(chēng),有了MonoTouch和MonoDroid便可以復(fù)用相當(dāng)部分的代碼,包括現(xiàn)有的開(kāi)源項(xiàng)目,如Json.NET、FlickrNet及XnaTouch。XnaTouch是一款基于MonoTouch的XNA框架實(shí)現(xiàn),簡(jiǎn)化XBox及Windows Phone 7上的游戲向iPhone OS上的移植工作。不過(guò)在復(fù)用時(shí)并不能共享二進(jìn)制文件,而必須針對(duì)不同的平臺(tái)重新編譯代碼。

在UI部分,三個(gè)平臺(tái)各有原生的解決方案。除了Windows Phone 7以外,iPhone和Android分別使用MonoTouch及MonoDroid提供的原生API的C#綁定進(jìn)行開(kāi)發(fā)。例如,MonoTouch進(jìn)行UI開(kāi)發(fā)時(shí)使用的是iPhone OS標(biāo)準(zhǔn)的應(yīng)用程序的架構(gòu),包括其MVC驅(qū)動(dòng)方式。開(kāi)發(fā)人員可以通過(guò)Interface Builder編輯XIB文件,MonoTouch會(huì)自動(dòng)根據(jù)XIB的內(nèi)容在局部類(lèi)中生成C#代碼,所有的outlet,action等元素都會(huì)在代碼中得到體現(xiàn)。

Chris也提到了其他一些必須針對(duì)平臺(tái)編寫(xiě)特定代碼的地方,例如在文件的存儲(chǔ)上,MonoTouch和MonoDroid可以直接像本地路徑寫(xiě)入數(shù)據(jù),而在Windows Phone 7上則必須使用獨(dú)立存儲(chǔ):

  1.     void SaveLocal(string data)  
  2.     {  
  3. #if (MonoTouch || MonoDroid)  
  4.         File.WriteAllText(_localPath, data);  
  5. #elif WINDOWS_PHONE  
  6.         using (var appStorage =   
  7.             IsolatedStorageFile.GetUserStoreForApplication())  
  8.         {  
  9.             var file = appStorage.OpenFile(_localPath, FileMode.Create);  
  10.             FileExtension.WriteAllText(file, data);  
  11.         }  
  12. #endif  
  13.     }  
  14.  

同理,使用WebClient獲取數(shù)據(jù)時(shí),在MonoTouch及MonoDroid上可以直接調(diào)用DownloadFile相關(guān)方法來(lái)下載文件,而在Windows Phone 7中,則需要使用OpenRead相關(guān)方法處理二進(jìn)制數(shù)據(jù)流。

【編輯推薦】

  1. Windows Phone 7對(duì)比Android 平分秋色
  2. 多圖詳解 Windows Phone 7功能升級(jí)過(guò)程
  3. 把Windows Mobile換成Windows Phone 7的5大原因
  4. 移動(dòng)應(yīng)用三法則:3LM欲開(kāi)辟Android企業(yè)級(jí)市場(chǎng)
  5. Windows Phone 7破壞了.NET語(yǔ)言的協(xié)同發(fā)展?
責(zé)任編輯:佚名 來(lái)源: infoq
相關(guān)推薦

2010-11-03 15:10:04

SilverlightSilverlightWindows Pho

2011-04-08 10:02:06

日歷Windows Pho

2011-12-06 10:45:16

云計(jì)算應(yīng)用Windows Pho

2011-12-03 20:03:26

iPhone

2013-07-30 11:18:37

Windows PhoWindows Pho

2011-03-21 09:05:40

IronRubyWindows Pho

2012-08-16 10:35:50

Windows Pho

2011-06-07 11:35:38

Windows Pho

2010-12-14 18:48:49

微軟

2010-12-01 09:01:31

獨(dú)立存儲(chǔ)Windows Pho

2011-08-09 10:42:24

微軟Windows Pho

2010-08-10 11:11:31

2010-10-25 13:21:17

Windows PhoMarketplace

2013-07-30 11:02:55

Windows PhoWindows Pho

2012-03-04 20:47:38

Windows Pho

2010-04-08 17:40:23

Windows Pho

2010-04-26 13:48:17

iPhone OSiOSWindows Pho

2010-08-13 08:21:11

Windows Pho

2010-03-09 10:51:15

Windows Pho

2010-08-05 17:28:59

Windows PhoHTML 5
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲综合一区二区三区 | 国产亚洲精品成人av久久ww | 亚洲欧洲精品一区 | 精品一区二区三区91 | 丁香久久| 黄视频网址 | 国产精品久久欧美久久一区 | 欧美精品在线观看 | 日韩精品在线网站 | 国产丝袜人妖cd露出 | 久久新 | 成人在线免费 | 久久综合一区二区 | 国产精品明星裸体写真集 | 色综合天天天天做夜夜夜夜做 | 久久99国产精一区二区三区 | 久草精品视频 | 国产欧美日韩在线观看 | 在线视频亚洲 | 自拍偷拍亚洲一区 | 亚洲福利在线观看 | 久久天天躁狠狠躁夜夜躁2014 | 99精品视频在线 | 亚洲永久| 日韩精品视频在线观看一区二区三区 | 日韩精品一区中文字幕 | 男女羞羞视频在线观看 | 久久爱黑人激情av摘花 | 国产在线视频一区二区 | 69亚洲精品| 欧美成人手机在线 | 午夜久久| 免费一级网站 | 免费国产一区二区 | 欧美lesbianxxxxhd视频社区 | 国产二区在线播放 | 亚洲国产自产 | 欧美啊v在线观看 | 精品三区 | 天天av天天好逼 | 91视频麻豆 |