Общие сведения о платформе динамических данных ASP.NET

Платформа динамических данных ASP.NET позволяет создавать расширяемые управляемые данными веб-приложения путем определения внешнего вида и поведения сущностей данных из схемы базы данных во время выполнения, а также наследования от нее поведения пользовательского интерфейса.

Платформа динамический данных поддерживает формирование шаблонов, предоставляющее способ автоматического создания веб-страниц для каждой таблицы в базе данных. Формирование шаблонов позволяет создавать функциональный веб-сайт для просмотра и правки данных на основе схемы данных. Можно легко настроить имеющиеся элементы формирования шаблонов или создать новые элементы для переопределения поведения по умолчанию.

Можно также включить динамическое поведение в существующих или новых веб-приложениях без использования формирования шаблонов. В таком случае указывается, как и когда платформа динамических данных должна получать элементы пользовательского интерфейса из источника данных без использования формирования шаблонов для всего веб-сайта.

В этом разделе содержатся следующие подразделы.

Платформа динамических данных получает сведения схемы данных или метаданные из модели данных, представляющие сущности базы данных как типы среды CLR. На следующем рисунке показана архитектура платформы динамических данных. Области, выделенные пунктирной линией, представляют технологии, которые определены в среде CLR, но используются платформой динамических данных.

Архитектура платформы динамических данных

Архитектура динамических данных

Как показано на рисунке, архитектуру платформы динамических данных составляют приведенные ниже уровни.

  • Уровень представления данных содержит элементы, которые используются для создания пользовательского интерфейса в целях отображения и правки сущностей данных.

  • Уровень данных содержит модель данных, представляющую сущности базы данных как типы среды CLR.

  • Уровень сопоставления источников данных содержит элементы, являющиеся частью среды CLR, но используемые платформой динамических данных. Эти элементы — это технологии, такие как LINQ to SQL и платформа ADO.NET Entity Framework, которые используются для создания моделей данных.

В этом разделе даются общие сведения об элементах платформы динамических данных, используемых для создания пользовательского интерфейса, в котором отображаются и правятся сущности данных. Дополнительные сведения см. в разделе Формирование шаблонов динамических данных ASP.NET.

Шаблоны страниц

Шаблоны страниц – это веб-страницы, отображающие данные из любой таблицы базы данных. Платформа динамических данных предусматривает шаблоны страниц для различных представлений данных, таких как вывод таблицы в виде списка (представление списка), вывод таблиц, находящихся в отношении "основной-подчиненный" (представление Details), редактирование данных (представление редактирования). По умолчанию платформа динамических данных использует только шаблон страниц с представлением списка. При создании проекта на платформе динамических данных Visual Studio добавляет в проект папку DynamicData\PageTemplates. В этой папке содержатся шаблоны страниц по умолчанию. Разработчик может изменить шаблоны по умолчанию или создать новые шаблоны для задания способа отображения таблиц.

Шаблоны сущностей

Шаблоны сущностей позволяют настроить пользовательский интерфейс для всей сущности данных, такой как строка или таблица. Это обеспечивает большую гибкость по сравнению с настройкой отдельных полей данных и может быть полезным при создании собственного пользовательского интерфейса и его применении к стандартным или пользовательским шаблонам страниц.

При создании веб-проекта на платформе динамических данных Visual Studio добавляет в проект папку DynamicData\EntityTemplates. Эта папка содержит шаблоны сущностей по умолчанию. Это шаблоны для операций отображения, редактирования и вставки. Шаблоны сущностей по умолчанию отображают данные в двух столбцах с использованием метки для имени поля и соответствующего элемента управления для значения поля. Разработчик может изменять шаблоны сущностей по умолчанию, чтобы изменить внешний вид и поведение строк данных для всего сайта.

Шаблоны сущностей включаются в шаблоны страниц Details.aspx, Insert.aspx и Update.aspx, а также в шаблоны любых пользовательских страниц. В свою очередь шаблоны сущностей используют шаблоны полей для отображения фактических данных.

Дополнительные сведения об использовании шаблонов сущностей см. в соответствующих разделах, список которых приведен в разделе Сценарии платформы динамических данных.

Шаблоны полей

Шаблоны полей представляют собой пользовательские элементы управления, которые отображают пользовательский интерфейс для отдельных полей данных. По умолчанию платформа динамических данных выбирает шаблон поля на основе типа данных отображаемого поля. Например, для отображения логических данных платформа динамических данных использует шаблон логических полей, для отображения текстовых данных – шаблон текстовых полей и т.д. Обычно имеется один шаблон поля для отображения данных, и другой шаблон поля, в котором пользователи могут вводить или редактировать значения полей.

При создании проекта на платформе динамических данных Visual Studio добавляет в проект папку DynamicData\FieldTemplates. Эта папка содержит шаблоны полей по умолчанию. Разработчик может изменить шаблоны полей по умолчанию или создать новые шаблоны для задания способа отображения отдельных полей данных.

Шаблоны фильтров

