.NET は一番メジャーなビジネス・アプリケーション・プラットフォームのリストにほぼ確実にのるフレームワークであるのにもかかわらず、財務関数については驚くほどないがしろにしている。たしかに僅かながらの財務用メソッドを持つVisualBasic.Financialがひっそり存在するが、ほとんどのディベロッパはそこを見ようとは思いつかない。企業がExcelへ向かいがちなのも不思議ではない。
Luca Bolognese氏(リンク)はC#・VB・F#の言語およびコンパイラ、そしてDLR(動的言語ランタイム)フレームワークでリード・プログラム・マネージャを勤める多くの肩書きを持つ人物だが、彼はExcelからF#に50の財務関数を移植するのにいくらか時間をかけたようだ。
それらの関数の大半はExcelのロジックに合わせてコーディングされた。不幸にしてExcelのメソッドは後方互換性を維持するようデザインされていて、必ずしも正しい答えが返るとは限らない。氏はこう述べている。
私が行うのはExcelの結果を(良くも悪くも)コピーすることです。ただしみなさんが正しいと考える方法が採れるようにするために、関数に ExcelCompliant(エクセル互換)フラグを付けて、それが立っていれば自前のコードを実行できるようにしたいと思っています。
このソースコード(リンク)はMSDN Code Galleryからダウンロードできる。ライセンスはMicrosoft Public Licenseとなっている。