'

Использование Dynamic Data на практике

Понравилась презентация – покажи это...





Слайд 0

Использование Dynamic Data на практике Гайдар Магдануров t: twitter.com/gaidar p: +7 (905) 5045716 e: gaidarma@Microsoft.com


Слайд 1

Сегодня в докладе… Поговорим… Что такое Dynamic Data? Посмотрим... Как оно выглядит? Подумаем... Подходит ли нам?


Слайд 2

Что такое Dynamic Data? Оснастка для работы с данными Гибкая кастомизация Валидация данных Доступно в .NET FW 3.5 SP1 / 4.0


Слайд 3

Архитектура Dynamic Data Источник данных Модель данных Мета-данные


Слайд 4

Три шага к Dynamic Data Определить модель данных Зарегистрировать модель Кастомизировать шаблоны


Слайд 5

Возможности кастомизации


Слайд 6

Посмотрим


Слайд 7

Маршрутизация routes.Add( new DynamicDataRoute("{table}/{action}.aspx") { Constraints= new RouteValueDictionary( new { action= "List|Details|Edit|Insert" }), Model= model }); routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx") { Action= PageAction.List,ViewName= "ListDetails", Model= model}); routes.Add(new DynamicDataRoute("{table}/ListDetails.aspx"){ Action= PageAction.Details, ViewName= "ListDetails",Model= model});


Слайд 8

Контролы и страницы <asp:CalendarID="Calendar1" runat="server“ SelectedDate="<%# (FieldValue!=null)? FieldValue:DateTime.Now%>" VisibleDate="<%# (FieldValue!=null)? FieldValue:DateTime.Now%>" </asp:Calendar>


Слайд 9

Применение мета-данных using System; using System.ComponentModel.DataAnnotations; [MetadataType(typeof(EmployeeMetadata))] public partial class Employee { } public class EmployeeMetadata { [UIHint("DateTimeCalendar")] public objectHireDate{ get; set; } }


Слайд 10

Валидация public class CustomerMetadata{ [Required()] public object Title; } public partial class Customer { partial void OnTitleChanging(string value) { if(!Char.IsUpper(value[0])) {throw new ValidationException(“!!!"); } } }


Слайд 11

Валидация public partial class Employee{ partial void OnValidate(System.Data.Linq.ChangeAction action){ if(action== System.Data.Linq.ChangeAction.Insert)) { if(this._BirthDate.Value.CompateTo(DateTime.Now)>0) throw new ValidationException(“!!!”); } } }


Слайд 12

Возможности Независимость от слоя данных LINQ2SQL, Entity Framework,ADO.NET Data Services Правила валидации Атрибуты полей на уровне модели Ограничение доступа На уровне web.confg / на уровне страницы


Слайд 13

Пример из жизни


Слайд 14

Пример из жизни


Слайд 15

Пример из жизни


Слайд 16

Пример из жизни


Слайд 17

Оно нам надо?


Слайд 18

Где узнать больше? Официальные сайты http://www.asp.net/dynamicdata http://www.codeplex.com/aspnet Блоги http://blogs.msdn.com/davidebb/ http://blogs.msdn.com/marcinon/ http://blogs.msdn.com/scothu/ http://weblogs.asp.net/scottgu http://www.hanselman.com/blog/ Пишите мне gaidarma@microsoft.com


×

HTML:





Ссылка: