Visual Studio + TypeScript + ASP.NET MVC5 + knockout でのソリューション構成のプラクティス
Visual Studio を活用し、ASP.NET MVC/C# + TypeScriptで 中規模~大規模なWebアプリケーションを構築する際のプラクティスを探っている。 以下のサイトのサンプルが非常に参考になった。
ソリューション構成は以下のようになっている。
ASP.NET MVC5のコントローラー、モデル、ビューのモジュールを分割している例に出会ったことがない今までない。 この例も分割はされていない。
Dataモジュールとして、Model層(Data Layer)(例えば、実際にDBにアクセスするなど)がモジュール分割されている。 これは割と良くあるパターンだと思う。
Webパッケージ内に、Sourceディレクトリを作り、その中でAppとLibを分けている。 Libは外部コード(bootstrap等) Appは自前で書くコードで分けられている。
この後が非常にわかりやすいのだが、Components毎、ビュー毎にTypeScriptとViewが作られており、KnockoutのBindingをうまくディレクトリ構成でもわかりやすく配置している。 これが現時点では、おそらくベストプラクティスだと思う。これ以上キレイな例にあったことがない。
個人的には、Visual Studio + TypeScript + ASP.NET MVC5 + knockout の組み合わせでソリューションを構築する際には、 まず上記を参考にして作ると良いと思う。 大規模になるとどうなるのだろう。個人的にはやはりASP.NET MVC5のMVC部分のパッケージ、特にView部分だけは分けたいと考えるのだが・・・。