Компонентное ориентирование проектирования

Содержание

Слайд 2

План наступних лекцій

Інсрументи розробки серверних веб-застосувань
Огляд технології ASP.NET: веб-сайти, веб-застосування, веб-служби
Клас Page,

План наступних лекцій Інсрументи розробки серверних веб-застосувань Огляд технології ASP.NET: веб-сайти, веб-застосування,
його властивості та методи. Групи елементів керування. Серверні елементи керу-вання та елементи керування HTML
Відправка даних іншій сторінці. Керування станом у ASP.NET
Майстер-сторінка як шаблон веб-сторінки. Сторінка вмісту
Динамічне створення елементів керування. Користувацькі елементи керування

Слайд 3

Взаємодія клієнта та сервера

Отримання клієнтського запиту
Обробка запиту
Виконання серверного коду веб-застосування веб-сервером
Звернення до

Взаємодія клієнта та сервера Отримання клієнтського запиту Обробка запиту Виконання серверного коду
серверів баз данних (БД)
Звернення до веб-сервісів
Генерація відповіді
HTML, ресурси (зображення, відео тощо), браузерні скрипти
 Видача відповіді клієнту

Слайд 4

Клієнтські сценарії та застосування

Клієнтський сценарій виконується на комп'ютері-клієнті
Виконуються браузером
Зазвичай без взаємодії з

Клієнтські сценарії та застосування Клієнтський сценарій виконується на комп'ютері-клієнті Виконуються браузером Зазвичай
сервером
Написані на мові сценаріїв – JavaScript, VBScript
Інші типи програм, що можуть завантажуватись та виконуватися на боці клієнта:
Java-аплети
програмні компоненти ActiveX Controls
інтерактивні мультимедійні об’єкти Flash

Слайд 5

Серверні веб-застосування

Виконуються на сервері
Клієнт отримує лише результат
Поділ частин веб-застосування
Статичний контент сторінок
Елементи управління
Ресурси
Код

Серверні веб-застосування Виконуються на сервері Клієнт отримує лише результат Поділ частин веб-застосування
генерації динамічного контента
Робота з базами данних
Оформлення, дизайн
Механізми, що реалізують серверну частину обробки даних
Internet Server Application Programming Interface (ISAPI), Common Gateway Interface (CGI)
Мови (не обов’язково скриптові)
PHP, ASP, ASP.NET, JSP, Python тощо

Слайд 6

Статичні та динамічні веб-сторінки

Статичні сторінки - зберігаються на сайті у тому ж

Статичні та динамічні веб-сторінки Статичні сторінки - зберігаються на сайті у тому
вигляді, в якому передаються клієнту
Динамічні сторінки - перед відправкою клієнту проходять цикл обробки на сервері
Динамічне наповнення сторінки – це інформація, яка відрізняється від перегляду до перегляду і зміст якої залежить від того, кому вона призначена
Категорії технологій Web-розробки:
окремі застосування, що виконуються серверними викликами (напр., застосовується Perl у сценаріях CGI)
сценарії, що інтерпретуються серверним ресурсом (PHP, класичне середовище ASP)

Слайд 7

CGI-скрипти

CGI (Common Gateway Interface) – специфікація інтерфейсу взаємодії Web-сервера з зовнішніми прикладними

CGI-скрипти CGI (Common Gateway Interface) – специфікація інтерфейсу взаємодії Web-сервера з зовнішніми
програмами, яка забезпечує засоби створення динамічних Web-сторінок на основі даних, отриманих від користувача
CGI-скрипти або шлюзи - програми, написані у відповідності зі специфікацією CGI
CGI-програма завантажується у пам’ять Web-сервера для виконання деякої роботи, повертає результати та при завершенні видаляється
Недолік – погана масштабованість

Схема взаємодії CGI-шлюза

Слайд 8

ISAPI від Microsoft

ISAPI (Internet Server Application Programming Interface) – код DLL-бібліотеки весь

ISAPI від Microsoft ISAPI (Internet Server Application Programming Interface) – код DLL-бібліотеки
час знаходиться у пам'яті і для кожного запиту створює не процеси, а потоки виконання
Виконання в процесі IIS-сервера підвищує продуктивність і масштабованість

Слайд 9

Технологія ASP

ASP (Active Server Pages)
Підтримується ISAPI-розширенням сервера
Використовує скриптові мови
Код вбудований у HTML

Технологія ASP ASP (Active Server Pages) Підтримується ISAPI-розширенням сервера Використовує скриптові мови
у вигляді спеціальних тегів
Недоліки
заплутаний код
використання мов сценаріїв зумовлює низьку продуктивність
не підтримує багато можливостей ООП
неможливо повторно використовувати готові рішення в інших проектах

