close

Xamarin入門的第一個範例

dotblogs.com.tw/mis2000lab/2016/09/21/xamarin_first_sample_for_beginner

 

只會寫 Windows Form或是 ASP.NET Web Form,有機會快速轉移、快速開發手機程式(Mobile App)嗎?

Xamarin「免費」與 Visual Studio 2015整合,給您一個新選擇

 

對於寫過 Windows Form or ASP.NET Web Form的朋友、或是使用 C#的朋友

使用 Xamarin來撰寫手機 Mobile App應該覺得似曾相似,甚至熟悉度很高

 

Xamarin號稱可以  :   (詳見:https://www.thinkpower.info/xamarin/ )

  • 以C# 開發,編譯成iOS與Android原生執行碼,非HTML5解決方案
  • 任何Objective-C(iOS)與Java(Android)可以做的,Xamarin都可以做到
  • 執行效能100%與原平台程式(Objective-C,Java)所開發的一樣
  • 結合Microsoft Visual Studio開發工具,讓開發更方便、快速

 

Xamarin售價不便宜,幸好2016年二月微軟買下,並免費整合在 Visual Studio裡面

      微軟2月才剛買下跨平台開發工具Xamarin,宣佈將整合到Visual Studio所有版本,包括免費的社群版(Community Edition)、專業版及企業版。

      Xamarin Studio for OS X除了整合Visual Studio 各版本及MSDN訂閱服務內,也將包含在社群版內免費提供。

 ==== 以下是採用 VS 2015 Update 3的操作畫面 =================

 

專案建立好之後,先測試一下環境能否運作?不要寫任何程式,我們直接建置專案(如下圖)並且執行這個空專案。

提醒您,

1.  建置時間很長,因為要啟動手機模擬器(類似VM或是啟動另一套OS),所以請您耐心等候。就算您的電腦CPU很強,也需要一段時間。

2.  如果您使用  Win 10家用版,或是沒有 Hyper-V,就會採用以下的手機模擬器 (AVD_Galaxy_ToolsForApacheCordova ...... 如下圖)

3.  如果您安裝的OS是專業版(含更高階版本)就可以安裝 Hyper-V,使用其他 手機模擬器。

 

 

第一個看見的檔名是 MainActivity.cs 

您可以看見 OnCreate事件,可以把他想成 ASP.NET Web Form的 Page_Load事件(請放心,這裡不會有 PostBack  :-p  )

 

 MainActivity.cs個檔案的內容其實跟其他檔案有密切關係。

如下圖,「主畫面」可以對應 \Resources\layout\main.axml檔案。

 

 

簡單的說,畫面上的控制項弄好以後,可以寫程式,是不是跟  Windows Form or Web Form很類似呢?

 

如果您自己新增一個 Button按鈕,

以下圖的 ID為例,他會在另一個檔案 (Resource.Designer.cs)  自動產生這個ID的編號(獨一無二的編號)

Resource.Designer.cs 千萬不要自己動手去改,請讓程式自動產生這些編號......千萬不要自己動手去改

 

 

撰寫主畫面(Main.axml)時,也可以接換到設計模式

      從左邊的「工具箱」把控制項拉到畫面來用......是不是跟  Windows Form or Web Form很類似呢?

 

接下來就要撰寫「後置程式碼」了

Sorry......不好意思,ASP.NET Web Form寫久了,有些名詞用習慣,暫時改不過來

 

以前寫ASP.NET Web Form,按下 Button按鈕以後,程式要寫在 Button_Click事件內

現在改成 Xamarin其實大同小異。

 

檔案MainActivity.cs

 protected override void OnCreate(Bundle bundle)

 {

      base.OnCreate(bundle);

      // Set our view from the "main" layout resource

      SetContentView(Resource.Layout.Main);

      // Get our button from the layout resource, and attach an event to it  畫面上的第一個按鈕

      Button button = FindViewById

      // 畫面上的第二個按鈕。其實是模仿上一個按鈕改寫的

      Button button2 = FindViewById(Resource.Id.MyButton2);

      // 模仿上面第一個按鈕的範例,自己改寫......按下按鈕,就會觸發這個動作(事件)
      button2.Click += delegate { button2.Text = string.Format("今天是 {0}", DateTime.Now.ToLongDateString()); };

  }

 

回憶一下,您在 ASP.NET Web Form有沒有用過 .FindControl()方法?用來抓取畫面上的控制項?或是大型控制項「樣版裡面」的子控制項?

 

回憶一下,按下 ASP.NET Web Form -- Button按鈕的 Click事件,也能寫成這樣

跟上面程式比對一下,是否很相似?

  • VB語法  -- AddHandler Button1.Click, AddressOf myEventHandler
  • C#語法  -- Button1.Click += new System.EventHandler(this.myEventHandler);

(詳見Youtube教學影片 https://youtu.be/GtI8P0Onods 

 

 

下圖是執行結果:

 

補充資料:

  • 台灣微軟 Xamarin研討會    http://www.microsoft.com/taiwan/vstudio/Xamarin/ 
  • (中文) 投影片 & 影片下載    https://onedrive.live.com/?id=FB49C7CED61BD893%212016&cid=FB49C7CED61BD893

 

  • 台灣微軟範例(中文)    https://msdn.microsoft.com/zh-tw/library/dn879698.aspx
  • .NET 標準函式庫支援 Xamarin 囉!    https://blogs.msdn.microsoft.com/msdntaiwan/2016/09/02/net-standard-library-support-for-xamarin/

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

寫信給我--  mis2000lab (at) yahoo.com.台灣  或是  school (at) mis2000lab.net

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................   Google+   https://plus.google.com/100202398389206570368/posts ........

................  YouTube (ASP.NET) 線上教學影片  http://goo.gl/rGLocQ

請看我們的「售後服務」範圍(嚴格認定)

 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!微軟MVP --MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

 

arrow
arrow
    創作者介紹
    創作者 MIS2000 Lab 的頭像
    MIS2000 Lab

    MIS2000 Lab -- ASP.NET專題實務 / WebForm + MVC線上教學影片

    MIS2000 Lab 發表在 痞客邦 留言(0) 人氣()