SlideShare a Scribd company logo
Основи Веб програмування
+ ASP.NET
Що таке веб програмування
• Це так як десктоп, але веб.
• Важливо розуміти різницю між серверною
частиною та клієнтською.
Що таке веб сервер
• IIS
• Apache
• …
Навіщо веб браузер
Http protocol
Hypertext Transfer Protocol:
Request types:
– GET (дані передаються у адресі)
– POST (дані передаються у тілі запиту)
–…
HTML
<!doctype HTML public "//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Hello world</title>
</head>
<body>
Hello world!
</body>
</html>
CSS
Каскадні таблиці стилів – спеціальна мова налаштування зовнішнього
вигляду HTML елементів.
p { font-family: Verdana, sans-serif; }
h2 { font-size: 110%; color: red; background: white; }
.note { color: red; background: yellow; font-weight: bold; }
#paragraph1 { margin: 0; }
a:hover { text-decoration: none; }
JavaScript
Мова для керування виконанням клієнтських сценаріїв.
IIS
Веб сервер на якому можна розміщувати ASP.NET веб сайти та інші.
Має вбудовані можливості:
- Аутентифікації
- Кешування
- Стиснення контенту
- Перенаправлення запитів
- Балансування нагрузок між серверами
- WebFarms
- Управління пулом аплікацій
Що таке ASP.NET
ASP.NET – технологія для створення веб сайтіввеб сервісів від компанії
Microsoft.
Код може компілюватися при першому зверненні до сайту.

ASP.NET Web
Forms

WCF

ASP.NET MVC

ASP.NET Web
Services (asmx)
Application lifecycle

Отримується запит до
аплікації

BeginRequest ->
AuthenticateRequest->
AuthorizeRequest ->
… ->
EndRequest

Отримується перший
запит до аплікації

Створюються відповідні
Http об’єкти

•Створюється
ApplicationManager,
HostingEnvironment
•Компілюється код з App_Code

•Створюються HttpContext,
HttpRequest, HttpResponse

Запит обробляється за
допомогою
HttpApplication

HttpApplication
створюється та
присвоюється запиту.

http://msdn.microsoft.com/en-us/library/bb470252.aspx
Web Application
Усі static об’єкти є спільними для всіх користувачів.
Ініціалізуються static об‘єкти при старті аплікації на веб сервері. Знищуються –
при зупинці роботи.
Всі можливі маніпуляції з веб сайтом у цілому можна здійснювати за
допомогою подій, а підписуватися на них можна у файлі Global.asax
Що таке Global.asax
IHttpModule
HttpModule – це обробник HTTP запитів який
обробляє всі запити до сайту перед їх
безпосереднім виконанням.
IHttpHandler
HttpHandler - це обробник HTTP запитів який
обробляє певний тип запитів.
Що таке web.config
Web.config це конфігураційний файл веб аплікації.
Кожний рівень в ІІС має свій конфігураційний файл.
Конфігураційні файли мають ієрархічну структуру, та ті що лежать нижче –
перекривають верхні.

Конфігураційний файл містить секції:
- ConnectionStrings
- AppSettings
- Authentication
- ...
ASP.NET Page
Складається з коду розмітки, та code-behind класу – обробнику.
Файл розмітки містить HTML + asp:<controlName>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication1.WebForm1" %>
<!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml
1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lblHello" Text="Hello" runat="server" />
</div>
</form>
</body>
</html>
ASP.NET Page
Складається з коду розмітки, та code-behind класу – обробнику.
Code-behind клас містить обробник всіх подій сторінки. Написаний на C#

namespace WebApplication1
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
ASP.NET Controls
Елементи управління дуже подібні до Windows forms:
<asp:Label…
<asp:Button
….

Кожному asp.net елементу обов’язково вказувати наступні поля:
- ID – назва елементу (аналог Name у WF)
- runat=“server” – це означає що це серверний контрол
UpdatePanel
• Дозволяє оновлювати частини сторінки
незалежно від решти (AJAX)
• Asynchronous JavaScript and XML
• Усуває необхідність перевантаження
(reload) всієї сторінки
• Не вимагає знання JavaScript
• На формі повинен бути ScriptManager
Що таке MasterPage
MasterPage – це «шаблон» сторінки, використовуючи його ми можемо
позбутися дублювання код і верстки для різних сторінок.
Що таке PostBack
PostBack – це назва процесу відправлення сторінки для обробки на сервер.
PostBack – є аналогом form submit.
Перевірити чи дана загрузка сторінки є PostBack – мона за допомогою
IsPostBack властивості сторінки.
Якщо у вас є наприклад DropDownList і ви хочете щоб після вибору значення
автоматично відсилалося на сервер – просто поставте AutoPostBack = true
Застереження

Не використовуйте private fields на
сторінках для зберігання інформації
між запитами до сторінки.
Що таке ViewState
ViewState – це KeyValue колекція яка при кожному запиті до сторінки
передається між клієнтом та сервером.
Використовується для зберігання проміжних данних.
Дані зберігаються закодовані у hidden полі __VIEWSTATE.
Дуже часто для підвищення продуктивності відключаються це поле.
Що таке Session
Session – це KeyValue колекція яка зберігається на сервері для кожного
користувача окремо.
Можемо зберігати інформацію мій викликами сервера.
Більш захищене сховище а ніж ViewState.
Якщо у вас є ймовірність того що сайт буде у так званій WebFarm то
Session або не використовують або передають управління сесіями SQL
серверу.
Таймаут сесії за замовчуванням 30 хвилин.
ASP.Net Page LifeCycle
PreInit – створюються або перестворюються динамічні контроли,
встановлюється динамічно мастер пейдж, та тема.
Init – викликається після того як всі контроли створені і мастер пейдж
встановлений. Тут ви можете до-ініціалізовувати контроли.
InitComplete – викликається в кінці ініціалізації сторінки. Можна
використовувати для внесення змін у ViewState.

Load – тут викликається метод OnLoad сторінки. Тут ви можете змінювати
контроли, встановлювати з’єднання з базою данних і т.д.
ControlEvents – оброблення подій викликаних контролами (Click,
TextChanged …)

Render – це не подія, це завершальний крок відображення сторінки.
Unload – викликається для всіх контролів і тоді для сторінки.
Використовують для очищення.
Робота з HttpContext
Клас для роботи з запитом від користувача: HttpContext.Current.Request
HttpContext.Current.Request.QueryString – робота з GET параметрами
HttpContext.Current.Request.InputStream – робота з тілом POST
HttpContext.Current.Request.Headers – заголовки запиту
Клас для роботи з відповіддю до користувача: HttpContext.Current.Response
HttpContext.Current.Response.Redirect(url); - перенаправлення сторінки
HttpContext.Current.Response.TransmitFile(fileName); - передача файлу на клієнт
Робота з HttpServerUtility
Page.Server – об’єкт сторінки, для полегшення роботи з даними на сервері.
Server.Transfer(url) – аналогічно до редірект, тільки УРЛ залишається не
змінним.
Server.HtmlEncode(string) – кодування HTML стрічки. (позбавлення спец
символів для HTML)
Server.HtmlDecode(string) – розкодування HTML стрічки.
HTTP sniffers
• Fiddler – дозволяє логувати HTTP трафік

More Related Content

PPTX
07 Database Access
PPTX
Windows service
PPTX
PPTX
PPTX
Version control
PPTX
.NET Platform. C# Basics
PPTX
11 web services
PPTX
Web service lecture
07 Database Access
Windows service
Version control
.NET Platform. C# Basics
11 web services
Web service lecture

What's hot (20)

PPTX
G rpc lection1_theory_bkp2
PPTX
Advanced styles
PPTX
Aspnet core
PPTX
Advanced c sharp part 3
PPTX
ASP.Net basics
PPTX
NoSQL basics
PPTX
Data Structures
PPTX
Angular. presentation
PDF
Xdebug (ukr)
PDF
iPhone Objective-C Development (ukr) (2009)
PDF
Lecture 201 - Introduction to MySQL
PPTX
12 Architecture
PPTX
sql introduction
PPTX
08 Exceptions and AOP
PDF
Lecture 105 - Relational data model
PDF
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
PPTX
Wcf module 3.3
PPTX
Wcf module 3.1
PPTX
Wcf module 2
G rpc lection1_theory_bkp2
Advanced styles
Aspnet core
Advanced c sharp part 3
ASP.Net basics
NoSQL basics
Data Structures
Angular. presentation
Xdebug (ukr)
iPhone Objective-C Development (ukr) (2009)
Lecture 201 - Introduction to MySQL
12 Architecture
sql introduction
08 Exceptions and AOP
Lecture 105 - Relational data model
12 - gradle. evoliutsiia system avtomatychnoi zbirky - sviatoslav babych - it...
Wcf module 3.3
Wcf module 3.1
Wcf module 2
Ad

Similar to 10 asp.net (20)

