Windows
<<  Шаблон для спортивного стиля Введение в разработку приложений на Windows Presentation Foundation  >>
Тренинг Введение в разработку приложений на Windows Presentation
Тренинг Введение в разработку приложений на Windows Presentation
Бизнес-приложения на WPF
Бизнес-приложения на WPF
Видео
Видео
Связывание с данными DataBinding
Связывание с данными DataBinding
DataBinding в WPF - Основа Framework
DataBinding в WPF - Основа Framework
Data binding в XAML
Data binding в XAML
DependencyProperty
DependencyProperty
Демонстрация
Демонстрация
Компоненты Data Binding
Компоненты Data Binding
Пути (Source Paths)
Пути (Source Paths)
Datacontext – рай для masterdetail
Datacontext – рай для masterdetail
Что использовать для бизнес объектов
Что использовать для бизнес объектов
Как можно связать бизнес объекты с UI
Как можно связать бизнес объекты с UI
Как можно связать бизнес объекты с UI
Как можно связать бизнес объекты с UI
Что нужно для поддержки редактирования
Что нужно для поддержки редактирования
Помните про сериализацию и оптимизацию
Помните про сериализацию и оптимизацию
UpdateSourceTrigger
UpdateSourceTrigger
Отмена/подтверждение редактирования
Отмена/подтверждение редактирования
Демонстрация
Демонстрация
Работа с современными источниками данных
Работа с современными источниками данных
LINQ to SQL
LINQ to SQL
Entity Framework
Entity Framework
Демонстрация
Демонстрация
ADO
ADO
Работа в многоуровневом сценарии
Работа в многоуровневом сценарии
Демонстрация
Демонстрация
ADO
ADO
Проверка данных Validation
Проверка данных Validation
Где должна происходить проверка
Где должна происходить проверка
Idataerrorinfo – валидация на уровне бизнес правил
Idataerrorinfo – валидация на уровне бизнес правил
Демонстрация
Демонстрация
Поддержка кнопки Cancel
Поддержка кнопки Cancel
Визуализация данных
Визуализация данных
Используйте новые контролы
Используйте новые контролы
?
?
Демонстрация
Демонстрация
Конвертации
Конвертации
Value Converters
Value Converters
demo
demo
CollectionViews
CollectionViews
Демонстрация
Демонстрация
Разворачивание Deployment
Разворачивание Deployment
Разворачивание
Разворачивание
ClickOnce
ClickOnce
Демонстрация
Демонстрация
Спасибо за внимание
Спасибо за внимание
47
47

Презентация на тему: «Введение в разработку приложений на Windows Presentation Foundation». Автор: . Файл: «Введение в разработку приложений на Windows Presentation Foundation.ppt». Размер zip-архива: 7895 КБ.

Введение в разработку приложений на Windows Presentation Foundation

содержание презентации «Введение в разработку приложений на Windows Presentation Foundation.ppt»
СлайдТекст
1 Тренинг Введение в разработку приложений на Windows Presentation

Тренинг Введение в разработку приложений на Windows Presentation

Foundation

Занятие 6 Создание приложений доступа к данным с помощью WPF Роман Здебский rzdebski@microsoft.com http://blogs.msdn.com/roman

2 Бизнес-приложения на WPF

Бизнес-приложения на WPF

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

2

3 Видео

Видео

Бизнес-приложения на WPF Line-of-Business Applications

3

4 Связывание с данными DataBinding

Связывание с данными DataBinding

5 DataBinding в WPF - Основа Framework

DataBinding в WPF - Основа Framework

Можно связывать практически все со всем. Свойства элементов управления, ресурсы… и т.п.

DependencyObject DependencyProperty Resources Data binding Styles Animations Metadata overrides Property value inheritance WPF Designer integration

5

6 Data binding в XAML

Data binding в XAML

DataContext

Бизнес объект

Связывание через ElementName

Связывание с бизнес объектом по полю Name

6

7 DependencyProperty

DependencyProperty

propdp - snippet

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

8 Демонстрация

Демонстрация

Databinding в WPF и dependencyproperty

8

9 Компоненты Data Binding

Компоненты Data Binding

4 компонента: source (источник) source path (путь) Целевой dependency object Целевое dependency property <TextBox IsEnabled="{Binding ElementName=MyCheckBox,Path=IsChecked}"/>

Целевой dependency object

Целевое dependency property

Источник

Путь

9

10 Пути (Source Paths)

Пути (Source Paths)

Свойство Path Свойство XPath

10

11 Datacontext – рай для masterdetail

Datacontext – рай для masterdetail

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

11

12 Что использовать для бизнес объектов

Что использовать для бизнес объектов

Унаследоваться от DependencyObject? Для работы DataBinding Target должен быть только DependencyObject Source может быть CLR Object или XML

12

13 Как можно связать бизнес объекты с UI

Как можно связать бизнес объекты с UI

Напрямую из кода (теряем поддержку Blend) Напрямую в XAML подключив namespace Вызывается конструктор по умолчанию

xmlns:obj="clr-namespace:WPFApplication1” … <Window.Resources> <obj:NameList x:Key="NameListData"/> </Window.Resources>

grd.DataContext = myCollection;

