Desktop приложения
Windows Forms

Александър Далемски
musashi.bg@gmail.com

Copyright © 2012 DAVID Holding Company
За какво ще говорим
• Често използвани софтуерни архитектури
• Desktop приложения
• Windows Forms

Copyright © 2012 DAVID Holding Company
Трислойна архитектура
•
•
•
•
•

Три слоя – за данни, бизнес и презентационен
Изолира всеки слой от реализацията на останалите
Улеснява тестването и поддръжката
Ограничава обхвата на нужните промени
Много широко разпространена

Copyright © 2012 DAVID Holding Company
Слой за достъп до данните
• Осъществява връзката с базата данни
• Структурира данните във вид, сходен с модела на
предметната област
• Изолира бизнес слоя от конкретната реализация на
съхранението на данните

Copyright © 2012 DAVID Holding Company
Бизнес слой
• Реализира цялата функционална логика на системата
• Използва данните от слоя за данни
• Предоставя на презентационния слой всичко
необходимо за взаимодействие с потребителя и
външни системи

Copyright © 2012 DAVID Holding Company
Презентационен слой
• Реализира взаимодействието с потребителя и външни
системи
• Не съдържа имплементация на функционалност
• Предоставя резултатите от бизнес слоя в удобен за
потребителя вид
• Позволява лесно правене на козметични промени,
незасягащи функционалността

Copyright © 2012 DAVID Holding Company
Клиент/сървър системи
•
•
•
•
•
•

Нееднородни
Обикновено един сървър
Много клиенти
Клиентът инициира връзката със сървъра
Централизиран достъп до данните
Често са с трислойна (или подобна) архитектура

Copyright © 2012 DAVID Holding Company
Тънки клиенти (thin clients)
• Съдържат само презентационния слой
• Минимизират уязвимостта на данните
• По-слаба зависимост от платформата и външни
библиотеки
• Ограничават възможностите за манипулиране на
данните

Copyright © 2012 DAVID Holding Company
Дебели клиенти (thick clients)
•
•
•
•
•

Съдържат част от бизнес слоя или целия бизнес слой
Може да съдържат част от слоя за данни
По-голяма свобода за манипулиране на данните
Повишен риск от пробив в сигурността на данните
По-силна зависимост от платформата и външни
библиотеки

Copyright © 2012 DAVID Holding Company
Peer-to-peer системи
•
•
•
•
•

Обикновено еднородни
Липса на централизираност
По-висока надеждност
По-ниска сигурност на данните
По-сложна реализация

Copyright © 2012 DAVID Holding Company
Desktop приложения
• Прозорци (форми)
• Самостоятелни процеси

Copyright © 2012 DAVID Holding Company
Desktop приложения – предимства
• Лесен достъп до ресурсите на операционната и
файловата система
• Лесно реализиране на сложно поведение на
потребителския интерфейс
• Удобни за дебели клиенти
• Очевиден избор за локални и peer-to-peer приложения

Copyright © 2012 DAVID Holding Company
Desktop приложения – недостатъци
• Зависимост от външни библиотеки
• Трудни за обновление клиенти
• Обикновено тясно свързани с платформата (изключения
– Java и др.)

Copyright © 2012 DAVID Holding Company
Прозорци
•
•
•
•
•

Видима област
Заглавна лента
Системни бутони
Фиксиран/променлив размер
Главен прозорец

Copyright © 2012 DAVID Holding Company
Контроли
•
•
•
•

Визуални компоненти
Контейнери
Йерархия от контроли
Потребителски контроли

Copyright © 2012 DAVID Holding Company
Събития
• Предизвикват се в определен момент от изпълнение на
програмата или като реакция на външно явление
• Позволяват изпълнението на код от програмиста през
обработчици на събитието

Copyright © 2012 DAVID Holding Company
Message Loop
•
•
•
•

Съобщения
Опашка за съобщения
Линейна обработка на съобщенията
Обработката на съобщение обикновено предизвиква
повдигане на събитие
• Програмно изпращане на съобщения

Copyright © 2012 DAVID Holding Company
Модални диалози
• Прозорци
• Ограничават достъпа до останалите прозорци
• Резултат от диалога

Copyright © 2012 DAVID Holding Company
Windows Forms
•
•
•
•

Част от .NET Framework
Managed desktop приложения
Обвивка и надграждане на Win32 API
Windows Forms Application проект

• System.Windows.Forms

Copyright © 2012 DAVID Holding Company
Форми
• Form

• Windows Form файлов шаблон
• Главна форма
• Show()

Copyright © 2012 DAVID Holding Company
Форми – свойства
•
•
•
•
•
•
•
•

Size
Text
StartPosition
FormBorderStyle
MinimizeBox, MaximizeBox
ShowInTaskbar
ShowIcon
AcceptButton, CancelButton

Copyright © 2012 DAVID Holding Company
Контроли
•
•
•
•
•
•
•
•
•
•
•
•
•

Label
TextBox
ListBox
ComboBox
CheckBox
RadioButton
Button
ListView
TreeView
MonthCalendar
DateTimePicker
RichTextBox
WebBrowser

Copyright © 2012 DAVID Holding Company
Контроли – свойства
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Parent
Size
Location
Margin
Dock
Anchor
Text
Enabled
Visible
ForeColor
BackColor
Font
TabIndex
Tag

Copyright © 2012 DAVID Holding Company
Контейнери
•
•
•
•
•
•

Panel
GroupBox
FlowLayoutPanel
SplitContainer
TabControl
TableLayoutPanel

Copyright © 2012 DAVID Holding Company
Събития
• Всяка форма и контрола предоставя широк набор от
събития
• Закачане към събития през визуалния редактор
• Делегати

Copyright © 2012 DAVID Holding Company
Модални диалози
•
•
•
•

ShowModal()
DialogResult
Form.DialogResult
Button.DialogResult

Copyright © 2012 DAVID Holding Company
Data Binding
• Автоматично зареждане на списъци в списъчни
контроли
• ListBox, ComboBox
• DataSource – IList, IListSource
• DisplayMember
• ValueMember
• SelectedValue

Copyright © 2012 DAVID Holding Company
Полезни връзки
• .NET Desktop Applications http://windowsclient.net/learn/
• Windows Forms - http://msdn.microsoft.com/enus/library/dd30h2yb%28v=vs.100%29.aspx

Copyright © 2012 DAVID Holding Company
Благодаря за вниманието!
• Въпроси?
• musashi.bg@gmail.com

Copyright © 2012 DAVID Holding Company

Курс по програмиране за напреднали (2012) - 4. Desktop приложения. Windows Forms