長年の間、某部署とのアプリの共同開発のパターンとして、「エンジン」を某部署が作成して、ユーザインターフェイス側(いわゆる画面)を私の部署が作成している。
過去にいろいろとゴタゴタしたが、「エンジン」はDLLで用意してもらい、それを呼び出すことを“ルール”としている。
時代が変わり、社内的にも「Webで」という要求があるらしく、私が知らないところで「今回のアプリはWebでよろしく。いつも通りDLLを用意するから」と決められていた。
「おーい、ちょっと待った!」
と私が突っ込みを入れるのは当然のこと。
某部署が用意するDLLは何かの拍子でクラッシュすることが度々あり、ローカルで動かしている場合は最小限の被害で収まるだろうが、それをWebサーバでやろうなんてとんでもない。
で、某部署の「エンジン」がクラッシュしてもWebサーバに被害が及ばないようにするにはどうしたらいいのか。
もともと某部署のメンバーは「VC++」で開発しているので、だったら「C#」ってどうなのかな。フレームワーク上で動く「C#」ならクラッシュしても被害は大きくならないのでは?
ということで同僚に「C#」で簡単なモジュールを作ってもらいそれを動かしてみた。
HTML→(AJAX)→ASP→C#
のようにパラメーターを渡していき、C#のモジュールで計算させた結果を「標準出力」させてASP側で拾い、それをHTMLページに戻して表示。
使用頻度が非常に少ないWebアプリになりそうなため、こんな強引なやり方でもなんとかなるかも。