Rails風Win32アプリ

なんかまだ考えがまとまらないけどとりあえず書き始める。

RailsActionControllerでやっているルーティングという考え方が面白い。URLの付け方に規約があって(独自に指定できて)、コントローラ、アクション、処理対象(ID)を指定できる一貫性のある仕組みを提供している。RailsはWebアプリだけど、これと似たようなことをローカルで実行するWin32アプリのフレームワークはできないだろうか。

たとえば、/invoice/printフォルダにcustomer.xlsを落とすとレコード数だけ請求書が印刷されるとか。普通のWin32アプリで考えるとcustomer.xlsはそのままファイルで使うかDBに入れて、アプリがこれを読んで請求書の印刷データを作ってプリンタに流す。ユーザは明示的にcustomer.xlsとアプリを指定する。ここで考えているのは、アプリを指定せずにフォルダを指定するようにしたらどうかということ。何が嬉しいかというと、ファイルサーバにアプリを走らせておけば、端末側にアプリを配布しなくていいのと、認証をWindowsファイル共有に任せられること。ああそうか、これが嬉しい状況って、一般ユーザはAdmin権限がなくてアプリケーションをインストールできなくて、さらにWebサーバひとつ気軽に立てられないカワイソウな環境だけか。

ここまで書いて、昔々uucpにincomingディレクトリとoutgoingディレクトリがあってね、というのを思い出した。だめじゃん。

でも全く駄目かというとまだなんかひっかかる。たとえば、エクスプローラでファイルを右クリックすると、ファイルタイプ(拡張子)に登録されたアクションがメニューに出る。このアクションを次々連鎖できる仕組み(DSLを作るのかな)があったら、何か便利な(面白い)ものにならないか。Pathname.new('customer.xls/invoice/print')とか。Pathname.new('customer.xls').invoice.printかな。

うむ。もうちょっと考える気になってきた。