「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>なんとか原則]]
*目次 [#r3926812]
#contents
*概要 [#z5831059]
上位スタックは、抽象化により、下位スタックを差し替え可能になる。
-共有された抽象化を通じて、高次と低次の抽象化レイヤー間の結合度を下げる。
-[[DI>#g8343c51]]によって実現される。[[IoC>#id6d4356]]とは関係があるが、=ではない。
**原則 [#c6ba0c68]
-上位モジュールは下位モジュールに依存してはならない。
-上位モジュールも下位モジュールも、抽象に依存するべき。
-抽象は実装の詳細に依存してはならない。実装の詳細が抽象に依存するべき。
**問題 [#x995f0ac]
-フレームワーク差し替えを実現するための「共有された抽象化」の設計が困難。
-また、「共有された抽象化」の設計を行うのは、ユーザ側でもプロダクト側でも無い。~
(第三者機関が「オープン標準」的な規格として、制定する必要がある。)
**最小構成 [#ecda4880]
-上位モジュール([[DI>#g8343c51]])
-下位モジュールのインターフェイス(共有された抽象化)
-下位モジュール
**[[クリーン・アーキテクチャ]] [#y5546add]
-上記の[[最小構成>#ecda4880]]を多層に適用している。
*参考 [#r2179715]
-20160526 依存関係逆転の原則~
https://www.slideshare.net/ShintaroKurosawa/20160526-62511723
**マイクロソフト系技術情報 Wiki [#w42dcdfc]
***[[DI>https://techinfoofmicrosofttech.osscons.jp/index.php?DI]] [#g8343c51]
***[[IoC>https://techinfoofmicrosofttech.osscons.jp/index.php?IoC]] [#id6d4356]