乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Visual Studio 跨平臺開發(fā)實戰(zhàn)(1) - Hello Xamarin!

       風(fēng)聲之家 2014-11-19

      http://www./taihon64/archive/2013/08/23/115305.aspx

      前言

      應(yīng)用程式發(fā)展的腳步, 從來沒有停過. 從早期的Windows 應(yīng)用程式, 到網(wǎng)路時代的web 應(yīng)用程式, 再到近幾年相當(dāng)盛行的行動裝置應(yīng)用程式(Mobile Application), 身為C#的開發(fā)人員與Visual Studio的使用者. Windows Phone與Windows Store App的開發(fā)是否已滿足不了你了呢? 如果能夠讓你使用C#及Visual Studio 來開發(fā)iOS及Android的app. 是否能再度喚醒你的開發(fā)魂? Xamain 正是為了這樣的需求而誔生的framework.

       

      簡介

      Xamarin 是由早期的Mono專案演變而來, 原本是在Linux上執(zhí)行C#程式的一個開放原始碼專案. 後來陸續(xù)發(fā)表支援iOS的Mono Touch framework以及Mono For Android Framework. 因此它在市場上並不是一個新的產(chǎn)品. 2011年, 原本在Novell的Mono專案團(tuán)隊獨(dú)立成立一家公司, 正式將名稱改為Xamarin, 此為Xamarin的由來. Xamarin 具有以下特點:

      • 快速建立原生(Native)的行動裝置應(yīng)用程式 - 透過C#親和且功能齊全的語言特性, 搭配.NET Framework 的Base Class Library(BCL)的便利性. 讓開發(fā)人員能以最高的生產(chǎn)力開發(fā)行動裝置應(yīng)用程式. 目前Mono支援C# 5.0的語言規(guī)範(fàn), 這意味著開發(fā)人員可以用您熟悉的Lambda Expression, LINQ 甚至是Async/Await的非同步處理.
         
      • 程式碼共用 - 現(xiàn)行由Objective-C所開發(fā)的iOS應(yīng)用程式以及由Java所開發(fā)的Android應(yīng)用程式, 無法達(dá)到程式碼共用. Xamarin則是採用C#撰寫, 因此透過良好的設(shè)計, 可以在不同平臺間共用商業(yè)邏輯以及資料存取等程式, 毋需重新撰寫. 除了省下重新撰寫的時間成本外, 對於版本維護(hù)及一致性也有相當(dāng)大的助益.
         
      • 與Visual Studio 整合 – Xamarin 提供了Visual Studio 2010/2012的plug-in, 讓原本就熟悉Visual Studio的開發(fā)者不用再熟悉其他的開發(fā)工具. 在建立專案時, 可以直接建立iOS及Android的專案範(fàn)本. 當(dāng)然, 開發(fā)團(tuán)隊也可以將iOS及Android的程式碼納入到ALM, 使用Team Foundation Server進(jìn)行版本及建置的管理.
         
      • 確保第一時間更新 – Xamarin 對於iOS及Android的版本更新不遺餘力, 在iOS SDK 5.0, 6.0以6.1, 都與Apple在同一天發(fā)表對應(yīng)的Framework版本, 7.0也承諾會在同一天發(fā)表. 而Android方面, Xamarin甚至將Android的原始碼, 從原本的Java改由C#重新撰寫, 而且效能也得到大幅的提升.
         
      • 原生的應(yīng)用程式效能 – Xamarin 針對iOS及Android平臺開發(fā)編譯器. 將C#程式碼直接編譯成ARM CPU的機(jī)器碼. 因此效能將與原生模式開發(fā)的應(yīng)用程式相比, 沒有不同. 而在Android 系統(tǒng)上, 由於Xamarin 不使用Android的Dalvik 虛擬機(jī)器, 改為採用CLR, 經(jīng)測試其效能更甚於原生的應(yīng)用程式.

       

      系統(tǒng)需求

      • iOS : 由於Apple限制iOS應(yīng)用程式編譯都需要透過Xcode, 因此需要1臺MAC的機(jī)器作為Build Host.
        • Windows 7 或更新的作業(yè)系統(tǒng)版本
        • Visual Studio 2010 / 2012
        • OS X Lion 或更新的作業(yè)系統(tǒng)版本
        • Xcode IDE 以及 iOS SDK

       

      • Android : 對於Android開發(fā), 則可以完全在Windows 上進(jìn)行. 其系統(tǒng)需求如下:
        • Windows 7 或更新的作業(yè)系統(tǒng)版本
        • Java SDK
        • Android SDK
        • Xamarin.Android for Visual Studio

       

      安裝Xamarin

      無論是在Windows或是MAC上安裝Xamarin都相當(dāng)簡單, 只要在http:///download上填入名稱及Email帳號, 便可以進(jìn)行下載. 而只要依照安裝精靈點選下一步, 就可以將Android SDK等相關(guān)元件裝好.

      clip_image002

       

      Windows 版安裝晝面:

      clip_image004

       

      MAC版安裝畫面:

      clip_image006

       

      Xamarin 是一個商業(yè)的Framework, 但您可以完整試用30天, 或是使用免費(fèi)版本. 但免費(fèi)版本限制開發(fā)人員編譯後的IL code大小不能超過32K, 且無法使用Visual Studio進(jìn)行開發(fā)(只能使用Xamarin提供的Xamarin Studio).

      安裝好Xamarin之後, 需要註冊一個Xamarin帳號進(jìn)行啟動.

       

      1. 開啟Visual Studio, 點選工具=>Xamarin Account

      clip_image007

       

      2. 若先前已經(jīng)註冊過Xamarin帳號(請注意, Xamarin帳號與先前下載所填的Email不同), 請直接輸入帳號密碼登入,若您是第一次使用, 請申請新的Xamarin帳號.

      clip_image009clip_image011

      登入後便可以開始開發(fā)Android及iOS應(yīng)用程式囉!!

       

      使用Visual Studio 開發(fā)Android HelloWorld!

      使用Xamarin 開發(fā)Android應(yīng)用程式可說是相當(dāng)?shù)姆奖? 不僅支援在Visual Studio中使用拖曳的方式設(shè)計使用者介面, 還整合如AVD及SDK Manager等工具. 廢話不多說, 開始我們在Visual Studio上的第1支Android程式吧~

      1. 在Visual Studio 中新增專案, 在專案範(fàn)本中, 請展開C#節(jié)點, 你會發(fā)現(xiàn)專案範(fàn)本會多出Android及iOS類型的專案範(fàn)本, 我們在這個範(fàn)例中選擇”Android Application”, 並在名稱中輸入"HelloDroid” (當(dāng)然您可以改成任何您想要的名稱)

      clip_image013

       

      2. 專案建立後, 您會發(fā)現(xiàn)工具列中多出幾個項目:

      clip_image014

       

      說明如下(由左至右):

      • 目標(biāo)裝置:可以選擇將目前的專案部署到哪一個裝置, 預(yù)設(shè)的"Prompt for Device”則是會在開始除錯/部署時, 彈出視窗供使用者選擇. 若有接上實體裝置, 也會出現(xiàn)在此選單中.

      clip_image015

       

      • 裝置記錄: 可以挑選裝置並顯示目前裝置的活動記錄.

      clip_image017

       

      • 開啟Android 虛擬裝置管理員(AVD), 透過此管理員, 您可以新增,開啟或編輯Android模擬器.

      clip_image019

       

      • Android SDK管理員:由於Android版本(API Level)眾多, 您可以在這個管理介面, 安裝所需的SDK版本及元件。

      clip_image021

       

      3. 預(yù)設(shè)的專案中會內(nèi)建一個Button控制項並寫著"Hello World, Click Me!”, 開啟專案下的Resources->Layout->Main.axml可以進(jìn)行頁面的設(shè)計。

      clip_image023

       

      4. 而此範(fàn)例的主要程式碼則是Activity1.cs, 直接透過下圖的註解來說明:

      clip_image025

       

      看到這樣的程式碼, 我想大家應(yīng)該都不會感到陌生. 筆者有一些學(xué)員跟我說, 感覺跟開發(fā)Windows Form應(yīng)用程式好像~~

       

      Activity1.cs 相當(dāng)於MVC分層的Controller. 透過SetContentView方法, 告訴系統(tǒng)要載入哪一個頁面. 接著透過FindViewById方法取得畫面上按鈕的物件實體. 接著便可以針對按鈕的屬性或方法撰寫相關(guān)的程式碼, 或是處理按鈕的事件. 如上圖所示, 預(yù)設(shè)的範(fàn)例是使用匿名方法, 我們將它註解後, 改用Lambda Expression來撰寫.

       

      5. 接著按下F5, 便可以開始進(jìn)行除錯, 若沒有預(yù)先開啟Android模擬器, 則Running devices列表會是空的, 這時可以點擊下方的"Start emulator image”連結(jié)來啟動模擬器.

      clip_image026

       

      6. 執(zhí)行結(jié)果如下:

      clip_image028clip_image030

      是不是相當(dāng)簡單呢? 接下來我們來開始iOS的Hello World.

       

      使用Visual Studio 開發(fā)iOS HelloWorld!

      與開發(fā)Android不同, 目前Xamarin尚未支援在Visual Studio中設(shè)計應(yīng)用程式頁面, 但官方表示目前已在研發(fā)當(dāng)中, 並會在不久之後的版本提供此功能. 因此目前iOS專案的UI設(shè)計必須透過MAC的Interface Builder (XCode的一部份), 或是直接在程式中宣告控制項的位置及大小, Visual Studio中的HelloWorld Application便是使用此方法.

      1. 在Visual Studio 中新增專案, 在專案範(fàn)本中選擇iOS下的iPhone, 並在右邊的範(fàn)本中選擇HelloWorld Application, 接著指定專案名稱(此處為HelloIOS)

      clip_image032

       

      2. 第一次開啟iOS專案時, Xamarin會提示使用者只有在商業(yè)版或更高的版本才能在Visual Studio中開發(fā)iOS專案.

      clip_image034

       

      接著Xamarin便會自動啟用試用版本的授權(quán), 啟動完畢後, 會提示使用者Visual Studio將會重新啟動.

      clip_image036 clip_image038

       

      若您MAC上的Xamarin授權(quán)尚未啟動, 將會看到系統(tǒng)提示, 說明Build Server(也就是MAC)尚未啟用授權(quán). 此時按下Activate按鈕可能沒有作用, 請依照下面的步驟, 在MAC上啟用Xamarin授權(quán).

      clip_image039

       

      3. 由於Xamarin在MAC上預(yù)設(shè)是以免費(fèi)版本開啟. 因此可以透過以下方法強(qiáng)制啟用Xamarin試用授權(quán). 首先在MAC的Finder開啟Xamarin Studio

      clip_image041

       

      新增一個專案, 選擇iPhone =>Single View Application. 專案建立後, 點擊功能表中的專案=>Profile - Mono

      clip_image043 clip_image045

       

      此時會看到授權(quán)啟用的畫面. 當(dāng)完成啟用後, 我們就可以回到Visual Studio來指定我們的Build Host.

      clip_image047clip_image049

       

      4. 在Visual Studio的工具=>選項中, 可以看到多出了一個Xamarin節(jié)點, 點擊Xamarin下的iOS Settings, 在右邊可以指定Mac Build Host.您可以直接輸入MAC的電腦名稱或IP位址, 或按下Configure 進(jìn)行設(shè)定.

      clip_image051clip_image053

      在設(shè)定視窗中, Xamarin會搜尋同一網(wǎng)段中已安裝並啟用Xamarin的MAC機(jī)器. 若狀態(tài)顯示為"Ready", 請按下Connect進(jìn)行連線.

      若狀態(tài)不是"Ready”, 可以按下Diagnose按鈕進(jìn)行連線診斷. 如下圖所示, 若某一個或多個項目無法通過連線診斷, 則會出現(xiàn)failed, 您可以展開failed的項目了解失敗的原因.

      clip_image055

       

      5. 請在組態(tài)管理中, 將平臺設(shè)定為iPhoneSimulator, 預(yù)設(shè)為部署至實體機(jī)器, 但這需要向Apple申請付費(fèi)的開發(fā)者帳號.

      clip_image056

      接著在工具列中, 可以選擇iOS 模擬器的版本, 右邊綠色打勾的符號表示已與MAC Build Host的連線正常, 若是反灰的狀態(tài), 請按一下右邊的clip_image057圖示重新與指定的Build Host連線.

      clip_image058

       

      5. 開啟專案中的MyViewConrtoller.cs 檔. 在此範(fàn)例中, 同樣是在畫面中間放置一個Button控制項(在iOS中的類別名稱為UIButton)並顯示點擊的次數(shù). 由於我們是在程式中產(chǎn)生控制項, 因此有部份程式碼是在宣告物件的佈局屬性, 請參考下圖中程式碼的註解:

      clip_image059

       

      6. 接下來才是範(fàn)例程式的重點, 若您是在XCode中設(shè)計好UI, 則可以取代上面的程式.

      clip_image060

       

      如同先前Android的HelloWorld, 在iOS中, 按鈕的點擊事件不叫Click, 而是TouchUpInside, 因此我們透過此事件的處理, 在使用者點擊了按鈕後, 改變按鈕的顯示文字(使用UIButton的SetTitle方法). 最後將Button控制項透過View.AddSubview方法加入到畫面當(dāng)中.

      執(zhí)行結(jié)果如下:

      clip_image062

       

      跨平臺開發(fā)簡介

      作為一個跨平臺的解決方案, 使用Visual Studio 搭配Xamarin開發(fā)行動裝置應(yīng)用程式具有以下特色:

      • 可以在同一個方案中包含所有平臺的專案: 包括Windows Phone, Windows 8 Store App, iOS以及Android. 如下圖所示:

      clip_image063

       

      • 程式碼共享:在設(shè)計時, 將與平臺無關(guān)的商業(yè)邏輯、服務(wù)存取、資料存取以及資料層從介面抽離出來, 如下圖所示:

      clip_image064

       

      底下說明如何才能達(dá)成上述的專案整合以及程式碼共用, 首先來看看架構(gòu)示意圖:

      clip_image065

       

      從上述的示意圖, 我們可以看到, 左半邊是可以抽離出來的共用程式碼, 這部份將獨(dú)立成一個專案, 並只加入常用的組件(如Base Class Library), 若有部份程式碼使用到與平臺相關(guān)的組件或技術(shù), 可以在程式碼中加入條件式編譯的指示詞, 供各平臺直接使用, 不需要進(jìn)行修改.

      而在各平臺的專案中, 可以透過檔案連結(jié)的方式, 將共用程式碼的部份連結(jié)到各平臺專案. 但由於目前Visual Studio並沒有提供可以同時設(shè)定多個檔案或整個資料夾連結(jié)的方式, 因此若每個檔案都要手動連結(jié), 其實是較不實際的. 而且日後共用程式碼專案若有檔案的異動, 如新增或刪除. 各平臺專案並不會同步更新. 此時我們可以透過1個叫做”Project Linker 2012”的擴(kuò)充功能進(jìn)行協(xié)助(它也有對應(yīng)Visual Studio 2010的版本).

      clip_image067

       

      安裝好Project Linker後, 我們便可以在各平臺專案點擊滑鼠右鍵=>Add project link

      clip_image068

       

      接著選擇來源專案, 之後便會為來源專案的每個資料夾及檔案進(jìn)行連結(jié).

      clip_image070

       

      連結(jié)的檔案在Visual Studio中都會有個藍(lán)色箭頭的圖示

      clip_image072

       

      透過上述的設(shè)定後, 便可以在各平臺專案共用程式碼. 在開發(fā)平臺專案時, 只要針對使用者介面以及針對控制項的操作撰寫程式即可. 對於商業(yè)邏輯, 資料存取的部份則可以在各平臺共用, 這是使用原生的開發(fā)方式(Objective-C, Java)所無法達(dá)到的. 實際執(zhí)行結(jié)果如下:

      clip_image073clip_image075

      clip_image077clip_image078

       

      結(jié)語

      本文說明了Xamarin 的特色以及開發(fā)架構(gòu). 希望透過簡單的範(fàn)例讓第一次接觸的開發(fā)人員能夠立即著手進(jìn)行安裝及開發(fā). 在接下來的系列文章中, 將會介紹如何使用Xamarin及Visual Studio 使用iOS以及Android的基本控制項及多頁面的串接.

       

      參考資訊

      http://blog./android-in-c-sharp/

      http://www./xamarin_intro.aspx

      http://docs./guides/ios/getting_started

      http://docs./guides/android/getting_started

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多