C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2011年9月10日

Mono 2.10.5 に上げてみた Mono 2.10.5 に上げてみた

ひと月ほど前、ゲリラ豪雨と共にやって来た雷による瞬停でにサーバーが逝った。
HDDがアクセスできず、リブートしたらやっぱりダメ。

Debian Etch + Apache2 + mono 2.4でASP.NET 2.0を動かしてたサーバ(Pentium III)なのでとっくに寿命だった。
いつ壊れてもおかしくない為、新PCは用意してあり、今度は高速なPentium 4だ(orz)。
まあ退役したDesktop機の余生なわけです。


WebコンテンツやDBは仮想マシンのステージサーバにあるため、OSその他を入れてコンテンツ アップデートの設定をすれば一気に復旧となるはずだった。
新PCは、OSインストール済みで設定の半分ぐらいで放置されている状況。

ここでチョット欲がでた。
開発環境がVS2010に移行しているのでASP.NET 4.0にした方が今後楽できる。
monoは、去年10月の記事「Mono 2.8 リリース (C# 4.0対応)」にある通り、2.8で.NET Framework 4.0対応している。

 

OSをDebian Squeezeに上げる

既にDebian Etchはセキュリティ アップデートのリリースも終わっているので、このまま使い続ける訳にもいかない。
ここは安定板になっているSqueezeに上げる事にした。

まず、新PCはDebian LennyだったのでSqueezeにアップデート。これはすんなり完了。
ステージサーバは、Deian Etchなので、一旦停止して仮想HDDをコピーでバックアップ。
一気にSqueezeに上げてみたら・・・だめですね。
apt-get dist-upgrade が依存関係でハマって失敗する。

Etch ⇒ Lenny ⇒ Squeeze の順を踏んで上げるべきでした

バックアップしてあった仮想HDDを上書きコピーして再度順を追ってアップデートで成功でした。

引きづづいてMonoをアップデートする。

続きを読む "Mono 2.10.5 に上げてみた"

2011年5月22日

monoプロジェクトがXamarinとして独立 monoプロジェクトがXamarinとして独立

2011/5/17の記事:『Mono』プロジェクトが新会社 Xamarin として独立 - japan.internet.com

Novell を買収した Attachmate において、『Mono』プロジェクトは終焉を迎えた。そして同プロジェクトの活動は、新たに Xamarin として生まれ変わった。

Mono とは『.NET Framework』互換のオープンソース実装だ。
Attachmate は数週間前、Novell の買収にあたって Mono プロジェクトの開発チームは引き継がない、との決断を下していた。その時点で、開発者やプロジェクトの今後は知る由もなかったが、ようやく明らかになった。

要するに、『MonoプロジェクトをAttachmateが不要と判断したため、mono開発メンバが新会社Xamarinを立ち上げた』という事らしい。

Xamarin - ものがたり にこの解雇が突然だったことが書かれている。

 

Mono創始者のMiguel de Icaza氏、Novellから独立したMono技術ベンチャー立ち上げへ - SourceForge.JP Magazine - オープンソースの話題満載の記事:

Xamarinは、Monoベースの製品に特化した企業となる。これまでde Icaza氏らは米Novell下のMonoチームとして、C#と.NETでiOS向けアプリケーションを作成できる開発環境「MonoTouch」やAndroid向けの「MonoDroid」などを開発してきた。Xamarinはこれを継続するもので、Monoをベースとし、これらとソース互換性のある商用製品を開発する。

Xamarinがmonoと関連製品、特に『iOS』と『Android』分野をターゲットにするのは、monoプロジェクトの成果の継承(派生?)として当然だ。
Xamarinのトップページにそのものが主張されてる:

Xamarinのトップページ

 

気になるAttachmateとの権利関係についてjapan.internet.comの記事に書かれてる:

Mono はオープンソースのプロジェクトだ。もし Attachmate が商標権を主張し、何らかの基礎となるプロジェクトを自身の手元に置こうと決断しても、Miguel De Icaza 氏の一存でプロジェクトを「派生」させることができる。何が起きるにせよ、Attachmate に勝ち目はなく、オープンソース モデルが勝利を収める。

この通りであれば、monoは名前を変えても存続する事になるのだろう。
たとえ有償であっても、Microsoftが埋められないプラットフォームのサポートがあるのは、C#や.NET Frameworkを開発プラットフォームとして選択する際のポイントとなる。(説得しやすい)

 

今のところ、monoプロジェクトの公式ニュースページ(www.mono-project.com-news)に最新情報は無く、今後バージョンアップされたmonoをこれまでのように気軽に利用できるのかどうかは判らない。

個人的には、できる事ならLinux版のリリースも継続して欲しい。

 

mono関連のまとめページ ⇒ Mono (もう一つの .Net Framework実装)- C#.NETでいく?

2010年10月 8日

Mono 2.8 リリース (C# 4.0対応) Mono 2.8 リリース (C# 4.0対応)

monoの最新版 2.8がリリースされました。

安定版を望むなら、バグフィックスが進むまで2.6がお奨めのようです。

Release Notes Mono 2.8

v2.8の機能としては、C# 4.0への対応が最初に挙げられている。
(v2.6ではC# 4.0のプレビュー版が入っていた)

他には

  • 新しいGCエンジン
  • Parallel Framework
  • System.XAML
  • Microsoftのオープンソースフレームワークの組み込み
    • System.Dynamic
    • Managed Extensibility Framework
    • ASP.NET MVC 2
    • System.Data.Services.Client (OData client framework)
  • パフォーマンス改善
  • WCF ルーティング
  • .NET 4.0のコードコントラクタ
  • .net 1.1プロファイルの除去
  • OpenBSDサポート
  • ASP.NET 4.0
  • GLIBに依存しない

などがある。

稼働環境に入れるのはまだ無理そうですが、テスト環境を作って移行準備を進める。

次の大規模な変更は、mono 3.0になるようだ。

2009年9月13日

Mono Tools for Visual Studio Preview版 Mono Tools for Visual Studio Preview版

Mono 2.4とVisual Studio 2008を統合する「Mono Tools for Visual Studio」のプレビュー版がリリースされています。

newsページによると、要するにVisual Studio IDEのメニューバーに<Mono>が追加されて、mono上でアプリケーションを実行する面倒な手続きを簡略化してくれるようです。

 

プラットフォームがLinuxでMono上で動作するManagedアプリケーションを作成する場合を考えてみます。

開発環境は慣れているVisual Studioを使用したいけど、最終的にはLinux上に転送して実行しなければいけません。デバッグ環境をどちらにするか。Linux上で動作する無償のIDEもあるが・・・と迷う訳です。

Visual Studioを最大限に使いたい場合の手順は次のよう、

1. コーディング (Visual Studio)
2. デバッグ (Visual Studio)
3. Linuxに転送(Visual Studioのビルドタスク)
4. Linux上でテスト・デバッグ
    OSの違いやCLRの違いによる問題を確認

4番のみターゲットマシンで実行する必要がある。(Visual Studioからリモート デバッグできないため)

 

詳細なデバッグが必要ならLinux上にデバッガを導入する必要があります。

注:MoMAというツールを使用するとCLRの違いによって起こる問題をあらかじめWindows上でチェックすることができます。

つまり、4番のLinux上でのテストとデバッグがネックですが、Mono Tools for Visual Studioがまさにそれを叶えてくれそうです。

 

Mono Tools for Visual Studioの機能

  • Mono互換性のチェック (Scan for Mono Compatibility)
    MoMAを使用して現在のプロジェクトがmono上で実行可能かチェックすることができる。
  • 開発マシンのMono上で実行 (Run on Mono on Windows)
    CLRの違い(.NET FrameworkとMono)をテストする。
    Windows上のMonoを使用してアプリケーションを実行してくれます。
  • ターゲットマシンのMono上で実行 (Run on Mono on Linux)
    プラットフォームの違い(WindowsとLinux)をテストする。
    Linux上のMonoを使用してアプリケーションを実行してくれます。
  • ターゲットマシン上のアプリケーションをデバッグ (Debug on Mono on Linux)
    Linux上のMonoを使用して動作するアプリケーションをVisual Studioからリモートデバッグします。(マジ?期待大)

 

リモートデバッグができるのは非常に期待です。

動作要件は、

- Windows XP or Vista, 32 or 64 bits
- Visual Studio 2008 Standard or Professional

Linux Image runs in:
- VMWare (.vmx) or
- Virtual PC (.vpc)

となっています。

Visual Studio 2008 Express Editionが含まれていないのは何故?というのはまあ良いとして、Linuxイメージが仮想マシンしか書いてないのは・・・。

とりあえず入れて試してみるしか無いようです。

 

monoについて→Monoまとめページ

2009/09/13追記

限定プレビューだったので、直ぐに登録しておいたのが、9/3にInvitationメールが来ました。やっとダウンロードができたので少しずつ試したいと思ってます。

現在のところパッケージのターゲットがSUSEでrpmしか無くちょっと手間取りそう。最終的にはdebian用のパッケージもできるかも。

2009年6月13日

Mono Tools for Visual Studio Preview版 Mono Tools for Visual Studio Preview版

image

Mono 2.4とVisual Studio 2008を統合する「Mono Tools for Visual Studio」のプレビュー版がリリースされています。

newsページによると、要するにVisual Studio IDEのメニューバーに<Mono>が追加されて、mono上でアプリケーションを実行する面倒な手続きを簡略化してくれるようです。

2009年5月 3日

MySQLの準備 MySQLの準備

mono 2.4のテストのためMySQLを準備します。

MySQL 5は、テスト環境構築時にインストールしてあります。

サーバーOS:VirtualBoxの仮想マシンにインストールしたDebian 5.0 Lenny
MySQL:5.0.51a-24+lenny1 (Debian)

2009年5月 2日

mono 2.4 で WinForm : 実行 mono 2.4 で WinForm : 実行

monoのテスト用に作成したWinFormのプロジェクトをビルドしてVista上で実行しました。

今回は、Debianにインストールしたmono 2.4上で実行します。