原文:
從零開始學Xamarin.Forms(一) 概述
Xamarin 讀 「ˈzæmərin」,是一個基於開源項目mono的可以使用C#開發的收費的跨平臺(iOS、Android、Windows Phone、Mac)解決方案。
1.原理
Xamarin.iOS:
也就是以前的 MonoTouch(Mono for iOS),
使⽤靜態編譯(Ahead-Of-Time)⽅式將C#代碼編譯爲 ARM⼆進制代碼。
Xamarin.Android:
即以前的MonoDroid(Mono for Android) ,是
將C# 代碼編譯成IL封裝到MonoVM+JIT.
2.優劣勢
在Xamarin2.0下開發跨平臺應用,最可能是邏輯層和數據訪問層的代碼能夠共用,而最花費時間的界面搭建則須要針對不一樣的平臺進行訂製。當時Xamarin的優點是C#開發人員不須要再學習java和Objective-C了,缺點是須要了解各個平臺界面的API,實際能節省下來的工做量並很少。
幸運的是Xamarin3.0帶來了
Xamarin.Fo
rms,界面部分也能共享一套代碼了。真正可以達到「write your code once, and present native UIs on each platform.」(一次編寫,在各平臺使用原生控件展示)的效果。這也是Xamarin最吸引個人地方。目前CSDN爲Xamarin在中國大陸的代理,正在開展一些相應的培訓。
固然,有優點確定也有劣勢。目前
Xa
marin.Forms的版本爲1.2.2 Prerelease 3 版,b
ug至關多(但更新較快),提供的控件很少,最基本的Radio Button和CheckBox沒有(官方解釋:這兩個不是每一個平臺都有的控件),須要本身重寫Renderer。
在Android平臺上,使用Xamarin.Forms開發稍微複雜些的應用,啓動速度較慢,讓人不得不爲它設計一個啓動界面
。還有就是Xamarin的中文文檔幾乎沒有,其中大部分資料來自臺灣。CSDN上的論壇才20條帖子...目前有問題比較靠譜的解決方法是在它的官方論壇或者加QQ羣:
385020493提問。
3.開發環境
Xamarin能夠在Windows和Mac上進行開發:
Windows: Xamarin Studio 或 Xamarin for Visual Studio(2010 -2013) Plugin(推薦)
Mac:
Xamarin Studio
4.技術基礎
C#基礎,可以建立WCF、rest服務、掌握C#5.0,.net4.5後async、await關鍵字。學過Silverlight或wpf的最好:由於它們佈局文件都使用xaml,包括設計模式也是相同的MVVM,瞭解Binding數據綁定、Command命令、DI依賴注入、DP依賴屬性等等內容。
5.系統支持
- Android 4.0 or higher
- iOS 6.1 or higher
- Windows Phone 8 (using Visual Studio)