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

基于.NET/C#開(kāi)發(fā)跨平臺(tái)Windows Phone 7、iPhone及Android應(yīng)用程序

  在近日舉辦的Modern .NET DDD Conference會(huì)議上,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 7iPhone(MonoTouch)Android(MonoDroid預(yù)覽版)
操作系統(tǒng)WindowsMac跨平臺(tái)
開(kāi)發(fā)工具Visual Studio 2010MonoDevelopVS 2010 / MonoDevelop
設(shè)計(jì)工具Expression Blend 4Interface BuilderXML文件/ DroidDraw
開(kāi)發(fā)框架Silverlight for WPSilverlight 3的超集Silverlight 3的超集
社區(qū)情況極好較好尚早

  MonoTouch是Novell公司推出的基于Mono的ios應(yīng)用程序開(kāi)發(fā)套件,并可以將應(yīng)用程序發(fā)布至蘋果應(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ò)由于ios設(shè)備的限制,MonoTouch使用了AOT(Ahead-of-Time)編譯方式,直接將原生代碼部署至ios設(shè)備(iPhone,iPhone 4,iPad)上。

  MonoTouch還提供了一個(gè)Linker,它會(huì)將SDK及程序代碼中真正使用到的部分靜態(tài)鏈接至應(yīng)用程序中,從而削減了應(yīng)用程序的體積。使用MonoTouch開(kāi)發(fā)出來(lái)的應(yīng)用程序可以在ios設(shè)備上獨(dú)立運(yùn)行,這是因?yàn)镸onoTouch會(huì)將一個(gè)運(yùn)行時(shí)放入應(yīng)用程序內(nèi)部的原因。據(jù)Chris稱,這會(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(即用于ios開(kāi)發(fā)的原生Objective-C框架)的命名空間映射。

  在綁定時(shí),MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上將它的API改寫為更傾向于.NET程序員的形式。例如UIView的Frame屬性為System.Drawing.RectangleF類型,而不是Cocoa Touch中原本使用的CGRect。對(duì)于一些如NSArray這樣的類型,MonoTouch也在合適的地方將其轉(zhuǎn)化為強(qiáng)類型的數(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稱,有了MonoTouch和MonoDroid便可以復(fù)用相當(dāng)部分的代碼,包括現(xiàn)有的開(kāi)源項(xiàng)目,如Json.NET、FlickrNET及XnaTouch。XnaTouch是一款基于MonoTouch的XNA框架實(shí)現(xiàn),簡(jiǎn)化XBox及WP7上的游戲ios上的移植工作。不過(guò)在復(fù)用時(shí)并不能共享二進(jìn)制文件,而必須針對(duì)不同的平臺(tái)重新編譯代碼。

  在UI部分,三個(gè)平臺(tái)各有原生的解決方案。除了WP7以外,iPhone和Android分別使用MonoTouch及MonoDroid提供的原生API的C#綁定進(jìn)行開(kāi)發(fā)。例如,MonoTouch進(jìn)行UI開(kāi)發(fā)時(shí)使用的是ios標(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)容在局部類中生成C#代碼,所有的outlet,action等元素都會(huì)在代碼中得到體現(xiàn)。

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

 void SaveLocal(string data)  
{
#if (MonoTouch || MonoDroid)
File.WriteAllText(_localPath, data);
#elif WINDOWS_PHONE
using (var appStorage =
IsolatedStorageFile.GetUserStoreForApplication())
{
var file
= appStorage.OpenFile(_localPath, FileMode.Create);
FileExtension.WriteAllText(file, data);
}
#endif
}

it知識(shí)庫(kù)基于.NET/C#開(kāi)發(fā)跨平臺(tái)Windows Phone 7、iPhone及Android應(yīng)用程序,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 麻豆精品一区二正一三区 | 国产人成高清在线视频99 | 日本高清免费一本视频在线观看 | 台湾果冻传媒在线观看 | 秋霞伦理机在线看片 | 免费被靠视频动漫 | 影音先锋男人av橹橹色 | 耽美肉文 高h失禁 | 国产一区二区内射最近更新 | 國産麻豆AVMDMD0179 | 我和妽妽在厨房里的激情区二区 | 久久99精品国产99久久6男男 | 亚洲精品无码成人AAA片 | 亚洲人成网站在线观看90影院 | 成年私人影院网站在线看 | 伦理 电影在线观看 | 男女疯狂一边摸一边做羞羞视频 | 吻嘴胸全身好爽床大全 | 拍床戏被肉高H纯肉H在水 | 日本一卡精品视频免费 | 久久精品国产亚洲AV麻豆欧美玲 | 极品少妇高潮啪啪AV无码吴梦梦 | 秋霞影音先锋一区二区 | 日本黄色成年人免费观看 | 国产v综合v亚洲欧美大片 | 老师破女学生特级毛片 | 美女露出乳胸扒开尿口 | 打开双腿狠狠蹂躏蜜桃臀 | 四虎影院网红美女 | 久久精品一本到99热 | 人人草人人草 | 精品亚洲永久免费精品 | 成人在线视频免费看 | 尤物99久久久合集一区区 | 久9视频这里只有精品123 | 久久视热频这里只精品 | 蜜柚视频在线观看全集免费观看 | 日韩亚洲欧洲在线rrrr片 | V8成品人视频 | 久久伊人天堂视频网 | 99re6久久在热线视频 |