Шаблоны фильтров являются пользовательскими элементами управления, которые отображают пользовательский интерфейс для фильтрации данных, что дает пользователю возможность выбирать строки таблицы для отображения на основе значения столбца. Например, можно отображать все строки, содержащие определенную категорию. По умолчанию платформа динамических данных предоставляет логические шаблоны, шаблоны внешнего ключа и шаблоны фильтрации перечисления.

Платформа динамических данных позволяет использовать разметку страницы для создания пользовательского интерфейса, предназначенного для фильтрации данных в столбце. При создании проекта на платформе динамических данных Visual Studio добавляет в проект папку DynamicData\FilterTemplates. Эта папка содержит шаблоны фильтров по умолчанию.

Если шаблон фильтра для этого типа столбца не существует, то можно создать пользовательский тип и указать, что платформа динамических данных должна его использовать при создании пользовательского интерфейса. Также можно создать разметку страницы, чтобы платформа динамических данных автоматически создавала пользовательский интерфейс для любого типа столбца, для которого существует шаблон фильтра по умолчанию.

Платформа динамических данных ASP.NET поддерживает модели данных LINQ to SQL и ADO.NET Entity Framework. Платформа динамических данных использует эти типы для отправки запросов в базу данных, а также для создания, чтения, обновления и удаления данных (т.е. для выполнения операций CRUD). Модели данных обеспечивают простой способ интеграции пользовательской проверки данных и правил бизнес-логики.

Во время выполнения платформа динамических данных автоматически извлекает из модели данных метаданные, такие как свойства данных. По этим сведениям она определяет, как создавать пользовательский интерфейс для отображения и редактирования данных.

При создании нового проекта в Visual Studio 2010 можно выбрать тип модели, используемой проектом. Формирование шаблонов платформы динамических данных может поддерживать только один тип модели данных в одном проекте.

Платформа динамических данных поддерживает приведенные ниже параметры конструирования.

  • Создание веб-сайта с помощью формирования шаблонов. Можно создать простое веб-приложение, использующее платформу динамических данных ASP.NET, при минимальном количестве кода или его отсутствии. Если включено формирование шаблонов, то ASP.NET анализирует модель данных и динамически создает веб-страницы на основе сведений метаданных. Такие автоматически созданные веб-страницы предоставляют возможности CRUD для каждой таблицы. Дополнительные сведения см. в разделе Пошаговое руководство. Создание нового веб-узла, использующего формирование шаблонов.

  • Включение динамического поведения для отдельных элементов управления с привязкой данных (например, элементы управления GridView и ListView) на существующем веб-сайте ASP.NET. Это позволяет использовать такие функции платформы динамических данных, как проверка полей данных во время выполнения, предварительное определение страниц для выполнения операций CRUD, а также настройка полей данных. Дополнительные сведения см. в разделе Пошаговое руководство. Включение динамических данных в элементах управления ASP.NET с привязкой к данным.

  • Добавление функций платформы динамических данных к существующему (или новому) веб-сайту ASP.NET. При наличии существующего веб-сайта можно добавить к нему функции платформы динамических данных и элементы формирования шаблонов. В таком случае выполняется не включение платформы динамических данных для конкретных элементов управления с привязкой данных, а импорт элементов формирования шаблонов. Такой подход предоставляет большую степень управления настройкой, чем включение динамического поведения для отдельных элементов управления. Дополнительные сведения см. в разделе Пошаговое руководство. Создание веб-сайта, использующего платформу динамических данных.

Дополнительные сведения о сценариях платформы динамических данных см. в разделе Карта содержимого разделов, посвященных динамическим данным ASP.NET.

Настройка платформы динамических данных

Важнейшей функцией платформы динамических данных является настройка. Параметры настройки можно сгруппировать по категориям, приведенным ниже.

  • Настройка общего поведения (на уровне представления данных). Можно изменить способ выполнения задач платформой динамических данных, если эти данные не связаны с конкретной схемой базы данных. Такие изменения делаются на уровне представления данных путем изменения шаблонов по умолчанию или создания пользовательских шаблонов для отображения и взаимодействия с базой данных. Затем эти изменения можно использовать в любом проекте на платформе динамических данных. Дополнительные сведения см. в разделе Настройка уровня представления динамических данных ASP.NET.

  • Настройка поведения в соответствии со схемой. Поведение платформы динамических данных для отдельных таблиц или полей данных можно также настроить на основе модели данных или схемы базы данных. В таком случае настройка будет относиться к конкретному экземпляру модели данных. Например, можно настроить пользовательский интерфейс для отдельного поля данных, или создать пользовательский шаблон страницы, или использовать шаблоны сущностей для отображения отдельной таблицы. Внешний вид и поведение отдельных полей данных можно изменить с помощью атрибутов System.ComponentModel.DataAnnotations. Кроме того, можно настроить поведение приложения, что позволяет создавать пользовательскую проверку и привязывать таблицы или поля из модели данных к конкретным шаблонам. Дополнительные сведения см. в разделе Настройка уровня динамических данных ASP.NET.

