Улучшения в ASP.NET Dynamic Data 4.0

среда, 1 декабря 2010, Александр Краковецкий

В процессе подготовки в Microsoft SWIT я задался вопросом: какие улучшения в ASP.NET Dynamic Data появились с выходом ASP.NET 4.0&? В статье кратко собраны основные улучшения.

Элемент управления DynamicDataManager

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



  





Этот код добавляет возможности Dynamic Data для элемента управления GridView1, который был объявлен в секции DataControls.

Новые шаблоны полей для типов данных URLs и E-mail адресов

В ASP.NET 4 было добавлено поддержку двух новых EmailAddress.ascx и Url.ascx. Эти шаблоны будут использованы для полей, помеченных как EmailAddress или Url с помощью атрибута DataType. Для поля типа EmailAddress значения будут отображаться как ссылки с приставкой mailto. Значения типа Url отображаются в виде ссылок на ссответствующие веб-ресурсы.

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

[DataType(DataType.EmailAddress)]
public object HomeEmail { get; set; }

[DataType(DataType.Url)]
public object Website { get; set; }

Создание ссылок с помощью элемента управления DynamicHyperLink

Dynamic Data использует новые возможности роутинга, которые были добавлены в .NET Framework 3.5 SP1 для управления адресов, которые будут отображаться пользователям.

Новый элемент управления DynamicHyperLink позволяет легко создавать ссылки на страницы. Следующий пример показывает как работать с новым элементом управления:

Action="List" TableName="Products">Show all products

В этом примере создается ссылка, которая ссылается на страницу List таблицы Products на основании роутов, определенных в файле Global.asax.

Поддержка наследования в моделях данных

Entity Framework и LINQ to SQL поддерживают наследование моделей. Как пример можно привести базу данных, которая содержит таблицу InsurancePolicy. Также она может содержать таблицы CarPolicy и HousePolicy, которые содержат часть полей из таблицы InsurancePolicy, добавляя специфические поля. Dynamic Data был изменен для того, чтобы поддерживать такого рода наследование и поддерживать скафолдинг для унаследованных таблиц.

Поддержка отношения "многие-к-многим" (только для Entity Framework)

Были добавлены шаблоны полей ManyToMany.ascx и ManyToMany_Edit.ascx для поддержки отношений "многие-к-многим".

Новые атрибуты для настройки отображения и поддержка перечислений (Enumerations)

Был добавлен атрибут DisplayAttribute для более удобного контроля над отображением полей. В прошлых версиях с помощью атрибута DisplayName можно было управлять названием поля. Новый атрибут DisplayAttribute позволяет указать порядок отображения поля, а также будет ли использоваться это поле для фильтрации данных. Также он позволяет настраивать подписи для элементов управления GridView и DetailsView, а также watermark текст для текстовых полей.
Атрибут EnumDataTypeAttribute позволяет ассоциировать поле с перечислением, для этого необходимо указать его тип. Для отображения используется новый шаблон поля Enumeration.ascx. Шаблон ассоциирует значения в базе и имена в перечислении.

Улучшеная поддержка фильтров

Dynamic Data 1.0 поставлялся вместе с предустановленными фильтрами для логических и foreign-key колонок. Кроме того, не было возможности задавать порядок отображения фильтров. Атрибут DisplayAttribute решает эту проблему в новой версии.

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

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии