Более подробно компоненты, обычно используемые в слое доступа к данным,
рассматриваются в главе 10, «Рекомендации по проектированию компонентов». Вопросам
проектирования компонентов доступа к данным посвящена глава 15, «Проектирование
компонентов слоя доступа к данным».
Общие принципы проектирования
Слой доступа к данным должен отвечать требованиям приложения, работать эффективно и
безопасно и обеспечивать простоту обслуживания и расширения в случае изменения бизнес-
требований. При проектировании слоя доступа к данным руководствуйтесь следующими
общими рекомендациями:
Правильно выберите технологию доступа к данным. Выбор технологии доступа к
данным зависит от типа данных, с которыми придется работать, и того, как
предполагается обрабатывать данные в приложении. Для каждого сценария
существуют наиболее подходящие технологии. Все технологии доступа к данным с
перечислением преимуществ и соображений относительно применения в том или
ином сценарии обсуждаются в конце данного руководства в приложении С,
«Матрица технологий доступа к данным».
Используйте абстракцию для реализации слабо связанного интерфейса слоя
доступа к данным. Этот подход можно реализовать путем определения
интерфейсных компонентов, таких как шлюз с общеизвестными входными и
выходными параметрами, который преобразует запросы в формат, понятный
компонентам слоя. Кроме того, с помощью интерфейсных типов или абстрактных
базовых классов можно определить совместно используемую абстракцию, которая
должна быть реализована интерфейсными компонентами. Абстракция слоя более
подробно рассматривается в главе 5, «Рекомендации по проектированию
многослойных приложений».
Инкапсулируйте функциональность доступа к хранилищу данных в слое доступа к
данным. Слой доступа к данным должен скрывать детали доступа к источнику
данных. Он должен обеспечивать управление подключениями, формирование
запросов и сопоставление сущностей приложения со структурами источника
данных. Потребители слоя доступа к данным взаимодействуют с ним через
абстрактные интерфейсы с использованием сущностей приложения, таких как
объекты предметной области, типизированные наборы данных (Typed DataSet) и
XML, и не должны знать внутренних деталей слоя доступа к данным. Такое
разделение функциональных областей упрощает разработку и обслуживание
приложения.
Примите решение о том, как будет выполняться сопоставление сущностей
приложения со структурами источника данных. Тип сущности, используемой в
приложении, является основным фактором при принятии решения о методе
сопоставления этих сущностей со структурами источника данных. Обычно для этого
используются шаблоны Domain Model или Table Module либо механизмы Объектно-
реляционного сопоставления (Object/Relational Mapping, O/RM), однако, бизнес-