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

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

おもにBoo: ウィンドウズアプリケーションを作るまで

                
http://elicon.blog57.fc2.com/blog-entry-298.html

130826.png


ウィンドウズアプリケーションをおもにBooで作った。技術的なことをざくっとまとめておく。


そもそもBooとは:
 Booとは.NET Framework、もしくはMono上で動作する静的型付けの言語。ゲーム制作で近年Unityが話題になったが、Unityでの開発言語としてC#、JavaScriptに並んでBooが用意されている。基本的に実行速度はC#に遜色ない。
 Pythonと同じくブロックがブレース"{}"でなくインデントで表現されており、コードの視認性が良い。


BooからC#のクラスを使う:
 .NET FrameworkではC#を始め、VB.NET、IronPythonやIronRubyなどのIron系言語など様々な言語が使える。これらのコードは共通中間言語というものにコンパイルされる。共通のものになるということで、相互運用が容易にできるように作られている。C#のクラスを書いてDLLにコンパイルしたら、BooからはDLLを参照に追加して名前空間をインポートすればそれでC#で作成したクラスが使える。


BooからIronPythonのクラスを使う:
 .NET Framework上では異なる言語の相互運用が楽ではあるが、静的型付け言語から動的型付け言語を使う場合はほんのすこしだけ特殊なことをしなければならない。
Boo: コンパイルされたIronPythonモジュールを使う


辞書型オブジェクトのデータ保持のためにYAMLを使う:
 辞書型やリスト型のデータを保存するにはXMLという手段もあるが、YAMLという手段もある。世にあるWebAPIではXML形式が採用されている場合が多い。しかし一般的に言えばヒトからしたらYAMLのほうが見やすいし、編集も容易だろう。YAMLのロードのためにC#ですでに作成されているライブラリを見つけつつ、YAMLの仕様を確認した。
http://www.aaubry.net/page/YamlDotNet-Documentation-Serializing-an-object-graph
http://magazine.rubyist.net/?0009-YAML
http://www.ibm.com/developerworks/jp/xml/library/x-matters23/


COMオブジェクトに用意されているものでオーディオファイルを集める:
WMAやMP3、M4Aのタグ情報の読み込み関数も用意しているクラスがある。
http://elicon.blog57.fc2.com/blog-entry-297.html


非同期UI処理:
UI更新をしているあいだはアプリケーションが入力を受け付けないというのは、のろまに思えて少しばかりいらついてくる。UI更新をしつつ入力受付をさせるため、マルチスレッド処理をしつつ、DispatcherでUIをいじる。
def RenewUI():
pass

uiElement.Dispatcher.Invoke(Action(RenewUI))

http://msdn.microsoft.com/ja-jp/magazine/cc163328.aspx


ウィンドウズインストーラの作成:
http://elicon.blog57.fc2.com/blog-category-8.html

            

コメントの投稿

非公開コメント

プロフィール

Matoba

Author:Matoba

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

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。