この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
1 はじめに
昨夜、無料になったという事で、朝から慌ててインストールしたXamarin Studio ですが、今、眺めていると、プロジェクトの一覧に.NETやASP.NETがある事に気がつきました。
これ、前からあったのですか???
[Developers.IO] 遂にXamarin無料! Xamarin Studio for MacでiOS/Androidを書いてみた。
2 ソリューションの作成
メニューから「ファイル」ー「新規」ー「ソリューション」と辿り、「その他」の「.NET」を選択し、「コンソール プログラム」をクリックします。
プロジェクトの名前を指定します。(ここでは、ConsoleAppとしました) ソリューション名は、自動的に同じものが入ります。
”Hello World!”をコンソールに出力するだけの雛形が生成されます。
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();
}
}
}
}
そして、デバッグ実行している様子です。
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の覚書