話題の記事

Xamarin Studio for Macで.NETプログラム(C#)を書いてみた。

2016.04.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

1 はじめに

昨夜、無料になったという事で、朝から慌ててインストールしたXamarin Studio ですが、今、眺めていると、プロジェクトの一覧に.NETやASP.NETがある事に気がつきました。

これ、前からあったのですか???

[Developers.IO] 遂にXamarin無料! Xamarin Studio for MacでiOS/Androidを書いてみた。

2 ソリューションの作成

メニューから「ファイル」ー「新規」ー「ソリューション」と辿り、「その他」の「.NET」を選択し、「コンソール プログラム」をクリックします。

001

プロジェクトの名前を指定します。(ここでは、ConsoleAppとしました) ソリューション名は、自動的に同じものが入ります。

002

”Hello World!”をコンソールに出力するだけの雛形が生成されます。

004

3 System.Net.NetworkInformation

せっかくなので、.NETに依存した簡単なプログラムを作成してみます。 下のコードは、pingを送信するプログラムです。ソケットで書いたら、気が遠くなるよなコードが2、3行で書けてしまいます。

using System;
using System.Net.NetworkInformation;
using System.Linq;

namespace ConsoleApp {
    class MainClass {
        public static void Main(string[] args) {
            var p = new Ping();
            foreach (int i in Enumerable.Range(1, 10)){
                var reply = p.Send("www.google.com");
                if (reply.Status == IPStatus.Success){
                    Console.WriteLine("Reply from {0}:bytes={1} time={2}ms TTL={3}"
                                      ,reply.Address
                                      ,reply.Buffer.Length
                                      ,reply.RoundtripTime
                                      ,reply.Options.Ttl);
                }else {
                    Console.WriteLine("Ping faild ({0})", reply.Status);
                }
                p.Dispose();
            }

        }
    }
}

そして、デバッグ実行している様子です。

003

4 実行プログラム

実際のバイナリは、ソリューションのフォルダの中のプロジェクトの中のbin/Debug(デバッグ)若しくはbin/Release(リリース)に作成されています。

そして、exe

$ pwd
/Users/sin/Projects/ConsoleApp/ConsoleApp/bin/Debug
$ ls -la
total 24
drwxr-xr-x  4 hirauchishinichi  staff   136  4  1 22:55 .
drwxr-xr-x  3 hirauchishinichi  staff   102  4  1 22:37 ..
-rwxr-xr-x  1 hirauchishinichi  staff  4608  4  1 22:55 ConsoleApp.exe
-rw-r--r--  1 hirauchishinichi  staff   552  4  1 22:55 ConsoleApp.exe.mdb

そう、monoで実行って事ですね。

$ mono ConsoleApp.exe
Reply from 216.58.197.164:bytes=0 time=35ms TTL=128
Reply from 216.58.197.164:bytes=0 time=24ms TTL=128
Reply from 216.58.197.164:bytes=0 time=26ms TTL=128
Reply from 216.58.197.164:bytes=0 time=24ms TTL=128
Reply from 216.58.197.164:bytes=0 time=24ms TTL=128
Reply from 216.58.197.164:bytes=0 time=23ms TTL=128
Reply from 216.58.197.164:bytes=0 time=27ms TTL=128
Reply from 216.58.197.164:bytes=0 time=26ms TTL=128
Reply from 216.58.197.164:bytes=0 time=25ms TTL=128
Reply from 216.58.197.164:bytes=0 time=24ms TTL=128
$

5 最後に

XamarinStudioをインストールするだけで、Monoの環境がセットアップされ、C#で.NETが書けてしまう事に、改めてビックリしました。

ASP.NETも書けるみたいだし・・・Xamarin Studioで勝つるかも・・・

6 参考資料

遂にXamarin無料! Xamarin Studio for MacでiOS/Androidを書いてみた。
[Developers.IO] Xamarin – シリーズ –
Xamarin 記事一覧 - SIN@SAPPOROWORKSの覚書