Бувають ситуації, що в WPF апплікації потрібно виконувати ресурсоємні завдання, які споживають велику кількість часу. Виконання цих завдань в окремому потоці дозволяє підтримувати UI працездатним і доступним для введення даних .
BackgroundWorker є рекомендованим способом запуску трудомісткого завдання на окремому виділеному потоці, залишаючи UI працездатним.
среда, 22 мая 2013 г.
вторник, 21 мая 2013 г.
Багатопотоковість в WPF. Dispatcher.
Під багатопотоковістю (Multithreading) розуміється виконання одночасно більше одного блоку коду. Зазвичай багатопотоковість використовується для створення більш гнучкого користувальницького інтерфейсу (UI) . Наприклад, виконання завдань, які займають багато часу в іншому потоці (завантаження файлу), що дозволяє залишити користувацький інтерфейс (UI) доступним для введення даних .
понедельник, 20 мая 2013 г.
WPF. Динамічний вибір шаблона використовуючи клас DataTemplateSelector
Буває ситуація, коли заздалегідь не знаєш, який шаблон даних необхідно підключити або в залежності від значення об'єкта потрібно використати інший шаблон даних . Для цього WPF передбачає DataTemplateSelector.
Валідація у WPF використовуючи клас Validation та інтерфейс IDataErrorInfo.
Зміст
-
Клас Validation.
-
Валідація використовуючи IDataErrorInfo.
пятница, 17 мая 2013 г.
Yield return – великі можливості маленького оператора :)
В силу того що оператор не користується великою популярність мало хто знає про те як він працює за сценою і це в свою чергу не дає нам чіткого розуміння коли його можна використати і які переваги це нам дасть … Такий собі замкнутий круг.
четверг, 16 мая 2013 г.
S.O.L.I.D
S.O.L.I.D
это аббревиатура пяти основных принципов дизайна классов в объектно-ориентированном проектировании — Single responsibility, Open-closed, Liskov substitution, Interface segregation и Dependency inversion теперь про каждый по подробнее.
GOF Patterns : Adapter vs Bridge
Adapter
- Конвертировать интерфейс одного класса к другому классу
- Обвернуть существующий код новым интерфейсом
- Использовать старые компоненты в новой системе
Bridge
- Разделить абстракцию и её имплементацию
- Создание иерархий абстракций и имплементаций
Описание проблемы
Есть текущая архитектура

которая очень плохо расширяеться

разделяем абстракции и имплементацию
Сорсы тут :)
Используем для адаптации чего либо, после имплементации.Цель
- Конвертировать интерфейс одного класса к другому классу
- Обвернуть существующий код новым интерфейсом
- Использовать старые компоненты в новой системе
Bridge
Используем для подмены имплементаций на этапе проэктированияЦель
- Разделить абстракцию и её имплементацию
- Создание иерархий абстракций и имплементаций
Описание проблемы
Есть текущая архитектура

которая очень плохо расширяеться

разделяем абстракции и имплементацию
Сорсы тут :)
Подписаться на:
Сообщения (Atom)