хорошо, самое главное, не изобретай велосипед!
Потратьте некоторое время на изучение библиотек, которые вы можете легко использовать:
- Для регистрации я настоятельно рекомендую Log4Net .
- Для тестирования nUnit
- Для насмешек, Носорог .
Кроме того, посмотрите на инверсию управляющих контейнеров, я рекомендую Castle Windsor .
- Для индексации я рекомендую Solr (поверх Lucene).
Далее напишите несколько оберток:
Это должна быть точка входа вашего API (общая библиотека, но воспринимайте это как API).
Сосредоточьтесь на абстрагировании всех библиотек, которые вы используете внутри своего API, поэтому, если вы больше не хотите использовать Log4Net или Castle Windsor, вы можете, написав хорошо структурированные абстракции и сконцентрировавшись на слабосвязанных шаблонах проектирования.
Принятие разработки, управляемой доменом:
Думайте об API-интерфейсах как о доменах и модульных абстракциях, которые внутренне используют другие общие API-интерфейсы, такие как ваша общая библиотека доступа к данным.
Предложения:
Я бы начал с универсальной универсальной библиотеки DAL, которая упрощает доступ к любому типу данных и нескольким носителям.
Я бы использовал Fluent nHibernate для реляционных баз данных, и все вызовы методов были бы реализованы в вашей реализации доступа к данным LINQ, так как это функция языка c #.
использование LINQ для запроса к БД, индексам, файлам, xml и т. Д.