Слайд 10

Технологія ASP.NET

ASP.NET – частина технології .NET, що вико-ристовується для написання клієнт-серверних інтернет-застосувань
Основні

Технологія ASP.NET ASP.NET – частина технології .NET, що вико-ристовується для написання клієнт-серверних
риси
інтегрована з .NET Framework
вихідний код компілюється, а не інтерпретується
є багатомовною (C#, VB.NET, J# тощо)
виконується в середовищі (під управлінням) CLR (управління пам'яттю, автоматичне збирання сміття, безпека типів)
є об'єктно-орієнтованою
використовує бібліотеку класів .NET Framework
використовує технологію доступу до даних ADO.NET
підтримує різні типи браузеров
легко встановлюється та конфігурується

Слайд 11

Простори імен FCL

System

System.Data

System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Design

ADO

SQLTypes

SQL

XPath

XSLT

Runtime

InteropServices

Remoting

Serialization

Serialization

Configuration

SessionState

Caching

Security

Services

Description

Discovery

Protocols

UI

HtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.Forms

Design

ComponentModel

Простори імен FCL System System.Data System.Xml System.Web Globalization Diagnostics Configuration Collections Resources

Слайд 12

Архітектура Web-застосувань у ASP.NET

Типи Web-застосувань у Visual Studio
Web-сайти – модель проекту, що

Архітектура Web-застосувань у ASP.NET Типи Web-застосувань у Visual Studio Web-сайти – модель
використовує структуру каталогу
Web-застосування – модель проекту з використанням файлу проекту
Web-служби - компоненти веб-сервера, які клієнтське застосування може викликати, виконуючи HTTP-запити
серверні елементи керування AJAX
Для розробки програм можна використовувати
Visual Studio .NET
Visual Web Developer
текстовий редактор, за умови наявності доступу до серверу IIS
WebMatrix тощо

Слайд 13

Модель поділу коду представлення та коду реалізації

Веб-застосування (веб-сайт) складається з:
інформаційної частини
програмного коду
відомостей про

Модель поділу коду представлення та коду реалізації Веб-застосування (веб-сайт) складається з: інформаційної
конфігурацію
Варіанти організації Web-сторінок
весь код інформаційної частини та програмна частина зберігаються в одному файлі з розширенням .aspx
Web-сторінка розділяється на дві частини: Web-форму (міститься у файлі .aspx) та файл, що містить програмний код (файл з розширенням .cs)

Слайд 14

ASP.NET-сторінка при розділенні коду

Форма знаходиться у файлі WebForm1.aspx
Клас сторінки на мові C#

ASP.NET-сторінка при розділенні коду Форма знаходиться у файлі WebForm1.aspx Клас сторінки на
у файлі WebForm1.aspx.cs

Слайд 15

ASP.NET-сторінка з вбудованим кодом реалізації

ASP.NET-сторінка з вбудованим кодом реалізації

Слайд 16

Створення Web сайту

Створення Web сайту

Слайд 17

Форма, що генерується, допускається лише одна з атрибутом runat

Визуальне редагування форми

Файл форми

Директива Page

Форма, що генерується, допускається лише одна з атрибутом runat Визуальне редагування форми
– налаштуванняатрибутів сторінки (метаданих для компілятора)

Слайд 18

Простори імен – це розділи типів даних, що дозволяють зберігати типи даних

Простори імен – це розділи типів даних, що дозволяють зберігати типи даних
та функції в ієрархічній структурі

Базовий клас Page для усіх сторінок ASP.NET

Подія Load класу Page, виникає відразу після ініціа-лізації елементів форми

Код класу форми в окремому файлі

Надає доступ до класів та інтерфейсів для створення ASP.NET компонент і сторінок (Page, Controls)

Надає доступ до класів HttpRequest, HttpResponse

Слайд 19

Дизайн сторінки

Події елемента

Властивості елемента

Додає текст Web-елементу Label

Web-елемент TextBox

Web-елемент Button

Панель з палітрою елементів

Дизайн сторінки Події елемента Властивості елемента Додає текст Web-елементу Label Web-елемент TextBox
керування

Web-елемент Label

Слайд 20

Типовий сценарій взаємодії елементів Web-застосування з клієнтом

Типовий сценарій взаємодії елементів Web-застосування з клієнтом

Слайд 21

Клас Page. Його властивості та методи

Усі Web-сторінки (Web-форми) є екземплярами класу System.Web.UI.Page
Web-сторінка

Клас Page. Його властивості та методи Усі Web-сторінки (Web-форми) є екземплярами класу
є контейнером елементів керування

Слайд 22

Групи елементів керування

Серверні елементи керування HTML
HtmlAnchor (відповідає <а>), HtmlSelect (
Серверний елемент керування HTML
Атрибут runat дозволяє ASP.NET обробляти серверні елементи керування HTML та транслювати їх у екземпляри відповідного класу .NET

Слайд 25

Ієрархія серверних елементів керування HTML

HtmlInputControl - елементи керування введенням, що допускають взаємодію

Ієрархія серверних елементів керування HTML HtmlInputControl - елементи керування введенням, що допускають
з користувачем
HtmlContainerControl – будь-який HTML дескриптор

Слайд 26

Стандартні або серверні елементи керування Web

Прив'язані не до розмітки, а до функціональності,

Стандартні або серверні елементи керування Web Прив'язані не до розмітки, а до
яку потрібно забезпечити
Успадковують від класу System.Web.UI.WebControls.WebControl


Слайд 27

Ієрархія серверних елементів керування Web

Ієрархія серверних елементів керування Web

Слайд 28

Базові класи серверних елементів керування Web

Базові класи серверних елементів керування Web

Слайд 29

Відповіднності між елементами керування ASP.NET та тегами HTML

a test" ForeColor="red" BackColor="lightyellow" Width="250px" Font-Name="Verdana" Font-Bold="True" Font-Size="20" />

Елемент керування оголошується з використанням імені класу (TextBox) замість імені дескриптора HTML (input)
Вміст за промовчанням встановлюється за допомогою властивості Text, а не атрибуту value
Атрибути стилів встановлюються через прямі властивості замість груповання їх в одному атрибуті стилю

Слайд 30

Елемент керування Label

Опис елемента Label у файлі WebForm1.aspx:

Створення елемента Label прямо у

Елемент керування Label Опис елемента Label у файлі WebForm1.aspx: Створення елемента Label прямо у програмі:
програмі:

Слайд 31

Елемент керування TextBox

Файл WebForm1.aspx:

Файл WebForm1.aspx.cs:

Елемент керування TextBox Файл WebForm1.aspx: Файл WebForm1.aspx.cs:

Слайд 32

Елемент керування RadioButton

Файл WebForm1.aspx:

Файл WebForm1.aspx.cs:

Елемент керування RadioButton Файл WebForm1.aspx: Файл WebForm1.aspx.cs:

Слайд 33

Зміна складу сайту

Додати до проекту (сайту) форму, aspx-сторінку…

Код класу нової форми розташувати

Зміна складу сайту Додати до проекту (сайту) форму, aspx-сторінку… Код класу нової
у окремому файлі .aspx.cs

Нова форма буде сторінкою контенту для master-сторінки

Додати (створити) користувацький.asсx елемент керування

Додати .cs-файл для опису нового класу

Додати (створити) .css-файл стилів

Створити master-строрінку

Слайд 34

Використання MasterPage

Майстер-сторінка (master pages) – це шаблон сторінки, який може містити будь-які

Використання MasterPage Майстер-сторінка (master pages) – це шаблон сторінки, який може містити
елементи, допустимі для звичайної сторінки, а також програмний код.
Сторінка вмісту (content pages) – містить допустимі елементи керування, за допомогою яких визначає вміст, яким заповнюються спеціальні області майстер-сторінок

Слайд 35

Структура MasterPage

Структура MasterPage

Слайд 36

Приклад використання MasterPage

Приклад використання MasterPage

Слайд 37

Приклад використання MasterPage

Приклад використання MasterPage

Слайд 38

Приклад використання MasterPage

Приклад використання MasterPage

Слайд 39

Література

Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 3.5 с примерами на C#

Література Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 3.5 с примерами на C#
2008 и Silverlight 2 для профес-сионалов.: Пер. с англ. – М.: ООО "И.Д. Вильямс", 2009. – 1408 с.
Рихтер Дж. CLR via C#. Программиро-вание на платформе Microsoft .NET Framework 4.0 на языке C#. 3-е изд. – СПб.: Питер, 2012. – 928 с.
Троелсен Э. Язык программирования C# 5.0 и платформа .NET 4.5. 6-е изд., - М.: ООО "И.Д. Вильямс", 2013. - 1312 с.
Корисні ресурси
http://msdn.microsoft.com/ru-ru/library/
http://habrahabr.ru/post/165597/

Слайд 40

Дякую за увагу

Дякую за увагу

Слайд 41

Крос-платформне програмування Лекція 8 Керування станом у ASP.NET
09 квітня, 2014
Примітка: слайди лекції

Крос-платформне програмування Лекція 8 Керування станом у ASP.NET 09 квітня, 2014 Примітка:
підготовлені за матеріалами http://jskreator.narod.ru/proaspnet20cs/glance.htm

Слайд 42

Порівняння Windows- та Web-застосувань

Порівняння Windows- та Web-застосувань

Слайд 43

Керування станом у ASP.NET

HTTP – протокол без збереження інформації про стан (після

Керування станом у ASP.NET HTTP – протокол без збереження інформації про стан
першого веб-запиту клієнт відклю-чається від сервера і механізм ASP.NET очищає об'єкти сторінки)
Технології зберігання інформації між веб-запитами
стан перегляду або стан виду ViewState
рядок запиту
cookie
стан сеансу (Session)
використання об’єктів кешу- вання

Слайд 44

Колекція ViewState

Стан виду (ViewState) організований за принципом колекції типу словника у форматі

Колекція ViewState Стан виду (ViewState) організований за принципом колекції типу словника у
“ім'я-значення”
Web-елементи керування використовують стан виду за промовчанням
Можна додавати у колекцію власні дані, зокрема прості типи даних та спеціальні об’єкти
Кожен елемент індексується за допомогою унікального рядкового імені
Усі елементи колекції зберігаються у вигляді об'єктів узагальненого типу, тому для отримати значення елементу виконується перетворення
При спробі відшукати значення, якого немає у колек-ції, буде видано виключення NullReferenceException

Слайд 45

Зберігання колекції ViewState

Інформація стану виду зберігається як рядок у форматі Base64 у

Зберігання колекції ViewState Інформація стану виду зберігається як рядок у форматі Base64
прихованих полях вводу
Перетворення рядка у форматі Base64 у масив ASCII-символів

Слайд 46

Збереження об’єктів у стані виду

Щоб клас піддавався серіалізації, він повинен:
мати атрибут Serializable
усі

Збереження об’єктів у стані виду Щоб клас піддавався серіалізації, він повинен: мати
породжувані від нього класи теж повинні мати атрибут Serializable
усі індивідуальні змінні цього класу повинні мати типи даних, що піддаються серіалізації, а ті типи даних, що не піддаються серіалізації, повинні супроводжуватися атрибутом NonSerialized
Збереження класу BookPage у стані виду
Отримання класу BookPage зі стану виду
Серіалізация - процес перетворення об'єкту у потік байтів

Слайд 47

Використання стану виду

Стан виду краще не застосовувати:
для збереження критично важливих даних, можливість

Використання стану виду Стан виду краще не застосовувати: для збереження критично важливих
зміни яких користувачем повинна бути повністю виключена
для збереження інформації, яка буде використовувати-ся кількома сторінками
для збереження надзвичайно великого обсягу інформації, щоб це вплинуло на швидкість передачі даних сторінки
Відключення стану виду для всієї сторінки та усіх її елементів керування <%@Page Language="C#" EnableViewState="false" ... %>
Захист інформації стану виду
Використання хеш-коду
<%@Page EnableViewStateMAC="true" %>
Застосування функції шифрування
<%@Page ViewStateEncriptionMode="Always" %>

Слайд 48

Використання рядка запиту

Рядок запиту – частина URL-адреси, що знахо-диться після знаку питання
Відправка

Використання рядка запиту Рядок запиту – частина URL-адреси, що знахо-диться після знаку
декількох параметрів
Отримання результату

Слайд 49

Обмеження використання рядка запиту

Передача інформації у вигляді простих рядків, що містять лише

Обмеження використання рядка запиту Передача інформації у вигляді простих рядків, що містять
припустимі для URL-адреси символи (літери, цифри, спец. cимволи $, -, _, ., +, !, *, ’, (, ), ,)
Для неприпустимих символів використовувати URL-кодування
Інформація візуально доступна для користувача та будь-кого, хто працює в Інтернеті
Користувач може змінити рядок запиту і надати йому нові значення, які програма ніяк не очікує отримати і від яких вона не має захисту
Багато браузерів мають свої обмеження щодо довжини URL-адреси, тому нобхідно викону-вати перевірку на сумісність з браузерами

Слайд 50

Файли cookie

Файли cookie або cookie-набори – це невеликі файли, які створюються на

Файли cookie Файли cookie або cookie-набори – це невеликі файли, які створюються
жорсткому диску клієнта або, якщо вони є тимчасовими, у пам'яті Веб-браузера
Перед використанням слід імпортувати простір імен для роботи з відповідними типами
Встановити cookie-набір (зберігається до моменту закриття вікна браузера)
Отримання cookie-набору

Слайд 51

Об'єкт Request

Об'єкт Request

Слайд 52

Об'єкти Response

Об'єкти Response

Слайд 53

Порівняння опцій для керування станом

Порівняння опцій для керування станом

Слайд 54

Cтан сеанса

Особливості
Використовує заснованний на колекціях синтаксис
Дозволяє зберігати інформацію на одній сторінці, а

Cтан сеанса Особливості Використовує заснованний на колекціях синтаксис Дозволяє зберігати інформацію на
потім отримувати доступ до неї з іншої
Підтримує об’єкти будь-якого типу
Кожен клієнт, що отримує доступ до застосування, має свій сеанс та свою колекцію даних
Керування сеансом не є частиною HTTP-стандарта
Кожен сеанс має унікальний 120-бітний ідентифікатор, що передається між Web-сервером та клієнтом
Постачальники сеанса – зовнішні компоненти, які зберігають стан (дані) сеансу

Слайд 55

Архітектура стану сеанса у ASP.NET

Off – відключення функції керування станом сеанса для

Архітектура стану сеанса у ASP.NET Off – відключення функції керування станом сеанса
усіх сторінок у застосуванні
InProc – зберігання інформації у поточному домені застосування
StateServer – викорис-тання для керування станом окремої служби Windows
SqlServer – викорис-тання для зберігання даних сеансу бази даних SQL Server

Слайд 56

Об'єкт Session

Збереження об'єкта user у пам'яті сеансу Session["user"] = user;
Відновлення збереженого об'єкта user

Об'єкт Session Збереження об'єкта user у пам'яті сеансу Session["user"] = user; Відновлення
= (string) Session["user"];
Стан сеансу знищується у наступних випадках:
якщо користувач закриває браузер
якщо користувач отримує доступ до тієї ж сторінки через інше вікно браузера при збереженні доступу до Веб-сторінки з вихідного вікна браузера
після закінчення 20 хвилин з моменту останньої активності користувача
при явному завершенні сеансу з програмного коду за допомогою виклику методу

Слайд 57

Об'єкт Application

Стан застосування – дозво-ляє зберігати глобальні об'єкти, доступ до яких може

Об'єкт Application Стан застосування – дозво-ляє зберігати глобальні об'єкти, доступ до яких
отримати будь-який клієнт
Зберігає інформацію на сервері
Використовує синтаксис словаря

Слайд 58

Порівняння опцій для керування станом

Порівняння опцій для керування станом

Слайд 59

Запити сторінок ASP.NET

Запити сторінок ASP.NET

Слайд 60

Основні етапи процесу обробки ASP.NET

Ініціалізація середовища сторінки
Ініціалізація коду користувача
Перевірка достовірності (Validation)
Обробка подій

Основні етапи процесу обробки ASP.NET Ініціалізація середовища сторінки Ініціалізація коду користувача Перевірка
(Event handling)
Автоматичне зв'язування з даними
Очищення

Слайд 61

Директиви

Директиви - задають параметри, що викорис-товуються компіляторами сторінок і користу-вацьких елементів керування
Синтаксис

Директиви Директиви - задають параметри, що викорис-товуються компіляторами сторінок і користу-вацьких елементів
оголошення директив
<%@ [Directive] [Атрибут=значення]%>
<%@ [Directive] [Атрибут=значення] [Атрибут=значення]%>
Приклади
імпорт просторів імен на сторінці aspx
<%@ Import Namespace= "System.XML " %>
визначення властивостей сторінки, майстер-сторінки, користувацького елемента керування
<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMasterPage.master.cs" Inherits="MainMasterPage" %>
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

Слайд 62

Атрибути директиви @Page

Атрибути директиви @Page

Слайд 63

Література

Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 3.5 с примерами на C#

Література Мэтью Мак-Дональд, Марио Шпушта. Microsoft ASP.NET 3.5 с примерами на C#
2008 и Silverlight 2 для профес-сионалов.: Пер. с англ. – М.: ООО "И.Д. Вильямс", 2009. – 1408 с.
Рихтер Дж. CLR via C#. Программиро-вание на платформе Microsoft .NET Framework 4.0 на языке C#. 3-е изд. – СПб.: Питер, 2012. – 928 с.
Троелсен Э. Язык программирования C# 5.0 и платформа .NET 4.5. 6-е изд., - М.: ООО "И.Д. Вильямс", 2013. - 1312 с.
Корисні ресурси
http://msdn.microsoft.com/ru-ru/library/
http://habrahabr.ru/post/165597/
Имя файла: Компонентное-ориентирование-проектирования-.pptx
Количество просмотров: 114
Количество скачиваний: 0