Microsoft TechDays Роман Здебский Эксперт по технологиям разработки ПО Microsoft rzdebski@microsoft.com

Презентация:



Advertisements
Похожие презентации
Microsoft TechDays Занятие 6 Создание приложений доступа к данным с помощью WPF Роман Здебский
Advertisements

Microsoft TechDays Людмила Шайкина Quarta Consulting
Microsoft TechDays Николай Миляев консультант Microsoft.
Microsoft TechDays Павел Маслов MVP, Directory Services.
Microsoft TechDays Леонид Шапиро MCT ЦКО «Специалист»
Microsoft TechDayshttp:// Коршиков Андрей Фёдорович ведущий инженер-программист ЗАО «НИПИ «ИнжГео» MCT, MCITP, MCPD.
Microsoft TechDays Заграничнов Александр Microsoft.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Никоноров Евгений разработчик EPAM Systems.
Новые продукты Microsoft для повышения качества и эффективности образования Амит Миталь Старший вице-президент Microsoft по развитию социальных проектов.
Microsoft TechDays Марат Бакиров Эксперт по разработке ПО Microsoft
Microsoft TechDays Константин Трещев MCITP: Enterprise Administrator
Microsoft TechDays Золотовицкий Аркадий Директор по производству «Интеллектуальные системы»
Microsoft TechDays Виталий Дильмухаметов
Ромуальд Здебский Microsoft.
Microsoft TechDays Богомолов Алексей MCP
Microsoft TechDays Ксения Хмелёва Специалист по технологиям Microsoft.
Microsoft TechDays Евгений Марченков Эксперт по технологиям разработки ПО Microsoft.
Microsoft TechDays Черкас Дмитрий Специалист по технологиям Microsoft.
Microsoft TechDays Павел Дугаев Руководитель проектов Вебзавод
Транксрипт:

Microsoft TechDayshttp:// Роман Здебский Эксперт по технологиям разработки ПО Microsoft

Microsoft TechDayshttp://

Доступ к бизнес данным Визуализация Проверка Разворачивание

Microsoft TechDayshttp://

DependencyObject DependencyProperty Resources Data binding Styles Animations Metadata overrides Property value inheritance WPF Designer integration Можно связывать практически все со всем. Свойства элементов управления, ресурсы… и т.п.

public string Text { get { return (string)GetValue(TextProperty); } set { SetValue(TextProperty, value); } } // Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc... public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(WPFEditBox), new FrameworkPropertyMetadata("Reflections...", new PropertyChangedCallback(OnTextChanged))); propdp - snippet

Microsoft TechDayshttp://

Удобная возможность связывать объект/коллекцию с иерархической группой элементов управления (в соответствии с визуальным деревом)

Microsoft TechDayshttp://

Напрямую из кода (теряем поддержку Blend) Напрямую в XAML подключив namespace Вызывается конструктор по умолчанию xmlns:obj="clr-namespace:WPFApplication1 … grd.DataContext = myCollection;

Microsoft TechDayshttp:// Через ObjectDataProvider / XMLDataProvider Передача параметров в конструктор Привязка к методу (с параметрами) Возможность замены объекта-источника в период выполнения Создание объекта-источника асинхронно Через расширенный провайдер Rockford Lhotkas CSLA.NET framework или собственный Отложенная загрузка Работа с специализированными вебсервисами …

Microsoft TechDayshttp:// Для обновления связанных элементов INotifyPropertyChanged Interface Для обновления удаляемых и добавляемых элементов ObservableCollection (INotifyCollectionChanged) BindingList (IBindingList) Детальный контроль в DataGrid IEditableObject

Microsoft TechDayshttp:// Если ваш объект помечен как Serializable, то Formatter будет пытаться сериализовать все объекты подписанные на event – например Window = exception Josh Smith BindableObject – уменьшение фрагментации managed heap за счет кеширования PropertyChangedEventArgsBindableObject [field: NonSerializedAttribute()] public event ChangedEventHandler Changed;

Microsoft TechDayshttp:// Свойство Binding – UpdateSourceTrigger По умолчанию – PropertyChanged (для Text- LostFocus) Явный контроль – Explicit, необходимо вручную вызывать – UpdateSource() DataGrid отменяет редактирование при Escape Подтверждает при переходе

Microsoft TechDayshttp:// Поддержка обновлений

Microsoft TechDayshttp:// LINQ + ADO.NET Entity Framework

Microsoft TechDayshttp:// Классы контекста реализуют INotifyPropertyChanged Классы коллекции контекста (EntitySet) не реализуют INotifyCollectionChanged (сознательно) реализует IListSource Необходимо добавлять и удалять данные только через BindingList BindingList emp = (from e in nw.Employees select e) as IListSource).GetList() as BindingList ;

