net」タグアーカイブ

IronRuby から .net を触る。

こっちはもっと簡単。
Python でのやり方は : IronPython で .net を触る を参照してください。

require "System"
require "System.Windows.Forms"

form = System::Windows::Forms::Form.new
form.Show()

IronPython の時のように、 clr を読み込んで参照を追加して・・とやらずに、

require で要求したときに参照の追加なども自動的にやってくれるので結構楽ちんです。

加えて、IronPython との決定的な違いは、

private や protected のクラスもちゃんと読み込んでくれること。

ということで、内部的に private な class を持っていて、それを使うっていう構造であっても、

IronPython ではダメでも、IronRuby では実行してくれるということが結構あります。

 

そのため結構いろいろなことが、IronRuby では手軽に実行でき、

314929_246558552063419_100001278294483_763093_1178767918_n

こんなように、IronRuby から IronPython を読み出し、

Python コードを Ruby 上で実行するということも可能です。

 

これも協調動作という面では一つのおもしろい所なのではないかな、と思います。

IronPython で .net を触る。

直前に書いた IronPython を C# から使ってみる。 の逆版。

使い方としてはまず、

import clr

とした後、

clr.AddReference

を利用して、 .net のライブラリへの参照を追加していきます。


例:

import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import *
form = Form()
form.Show()

image


追記事項として、先ほどの記事にも書きましたが、

Public なクラスしか読み込んでくれないので、 Protected や Private などが含まれるものは使えません。

生成したクラスのインスタンスの内部で、呼び出して使用するという場合でも、どうやら失敗してしまうようです・・。謎。

 

であであー。

結局 .net で。

image

どうも。みむらです。

STEP_M の C# 移行を開始しました。
2ch の方で C++ において開発を進める方向の話も出ていましたが、

  • メモリ管理の点において、安全なコードが書け、メモリリークが発生しない。
  • プラグイン作成が、あらかじめ提供する Interface を継承して制作するだけでできる上、
    構造上、独自拡張版や派生版が登場したとしても、オリジナルバージョンで利用できるプラグインが作れ、
    プラグインを入れ子にして拡張するプラグインを作るにしても可能ということで、
    かなりの拡張性が見込める。
  • テキスト処理が簡単に書けて、いろいろなことができる。
  • 端っからオブジェクト指向言語なので、テキスト処理やオブジェクト処理が後で見やすい、わかりやすい。
  • Unicode ベースなので、多言語処理もできる。
  • Visual Studio Express (無償版) でも開発が行える。
  • 開発時の負担が減らせる。
  • Mono Project の結果を利用すれば、Linux / Mac OSX でも走るかもよ!

というような点から、やはり C# での開発かな。ということになりまして、開発なう。です。

そして、XAML が結構使いづらいと考えていたのですが、使ってみたら使いやすい。
HSP と Win32API を使ってプログラムを作っていたこともあり、
可能な限りテキストベースで行ってもらった方がわかりやすいんですね。

XAML は XML ベース。
image
なっかなかに使いやすかったので、XAML での方向に進もうかと。
もちろん、XAML で書いたオブジェクトの動作を C# コードで書けて、
そこの部分の制御は Windows Form を使ったのとほぼ変わらないので、新たに覚え直す必要もなく。

問題は開発時間ですが、それはまぁ。暇を見つけてやりましょうやりましょう。ということで。

お絵かきソフトやら、メモ帳やら、やろうかなぁ。というやつはあるっちゃぁありますが、
C# + XAML がおもしろいので、こっちの開発に100%タスクを回しそうです。

ただ欠点ももちろんありまして、

  • 動作可能OSが Windows XP 以降 (XAML 使わなければ、Win98 でも走るプログラムができるんですがねw)
  • Windows XP では初回起動が遅い (.net framework の実行環境を立ち上げるため)
    -> ユーザ側で ngen.exe であらかじめネイティブイメージを生成しておくと、初回から起動が速くなります。
  • 動作全体がちょっと遅い
    (.net のしょうがない点。多くの計算をする内容でなければ問題なし。)

まぁ、この辺は、C# でプログラムをいろいろと書いてはいますが、気にならない点ではないかと考えております。

そんな感じで、これからテスト版や制作中スクリーンショットなどを公開していきますが、
よろしく見守っていていただけたらと思います。

 

ではでは。そんな感じで。