Macで.net Frameworkを利用した開発

 Mac.net Frameworkを利用した開発

VB.netで開発をする後輩に対して).netなんて簡単だよ!俺、得意分野だし!!

こっそりと復習(予習?)をします。けどよくよく考えたら、Windows環境ないことに気付いたため、なんとかする。

Xarmarinのインストール

Xarmarinはざっくり言うと以下のような製品です。

私が学生の頃はMono(たぶんver2.0のころ)は全然な印象だったけど、時代は進んでいるんですね。インストーラに従い、インストールします。

Xarmarin

Hello VB.net on Xarmarin

早速、VB.netのアプリを作ってみる。まずは、新規ソリューションの作成から。

Hello VB.net

Windowアプリのガラだけ自動構築できたので、適当に実行してみる。すると下記のようなエラー

/Library/Frameworks/Mono.framework/Versions/3.8.0/lib/mono/4.5/Microsoft.VisualBasic.targets: Error: Error executing task Vbc: Argument cannot be null.
Parameter name: pathToTool (HelloVBNETonXamarin)

意味不明です。自動生成だけで、こけると困ります。ググると中の人(Michael氏)のコメントが有りました。

VBのエラーの原因

ざっくり訳すと、

XarmarinはVB.netには完全に対応はしていないよ。(中略)C Sharpを利用することを勧めるよ!

なんてこったい\(^o^)/

返せ、俺の数時間を返せ。

Hello C Sharp on Xarmarin

このまま引き下がるのも癪なので、Michael氏のrecommendに従い、C#で作ってみる。

MainWindow.cs

なんか俺の知ってるFormアプリケーションとは形が違うな。Gtkを使っているから?まあいいや、だいたい同じだろう。

  • ボタンとラベルを配置
  • ボタンにonClickイベントを定義
  • onClik押下時にラベルの文章を変更 labelHello.Text = "Hello C Shrap on Xamarin"; 
using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{
    public MainWindow () : base (Gtk.WindowType.Toplevel)
    {
        Build ();
    }

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
    {
        Application.Quit ();
        a.RetVal = true;
    }

    protected void OnButtonHelloClicked (object sender, EventArgs e)
    {
        labelHello.Text = "Hello C Shrap on Xamarin";
//thrownewNotImplementedException();
    }
}

できたアプリ

大したことはしてないけど、MacでCSharpのアプリが動くのはすごいな。

MainWindow_01

MainWindow_02

以上。たぶんこの続きはありません。