Microsoft TechDayshttp:// Классы контекста реализуют INotifyPropertyChanged Классы коллекции контекста (EntitySet) не реализуют INotifyCollectionChanged (сознательно) реализует IListSource Необходимо добавлять и удалять данные только через IBindingList IBindingList emp = (from e in nw.Employees select e) as IListSource).GetList() as IBindingList;

Microsoft TechDayshttp:// Entity Framework, LINQ to SQL

Microsoft TechDayshttp:// C# 3.0C# 3.0 VB 9.0VB 9.0 ДругиеДругие.NET Language Integrated Query Microsoft SQL Server, Oracle, DB2, MySQL… HTTP Сервер Клиент

Microsoft TechDayshttp:// ADO.NET Data Services 1.0 Не поддерживают INotifyPropertyChanged Не поддерживают IListSource Не используют ObservableCollection / BindingList Но это можно прозрачно реализовать ObservableCollection INotifyPropertyChanged

Microsoft TechDayshttp:// ADO.NET Data Services 1.5 CTP Поддерживают INotifyPropertyChanged Поддерживают INotifyCollectionChanged Вызывайте метод – ToObservableEntityCollection

Microsoft TechDayshttp://

Возможность работать с ADO.NET Data Service в offline режиме Кеш в локальный легкий in-process SQL Server Compact (*.sdf файл) Кеш на уровне бизнес сущностей, а не таблиц. Microsoft Sync Framework – «умная» синхронизация Существенное упрощение разработки Smart- Clients с поддержкой offline и высокой производительностью, вне зависимости от качества сетевых подключений.

Microsoft TechDayshttp://

Уровень данных? Уровень бизнес-логики? Уровень пользовательского интерфейса?

Microsoft TechDayshttp:// Валидация на уровне бизнес объектов IDataErrorInfo Использование существующей модели валидации {Binding ValidatesOnDataErrors=true} Визуализация по умолчанию

Microsoft TechDayshttp://

В случае отдельных диалогов UpdateSourceTrigger = Explicit Для отдельных элементов в рамках общей формы UpdateSourceTrigger = Explicit На уровне всей формы IEditableObject + Custom Collection Сильно упрощается при использовании Entity Framework ADO.NET Data Services Достаточно отменить изменения в DataContext

Microsoft TechDayshttp://

Возможность декларативно определить способ представления повторяющихся данных в виде шаблона ListBox/ListView, TreeView и др. Сценарии шаблонов Линейные Иерархические

Microsoft TechDayshttp://

Вид, который создается вокруг коллекций автоматически при DataBinding Может создаваться явно Реализует ICollectionView Контролирует текущую позицию Сортировка Фильтрация Группировка

Microsoft TechDayshttp://

WPF Client Profile – 28 MB Common Language Runtime (CLR) ClickOnce Windows Forms Windows Presentation Foundation Windows Communication Foundation

Microsoft TechDayshttp:// Автоматическая установка по ссылке в интрасети или интернет Автоматическое конфигурируемое обновление Нет необходимости в административных правах Легкость настройки

Microsoft TechDayshttp://

Vista & Win7 Windows Update Улучшения в разворачива нии Vista & Win7 Windows Update Улучшения в разворачива нии % % ПК в США с.NET Framework 3.0 и выше

Microsoft TechDayshttp:// Улучшение основ Повышение четкости текстов Развертывание Улучшение Interop Улучшение Accessibility & локализации Производительнос ть Улучшение основ Повышение четкости текстов Развертывание Улучшение Interop Улучшение Accessibility & локализации Производительнос ть Графика и UI Multi-touch DataGrid Ribbon Superbar Common Dialogs Effects Animation Media Enhancements (h.264 on Win7 ) Графика и UI Multi-touch DataGrid Ribbon Superbar Common Dialogs Effects Animation Media Enhancements (h.264 on Win7 ) Инструменты RAD LOB Designer Улучшения XAML Designer Улучшение взаимодействия Developer/Design er Visual State Manager Еще многое… Инструменты RAD LOB Designer Улучшения XAML Designer Улучшение взаимодействия Developer/Design er Visual State Manager Еще многое…

Microsoft TechDayshttp://

Прозрачная поддержка Touch всеми элементами управления WPF Поддержка TaskBar (TaskLists, и т.п.) Улучшения рендеринга текста с помощью DirectWrite Использование h.264, divx Ribbon

Microsoft TechDayshttp://

Связывание с данными в WPF Выбор способа связывания Возможности master/detail сценариев Возможности визуализации данных Разворачивание Ближайшее будущее

Microsoft TechDayshttp:// WindowsClient.net/ WPF CodePlex.com/WPF us/netframework/aa aspx

Microsoft TechDayshttp://

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Microsoft TechDayshttp://