[hackday] Мастер-класс ie9 и dynamic data

15
HTML 5, IE9 ASP.NET Dynamic Data Гайдар Магдануров Microsoft e: [email protected] | t: @gaidar | m: +7 (905) 5045716

Upload: gaidar-magdanurov

Post on 05-Dec-2014

1.011 views

Category:

Technology


2 download

DESCRIPTION

Презентация с мастер-класса на Hackday, на котором было рассказано о новых возможностях Internet Explorer 9 и быстром создании форм для редактирования данных на ASP.NET Dynamic Data.

TRANSCRIPT

Page 1: [Hackday] Мастер-класс IE9 и Dynamic Data

HTML 5, IE9ASP.NET Dynamic Data

Гайдар МагдануровMicrosoft

e: [email protected] | t: @gaidar | m: +7 (905) 5045716

Page 2: [Hackday] Мастер-класс IE9 и Dynamic Data

Новые возможности

Page 3: [Hackday] Мастер-класс IE9 и Dynamic Data
Page 4: [Hackday] Мастер-класс IE9 и Dynamic Data

Новый движок JavaScript “Chakra”

Исходный код

Парсер ASTИнтерпре-

таторБайт-код

Интерактивный процесс

Фоновый процессКомпилят

орНативны

й код

Компиляция В фоне Многопоточность

Page 5: [Hackday] Мастер-класс IE9 и Dynamic Data

Поддержка стандартов

Рабочая группа HTML

Рабочая группа W3C

Основная группа

тестирования HTML 5

Page 6: [Hackday] Мастер-класс IE9 и Dynamic Data

Сравнение разметки

6

Page 7: [Hackday] Мастер-класс IE9 и Dynamic Data

HTML 5Часто называют так набор HTML 5 и CSS3

Новые медиа-возможности (canvas, видео, аудио, встроенный SVG…)

Поведение современных браузеров

1100 страниц черновика HTML 5

Page 8: [Hackday] Мастер-класс IE9 и Dynamic Data

ASP.NET Dynamic Data

Источник данных Модель данных Мета-данные

Page 9: [Hackday] Мастер-класс IE9 и Dynamic Data

Кастомизация Dynamic Data

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

Шаблоны полей (FieldTemplates)

Типы данных (UIHint)

Страницы

DynamicField/DynamicControl

Page 10: [Hackday] Мастер-класс IE9 и Dynamic Data

Маршрутизация

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});

Page 11: [Hackday] Мастер-класс IE9 и Dynamic Data

Контролы и страницы

<asp:CalendarID="Calendar1" runat="server“SelectedDate="<%# (FieldValue!=null)? FieldValue:DateTime.Now%>" VisibleDate="<%# (FieldValue!=null)? FieldValue:DateTime.Now%>"</asp:Calendar>

Page 12: [Hackday] Мастер-класс IE9 и Dynamic Data

Применение мета-данных

using System;using System.ComponentModel.DataAnnotations;

[MetadataType(typeof(EmployeeMetadata))]public partial class Employee{}

public class EmployeeMetadata{[UIHint("DateTimeCalendar")]public objectHireDate{ get; set; }}

Page 13: [Hackday] Мастер-класс IE9 и Dynamic Data

Валидация

public class CustomerMetadata{[Required()]public object Title;}

public partial class Customer {

partial void OnTitleChanging(string value) { if(!Char.IsUpper(value[0])) {throw new ValidationException(“!!!"); } } }

Page 14: [Hackday] Мастер-класс IE9 и Dynamic Data

Валидация

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(“!!!”); } }}

Page 15: [Hackday] Мастер-класс IE9 и Dynamic Data

РесурсыОфициальные сайты• http://ie.microsoft.com/testdrive/• http://www.beautyoftheweb.com/• 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/