Training for X-Day

ブログの内容は個人の見解であり、所属する企業を代表するものではありません。

Visual Studio + TypeScript + ASP.NET MVC5 + knockout でのソリューション構成のプラクティス

Visual Studio を活用し、ASP.NET MVC/C# + TypeScriptで
中規模~大規模なWebアプリケーションを構築する際のプラクティスを探っている。

以下のサイトのサンプルが非常に参考になった。

blog.indivirtual.nl


ソリューション構成は以下のようになっている。

f:id:kshimizu1226:20170910071913p:plain


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部分だけは分けたいと考えるのだが・・・。