Я столкнулся с необходимостью написания фреймворка для упрощения работы с большой и сложной библиотекой объектов (АркОбъекты). Какие принципы вы могли бы предложить для создания структуры такого рода? Предпочтительны ли статические методы? Как вы справляетесь с такими вещами, как ведение журнала? Как вы в будущем защитите свой код фреймворка от изменений, которые может внести поставщик?
Я думаю обо всех различных оболочках и помощниках, которые я видел для NHibernate, log4net и коде, который я читал в таких проектах, как NLog и NetTopologySuite, и я вижу так много хороших подходов, но, честно говоря, не знаю, с чего начать.
Кстати, я работаю на С# 3.5, но это больше о рекомендуемом подходе, чем о языке.