主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

IronPython Tutorial: 入門から応用まで

                
 IronPythonを興味から使ってみたところ、Pythonに負けずかなり実用性を持っていると感じた。GUIアプリケーションもWebアプリも作れる(IronPythonでWebアプリはまだおすすめできないが)。お世辞を抜きにIronPythonが素晴らしいと感じたので、もっとポピュラーになって欲しいと思う。どうやら日本語ではIronPython Cookbookのようなものがなさそうなので、ここにIronPythonでなにができるかをまとめてみる。

 IronPythonはWindows環境でしか動かず、移植性というPythonの良さを失っているという古い記事を見た。状況は進んで、今はMonoさえインストールしているなら、Linux、Mac OS Xなどでも動作する。AndoroidやWindowsPhoneでも。
 果てはSilverLightをインストールしているなら、ブラウザ上でも動作する。
http://ironpython.net/try/
 GUIアプリに関してはWindows Formsを使えばWindowsはもちろんMonoをインストールしたLinuxやMacでも動く。WPFはMonoへの移植がされていないのでWindowsのみが実行可能環境である。

 IronPythonをPythonの方言の一つ程度だとあなどることなかれ。IronPythonはGUIアプリケーションをEXEファイルにしようとするのが楽だった。Pythonではスクリプトのコンパイラを用意して、GTKかQtあたりのGUIツールを用意して、というふうに色々寄せ集めなければならなかった。しかも必要なモジュールのドキュメントはほとんど英語だ(英語慣れしてれば大した問題ではないが)。IronPythonでなら、.NET FrameworkにGUIツールは入っているし、コンパイラもIronPythonインストール時についてきた。IronPythonにははじめからオールインワンという簡単さがあった。.NET Frameworkのライブラリに関するドキュメントはMSDNに載っているC#をPython文法に読み換えればいい。

 GUIアプリを作るならまずC#を学んでみろと言われる。C#でのGUIアプリ作成が楽なのは、.NET Frameworkのライブラリを使えるからだ。IronPythonでも.NET Frameworkのライブラリが使える。IronPythonでのGUIアプリ作成はC#と同等なぐらいに楽。

 IronPythonのインストールから始めるけど、型や制御文などのようなPythonと共通するような基礎事項は確認程度にしてすっとばす。そっちはDive Into Pythonなどで。基本的にはWindowsで使うものとしてまとめていく。記事内でのOSは断りがない限り、Windows 7(64bit)。IronPythonのバージョンはこの記事を書いた時点で2.7.3で、これはPython2.7.3と同等に使える。

・導入
Windowsへのインストール - まずWindows 7へインストールしてみる
Ubuntuへのインストール - 一応やってみた。apt-getコマンドが使えなかったのでソースからビルド
IDEを選ぶ - コンパイルが便利なIDEを入れる
命名規則を考える - スクリプトを書き始める前に。勢いでIronPythonを始める前に

・IronPythonを始める
型や制御文などの基本事項はPythonと変らないのでここでは触れない。以下を参考に。
Dive Into Python

・型や制御構文の次の基礎
スクリプトを配布する - コンパイルしていないスクリプトを実行するために必要なもの
スクリプトをコンパイルする - スクリプトファイルから実行形式ファイルを作る
Pythonモジュールを使うために - モジュールの依存を調べる
.NETのクラスを使ってみよう - .NETのクラスを使ってファイル収集。再帰を書く必要がない:-)
Pythonのサードパーティモジュールを使う - 「使えるものは使う!」【フル・フロンタル】
COMコンポーネントの使い方 - DLLを作って初期結合する場合
COMコンポーネントの使い方その2 - DLLを作らずに遅延結合する

・IronPythonにC#を連携させる
コンパイルされたC#のクラスを使う - なんら難しいことはない
アンマネージドコードの実行 - スクリーンキャプチャをやってみる。メモリ解放を忘れないこと
ビデオファイルからサムネイルを作る - Expression Encoder 4 SDKを使う

・C#にIronPythonを連携させる
using IpyClass; - コンパイルされたIronPythonのクラスをC#で使う。型はどうなるのか
using IpyClass; part2 - コンパイルされたIronPythonのクラスをC#で使ういまどきのやり方

・IronPythonで色々
バックアップスクリプト - .NETのクラスを使ったファイルバックアップのスクリプト
マイミュージックから音楽ファイル収集 - .NETのクラスとPythonのサードパーティモジュールを使う
画像の色をいじる - 画像の色味を変えたいときに。行列演算
XNA Frameworkでライブラリの音楽再生 - XNAを使えばライブラリにアクセスするのは簡単
画像のアルファブレンド - Drawingクラスを使って透明度を設定して画像を重ね合わせる
画像を合成してムービーにする - 動画生成を自動化する手段
MongoDBに接続する - C#ドライバをIronPythonで使う
PythonでExcelマクロ - VBAに代わる選択肢

・ネットワークプロトコル
※立てたサーバを外部からもアクセスできるようにするときはセキュリティに十分に十分な注意を払うこと。マイクロソフト以外では、IPAも参考になるドキュメントを発行している。
シンプルなHTTPサーバを立てる - まずは手軽なサーバを立ててみる
HTTPサーバを立てる - Webアプリケーションの第一歩

・WPF(Windows Presentation Foundation)
WPFに触れてみる - まずはHello Worldから
マルチスレッドでGUI更新 - GUI更新する間もアプリを止めない。デリゲートの宣言など
さらに動的に - 処理データが多い場合は、再帰を使うというケースワーク
Zuneのようなフレーム - 透明効果を使ったフレームはもう古い?
マルチディスプレイでMediaElementを使うと再生が止まる - その原因と対策
マルチウィンドウアプリを作るために - まずウィンドウを2つ表示してみる
マルチウィンドウその2 - マルチウィンドウをマルチスレッドで
ビデオからキャプチャ - ビデオをキャプチャしてBitmapをつくる
フォトビューワ - コントロールにアニメーション効果を付けてみる
スクリーンキャプチャアプリ - Expression Encoder 4 SDKを使ってスクリーンキャプチャ

・ゲームグラフィック
Direct3D11 - SlimDXを使ってDirect3Dプログラミング
Direct3D11で三角形を表示



参考:IronPython Cookbook

なんでIronPythonなの? JavaのJythonにならうなら、Nythonとかじゃない? と思った方は下記。
http://stackoverflow.com/questions/1194309/why-are-many-ports-of-languages-to-net-prefixed-with-iron
.NETでDLRをとおして使える各言語は、IronPythonをはじめとしてIronRuby、IronLisp、IronSchemeなどがある。頭文字だけ取って無理やり組み合わせるより、ずっとクールなネーミングをされていると思う。このIronはある文の接頭語のようだ。
"Implementation Running On .NET."

・WPF置き場
WPFで作ってみたGUIアプリ。紹介ページの見た目をシンプルにしたくてスクリプトは載せてないけど、作るときに苦労した部分や工夫した部分はスクリプト付きでこのブログに書いてあります
ビデオプレーヤー - マイビデオフォルダにある動画を再生
音楽ファイルプレーヤー - マイミュージックフォルダにある音楽を再生
ミュージックランキングプレーヤー - AmazonのMP3ランキングを再生
スクリーンキャプチャアプリ - デスクトップを録画して動画に
            

コメントの投稿

非公開コメント

プロフィール

h

Author:h

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon