Общие сведения о N-уровневых приложениях для работы с данными
N-уровневые приложения данных представляют собой приложения данных, разделенные на несколько уровней. Также называемые "распределенными приложениями" и "многоуровневыми приложениями", n-уровневые приложения разделяют обработку на дискретные уровни, распределенные между клиентом и сервером. При разработке приложений, обращающихся к данным, необходимо иметь четкое разделение между различными уровнями, которые составляют приложение.
Типичное n-уровневое приложение включает уровень представления, средний уровень и уровень данных. Самым простым способом разделения различных уровней является создание дискретных проектов для каждого уровня, который требуется включить в приложение. Например, уровень представления может быть приложением Windows Forms, тогда как логика доступа к данным может быть представлена библиотекой классов, расположенной на среднем уровне. Кроме того, уровень представления может взаимодействовать с логикой доступа к данным на среднем уровне через службу. Разделение компонентов приложения на разные уровни увеличивает эксплуатационную надежность и масштабируемость приложения. Это осуществляется за счет возможности применения новых технологий к какому-либо одному уровню без необходимости изменять все решение в целом. Кроме того, n-уровневые приложения обычно хранят важные сведения на среднем уровне, который изолирован от уровня представления.
Visual Studio содержит некоторые возможности, позволяющие разработчикам создавать многоуровневые приложения:
конструктор наборов данных предоставляет свойство Проект набора данных, позволяющее разделить набор данных (уровень объектов данных) и TableAdapter (уровень доступа к данным) на отдельные проекты.
Реляционный конструктор объектов предоставляет параметры для разделения классов DataContext и классов данных на отдельные пространства имен. Это делает возможным логическое разделение уровней доступа к данным и сущности данных.
LINQ to SQL предоставляет метод Attach, который позволяет объединять DataContext из различных уровней в приложении. Дополнительные сведения см. в разделе Многоуровневые и удаленные приложения с LINQ to SQL.
Диалоговое окно Настроить синхронизацию данных, помогающее настроить синхронизацию между удаленной базой данных и Локальным кэшем базы данных, содержит дополнительный параметр конфигурации. Этот параметр позволяет настроить сервер и клиент для разделения проектов. Дополнительные сведения см. в разделе Практическое руководство. Добавление кэша локальной базы данных в N-уровневое приложение.
Для просмотра сопутствующей видеодемонстрации см. раздел Видео. Практическое руководство. Создание многоуровневого приложения для работы с данными.
Уровень представления
Уровень представления является уровнем, на котором пользователи взаимодействуют с приложением. Часто этот уровень также содержит дополнительную логику приложения. Типичными компонентами уровня презентации являются следующие:
Компоненты, связывающие данные, такие как BindingSource и BindingNavigator.
Объектное представление данных, например, классы сущностей LINQ to SQL для использования на уровне представления.
Локальные базы данных, например, Локальный кэш базы данных, которые могут быть синхронизированы с сервером на уровне данных с помощью Microsoft Synchronization Services для ADO.NET в Периодически подключаемые приложения (кэширование локальной базы данных).
Следующий рисунок показывает возможности и технологии, доступные в Visual Studio, и подходящие места их размещения на уровне представления в многоуровневом приложении.
Уровень представления
Уровень представления обычно получает доступ к среднему уровню через служебную ссылку (например, через приложение Службы Windows Communication Foundation и службы данных WCF в Visual Studio). Уровень представления не имеет непосредственного доступа к уровню данных. Уровень представления взаимодействует с уровнем данных посредством компонента доступа к данным на среднем уровне.
Средний уровень
Средний уровень является слоем, который уровни представления и данных используют для связи друг с другом. Средний уровень обычно включает в себя следующие компоненты:
Бизнес-логику, например проверку данных и бизнес-правила.
Компоненты и логика доступа к данным, например:
адаптеры таблиц TableAdapter и Объекты DataAdapter и DataReader (ADO.NET).
Объектные представления данных, например, классы сущностей LINQ to SQL.
Общие службы приложений, такие как службы аутентификации, авторизации и персонализации.
Следующий рисунок показывает возможности и технологии, доступные в Visual Studio, а также подходящие места их размещения на среднем уровне в многоуровневом приложении.
Средний уровень
Средний уровень обычно подключается к уровню данных с использованием подключения данных. Это подключение данных обычно хранится в компоненте доступа к данным.
Уровень данных
Уровень данных в общем случае является сервером, который хранит данные приложения (например, сервер под управлением SQL Server).
Следующий рисунок показывает возможности и технологии, доступные в Visual Studio, и подходящие места их размещения на уровне данных в многоуровневом приложении.
Уровень данных
Клиент на уровне представления не может получить непосредственный доступ к уровню данных. Вместо этого для связи между уровнями представления и данных используется компонент доступа к данным на среднем уровне.
Справка по многоуровневой разработке
Следующие разделы содержат сведения о работе с многоуровневыми приложениями:
Практическое руководство. Разделение наборов данных и адаптеров таблиц на разные проекты
Пошаговое руководство. Создание многоуровневого приложения для работы с данными
Пошаговое руководство. Добавление проверки данных в многоуровневое приложение
Практическое руководство. Добавление кэша локальной базы данных в N-уровневое приложение
Многоуровневые и удаленные приложения с LINQ to SQL
См. также
Задачи
Пошаговое руководство. Создание многоуровневого приложения для работы с данными
Ссылки
Основные понятия
Новые возможности разработки приложений для работы с данными
Работа с наборами данных в Visual Studio