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

29
Copyright © 2012 DAVID Holding Company Desktop приложения Windows Forms Александър Далемски [email protected]

description

Занятие №4 на курса по програмиране за напреднали (2012) провеждан от ДАВИД академия в гр.Казанлък. Включва темите: - Desktop приложения - Windows Forms

Transcript of Курс по програмиране за напреднали (2012) - 4. Desktop...

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

Copyright © 2012 DAVID Holding Company

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

Александър Далемски[email protected]

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

Copyright © 2012 DAVID Holding Company

За какво ще говорим

• Често използвани софтуерни архитектури• Desktop приложения• Windows Forms

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

Copyright © 2012 DAVID Holding Company

Трислойна архитектура

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

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

Copyright © 2012 DAVID Holding Company

Слой за достъп до данните

• Осъществява връзката с базата данни• Структурира данните във вид, сходен с модела на

предметната област• Изолира бизнес слоя от конкретната реализация на

съхранението на данните

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

Copyright © 2012 DAVID Holding Company

Бизнес слой

• Реализира цялата функционална логика на системата• Използва данните от слоя за данни• Предоставя на презентационния слой всичко

необходимо за взаимодействие с потребителя и външни системи

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

Copyright © 2012 DAVID Holding Company

Презентационен слой

• Реализира взаимодействието с потребителя и външни системи

• Не съдържа имплементация на функционалност• Предоставя резултатите от бизнес слоя в удобен за

потребителя вид• Позволява лесно правене на козметични промени,

незасягащи функционалността

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

Copyright © 2012 DAVID Holding Company

Клиент/сървър системи

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

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

Copyright © 2012 DAVID Holding Company

Тънки клиенти (thin clients)

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

библиотеки• Ограничават възможностите за манипулиране на

данните

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

Copyright © 2012 DAVID Holding Company

Дебели клиенти (thick clients)

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

библиотеки

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

Copyright © 2012 DAVID Holding Company

Peer-to-peer системи

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

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

Copyright © 2012 DAVID Holding Company

Desktop приложения

• Прозорци (форми)• Самостоятелни процеси

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

Copyright © 2012 DAVID Holding Company

Desktop приложения – предимства

• Лесен достъп до ресурсите на операционната и файловата система

• Лесно реализиране на сложно поведение на потребителския интерфейс

• Удобни за дебели клиенти• Очевиден избор за локални и peer-to-peer приложения

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

Copyright © 2012 DAVID Holding Company

Desktop приложения – недостатъци

• Зависимост от външни библиотеки• Трудни за обновление клиенти• Обикновено тясно свързани с платформата (изключения

– Java и др.)

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

Copyright © 2012 DAVID Holding Company

Прозорци

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

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

Copyright © 2012 DAVID Holding Company

Контроли

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

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

Copyright © 2012 DAVID Holding Company

Събития

• Предизвикват се в определен момент от изпълнение на програмата или като реакция на външно явление

• Позволяват изпълнението на код от програмиста през обработчици на събитието

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

Copyright © 2012 DAVID Holding Company

Message Loop

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

повдигане на събитие• Програмно изпращане на съобщения

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

Copyright © 2012 DAVID Holding Company

Модални диалози

• Прозорци• Ограничават достъпа до останалите прозорци• Резултат от диалога

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

Copyright © 2012 DAVID Holding Company

Windows Forms

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

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

Copyright © 2012 DAVID Holding Company

Форми

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

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

Copyright © 2012 DAVID Holding Company

Форми – свойства

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

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

Copyright © 2012 DAVID Holding Company

Контроли

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

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

Copyright © 2012 DAVID Holding Company

Контроли – свойства

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

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

Copyright © 2012 DAVID Holding Company

Контейнери

• Panel• GroupBox• FlowLayoutPanel• SplitContainer• TabControl• TableLayoutPanel

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

Copyright © 2012 DAVID Holding Company

Събития

• Всяка форма и контрола предоставя широк набор от събития

• Закачане към събития през визуалния редактор• Делегати

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

Copyright © 2012 DAVID Holding Company

Модални диалози

• ShowModal()• DialogResult• Form.DialogResult• Button.DialogResult

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

Copyright © 2012 DAVID Holding Company

Data Binding

• Автоматично зареждане на списъци в списъчни контроли

• ListBox, ComboBox• DataSource – IList, IListSource• DisplayMember• ValueMember• SelectedValue

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

Copyright © 2012 DAVID Holding Company

Полезни връзки

• .NET Desktop Applications - http://windowsclient.net/learn/

• Windows Forms - http://msdn.microsoft.com/en-us/library/dd30h2yb%28v=vs.100%29.aspx

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

Copyright © 2012 DAVID Holding Company

Благодаря за вниманието!

• Въпроси?• [email protected]