ASP.NET Coreでは「DI(Dependency Injection)」を基本として使用するアーキテクチャが採用されています。 DI自体は古くからある考え方であり、Javaなどでは昔から、そして今でもメジャーに使われている技術です。 勿論 .NET 開発者の間でも利用されています。古くはSeaserコンテナから始まり、MEF(Managed Extensibility Framework)、Unity、Ninject、AutoFac・・・等いくつものDIコンテナが存在しています。 DIは基本的に「特定の具象クラスに依存した実装を行わない」ことを実現します。つまり、あるオブジェクトAがあるオブジェクトBを使用する(依存する)場合、Aの中で直接 new B() のようなことはしないのです。 以下が非DIな実装です。ShoppingCartControllerクラスは、ShoppingC
![ASP.NET CoreにおけるDI(Dependency Injection) - ryuichi111stdの技術日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/eaad94d368390b576c17fc77493c72c1a222b33f/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fd%2Fdaigo-knowlbo%2F20160717%2F20160717020824.png)