25
Основи Веб програмування + ASP.NET

ASP.Net basics

Embed Size (px)

Citation preview

Page 1: ASP.Net basics

Основи Веб програмування + ASP.NET

Page 2: ASP.Net basics

Що таке веб програмування

• Це так як десктоп, але веб.• Важливо розуміти різницю між серверною

частиною та клієнтською.

Page 3: ASP.Net basics

Що таке веб сервер

• IIS• Apache• …

Page 4: ASP.Net basics

Навіщо веб браузер

Page 5: ASP.Net basics

Http protocol

Hypertext Transfer Protocol:

Request types:– GET (дані передаються у адресі)– POST (дані передаються у тілі запиту)

Page 6: ASP.Net basics

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>

Page 7: ASP.Net basics

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; }

Page 8: ASP.Net basics

CSS селектори

Селектори:

# - доступ до елементу за ІД. – іменований стиль<tag name> - доступ до всіх елементів даного типу<tag name>:<псевдоклас> - доступ до елементу з певною властивістю

Page 9: ASP.Net basics

JavaScript

Мова для керування виконанням клієнтських сценаріїв.

Page 10: ASP.Net basics

IISВеб сервер на якому можна розміщувати ASP.NET веб сайти та інші.

Має вбудовані можливості: - Аутентифікації- Кешування- Стиснення контенту- Перенаправлення запитів- Балансування нагрузок між серверами- WebFarms- Управління пулом аплікацій

Page 11: ASP.Net basics

Що таке ASP.NETASP.NET – технологія для створення веб сайтів\веб сервісів від компанії Microsoft.

Майкрософт прагнули зробити програмування під веб максимально подібним до програмування під віндовс.

Код може компілюватися при першому зверненні до сайту.

Page 12: ASP.Net basics

ASP.NET Page

<%@ 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/xhtml1-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>

Складається з коду розмітки, та code-behind класу – обробнику.

Файл розмітки містить HTML + asp:<controlName>

Page 13: ASP.Net basics

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) { } }}

Page 14: ASP.Net basics

ASP.NET ControlsЕлементи управління дуже подібні до Windows forms:

<asp:Label…<asp:Button….

Кожному asp.net елементу обов’язково вказувати наступні поля:

- ID – назва елементу (аналог Name у WF)- runat=“server” – це означає що це серверний контрол

Page 15: ASP.Net basics

Що таке MasterPageMasterPage – це «шаблон» сторінки, використовуючи його ми можемо позбутися дублювання код і верстки для різних сторінок.

Page 16: ASP.Net basics

Не використовуйте private fields на сторінках для зберігання інформації між запитами до

сторінки.

Застереження

Page 17: ASP.Net basics

Що таке ViewState

ViewState – це KeyValue колекція яка при кожному запиті до сторінки передається між клієнтом та сервером.

Використовується для зберігання проміжних данних.

Дані зберігаються закодовані у hidden полі __VIEWSTATE.

Дуже часто для підвищення продуктивності відключаються це поле.

Page 18: ASP.Net basics

Що таке Session

Session – це KeyValue колекція яка зберігається на сервері для кожного користувача окремо.

Можемо зберігати проміжну інформацію.

Більш захищене сховище а ніж ViewState.

Якщо у вас є ймовірність того що сайт буде у так званій WebFarm то Session або не використовують або передають управління сесіями SQL серверу.

Таймаут сесії за замовчуванням 30 хвилин.

Page 19: ASP.Net basics

ASP.Net Page LifeCyclePreInit – створюються або перестворюються динамічні контроли, встановлюється динамічно мастер пейдж, та тема.

Init – викликається після того як всі контроли створені і мастер пейдж встановлений. Тут ви можете до-ініціалізовувати контроли.

InitComplete – викликається в кінці ініціалізації сторінки. Можна використовувати для внесення змін у ViewState.

Load – тут викликається метод OnLoad сторінки. Тут ви можете змінювати контроли, встановлювати з’єднання з базою данних і т.д.

ControlEvents – оброблення подій викликаних контролами (Click, TextChanged …)

Render – це не подія, це завершальний крок відображення сторінки.

Unload – викликається для всіх контролів і тоді для сторінки. Використовують для очищення.

Page 20: ASP.Net basics

Що таке PostBack

PostBack – це назва процесу відправлення сторінки для обробки на сервер.

PostBack – є аналогом form submit.

Перевірити чи дана загрузка сторінки є PostBack – мона за допомогою IsPostBack властивості сторінки.

Якщо у вас є наприклад DropDownList і ви хочете щоб після вибору значення автоматично відсилалося на сервер – просто поставте AutoPostBack = true

Page 21: ASP.Net basics

Web Application

Усі static об’єкти є спільними для всіх користувачів.

Ініціалізуються static об‘єкти при старті аплікації на веб сервері. Знищуються – при зупинці роботи.

Всі можливі маніпуляції з веб сайтом у цілому можна здійснювати за допомогою подій, а підписуватися на них можна у файлі Global.asax

Page 22: ASP.Net basics

Що таке Global.asax

Page 23: ASP.Net basics

Робота з 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); - передача файлу на клієнт

Page 24: ASP.Net basics

Робота з HttpServerUtilityPage.Server – об’єкт сторінки, для полегшення роботи з даними на сервері.

Server.Transfer(url) – аналогічно до редірект, тільки УРЛ залишається не змінним.

Server.HtmlEncode(string) – кодування HTML стрічки. (позбавлення спец символів для HTML)

Server.HtmlDecode(string) – розкодування HTML стрічки.

Page 25: ASP.Net basics

Що таке web.config

Web.config це конфігураційний файл веб аплікації.

Кожний рівень в ІІС має свій конфігураційний файл.

Конфігураційні файли мають ієрархічну структуру, та ті що лежать нижче – перекривають верхні.

Конфігураційний файл містить секції:- ConnectionStrings- AppSettings- Authentication- ...