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

基于.NET/C#開發跨平臺Windows Phone 7、iPhone及Android應用程序

  在近日舉辦的Modern .NET DDD Conference會議上,Chris Hardy在他的演講中展示了如何基于.NET/C#,開發面向Windows Phone 7,iPhone及Android三個平臺的應用程序,以及其中的注意事項。

  首先Chris列舉了三個平臺上使用的工具及框架等周邊環境:

 Windows Phone 7iPhone(MonoTouch)Android(MonoDroid預覽版)
操作系統WindowsMac跨平臺
開發工具Visual Studio 2010MonoDevelopVS 2010 / MonoDevelop
設計工具Expression Blend 4Interface BuilderXML文件/ DroidDraw
開發框架Silverlight for WPSilverlight 3的超集Silverlight 3的超集
社區情況極好較好尚早

  MonoTouch是Novell公司推出的基于Mono的ios應用程序開發套件,并可以將應用程序發布至蘋果應用程序商店。Mono是一款基于ECMA標準開發的.NET運行環境,使用JIT(Just-in-Time)編譯方式來執行IL代碼,不過由于ios設備的限制,MonoTouch使用了AOT(Ahead-of-Time)編譯方式,直接將原生代碼部署至ios設備(iPhone,iPhone 4,iPad)上。

  MonoTouch還提供了一個Linker,它會將SDK及程序代碼中真正使用到的部分靜態鏈接至應用程序中,從而削減了應用程序的體積。使用MonoTouch開發出來的應用程序可以在ios設備上獨立運行,這是因為MonoTouch會將一個運行時放入應用程序內部的原因。據Chris稱,這會給應用程序的體積帶來大約6MB的增長。

  使用MonoTouch,.NET/C#程序員可以利用現有的知識進行開發,能夠使用反射、泛型、LINQ、Lambda等各種高級的.NET/C#特性。面向原生API的綁定存放在monotouch.dll中的MonoTouch命名空間下,并與CocoaTouch(即用于ios開發的原生Objective-C框架)的命名空間映射。

  在綁定時,MonoTouch不是一味地直接暴露出Cocoa Touch的功能,而是在一定程度上將它的API改寫為更傾向于.NET程序員的形式。例如UIView的Frame屬性為System.Drawing.RectangleF類型,而不是Cocoa Touch中原本使用的CGRect。對于一些如NSArray這樣的類型,MonoTouch也在合適的地方將其轉化為強類型的數組。在調試方面,MonoTouch使用了Mono的Soft-Debugger,支持在模擬器、真機,甚至通過WIFI進行調試。

  MonoDroid是針對Android系統的應用程序開發套件,大體和MonoTouch相同,目前正處在預覽發布階段,只有少量早期預訂的用戶拿到了SDK。

  據Chris稱,有了MonoTouch和MonoDroid便可以復用相當部分的代碼,包括現有的開源項目,如Json.NET、FlickrNET及XnaTouch。XnaTouch是一款基于MonoTouch的XNA框架實現,簡化XBox及WP7上的游戲ios上的移植工作。不過在復用時并不能共享二進制文件,而必須針對不同的平臺重新編譯代碼。

  在UI部分,三個平臺各有原生的解決方案。除了WP7以外,iPhone和Android分別使用MonoTouch及MonoDroid提供的原生API的C#綁定進行開發。例如,MonoTouch進行UI開發時使用的是ios標準的應用程序的架構,包括其MVC驅動方式。開發人員可以通過Interface Builder編輯XIB文件,MonoTouch會自動根據XIB的內容在局部類中生成C#代碼,所有的outlet,action等元素都會在代碼中得到體現。

  Chris也提到了其他一些必須針對平臺編寫特定代碼的地方,例如在文件的存儲上,MonoTouch和MonoDroid可以直接像本地路徑寫入數據,而在WP7上則必須使用獨立存儲

 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知識庫基于.NET/C#開發跨平臺Windows Phone 7、iPhone及Android應用程序,轉載需保留來源!

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

主站蜘蛛池模板: 极品美女久久久久久久久久久 | 2018高清国产一区二区三区 | 中国农村真实bbwbbwbbw | 青草久久精品亚洲综合专区 | 蜜臀AV99无码精品国产专区 | 国产品无码一区二区三区在线 | 国产在线亚洲精品观看不卡 | 91av成年影院在线播放 | 色淫阁色九九 | 日本欧美高清一区二区视频 | a一级毛片视频免费看 | 麻豆精品传媒2021网站入口 | 在线播放一区二区精品产 | 在线观看国产日韩 | 少妇内射视频播放舔大片 | 秋霞电影在线观看午夜伦 | 网址在线观看你懂我意思吧免费的 | 古代荡乳尤物H妓女调教 | 久久久免费观看 | 日韩精品无码免费专区 | 野花韩国中文版免费观看 | 亚洲欧美日韩高清中文在线 | 日本韩国欧美一区 | 欧美最猛性xxxxx亚洲精品 | 国产成人8x视频一区二区 | 久久电影院久久国产 | 人妻少妇偷人精品无码洋洋AV | 最近韩国HD免费观看国语 | 欧美一第一页草草影院 | 诱人的秘书BD在线观看 | 日韩欧美精品有码在线播放免费 | 男人边吃奶边摸边做刺激情话 | 中国毛片网 | 幺妹视频福利视频 | 一区二区视频在线观看高清视频在线 | 6080YYY午夜理论片在线观看 | 人妻中文字幕乱人伦在线 | 青青伊人久久 | 一二三四韩国免费观看 | 99re6久久热在线视频 | 精品亚洲一区二区三区在线播放 |