Я бы порекомендовал несколько проектов, например NServiceBus , в которых широко используется полиморфизм (не говоря уже о NServiceBus API, это один из лучших API, которыми я имел удовольствие с использованием). Также рассмотрите что-то вроде StructureMap , в котором используется API-интерфейс конфигурации на основе модели (на самом деле я использую Ninject в качестве предпочтительного IoC, и он также может иметь некоторый интересный код). Мне сложно указать, используют ли эти проекты определенные шаблоны проектирования и сколько они могут быть использованы, но я знаю, что они используют некоторые современные API и современные подходы к объектно-ориентированному дизайну.
Я бы сказал, однако, что лучше всего будет найти проект с открытым исходным кодом, который вам интересен или который вы регулярно используете, и взломать его и посмотреть, что заставляет его работать. Если вы знакомы с деталями использования кода (каким бы он ни был), вы, вероятно, получите больше понимания, глядя на код, потому что вы знаете, что он делает.
Я всегда рекомендую .NET Domain-Driven Design с C #: Problem-Design-Solution пример кода - проект SmartCA. Он чрезвычайно элегантен, и я возвращаюсь к нему всякий раз, когда сомневаюсь в своей архитектуре.
Вам также следует загрузить и проверить исходный код ASP .NET MVC . В нем есть хорошие примеры модульного тестирования и имитации (это то, что вы захотите использовать).
Я бы рекомендовал посмотреть Northwind Starter Kit (http://nsk.codeplex.com/) - он охватывает многие паттерны проектирования и их применение в .Net framework, включая концепции SOA и MVC/MVP/PM. Она также включает примеры нескольких других свободно распространяемых библиотек, таких как Microsoft Entity Framework и NHibernate.
Лично мне особенно нравится то, как они показывают, что один и тот же бэкенд можно использовать как в WPF, так и в ASP.Net.