前回までのあらすじ
DIを
使おう
「SOLID原則」などに代表されるオブジェクト指向設計のパターンや原則は、「まあ、大事だよねえ」と思いつつも、「そうは言っても今一つピンと来ないなあ」と思ったりすることもあったりします。
ですので、今日はDIコンテナの話を書くのですが、「なぜ有益か」という話はあまり深入りしないようにしようと思います。
ASP.NET Core MVC(a.k.a. MVC6)にて追加されたTagHelperについては、最初「なんじゃこりゃ?WebForms(ASPX)か?」などと訝しく思っていましたが、慣れてしまうと今度は従来HTMLHelperの方が変に見えてしまうに至りました。人間とは勝手なものです。
こんなの(TagHelper)↓
<div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li> <li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li> <li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li> </ul> </div>
対してHTMLHelper(従来)はこんな感じ↓
<div class="navbar-collapse collapse"> <ul class="nav navbar-nav"> <li>@Html.ActionLink("Home", "Index", "Home")</li> <li>@Html.ActionLink("About", "About", "Home")</li> <li>@Html.ActionLink("Contact", "Contact", "Home")</li> </ul> @Html.Partial("_LoginPartial") </div>
HTMLHelperでは、ActionLinkなどでコントローラーやアクションを指定する箇所は上記のように文字列で、そこではVisualStudioのインテリセンス(コード補完)は利きませんでした。
TagHelperの登場で何か変わるのかなと期待したのですが、やっぱりコントローラーやアクションの記述にはインテリセンスは利いてくれません。