PPTX
ASP.Net Core Services
PPTX
PDF
вашенюк
PDF
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
PDF
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
PPT
Lec10 11 ado-net
PPTX
HTML.pptx
PPT
Lec12 користувацькi елементи керування ed
PPT
Flex 4 чи Html 5
PDF
WordPress meetup Kyiv - Starting theme
PPTX
Валідація те збереження даних форм..pptx
PPT
Lec11 користувацькi елементи керування
PPTX
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
PPTX
ASP.Net part 2
PPTX
"How we optimized our product without paid solutions", Dmytro Nemesh
PPTX
Html5 - ready yet?(ukr)
PDF
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
PPT
Порівняння Drupal та Typo3
PPT
порівняння Drupal та Typo3
ASP.Net Core Services
вашенюк
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
Module_01.pdf (Модуль 1. Вступ до вебтехнологій. Структура HTML. Форматуванн...
Lec10 11 ado-net
HTML.pptx
Lec12 користувацькi елементи керування ed
Flex 4 чи Html 5
WordPress meetup Kyiv - Starting theme
Валідація те збереження даних форм..pptx
Lec11 користувацькi елементи керування
QA Fest 2016. Яна Кокряшкіна. Паралельний запуск автоматизованих тестів за до...
ASP.Net part 2
"How we optimized our product without paid solutions", Dmytro Nemesh
Html5 - ready yet?(ukr)
"Laravel Tips & Tricks - 7 Steps to Dramatically Improve Performance", Yehor ...
Порівняння Drupal та Typo3
порівняння Drupal та Typo3
Ad

More from eleksdev (19)

PPTX
Lecture android best practices
PPTX
Communication in android
PPTX
Hello android world
PPTX
Android location and sensors API
PPTX
Lecture java basics
PPTX
Frontend basics
PPTX
Css animation, html5 api
PPTX
Improving rpc bkp
PPTX
G rpc lection1
PPTX
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
PPTX
SDLC. QA Role
PPTX
SDLC. UX Role
PPTX
SDLC. PM Role
PPTX
SDLC. BA Role
PPTX
tsql
PPTX
Sql 04n edited
PPTX
SQL Grouping, Joins
PPTX
SQL: Indexes, Select operator
PPTX
If unit2 summary
Lecture android best practices
Communication in android
Hello android world
Android location and sensors API
Lecture java basics
Frontend basics
Css animation, html5 api
Improving rpc bkp
G rpc lection1
Continuous Delivery concept overview. Continuous Integration Systems. DevOps ...
SDLC. QA Role
SDLC. UX Role
SDLC. PM Role
SDLC. BA Role
tsql
Sql 04n edited
SQL Grouping, Joins
SQL: Indexes, Select operator
If unit2 summary

10 asp.net

  • 2. Що таке веб програмування • Це так як десктоп, але веб. • Важливо розуміти різницю між серверною частиною та клієнтською.
  • 3. Що таке веб сервер • IIS • Apache • …
  • 5. Http protocol Hypertext Transfer Protocol: Request types: – GET (дані передаються у адресі) – POST (дані передаються у тілі запиту) –…
  • 6. HTML <!doctype HTML public "//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Hello world</title> </head> <body> Hello world! </body> </html>
  • 7. CSS Каскадні таблиці стилів – спеціальна мова налаштування зовнішнього вигляду HTML елементів. p { font-family: Verdana, sans-serif; } h2 { font-size: 110%; color: red; background: white; } .note { color: red; background: yellow; font-weight: bold; } #paragraph1 { margin: 0; } a:hover { text-decoration: none; }
  • 8. JavaScript Мова для керування виконанням клієнтських сценаріїв.
  • 9. IIS Веб сервер на якому можна розміщувати ASP.NET веб сайти та інші. Має вбудовані можливості: - Аутентифікації - Кешування - Стиснення контенту - Перенаправлення запитів - Балансування нагрузок між серверами - WebFarms - Управління пулом аплікацій
  • 10. Що таке ASP.NET ASP.NET – технологія для створення веб сайтіввеб сервісів від компанії Microsoft. Код може компілюватися при першому зверненні до сайту. ASP.NET Web Forms WCF ASP.NET MVC ASP.NET Web Services (asmx)
  • 11. Application lifecycle Отримується запит до аплікації BeginRequest -> AuthenticateRequest-> AuthorizeRequest -> … -> EndRequest Отримується перший запит до аплікації Створюються відповідні Http об’єкти •Створюється ApplicationManager, HostingEnvironment •Компілюється код з App_Code •Створюються HttpContext, HttpRequest, HttpResponse Запит обробляється за допомогою HttpApplication HttpApplication створюється та присвоюється запиту. http://msdn.microsoft.com/en-us/library/bb470252.aspx
  • 12. Web Application Усі static об’єкти є спільними для всіх користувачів. Ініціалізуються static об‘єкти при старті аплікації на веб сервері. Знищуються – при зупинці роботи. Всі можливі маніпуляції з веб сайтом у цілому можна здійснювати за допомогою подій, а підписуватися на них можна у файлі Global.asax
  • 14. IHttpModule HttpModule – це обробник HTTP запитів який обробляє всі запити до сайту перед їх безпосереднім виконанням.
  • 15. IHttpHandler HttpHandler - це обробник HTTP запитів який обробляє певний тип запитів.
  • 16. Що таке web.config Web.config це конфігураційний файл веб аплікації. Кожний рівень в ІІС має свій конфігураційний файл. Конфігураційні файли мають ієрархічну структуру, та ті що лежать нижче – перекривають верхні. Конфігураційний файл містить секції: - ConnectionStrings - AppSettings - Authentication - ...
  • 17. ASP.NET Page Складається з коду розмітки, та code-behind класу – обробнику. Файл розмітки містить HTML + asp:<controlName> <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> <!DOCTYPE html PUBLIC "//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml 1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Label ID="lblHello" Text="Hello" runat="server" /> </div> </form> </body> </html>
  • 18. ASP.NET Page Складається з коду розмітки, та code-behind класу – обробнику. Code-behind клас містить обробник всіх подій сторінки. Написаний на C# namespace WebApplication1 { public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } } }
  • 19. ASP.NET Controls Елементи управління дуже подібні до Windows forms: <asp:Label… <asp:Button …. Кожному asp.net елементу обов’язково вказувати наступні поля: - ID – назва елементу (аналог Name у WF) - runat=“server” – це означає що це серверний контрол
  • 20. UpdatePanel • Дозволяє оновлювати частини сторінки незалежно від решти (AJAX) • Asynchronous JavaScript and XML • Усуває необхідність перевантаження (reload) всієї сторінки • Не вимагає знання JavaScript • На формі повинен бути ScriptManager
  • 21. Що таке MasterPage MasterPage – це «шаблон» сторінки, використовуючи його ми можемо позбутися дублювання код і верстки для різних сторінок.
  • 22. Що таке PostBack PostBack – це назва процесу відправлення сторінки для обробки на сервер. PostBack – є аналогом form submit. Перевірити чи дана загрузка сторінки є PostBack – мона за допомогою IsPostBack властивості сторінки. Якщо у вас є наприклад DropDownList і ви хочете щоб після вибору значення автоматично відсилалося на сервер – просто поставте AutoPostBack = true
  • 23. Застереження Не використовуйте private fields на сторінках для зберігання інформації між запитами до сторінки.
  • 24. Що таке ViewState ViewState – це KeyValue колекція яка при кожному запиті до сторінки передається між клієнтом та сервером. Використовується для зберігання проміжних данних. Дані зберігаються закодовані у hidden полі __VIEWSTATE. Дуже часто для підвищення продуктивності відключаються це поле.
  • 25. Що таке Session Session – це KeyValue колекція яка зберігається на сервері для кожного користувача окремо. Можемо зберігати інформацію мій викликами сервера. Більш захищене сховище а ніж ViewState. Якщо у вас є ймовірність того що сайт буде у так званій WebFarm то Session або не використовують або передають управління сесіями SQL серверу. Таймаут сесії за замовчуванням 30 хвилин.
  • 26. ASP.Net Page LifeCycle PreInit – створюються або перестворюються динамічні контроли, встановлюється динамічно мастер пейдж, та тема. Init – викликається після того як всі контроли створені і мастер пейдж встановлений. Тут ви можете до-ініціалізовувати контроли. InitComplete – викликається в кінці ініціалізації сторінки. Можна використовувати для внесення змін у ViewState. Load – тут викликається метод OnLoad сторінки. Тут ви можете змінювати контроли, встановлювати з’єднання з базою данних і т.д. ControlEvents – оброблення подій викликаних контролами (Click, TextChanged …) Render – це не подія, це завершальний крок відображення сторінки. Unload – викликається для всіх контролів і тоді для сторінки. Використовують для очищення.
  • 27. Робота з HttpContext Клас для роботи з запитом від користувача: HttpContext.Current.Request HttpContext.Current.Request.QueryString – робота з GET параметрами HttpContext.Current.Request.InputStream – робота з тілом POST HttpContext.Current.Request.Headers – заголовки запиту Клас для роботи з відповіддю до користувача: HttpContext.Current.Response HttpContext.Current.Response.Redirect(url); - перенаправлення сторінки HttpContext.Current.Response.TransmitFile(fileName); - передача файлу на клієнт
  • 28. Робота з HttpServerUtility Page.Server – об’єкт сторінки, для полегшення роботи з даними на сервері. Server.Transfer(url) – аналогічно до редірект, тільки УРЛ залишається не змінним. Server.HtmlEncode(string) – кодування HTML стрічки. (позбавлення спец символів для HTML) Server.HtmlDecode(string) – розкодування HTML стрічки.
  • 29. HTTP sniffers • Fiddler – дозволяє логувати HTTP трафік