SlideShare a Scribd company logo
Submit Search
Upload
О разработке десктопных приложений / About desktop development
Report
Share
Alexander Granin
Software Developer, Independent Consultant at Independent Consultant
Follow
•
1 like
•
437 views
1
of
22
О разработке десктопных приложений / About desktop development
•
1 like
•
437 views
Report
Share
Download Now
Download to read offline
Technology
Лекция в ЗабГУ о разработке десктопных приложений
Read more
Alexander Granin
Software Developer, Independent Consultant at Independent Consultant
Follow
Recommended
Лучшие практики корпоративной разработки. Лекция 0: обзор курса. by
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Vadim Martynov
512 views
•
30 slides
Azimut framework by
Azimut framework
dmamel
399 views
•
5 slides
Dotnet development by
Dotnet development
MageCloud
347 views
•
11 slides
Platypus platform ivbit by
Platypus platform ivbit
jskonst
6.3K views
•
29 slides
внедрении Wpf в сложных системах (слайды) by
внедрении Wpf в сложных системах (слайды)
WhiteMbIXA
629 views
•
41 slides
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло... by
Как взаимодействовать с графическими дизайнерами: готовим UI Kit / Артем Моло...
Ontico
1.2K views
•
43 slides
More Related Content
What's hot
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто... by
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
it-people
830 views
•
21 slides
CI для Microsoft Dynamics crm by
CI для Microsoft Dynamics crm
Roman Savran
732 views
•
16 slides
GitFlow_MOEX by
GitFlow_MOEX
Sergey Maximov
194 views
•
19 slides
Вадим Митин - как выстроить техническую платформу для стабильной работы web... by
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
sergey doronin
165 views
•
22 slides
GraphQL tools | Никита Галкин | Zlit Tech by
GraphQL tools | Никита Галкин | Zlit Tech
Zlit
91 views
•
33 slides
голубушин by
голубушин
Петр Левич
246 views
•
11 slides
What's hot
(20)
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто... by it-people
DUMP-2013 Управление разработкой - Переход от проектной разработки к продукто...
it-people
•
830 views
CI для Microsoft Dynamics crm by Roman Savran
CI для Microsoft Dynamics crm
Roman Savran
•
732 views
GitFlow_MOEX by Sergey Maximov
GitFlow_MOEX
Sergey Maximov
•
194 views
Вадим Митин - как выстроить техническую платформу для стабильной работы web... by sergey doronin
Вадим Митин - как выстроить техническую платформу для стабильной работы web...
sergey doronin
•
165 views
GraphQL tools | Никита Галкин | Zlit Tech by Zlit
GraphQL tools | Никита Галкин | Zlit Tech
Zlit
•
91 views
голубушин by Петр Левич
голубушин
Петр Левич
•
246 views
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский... by Ontico
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Ontico
•
594 views
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский... by yaevents
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
yaevents
•
1.5K views
Ruby on Rails снижаем стоимость разработки by Media Gorod
Ruby on Rails снижаем стоимость разработки
Media Gorod
•
374 views
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo) by Ontico
Онлайн-кинотеатр для SmartTV на веб-технологиях / Михаил Лабанов (Ayyo)
Ontico
•
734 views
About emacs by jskonst
About emacs
jskonst
•
1.2K views
Аналитика в проектах: TFS + Qlik by Positive Hack Days
Аналитика в проектах: TFS + Qlik
Positive Hack Days
•
883 views
Обзор и архитектура MS Visual Studio Team System 2008 by Александр Шамрай
Обзор и архитектура MS Visual Studio Team System 2008
Александр Шамрай
•
2.3K views
разработка собственной Agile методологии для управления крупными проектами by SQALab
разработка собственной Agile методологии для управления крупными проектами
SQALab
•
905 views
Алексей Кабанов by SQALab
Алексей Кабанов
SQALab
•
333 views
Continuous Integration(как мы подружили frontend и backend) by Talks&Works
Continuous Integration(как мы подружили frontend и backend)
Talks&Works
•
476 views
Continuous integration, или как мы подружили front end и back-end by wlbl
Continuous integration, или как мы подружили front end и back-end
wlbl
•
694 views
Прямая выгода BigData для бизнеса by Alexey Lustin
Прямая выгода BigData для бизнеса
Alexey Lustin
•
773 views
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM by Pavel Tsukanov
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
Pavel Tsukanov
•
841 views
WinRT: интеграция с С++ by Mykhail Galushko
WinRT: интеграция с С++
Mykhail Galushko
•
622 views
Similar to О разработке десктопных приложений / About desktop development
IT-инфраструктура. FAQ для разработчика by
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
267 views
•
34 slides
What's new in Visual Studio 2012 by
What's new in Visual Studio 2012
InTRUEdeR
394 views
•
17 slides
DevOps для 1С by
DevOps для 1С
Alexey Lustin
1.3K views
•
23 slides
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes" by
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Fwdays
270 views
•
49 slides
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п... by
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU
141 views
•
25 slides
X Window by
X Window
Alexander Babich
562 views
•
47 slides
Similar to О разработке десктопных приложений / About desktop development
(20)
IT-инфраструктура. FAQ для разработчика by Mikhail Chinkov
IT-инфраструктура. FAQ для разработчика
Mikhail Chinkov
•
267 views
What's new in Visual Studio 2012 by InTRUEdeR
What's new in Visual Studio 2012
InTRUEdeR
•
394 views
DevOps для 1С by Alexey Lustin
DevOps для 1С
Alexey Lustin
•
1.3K views
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes" by Fwdays
Dmytro Nemesh "Building the perfect infrastructure with Kubernetes"
Fwdays
•
270 views
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п... by Tech Talks @NSU
Tech Talks @NSU: Технологии кросс-платформенной разработки мобильных бизнес-п...
Tech Talks @NSU
•
141 views
X Window by Alexander Babich
X Window
Alexander Babich
•
562 views
Desktop app based on node js and html5 by Provectus
Desktop app based on node js and html5
Provectus
•
765 views
Профессиональная разработка в суровом Enterprise by Alexander Granin
Профессиональная разработка в суровом Enterprise
Alexander Granin
•
1.1K views
Совместные решения Citrix и Dell для правильной организации рабочих мест by Dell_Russia
Совместные решения Citrix и Dell для правильной организации рабочих мест
Dell_Russia
•
730 views
Jelastic для разработчиков ПО by Dmitry Lazarenko
Jelastic для разработчиков ПО
Dmitry Lazarenko
•
585 views
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ... by DrupalCamp MSK
Continuous integration сайтов на Drupal: Jenkins, Bitbucket, Features, Drush ...
DrupalCamp MSK
•
904 views
Console application with ZF 2.0 by Alexey Kachayev
Console application with ZF 2.0
Alexey Kachayev
•
1.3K views
ПартФорум DIRECTUM 2013 - разработка прикладных решений by Виктор Золотов
ПартФорум DIRECTUM 2013 - разработка прикладных решений
Виктор Золотов
•
503 views
Open Source Testing Framework: real project example and best practices by Aliaksandr Ikhelis
Open Source Testing Framework: real project example and best practices
Aliaksandr Ikhelis
•
705 views
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов by SQALab
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
SQALab
•
602 views
Frontend: Путешествие в мир модульных загрузчиков by CodeFest
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
•
957 views
Экскурс в мир WEB разработки by IT-Доминанта
Экскурс в мир WEB разработки
IT-Доминанта
•
1.7K views
Кирилл Комлев. О реализации continuous integration для web проектов by Olesya_V
Кирилл Комлев. О реализации continuous integration для web проектов
Olesya_V
•
651 views
[RU] Connecting AutoCAD and Python (by Alex Bausk) by Alexander Bausk
[RU] Connecting AutoCAD and Python (by Alex Bausk)
Alexander Bausk
•
1.4K views
Денис Захаркин, VR Concept - MIXAR2016 by mixARConference
Денис Захаркин, VR Concept - MIXAR2016
mixARConference
•
225 views
More from Alexander Granin
Concurrent applications with free monads and stm by
Concurrent applications with free monads and stm
Alexander Granin
208 views
•
55 slides
Hierarchical free monads and software design in fp by
Hierarchical free monads and software design in fp
Alexander Granin
161 views
•
59 slides
Final tagless vs free monad by
Final tagless vs free monad
Alexander Granin
158 views
•
74 slides
Monadic parsers in C++ by
Monadic parsers in C++
Alexander Granin
579 views
•
58 slides
The present and the future of functional programming in c++ by
The present and the future of functional programming in c++
Alexander Granin
343 views
•
125 slides
Принципы и практики разработки ПО 2 / Principles and practices of software de... by
Принципы и практики разработки ПО 2 / Principles and practices of software de...
Alexander Granin
133 views
•
23 slides
More from Alexander Granin
(20)
Concurrent applications with free monads and stm by Alexander Granin
Concurrent applications with free monads and stm
Alexander Granin
•
208 views
Hierarchical free monads and software design in fp by Alexander Granin
Hierarchical free monads and software design in fp
Alexander Granin
•
161 views
Final tagless vs free monad by Alexander Granin
Final tagless vs free monad
Alexander Granin
•
158 views
Monadic parsers in C++ by Alexander Granin
Monadic parsers in C++
Alexander Granin
•
579 views
The present and the future of functional programming in c++ by Alexander Granin
The present and the future of functional programming in c++
Alexander Granin
•
343 views
Принципы и практики разработки ПО 2 / Principles and practices of software de... by Alexander Granin
Принципы и практики разработки ПО 2 / Principles and practices of software de...
Alexander Granin
•
133 views
Принципы и практики разработки ПО / Principles and practices of software deve... by Alexander Granin
Принципы и практики разработки ПО / Principles and practices of software deve...
Alexander Granin
•
140 views
Закон Деметры / Demetra's law by Alexander Granin
Закон Деметры / Demetra's law
Alexander Granin
•
149 views
Design of big applications in FP by Alexander Granin
Design of big applications in FP
Alexander Granin
•
129 views
GitHub - зеркало разработчика by Alexander Granin
GitHub - зеркало разработчика
Alexander Granin
•
958 views
The Present and The Future of Functional Programming in C++ by Alexander Granin
The Present and The Future of Functional Programming in C++
Alexander Granin
•
86 views
Functional programming in C++ LambdaNsk by Alexander Granin
Functional programming in C++ LambdaNsk
Alexander Granin
•
464 views
Transition graph using free monads and existentials by Alexander Granin
Transition graph using free monads and existentials
Alexander Granin
•
473 views
Software transactional memory. pure functional approach by Alexander Granin
Software transactional memory. pure functional approach
Alexander Granin
•
968 views
Вы не понимаете ФП / You don't understand FP by Alexander Granin
Вы не понимаете ФП / You don't understand FP
Alexander Granin
•
144 views
Functional "Life": parallel cellular automata and comonads by Alexander Granin
Functional "Life": parallel cellular automata and comonads
Alexander Granin
•
885 views
Functional microscope - Lenses in C++ by Alexander Granin
Functional microscope - Lenses in C++
Alexander Granin
•
1.7K views
Дизайн больших приложений в ФП by Alexander Granin
Дизайн больших приложений в ФП
Alexander Granin
•
761 views
Линзы - комбинаторная манипуляция данными by Alexander Granin
Линзы - комбинаторная манипуляция данными
Alexander Granin
•
389 views
Линзы - комбинаторная манипуляция данными (Dev2Dev) by Alexander Granin
Линзы - комбинаторная манипуляция данными (Dev2Dev)
Alexander Granin
•
483 views
О разработке десктопных приложений / About desktop development
1.
О разработке десктопных
приложений Александр Гранин graninas@gmail.com
2.
О себе ● Разработчик
в “Лаборатории Касперского” (C++, C#) ● Выпуск ИВТ-04, 2009 ● Хаскеллист, функциональный программист ● LambdaNsk - сообщество функциональных программистов ● Доклады: C++ User Group, Dev2Dev, DevDay, FPConf, LambdaNsk, … ● https://github.com/graninas
3.
План ● Архитектура десктопных
приложений ● Windows Presentation Foundation (WPF) ● Qt Quick, QML ● Вопросы реализации
4.
Архитектура десктопных приложений
5.
Desktop applications Presentation Layer (GUI) Business Logic Layer Data
Access Layer
6.
“Forms and Controls” VCL
(Delphi, C++ Builder) WinForms (C#, .NET) Qt Widgets (Qt, C++, crossplatform) ... Model - View - Controller (MVC) View Controller Model User Input Updates Modifiers
7.
WPF (C#, .NET) Qt
Quick (QML, C++, JavaScript) “Separated Presentation” View ViewModel Model Notifications Bindings Commands Model - View - ViewModel (MVVM)
8.
WPF Windows Presentation Foundation
10.
WPF (Windows Presentation
Foundation) XAML (.xaml) Code behind (.cs) ViewModel (.cs) Data Model (.cs) Services API (.cs) NotificationsData Bindings Model - View - ViewModel (MVVM)
11.
ViewModel (.cs) ViewModel (.cs) XAML
(.xaml) Code behind (.cs) XAML (.xaml) Code behind (.cs) WPF (Windows Presentation Foundation) Model - View - ViewModel (MVVM) XAML (.xaml) Code behind (.cs) ViewModel (.cs) Data Model (.cs) Services API (.cs) NotificationsData Bindings
12.
<WPF - Live
Coding>
13.
Qt Quick, QML Qt
Meta-Object Language
14.
ViewModel (.cs) ViewModel (.cs) XAML
(.xaml) Code behind (.cs) XAML (.xaml) Code behind (.cs) Qt Quick, QML (Qt Meta-Object Language) Model - View - ViewModel (MVVM) QML (.qml, JS) ViewModel (.cpp) Data Model (.cpp) Services API (.cpp) SignalsData Bindings
15.
<Qt Quick, QML
- Live Coding>
16.
Вопросы реализации
17.
Хороший код
18.
Очень хороший код ●
SOLID ● API ● Inversion of Control ● Unit testing ● Design Patterns
19.
SOLID - принципы
ООП-разработки ● Single responsibility principle ● Open/closed principle ● Liskov substitution principle ● Interface segregation principle ● Dependency inversion principle
20.
Спасибо за внимание! Александр
Гранин graninas@gmail.com
21.
Чуть больше о
C# ● Value Type vs Reference Type ● IEnumerable ● LINQ ● Lambdas
22.
Чуть больше о
C++ ● Const reference ● STL Containers ● <algorithm> ● Lambdas