ASP.NET MVC5を採用したシステムを手がけています。言語は C# を使用しています。

前回手がけた有名どころのフレームワークSymfonyとの比較にも触れます。

コンパイル

PHPでは実行時にコンパイルが実行されるので大きなライブラリーを使用するのにためらいがあります。 ASP.NET(C#)ではコンパイル済みになっているのでパフォーマンスがよいと思われます。

メモリ

Symfony でバッチ処理した場合、メモリ食いが激しく、数万件の処理でもDoctrine管理外のプレーンオブジェクトを使う、 クエリで最低限必要なカラムのみ読み込むなどの工夫が必要でした。経験上C#で数万件の処理はオンメモリで問題なく扱えます。

テンプレートエンジン

Razerが標準で使えます。インテリセンスも効いて Typo を防げます。 但し、デザイナーとの分業を考えたとき、Razerは開発者向けなので継続的にデザイナーに編集を依頼するのは難しいと思います。 この点はSymfonyが採用しているtwigでも事情はあまり変わりません。

フレームワークの柔軟性

テンプレートエンジンはRazer、O/RマッピングはEntity Frameworkが標準で使えるようになっていますが、これを差し替えることができます。 テンプレートエンジンはデザイナーと協業できるテンプレートに差し替え、O/Rマッピングは普段使用しているフレームワークに差し替えました。 差し替え時、ASP.NETが持っているバリデーションの機能を使えるようにするため工夫が必要でした。差し替えのためにはフレームワーク内部の動作を理解する必要があります。

ASP.NET MVC5採用決定時に、ASP.NET Coreについても検討したのですが、利用予定のActiveReportsが対応していなかったので不採用となりました。

サイト内関連リンク