Upload
victor-matyushevskyy
View
914
Download
1
Embed Size (px)
Citation preview
Основи Веб програмування + 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; }
CSS селектори
Селектори:
# - доступ до елементу за ІД. – іменований стиль<tag name> - доступ до всіх елементів даного типу<tag name>:<псевдоклас> - доступ до елементу з певною властивістю
JavaScript
Мова для керування виконанням клієнтських сценаріїв.
IISВеб сервер на якому можна розміщувати ASP.NET веб сайти та інші.
Має вбудовані можливості: - Аутентифікації- Кешування- Стиснення контенту- Перенаправлення запитів- Балансування нагрузок між серверами- WebFarms- Управління пулом аплікацій
Що таке ASP.NETASP.NET – технологія для створення веб сайтів\веб сервісів від компанії Microsoft.
Майкрософт прагнули зробити програмування під веб максимально подібним до програмування під віндовс.
Код може компілюватися при першому зверненні до сайту.
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>
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” – це означає що це серверний контрол
Що таке MasterPageMasterPage – це «шаблон» сторінки, використовуючи його ми можемо позбутися дублювання код і верстки для різних сторінок.
Не використовуйте private fields на сторінках для зберігання інформації між запитами до
сторінки.
Застереження
Що таке ViewState
ViewState – це KeyValue колекція яка при кожному запиті до сторінки передається між клієнтом та сервером.
Використовується для зберігання проміжних данних.
Дані зберігаються закодовані у hidden полі __VIEWSTATE.
Дуже часто для підвищення продуктивності відключаються це поле.
Що таке Session
Session – це KeyValue колекція яка зберігається на сервері для кожного користувача окремо.
Можемо зберігати проміжну інформацію.
Більш захищене сховище а ніж ViewState.
Якщо у вас є ймовірність того що сайт буде у так званій WebFarm то Session або не використовують або передають управління сесіями SQL серверу.
Таймаут сесії за замовчуванням 30 хвилин.
ASP.Net Page LifeCyclePreInit – створюються або перестворюються динамічні контроли, встановлюється динамічно мастер пейдж, та тема.
Init – викликається після того як всі контроли створені і мастер пейдж встановлений. Тут ви можете до-ініціалізовувати контроли.
InitComplete – викликається в кінці ініціалізації сторінки. Можна використовувати для внесення змін у ViewState.
Load – тут викликається метод OnLoad сторінки. Тут ви можете змінювати контроли, встановлювати з’єднання з базою данних і т.д.
ControlEvents – оброблення подій викликаних контролами (Click, TextChanged …)
Render – це не подія, це завершальний крок відображення сторінки.
Unload – викликається для всіх контролів і тоді для сторінки. Використовують для очищення.
Що таке PostBack
PostBack – це назва процесу відправлення сторінки для обробки на сервер.
PostBack – є аналогом form submit.
Перевірити чи дана загрузка сторінки є PostBack – мона за допомогою IsPostBack властивості сторінки.
Якщо у вас є наприклад DropDownList і ви хочете щоб після вибору значення автоматично відсилалося на сервер – просто поставте AutoPostBack = true
Web Application
Усі static об’єкти є спільними для всіх користувачів.
Ініціалізуються static об‘єкти при старті аплікації на веб сервері. Знищуються – при зупинці роботи.
Всі можливі маніпуляції з веб сайтом у цілому можна здійснювати за допомогою подій, а підписуватися на них можна у файлі Global.asax
Що таке Global.asax
Робота з 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); - передача файлу на клієнт
Робота з HttpServerUtilityPage.Server – об’єкт сторінки, для полегшення роботи з даними на сервері.
Server.Transfer(url) – аналогічно до редірект, тільки УРЛ залишається не змінним.
Server.HtmlEncode(string) – кодування HTML стрічки. (позбавлення спец символів для HTML)
Server.HtmlDecode(string) – розкодування HTML стрічки.
Що таке web.config
Web.config це конфігураційний файл веб аплікації.
Кожний рівень в ІІС має свій конфігураційний файл.
Конфігураційні файли мають ієрархічну структуру, та ті що лежать нижче – перекривають верхні.
Конфігураційний файл містить секції:- ConnectionStrings- AppSettings- Authentication- ...