По моему — самые фундаментальные — IoC и DI. Их реализует любой фреймворк. Любое веб приложение строится на каком-то фреймворке и самое главное не отходить от того жизненного цикла, что он предлагает и использовать его механизмы.
И собственно знакомиться с паттернами тоже лучше используя фреймворки…