Доклад освящает основные вопросы касающиеся Universal App и WPF, например:
• Развитие WPF и появление WinRT
• Унификация Windows-платформы и UAP
• Инвестиции в WPF
• Как WPF стыкуется с UAP + матрица миграции (когда и как стоит мигрировать, а когда нет)
Разработка Windows 8 приложений глазами WPF/Silverlight программистаDenis Tsvettsih
Презентация к докладу «Разработка Windows 8 приложений глазами WPF/Silverlight программиста» с десятой конференции dotnetconf (Челябинск, 19 апреля 2015)
http://dotnetconf.ru/materialy/windows8
Разработка Windows 8 приложений глазами WPF/Silverlight программистаDenis Tsvettsih
Презентация к докладу «Разработка Windows 8 приложений глазами WPF/Silverlight программиста» с десятой конференции dotnetconf (Челябинск, 19 апреля 2015)
http://dotnetconf.ru/materialy/windows8
Мы с вами узнаем, как предполагается использовать TPL Dataflow, рассмотрим плюсы и минусы его внедрения, а так же и особенности использования и настройки под конкретную задачу
Пользователи ожидают обновление данных в реальном времени. Твиты должны появляться без задержек. Заказы должны быть подтверждены и обработаны мгновенно. Приложения должны быть отзывчивыми. Мы, как разработчики, не хотим блокировать потоки в ожидании результатов. Мы хотим чтобы результаты были переданы нам как только будут готовы. Более того - при работе с коллекциями данных каждый отдельный объект должен быть передан сразу как будет готов. У нас есть инструменты для создания уведомлений, это легко. Нам нужны удобные инструменты для реакции на оповещения.
Из доклада вы узнаете как создавать удобные, отзывчивые и тестируемые приложения при помощи Reactive Extensions, как многократно сократить код обработки событий, а также как совместить существующий код на основе событий с данным фреймворком
Anemic Domain Model - антипаттерн или SOLID?GoSharp
Мартин Фаулер считает, что Anemic Domain Model (или бледная доменна модель) это плохо, и антипаттерн, противопоставляя ей Rich Domain Model с интегрированным поведением и бизнес логикой.
При этом есть другие мнения, возможно не столь распространенные. Я попробую рассказать об опыте использования Anemic Domain Model при разработке крупного корпоративного приложения. Какие плюсы и минусы мы нашли, и как преодолевали трудности.
Эволюция пользовательского интерфейса бизнес-приложений: от DOSa через окна в...GoSharp
Бизнес-приложения являются одним из самых массовых типов программного обеспечения; многие из людей проводят бОльшую часть своего дня, работая с ERP, CRM и другими программами, обслуживающими жизненный цикл предприятия. Как сделать программу, которая поддерживает сложные бизнес-процессы, простой в использовании? Чем можно пожертвовать ради удобства пользователя? На примере 1С мы рассмотрим, как эволюционировал пользовательский интерфейс деловых приложений со времен DOS до наших дней, какие методики используются для улучшения юзабилити.
UI тестирование WPF приложений в Дойче БанкеGoSharp
Мы расскажем о техническом решении для тестирования WPF приложений в Дойче Банке, использующем простую технику DLL-иньекции.
Поймем, что можно легко тестировать UI без библиотеки Microsoft UI Automation и даже напишем свой собственный подобный мини-фреймворк.
Практика применения Enterprise Architect и T4-шаблонов для разработки системы...GoSharp
Разработка любой крупной системы сопряжена со множеством трудностей, особенно когда система должна целиком функционировать в базе данных. А из-за невозможности создавать и поддерживать стандартные конструкции для проверки бизнес-правил, обработки исключений, логирования ошибочных данных разрабатываемые системы получаются еще и отнюдь не простыми в сопровождении.
В докладе будет представлено решение, основанное на совмещении рукописного кода и сгенерированных стандартных конструкций, поддерживающее разработку в подходе Model First и автоматизированное распространение изменений в структуру базы данных и хранимые процедуры. Реализация описанного подхода будет продемонстрирована на связке Enterprise Architect и T4-шаблонов кодогенерации.
Базовые возможности EF и их особенности, делающие применение EF в реальных проектах грустным и затратным занятием. Flexberry ORM — отечественный ORM, основные сценарии его применения, сравнение производительности с EF. Короткий рассказ с картинками и примерами в исходных кодах.
MVVM в WinForms – DevExpress Way (теория и практика)GoSharp
Из доклада вы узнаете о применении популярного паттерна MVVM для упрощения и ускорения процесса разработки desktop-приложений.
Будут рассмотрены общие проблемы этого паттерна и решения которые мы предлагаем в нашем кроссплатформенном MVVM фреймворке. Упор будет сделан на практические аспекты и техники в условиях использования платформы WinForms и контролов от DevExpress.
Проектирование сетевой инфраструктуры под SOA проекты ASP.NETGoSharp
При планировании сервисно-ориентированной архитектуры проекта крайне важно учитывать требования к работе сервиса в существующих реалиях Enterprise инфраструктуры. Если эти системы строятся независимо, то возникнут проблемы в размещении сервисов на боевом окружении, сложности управления, безопасности и надёжности. В докладе вы увидите подходы к проектированию инфраструктуры под сервисы и сервисов под инфраструктуру, а так же примеры борьбы со сложностью планирования инфраструктуры.
Мониторинг приложений ASP.NET на основе сервиса Application InsightsGoSharp
После запуска приложения в продакшн в большинстве случаев мы отправляем его в свободное плавание и не знаем о его работе ничего. Сервис Application Insights призван заполнить этот пробел и получить исчерпывающие знания о том, как работает ваше приложение и какие усилия мы должны приложить, чтобы сделать его лучше.
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
Наша команда в DevExpress недавно выпустила Preview версию нового продукта, RTF web-редактора – ASPxRichEdit.
Продукт требует высокой отзывчивости на действия пользователя и максимальной производительности. Поэтому клиент получился «толстым» в отличие от «тонких клиентов» большинства бизнес-приложений.
В составе продукта два полнофункциональных компонента - клиентский и серверный текстовые процессоры. Оба компонента работают независимо друг от друга. Клиентская часть создавалась как оптимизированная версия серверного компонента, переписанного с .NET на TypeScript.
Клиентская часть не уступает в сложности серверной. Кроме того, возникают дополнительные проблемы синхронизации состояний моделей на клиенте и сервере и глубокого тестирования клиент-серверного взаимодействия.
В этом докладе вы узнаете, как мы разрабатывали этот продукт, какие проблемы встретили и какие методики тестирования использовали.
Из доклада Вы узнаете как работают две основные буквы mVC. Controller. Каким образом запросы находят необходимые Action. Жизненный цикл объектов при запросах. Views. Что такое View, каким образом рисуется представление для frontend. Как написать свой ViewEngine.
Помимо этого - о том как хостится приложение, на сервере и как можно совместно использовать ресурсы для нескольких приложений либо масштабировать приложения по нескольким ресурсам.
Кросплатформенная разработка на ASP.NET vNextGoSharp
Из доклада вы узнаете о возможностях поддержки других платформ в ASP.NET vNEXT. На живом примере будет показано, как разворачивать ASP.NET под *nix и как программировать в этой среде.
Внедрение зависимостей в ASP.NET MVС и ASP.NET vNextGoSharp
По мере развития веб-проекта сложность бизнес-логики неизбежно растёт. Это замедляет темпы разработки, системы становятся непонятными и запутанными. Связной – не исключение. Одним из наших решений проблемы является Dependency Injection. В докладе вы узнаете о том, как DI понижает сложность бизнес-логики, почему мы в Связном считаем DI DI в ASP.NET MVC эффективным решением и что нового для DI появилось в ASP.NET vNext.
Платформа ASP.NET стоит на пороге глобальных изменений. Какие из них самые важные? Как они повлияют на процесс разработки? Стоит ли бояться и как подготовиться? В рамках доклада мы обсудим новый виток развития технологии и возможности, которые появятся у нас с выходом ASP.NET 5(vNext) и Visual Studio 2015.
Коучинг команд разработки и коучинговые инструменты в работе тимлидаGoSharp
Работа тимлида – самая трудная менеджерская работа. Он уже менеджер, его подчиненные еще нет, они не хотят и не обязаны вникать в его трудности. Ответственность уже есть, возможностей еще не так много. К этой работе редко готовят специально. Как и куда расти тимлиду? Это Вы узнаете в докладе. Какие навыки развивать. И как их развивать. Что такое коучинг команд и подойдет ли он в вашем случае. Всему можно научиться на практике, но воспользоваться чужим опытом быстрее и дешевле во многих случаях. Кстати, как определить, что именно вам чужой опыт не подойдет, вы тоже узнаете в докладе.
Взаимное влияние Source Code Management и других средств организации разработкиGoSharp
1. Почему важны не используемые инструменты, а модель организации работы и стратегия выпуска релизов.
2. Переход к более информативной истории изменений: от летописи разработки к истории развития продукта.
3. Связь между системами управления проектом и исходным кодом должна быть двусторонней.
4. Выбор разумной политики создания веток.
5. Хорошая архитектура и постоянное слияние делают непрерывную интеграцию более эффективной.
Толкование термина Devops и почему это модный buzzword
1. Гибкая эксплутация, по аналогии с гибкой разработкой и в качестве ее логичного продолжения.
2. Зачем это все нужно на примере интернет стартапа.
3. В *nix все хорошо, у Windows не очень.
4. Как сделать конвейер по доставке изменений начиная с комита разработчика и заканчивая обновлением программы-агента на машине пользователя.
5. Git и gitflow как норма рабочего процесса в команде.
6. CI - билды, ветки, артефакты.
7. Участие QA в процессе, автоматические тесты.
8. Octopus deploy и счастье. Октопаки в качестве контейнеров.
9. Мониторинг серверов и оповещения - New relic, Pager duty.
3. Цель сессии
Помочь собрать куски мозаики в единую картину
Впрочем
Я не отвечу на все вопросы
§ Хорошая новость: WPF-команда открыта вашим отзывам
Я не расскажу того, что мы еще не анонсировали
§ Хорошая новость: конференции Build (29 апреля – 1 мая) и DevCon (20-21 мая)
6. История ЧТО
СЛУЧИЛОСЬ
С WPF?
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1
7. История
iOS
Android
iPad à
Tablets à
Windows Mobile
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1
8. Вызовы
Современные API
Сенсоры, коммуникация
Изоляция и безопасность
Магазин приложений
Энергоэффективность
Process Lifecycle Management (PLM)
UI/UX
Новый язык (codename “Metro”)
Сенсорное управление
Отзывчивый UI
9. История
iOS
Android
Windows Phone
7.x
Windows Phone 8 Windows Phone 8.1
iPad à
Tablets à
Windows Mobile
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1
10. История
iOS
Android
Windows Phone
7.x
Windows Phone 8 Windows Phone 8.1
iPad à
Tablets à
Windows Mobile
WinRT
preview
SEP’11
ONE CORE SHARED CODE UAP
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1 WINDOWS 10
11. История
iOS
Android
Windows Phone
7.x
Windows Phone 8 Windows Phone 8.1
iPad à
Tablets à
Windows Mobile
WinRT
preview
SEP’11
ONE CORE SHARED CODE UAP
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1 WINDOWS 10
Стабилизация
Стабильность
Турбулентность
Развитие, «второе дыхание»
Конкуренция
15. Что такое UAP?
WinRT
Единый набор общих API для разных форм-факторов
Расширения, специфичные для форм-факторов
Адаптивный UX/UI
XAML (контролы, триггеры), HTML, DX
Touch, Mouse, Ink, Keyboard, …
Инструменты
VS, Blend,…
20. История
WPF
Updates
ROADMAP
iOS
Android
Windows Phone
7.x
Windows Phone 8 Windows Phone 8.1
iPad à
Tablets à
Windows Mobile
WinRT
preview
SEP’11
ONE CORE SHARED CODE UAP
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
WPF 3.0
NOV’06
WPF 3.5
NOV’07
WPF 3.5 SP1
AUG’08
WPF 4
APR’10
WPF 4.5
AUG’12
WINDOWS VISTA
WV SP1 WV SP2
WINDOWS 7
W7 SP1
WINDOWS 8 WINDOWS 8.1 WINDOWS 10
21. Инвестиции в WPF
Цель: привести WPF в соответствие с современными требованиям
Инфраструктура
Производительность (старт, прокрутка, виртуализация, …)
DirectX 11, DirectX 12
Опыт взаимодействия
High DPI
Touch
Инструменты
Диагностика
Создание (Blend)
22. WPF в .NET Framework 4.6 и VS2015
Прозрачные дочерние окна
Множественные изображения в файлах курсоров
Переработанный опыт работы с Blend
Новый набор инструментов для визуальной диагностики
Временная шкала в хабе диагностики и производительности
И еще:
Открыты заново тикеты на Connect с >10 голосов.
Исправления багов и «небольших» запросов
23. И еще одна вещь…
WPF – это часть .NET Framework
.NET Framework – это часть Windows
Это хорошо
§ Уже содержится в Windows
§ Надежность и поддержка
Это плохо
§ Требования поддержки и совместимости «связывают руки» разработчикам платформы
24. И еще одна вещь…
WPF – это часть .NET Framework
.NET Framework – это часть Windows
Это хорошо
§ Уже содержится в Windows
§ Надежность и поддержка
Это плохо
§ Требования поддержки и совместимости «связывают руки» разработчикам платформы
App Local для WPF (еще не выпущено!)
Сборки WPF, доставляемые как Nuget-пакеты
§ PresentationFramework, PresentationCore, WindowsBase, …
Приложение поставляется со своей версией WPF
26. Цель сессии
Помочь собрать куски мозаики в единую картину
Впрочем
Я не отвечу на все вопросы
§ Хорошая новость: WPF-команда открыта вашим отзывам
Я не расскажу того, что мы еще не анонсировали
§ Хорошая новость: конференции Build (29 апреля – 1 мая) и DevCon (20-21 мая)
34. WPF и UAP
СЛОЖНОСТЬ ОПЫТА
ВЗАИМОДЕЙСТВИЯУНИВЕРСАЛЬНЫЙ
ЗАТОЧЕННЫЙ
КОМПЛЕКСНЫЙ
ФОРМ-ФАКТОР
DESKTOP
2-in-1
TABLET
PHONE
IOT
WINRT
UAP
ADAPTIVEUI/UX
.NET
FW
WPF
СЛОЖНЫЕ
БИЗНЕС-ПРИЛОЖЕНИЯ
СОЗДАНИЕ СЛОЖНОГО КОНТЕНТА
РАБОТА С ДАННЫМИ
“MISSION CRITICAL”
УНИВЕРСАЛЬНЫЕ
ПРИЛОЖЕНИЯ
ПЕРЕНОСИМОСТЬ ОПЫТА
ПОТРЕБЛЕНИЕ КОНТЕНТА
СОЗДАНИЕ ПРОСТОГО КОНТЕНТА
35. UAP
БИЗНЕС-
ЛОГИКА В PCL
МИГРАЦИЯ
ОБНОВЛЕНИЕ
Матрица изменений
ГОРИЗОНТ
ОБНОВЛЕНИЯ
(ПЕРЕРАБОТКИ)
СЦЕНАРИЙ
СЕГОДНЯ «ЗАВТРА»
DESKTOP
CREATION
DESKTOP
CONSUME
MOBILE
CREATION/
CONSUME
W/WP 8.1
UNIVERSAL PROJECT
WP SILVERLIGHT
PROJECT
36. Миграция с Win/Phone 8
8.1 WinRT – небольшие изменения
Жизненный цикл, фоновое исполнение, плитки, нотификации – так же
UAP API – надмножество Win8.1 WinRT API
Обновление логики, зависящей от условных директив
Часть API устарели (например, Phone 8.1 …AndContinue APIs)
Панель чудо-кнопок исчезает -> перенести в UI поиск, настройки, общий
доступ
8.1 WinRT XAML view – относительно просто
Внедрение адаптивного UI, если нужна работа на разных семейства
устройств
Специфичные для телефона стили заменяются на общие
Приложения на Silverlight 7.x/8.x нужно переделать
Впрочем, они продолжат работать на Windows 10 для мобильных устройств!
37. WPFРАЗВИТИЕ
БИЗНЕС-
ЛОГИКА В PCL
МИГРАЦИЯ UAP
WPF
ПОДДЕРЖКА
TOUCH
И HIGH DPI
UAP
Матрица изменений
ГОРИЗОНТ
ОБНОВЛЕНИЯ
(ПЕРЕРАБОТКИ)
СЦЕНАРИЙ
СЕГОДНЯ «ЗАВТРА»
DESKTOP
CREATION
DESKTOP
CONSUME
MOBILE
CREATION/
CONSUME
WPF
W/WP 8.1
UNIVERSAL PROJECT
WP SILVERLIGHT
PROJECT
БИЗНЕС-
ЛОГИКА В PCL
МИГРАЦИЯ
ОБНОВЛЕНИЕ