В следующей таблице приведены сценарии платформы динамических данных и разделы, в которых описываются способы их выполнения.

Сценарий

Раздел

Описание и примеры

Включение динамического поведения в элементах управления с привязкой данных существующего веб-сайта

Пошаговое руководство. Включение динамических данных в элементах управления ASP.NET с привязкой к данным

Этот подход оптимален при наличии существующего веб-сайта и необходимости добавления проверки платформы динамических данных и шаблонов при минимальном количестве кода или вообще без него.

Проект Visual Studio с исходным кодом этого примера доступен на следующей странице: Enabling Dynamic Data.

Настройка внешнего вида и поведения отдельной таблицы

Практическое руководство. Настройка внешнего вида и поведения полей данных в элементе управления с привязкой к данным

Такой подход позволяет настраивать отдельную таблицу путем создания пользовательской страницы определенной таблицы. Это настройка, относящаяся к схеме.

Настройка внешнего вида и поведения отдельного поля данных

Пошаговое руководство. Настройка внешнего вида и поведения полей данных в модели данных

Такой подход позволяет настраивать способ отображения конкретного поля в модели данных. Это настройка, относящаяся к схеме, в которой создается пользовательский шаблон поля.

Посмотрите видеоролик, в котором демонстрируется эта функция: Watch Customize Data Field Appearance and Behavior.

Настройка внешнего вида и поведения для типа поля данных.

Практическое руководство. Настройка шаблонов полей по умолчанию платформы динамических данных ASP.NET

Такой подход позволяет настраивать пользовательский интерфейс типа поля данных во всем приложении. Это настройка общего поведения на уровне представления данных, когда настраиваются шаблоны полей по умолчанию.

Посмотрите видеоролик, в котором демонстрируется эта функция: Watch Customize Default Field Templates.

Настройка внешнего вида и поведения типов полей данных, не являющихся примитивами

Практическое руководство. Настройка внешнего вида и поведения полей данных для невстроенных типов данных в модели данных

Такой подход позволяет настроить пользовательский интерфейс для отдельных полей данных. Это настройка, относящаяся к схеме, когда поле сопоставляется с шаблоном поля, более специфичным, чем шаблон по умолчанию для этого типа данных. Например, можно пометить текстовое поле, содержащее адреса электронной почты, как поле типа электронной почты.

Настройка внешнего вида и поведения отдельной таблицы с помощью пользовательского шаблона страниц

Практическое руководство. Настройка макета отдельной таблицы путем использования пользовательского шаблона страниц

Такой подход позволяет настраивать отдельную таблицу путем изменения шаблона по умолчанию (например, List.aspx) для конкретной таблицы данных. Это настройка, относящаяся к схеме.

Настройка внешнего вида и поведения отдельной таблицы с помощью пользовательских шаблонов сущностей

Пошаговое руководство. Настройка макета таблицы с помощью шаблонов сущностей

Такой подход позволяет настраивать отдельную таблицу. Это настройка общего поведения, когда создаются пользовательские шаблоны сущностей. Этот способ является альтернативным способу создания пользовательского шаблона страницы и предоставляет большую степень управления табличным макетом.

Проект Visual Studio с исходным кодом этого примера доступен на следующей странице: Dynamic Data Templates.

Настройка проверки полей данных с использованием атрибутов, путем настройки метода, обрабатывающего изменения полей, или путем настройки обработчика событий проверки

Практическое руководство. Настройка проверки полей данных в модели данных

Такой подход позволяет настроить проверку для отдельных полей данных. Это настройка, относящаяся к схеме, которую можно получить, например, путем переопределения обработчика событий OnValidate.

Запустите пример этой функции в Интернете: запуск.

Настройка проверки полей данных с помощью настраиваемого атрибута проверки

Практическое руководство. Настройка проверки полей данных в модели данных с использованием настраиваемых атрибутов

Такой подход позволяет настроить проверку для отдельных полей данных. Это настройка, относящаяся к схеме, когда настраиваемый атрибут проверки применяется к полу данных в модели данных. Такой подход используется, когда доступные атрибуты проверки данных не удовлетворяют требованиям.

См. пример этой функции в выполняемом коде: запуск.

Фильтрация строк таблицы для отображения в дочерней таблице с помощью значения внешнего ключа родительской таблицы

Пошаговое руководство. Фильтрация строк в таблицах, содержащих отношения "родитель-потомок"

Такой подход позволяет отфильтровывать строки таблицы для отображения в зависимости от значения внешнего ключа родительской таблицы.

Проект Visual Studio с исходным кодом этого примера доступен на следующей странице: Scaffolding Dynamic Data. .

Ниже приведены некоторые дополнительные рекомендации.

  • Маршрутизация URL-адресов. Дополнительные сведения см. в разделе Маршрутизация ASP.NET.

  • Объектно-реляционное сопоставление LINQ to SQL. Дополнительные сведения см. в разделе LINQ to SQL.

  • Платформа ADO.NET Entity Framework. Дополнительные сведения см. в разделе ADO.NET Entity Framework, платформа.

К началу

Показ: