Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

О разработке десктопных приложений / About desktop development

40 views

Published on

Лекция в ЗабГУ о разработке десктопных приложений

Published in: Technology
  • Be the first to comment

  • Be the first to like this

О разработке десктопных приложений / About desktop development

  1. 1. О разработке десктопных приложений Александр Гранин graninas@gmail.com
  2. 2. О себе ● Разработчик в “Лаборатории Касперского” (C++, C#) ● Выпуск ИВТ-04, 2009 ● Хаскеллист, функциональный программист ● LambdaNsk - сообщество функциональных программистов ● Доклады: C++ User Group, Dev2Dev, DevDay, FPConf, LambdaNsk, … ● https://github.com/graninas
  3. 3. План ● Архитектура десктопных приложений ● Windows Presentation Foundation (WPF) ● Qt Quick, QML ● Вопросы реализации
  4. 4. Архитектура десктопных приложений
  5. 5. Desktop applications Presentation Layer (GUI) Business Logic Layer Data Access Layer
  6. 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. 7. WPF (C#, .NET) Qt Quick (QML, C++, JavaScript) “Separated Presentation” View ViewModel Model Notifications Bindings Commands Model - View - ViewModel (MVVM)
  8. 8. WPF Windows Presentation Foundation
  9. 9. WPF (Windows Presentation Foundation) XAML (.xaml) Code behind (.cs) ViewModel (.cs) Data Model (.cs) Services API (.cs) NotificationsData Bindings Model - View - ViewModel (MVVM)
  10. 10. 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
  11. 11. <WPF - Live Coding>
  12. 12. Qt Quick, QML Qt Meta-Object Language
  13. 13. 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
  14. 14. <Qt Quick, QML - Live Coding>
  15. 15. Вопросы реализации
  16. 16. Хороший код
  17. 17. Очень хороший код ● SOLID ● API ● Inversion of Control ● Unit testing ● Design Patterns
  18. 18. SOLID - принципы ООП-разработки ● Single responsibility principle ● Open/closed principle ● Liskov substitution principle ● Interface segregation principle ● Dependency inversion principle
  19. 19. Спасибо за внимание! Александр Гранин graninas@gmail.com
  20. 20. Чуть больше о C# ● Value Type vs Reference Type ● IEnumerable ● LINQ ● Lambdas
  21. 21. Чуть больше о C++ ● Const reference ● STL Containers ● <algorithm> ● Lambdas

×