Руководство по ASP.NET Dynamic Data. Часть 2
Это продолжение руководства по ASP.NET Dynamic Data.
Кастомизация веб-сайта (продолжение)
Мы остановились на кастомизации веб-сайта и рассмотрели атрибуты, которые можно использовать для настройки веб-сайта.
На изображениях ниже проиллюстрировано использование этих атрибутов.
Для настройки модели:
Для настройки отображения:
Рассмотрим еще один сценарий, когда, например, нам необходимо вместо некоторого (одного) поля отобразить кастомный элемент управления. Для этого создаем новые user control и называем, их, например, MyText.ascx и MyText_Edit.ascx и помещаем их в папку FieldTemplates. Пусть это будет такой же TextBox, только с красным фоном, это, по сути, не важно, так как функционал и отображение может быть как угодно простым или сложным.
После этого нам необходимо создать класс для расширения функционала нашей сущности:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
///
/// Summary description for Post
///
[MetadataType(typeof(PostMetadata))]
public partial class Post
{
}
public class PostMetadata
{
[ScaffoldColumn(true)]
[UIHint("MyText")]
public object PostTags { get; set; }
}
Как видно из примера выше, для изменения функционала (внешнего вида) конкретного поля необходимо переопределить метакласс для необходимой сущности и указать атрибут UIHint с указанием названия пользовательского элемента управления.
ASP.NET Dynamic Data и MVC
Наверняка, многие уже заметили большое сходство Dynamic Data и MVC. Правда в том, что Dymanic Data стал первым шагом к MVC и многие компоненты у них общие:
- роутинг - библиотеку System.Web.Routing используют оба типа проекта - как Dynamic Data, так и AS.NET MVC. Кроме того, атрибуты у обеих фреймворках совпадают;
- ASP.NET Dynamic Data MVC так и не вышел из Preview, так как в этом не было необходимости. Кому необходимо быстро создавать фронтэнд приложения - используют ASP.NEt Dynamic Data, если нужно писать с нуля - используют MVC, но взаимозаменяемыми они никогда не были;
- Dynamic Data подойдет для тех, кто не знает MVC фреймворк, но хочет перейти на него "плавно".
Вопросу работы с ASP.NET Dynamic Data MVC Preview посвящено несколько статей:
Создаём ASP.NET Dynamic Data MVC проект
Компилируем ASP.NET Dynamic Data MVC Preview для работы с MVC 2
ASP.NET Dynamic Data MVC Preview под лупой
Где взять примеры?
По ссылке http://aspnet.codeplex.com/releases/view/14473 можно скачать примеры для .NET 3.5 SP1, по ссылке http://aspnet.codeplex.com/releases/view/54273 - для .NET 4.0.
Заключение
Кто-то в твиттере после моего выступления написал, что по мнению докладчика (то бишь меня), Dynamic Data - это мертвая технология. Я, конечно, же такого не говорил, а наоборот, хотел подчеркнуть ее главное преимущество - простоту при работе с базами данных и простое создание data-driven приложений. Конечно, MVC - отличная технология, но "въехать" в нее людям, которые не сталкивались с MVC ранее, достаточно сложно. В этом я убедился, когда пообщался с некоторыми людьми на MSSWIT. Поэтому я не стал бы ее списывать со счета, а посоветовал бы обратить внимание на Dynamic Data как альтернативу MVC если у вас задача не выходит за рамки чего-то не очень сложного и у вас на реализацию нет много времени.
Ссылки и дополнительные материалы
- http://www.asp.net/dynamicdata
- http://aspnet.codeplex.com/releases/view/14473
- New ASP.NET Dynamic Data Support - http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx
- ASP.NET Dynamic Data Content Map - http://msdn.microsoft.com/en-us/library/cc488545.aspx
- ASP.NET Dynamic Data – что может быть проще? - http://www.developers.org.ua/archives/jony/2009/07/20/asp-net-dynamic-data/
- http://p2p.wrox.com/content/sites/default/files/users/21/file/c30.pdf
- ASP.NET Dynamic Data MVC Preview - http://aspnet.codeplex.com/releases/view/18803
- ASP.NET Dynamic Data for .NET 4 - ASP.NET Dynamic Data for .NET 4 - http://aspnet.codeplex.com/wikipage?title=Dynamic%20Data
- http://stackoverflow.com/questions/tagged/dynamic-data
- Форумы Dynamic Data - http://forums.asp.net/1145.aspx
- C# bits
- блог Maira Wenzel
- блог Josh Heyse
- Dynamic Data Filtering
- ASP.NET Dynamic Data Attributes
- Карта содержимого разделов, посвященных динамическим данным ASP.NET
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |