お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-04-05 09:56:32

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

【.Net開発環境】monodeveloper【C#,VB.Net,etc】

Ubuntu 7.10にLinux上で動作する.Net統合開発環境がありましたのでインストール方法や概要などを記載します。

・Monodeveloper(Mono)について
Monodeveloperはクロスプラットフォーム対応のVisualStudio.Netライクな.Net統合開発環境です。
対応開発言語はC#、VB.Net、C/C++、他にはJava(ただし機能が限られている)がサポートされています。

・コンパイルについて
Monoは共通言語仕様(CLI:Common Lnaguage Infrastructure)に基づいて開発されています。
CLIはJavaと同様の仮想マシンでプラットフォームの違いを吸収してくれるため、クロスプラットフォームでの開発が
可能です。(このあたりはMicrosoftの.Netと同じかな〜と。)
詳細は以下で記述されています。
http://ja.wikipedia.org/wiki/%E5%85%B1%E9%80%9A%E8%A8%80%E8%AA%9E%E5%9F%BA%E7%9B%A4

・サポートされているクラスライブラリ
MonoにはMicrosoft互換のAPIとMono独自のAPIの2つのクラスライブラリが含まれています。
・Microsoftと互換性があるクラスライブラリ
ADO.Net
ASP.Net
Windows.Forms

・Mono独自のクラスライブラリ
Gtk#・・・ユーザインターフェースのツールキット
MySQL、PostgreSQLのDB向けのAPI
Mozilla Web APIのユーザインターフェース

インストール方法:
以下にコマンドを記載します。バージョンは0.14です。
sudo apt-get install mono mono-gmcs mono-utils monodevelop monodoc mono-xsp monodoc-http  monodoc-nunit-manual monodoc-gtk2.0-manual monodoc-gecko2.0-manual monodoc-ipod-manual monodevelop-nunit monodevelop-versioncontrol monodevelop-query

インストール方法参照元は以下を参照しました。
http://beans.seartipy.com/2007/10/31/installing-cmononetmonodevelopxsp-in-ubuntu-gutsy-gibbon710/

ASPに興味があれば以下が参考になるかな〜と思います。
http://www.howtogeek.com/howto/ubuntu/run-aspnet-applications-on-ubuntu-for-developers/

以上、冗長になってしまいましたが、いろいろ調査を行っていきたいなと思います(特にWindowsプログラムなど。一応Webもやりますが。。。)
ご興味のある方、お試しください。
ちなみにMonoはスペイン語で「猿」という意味らしいです。

オフライン

 

#2 2008-04-05 20:35:48

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

とりあえず、Monoを動かしてみようと思い、恒例のHello Worldを作成してみました。(言語はC#を選択)

以下、操作方法です。
1.Monoを起動する。
2.ファイルメニューをクリック
3.ファイルメニューから「新しいプロジェクトを追加」を選択
4.テンプレートのリストボックスからC#を選択
5.コンソールプロジェクトを選択
6.ロケーションの名前ボックスにファイル名を入力(今回はHelloを入力しました)
7.進むボタンをクリック
8.「新しいソリューション」ダイアログが表示されますが、今回は何も入力しないでOKボタンをクリック
以上の操作を行うと、すでに簡単なプログラムが自動生成されています。
文法自体はC#なのでC#の文法そのものについては特に説明しません。(Googleなどで検索するのが一番手っ取り早いですし。。。)
C#の勉強の勉強などには充分過ぎるツールじゃないかな〜と個人的には思います。

自動生成した簡単なプログラム:
using System;

namespace Hello
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("こんにちは、Mono");
        }
    }
}

追記)
記述してみて気づいたのですが、VisualStuido.Netでは
public static void Main()
ですが、Ubuntu(Linux)ではきちんと
public static void Main(String[] args)
と記述してくれるのですね。(^^)

最後の編集者: eng16danbo (2008-04-06 07:55:55)

オフライン

 

#3 2008-04-05 22:30:53

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

◆コンパイラについての補足(C#)◆
MonoではC#をコンパイルするとき、mcsというコンパイラを使用します。
mcsはプログラムを実行形式ではなく、共通中間言語(CIL)と呼ばれる中間バイトコードに
コンパイルします。
で、実行する時はコンパイルされたCILのバイトコードをJIT(Just In Time)コンパイラという
コンパイラを使用して機械コードに翻訳をするということです。。。

このあたりはMicrosoftの.Netの仕様と似ているな〜と思います(というか、そのまま。。。?)。
多分、上記の説明では不足している部分もあると思うので、.Net開発経験のある見識者の方々のご意見を
いただければ助かります。(まったくの初心者なので。。。)

最後の編集者: eng16danbo (2008-04-05 22:32:43)

オフライン

 

#4 2008-04-05 23:50:29

hito
管理者
登録日: 2007-03-18

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

eng16danbo による投稿:

このあたりはMicrosoftの.Netの仕様と似ているな〜と思います(というか、そのまま。。。?)。
多分、上記の説明では不足している部分もあると思うので、.Net開発経験のある見識者の方々のご意見を
いただければ助かります。(まったくの初心者なので。。。)

そのままです。.NETで使われるC#が吐くのはMSILと呼ばれるべきかもしれませんが、MSILはCILに
準拠した実装です。一般的な.NET環境では「IL」と呼称することが多いようです。

厳密にはJITコンパイラはVESの上で走るぜとか細かい点はありますが、実用上はその理解で
間違いないかと。

オフライン

 

#5 2008-04-06 07:45:40

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

>hitoさん
ご返事ありがとうございます。
VESについてはまったく認識がなかったです。。。(爆)
なにか参考になるものがないかと探していますが、
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA_(.NET)
のあたりを読んでいるところです。
monoとVisualStudio.Netのコンパイルの相違点なども含めて調査していきたいと思います。

ありがとうございました。

最後の編集者: eng16danbo (2008-04-06 07:49:05)

オフライン

 

#6 2008-04-06 16:39:00

eng16danbo
メンバ
From: 東京都八王子市
登録日: 2007-08-03

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

・Gtk#ユーザインターフェースプログラム(C#)
調査不足かなとも思いましたが、gladeなどを使用してユーザインターフェースプログラムをされている方々も
いらっしゃるみたいなのでMonoを使用してユーザインターフェースを作成したいと思います。

その前にインストール方法でGtk#のインストールが記載されていないので下記に記載します。(すみません。。。)
実行コマンド:
sudo apt-get install gtk-sharp
Gtk#はLinux向けのユーザインタフェースを構築するツールキットです。

まずは簡単なWindowsプログラムを作成したいと思います。

Monodeveloperで以下のプログラムを入力してファイルを保存します。

(〜〜ソースコード ここから〜〜)
using System;
using Gtk;

namespace BasicWindows
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            Application.Init ();
            Window win = new Window ("Gtk# Basics");
            Button btn = new Button("Hit Button");
       
            //イベントの取扱いを設定します
            win.DeleteEvent += new DeleteEventHandler(Window_Delete);
            btn.Clicked += new EventHandler(Button_Clicked);
            //GUIの初期化
            win.Add(btn);
            win.SetDefaultSize(200,100);
            win.ShowAll();
            Application.Run();
        }
            static void Window_Delete(object o, DeleteEventArgs args){
                Application.Quit();
                args.RetVal = true;
            }
           
            static void Button_Clicked(object o, EventArgs args){
                 System.Console.WriteLine("Hello,World!");
            }
    }
}
(〜〜ソースコード ここまで〜〜)
保存したら端末を起動します。
cdコマンドを使用して、Monodeveloperで作成したC#ソースコードのディレクトリへ移動します。

$cd (C#のソースコードを保存したディレクトリ)

$mcs (保存したファイル名).cs -pkg:gtk-sharp

コンパイルが成功したら次のコマンドを実行。
$mono (保存したファイル名).exe

そうすると、Windowsが表示されます。(閉じるボタンを押せば終了します)
「Hit Button」ボタンをクリックする度に端末上に"Hello,World"が表示されます。
以上です。
gladeについても調査していきたいと思います。。。

最後の編集者: eng16danbo (2008-04-06 16:44:43)

オフライン

 

#7 2008-06-27 22:46:46

EDolphin
新しいメンバ
From: 群馬
登録日: 2008-06-27

Re: 【.Net開発環境】monodeveloper【C#,VB.Net,etc】

MonoではWinFormsも使えますよね。

WinFormsは互換目的で取り入れられているだけで、Gtk#を使ったほうがいいのでしょうか?

オフライン

 

Board footer

Powered by FluxBB