13

14 Как можно связать бизнес объекты с UI

Как можно связать бизнес объекты с UI

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

14

15 Что нужно для поддержки редактирования

Что нужно для поддержки редактирования

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

15

16 Помните про сериализацию и оптимизацию

Помните про сериализацию и оптимизацию

Если ваш объект помечен как Serializable, то Formatter будет пытаться сериализовать все объекты подписанные на event – например Window ? = exception Josh Smith BindableObject – уменьшение фрагментации managed heap за счет кеширования PropertyChangedEventArgs

[field: NonSerializedAttribute()] public event ChangedEventHandler Changed;

16

17 UpdateSourceTrigger

UpdateSourceTrigger

Свойство UpdateSourceTrigger определяет, когда источник будет обновлен: PropertyChanged LostFocus Explicit

17

18 Отмена/подтверждение редактирования

Отмена/подтверждение редактирования

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

18

19 Демонстрация

Демонстрация

Связывание простого объекта

Поддержка обновлений

19

20 Работа с современными источниками данных

Работа с современными источниками данных

LINQ + ADO.NET Entity Framework

21 LINQ to SQL

LINQ to SQL

Классы контекста реализуют INotifyPropertyChanged ? Классы коллекции контекста (EntitySet) не реализуют INotifyCollectionChanged (сознательно) реализует IListSource ? Необходимо добавлять и удалять данные только через BindingList

BindingList<Employee> emp = (from e in nw.Employees select e) as IListSource).GetList() as BindingList<Employee>;

21

22 Entity Framework

Entity Framework

Классы контекста реализуют INotifyPropertyChanged ? Классы коллекции контекста (EntitySet) не реализуют INotifyCollectionChanged (сознательно) реализует IListSource ? Необходимо добавлять и удалять данные только через IBindingList

IBindingList emp = (from e in nw.Employees select e) as IListSource).GetList() as IBindingList;

22

23 Демонстрация

Демонстрация

Использование ORM

Entity Framework, LINQ to SQL

23

24 ADO

ADO

NET Data Services

Клиент

HTTP

Сервер

.NET Language Integrated Query

LINQ DS Provider

ADO.NET DS Data Context

REST API

Entity Framework

ADO.NET

24

25 Работа в многоуровневом сценарии

Работа в многоуровневом сценарии

ADO.NET Data Services пока Не поддерживают INotifyPropertyChanged Не поддерживают IListSource Не используют ObservableCollection<T> / BindingList Но это можно прозрачно реализовать ObservableCollection<T> INotifyPropertyChanged

25

26 Демонстрация

Демонстрация

ADO.NET Data Services

26

27 ADO

ADO

NET Data Services Offline

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

27

28 Проверка данных Validation

Проверка данных Validation

29 Где должна происходить проверка

Где должна происходить проверка

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

29

30 Idataerrorinfo – валидация на уровне бизнес правил

Idataerrorinfo – валидация на уровне бизнес правил

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

30

31 Демонстрация

Демонстрация

Проверка правильности данных

31

32 Поддержка кнопки Cancel

Поддержка кнопки Cancel

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

32

33 Визуализация данных

Визуализация данных

34 Используйте новые контролы

Используйте новые контролы

Релиз! DataGrid, DatePicker, Calendar - поставляется вместе с исходным кодом в рамках WPF Toolkit на www.codeplex.com DataGrid - возможности: Авто-генерирование колонок Различные типы: Text, CheckBox, ComboBox, Button, Hyperlink + TemplateColumn Редактирование Фильтры и группировки Item Container Recycling Deferred Scrolling

34

35 ?

?

Data Templates

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

<DataTemplate x:Key="itemTemplate"> <StackPanel x:Name="StackPanel"> <TextBlock x:Name="TextBlock1" Text="{Binding Mode=OneWay, XPath=title}"/> <TextBlock x:Name="TextBlock" Text="{Binding Mode=OneWay, XPath=pubDate}"/> </StackPanel> </DataTemplate>

35

36 Демонстрация

Демонстрация

DataTemplates

36

37 Конвертации

Конвертации

Value Converters (конверторы значений) Демо: BoolToVisibilityConverter Value Converters в XAML

37

38 Value Converters

Value Converters

Чтобы конвертировать при связывании нужен IValueConverter:

38

39 demo

demo

BoolToVisibilityConverter

39

40 CollectionViews

CollectionViews

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

40

41 Демонстрация

Демонстрация

CollectionViews

41

42 Разворачивание Deployment

Разворачивание Deployment

43 Разворачивание

Разворачивание

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

43

44 ClickOnce

ClickOnce

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

44

45 Демонстрация

Демонстрация

ClickOnce

45

46 Спасибо за внимание

Спасибо за внимание

46

47 47

47

© 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.

«Введение в разработку приложений на Windows Presentation Foundation»
http://900igr.net/prezentacija/informatika/vvedenie-v-razrabotku-prilozhenij-na-windows-presentation-foundation-106002.html
cсылка на страницу

Windows

30 презентаций о Windows
Урок

Информатика

130 тем
Слайды
900igr.net > Презентации по информатике > Windows > Введение в разработку приложений на Windows Presentation Foundation