|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
Короткий огляд ASP .NET
При першому
знайомстві з ASP .NET виникає
брехливе враження, що перед
вами всього лише черговий спосіб
динамічної побудови web-страниц.
Насправді можливості ASP .NET виходять
далеко за рамки того, що можна
було зробити традиційними засобами
ASP. Хоча ASP .NET зберігає сумісність
з ASP, це абсолютно нова
і цілком самостійна технологія.
Так, в ASP .NET входять елементи
web-форм, які повинні зіграти
по відношенню до броузерним застосувань
ту ж роль, що і класичні
елементи VB для програмування
Windows-приложений для будь-яких
клієнтів — як для броузеров на
РС, так і для портативних пристроїв.
Код ASP, що
відкомпілювався .NET значно швидше працює
на сервері; він добре
масштабується, використовує модель
безпеки .NET, підтримує
декілька способів аутентифікації
і так далі Ймовірно, ASP .NET
стане першою частиною .NET, широко
використовуваною в комерційних
застосуваннях. Microsoft настільки
гордиться своїми досягненнями в
області ASP .NET, що окрім перекладу
деяких частин свого сайту на
цю технологію компанія пішла на
безпрецедентний крок, вирішивши
використання комерційних
застосувань на базі ASP .NET бета-версиі
2! Ета короткий розділ
написаний для того, щоб дати деяке
уявлення про нові можливості
ASP .NET програмістам з досвідом
роботи на ASP. Звичайно, вона не замінить
спеціалізованих книг по ASP
.NET, що вже з'явилися на ринку.
Технологія ASP з'явилася
в 1997 році і призначалася
для побудови web-страниц в
Internet Information Server (US). У сценаріях ASP HTML-код
об'єднувався з сценарним кодом,
IIS, що інтерпретується, у відповідь
на запити з боку клієнта. В
результаті будувалася сторінка HTML,
яка поверталася клієнтові.
Технологія ASP володіла рядом
недоліків:
Ці і інші
проблеми вирішуються в новій
технології ASP .NET.
Просте web-приложение
для ASP .NET
Виберіть в
діалоговому вікні New Project значок
додатку ASP .NET. Після невеликої затримки VS
IDE створює сторінку, якій за
умовчанням привласнюється ім'я Webformsl.aspx.
Сторінка, що згенерувала,
містить код виводу для додатку
ASP .NET. Зразковий вид VS .NET IDE
показаний на мал. 12.1. Звернете увагу,
скільки файлів було створено
для такої простої сторінки (імена
файлів перераховані у вікні рішення).
Подивитеся на каскадний список
стилів, що визначає загальні
параметри зовнішнього вигляду сторінки.
Дизайнер дуже схожий на дизайнер
форм Windows, описаний в розділі 8. Зліва
розташована панель, з якою
елементи перетягуються на web-страницу
(звичайно, web-страницы на стадії
конструювання володіють меншими
можливостями в порівнянні з
формами Windows, оскільки вони повинні
працювати в броузере). Створіть на формі
напис і кнопку. Розтягніть напис
по ширині сторінки, розташуєте
кнопку під написом і вирівняйте
по центру, при цьому генеруються
екземпляри класів з простору
System. Web. UI. Webcontrol. Посилання
на цей простір імен автоматично
включається у вирішення при
створенні «скелета» нового додатку
ASP .NET. У властивості Text напису
слід ввести порожню рядок,
а у властивості Text кнопки вводиться
текст «Click me!». Зміни властивостей
зберігаються в HTML-коде, що
міститься в сторінці .aspx. Щоб
проглянути базовий HTML-код, можна
виконати команду View > HTML Source (клавіші
Ctrl+pagedown) або вибрати вкладку HTML в IDE.
У наступному фрагменті ключові
рядки виділяються жирним шрифтом1. <%@Page Language="vb"autoeventwireup="false" Codebehind="webforml.aspx.vb" Inherits="webapplicationl.WebForml'l> <!DOCTYPE HTML PUBLIC "-//w3c// DTD HTML 4.0 Transitional//en"> <HTML> <HEAD> <title></title> <meta name="generator" content="microsoft
Visual Studio.NET 7.0"> <meta name="code_language"content="visua1
Basic 7.0"> <meta name="vs_defaultclientscript"content="javascript"> <meta name="vs_ta rgetschema" content= "http://schemes.microsoft.com/intel1i sense/ie5"> </head> <body
Ms_positioning="gridlayout"> <form id="forml"niethod="post''runat="server"> <asp:button id="buttonl"style="z-index:101;LEFT:311px: Position:absolute;TOP:212px"r'bnat-"server"Text-"Click me!" Width="123px"height="67px"> </asp:button> <asp:label id="labe11" style="z-index:102;LEFT: 15px;POSITION:absolute: Top:40px"runat="server "Width="631px"height="132px"> </asp:label> </form> </body> </html>
Мал. 12.1. Простий
додаток ASP .NET у IDE У першому виділеному
рядку атрибуту runat привласнюється
значення server, вказуюче
на те, що код елементу повинен
виконуватися на стороні сервера,
а не на стороні клієнта. В принципі
код ASP .NET може працювати і на
стороні клієнта, але це робиться дуже
рідко, оскільки багато можливостей
ASP .NET стають недоступними
(по суті, при цьому виконується
сценарій клієнтської сторони,
що не має нічого спільного з
ASP .NET). Звернете увагу:
все теги елементів сторінки
забезпечуються префіксом <asp:. Річ
у тому, що елементи ASP .NET не є
елементами HTML. Вони знаходяться
на сервері, і звичайні елементи
HTML використовуються тільки в сторінках,
передаваних клієнтові (там, де
це можливо). Так, в HTML не існує
аналогів для таких елементів
ASP .NET, як календар або елемент
інтервальної перевірки. В цьому
випадку в ASP .NET для досягнення бажаного
ефекту використовується комбінація
звичайних елементів HTML, сценарної
коди і коди, що працює
на стороні сервера. Якщо двічі клацнути на
кнопці, у вікні програми відкривається
процедура події Cl
i ck. Сторінка, що відкрилася, має
багато загального з додатками, створеними
на базі форм Windows; вона теж
містить код, що
автоматично згенерував, який буде
описаний нижчим. У додатках ASP .NET код
зазвичай відділяється від засобів
візуального уявлення і
зберігається в окремому файлі з
подвійним розширенням .aspx.vb. Включите в
процедуру події Cl ick наступний
фрагмент: Private Sub Buttonl_click(Byval sender As System.Object,_ Byval e As System.EventArgs) Handles Buttonl.Click Me.Label 1.Font.Size
= Fontunit.XLarge Me.Label 1.Text = "Welcome to ASP .NET @" & Now End Sub Звернете
увагу на схожість цієї коди з
обробниками подій в
додатках форм Windows, включаючи
наявність параметрів sender і Eventargs.
Властивість Font в web-элементах
декілька відрізняється від
однойменної властивості форм Windows, і
це цілком природно, оскільки
кількість шрифтів, що відображаються
в сторінках HTML, помітно обмежена
в порівнянні з формами Windows.
Також звернете увагу на
можливість використання вбудованих функцій
.NET (таких, як Now) у коді ASP
.NET. Додатки ASP .NET
володіють повноцінним доступом до .NET Framework.
Зокрема, це означає, що для
звернення до даних в ASP .NET можуть
використовуватися всі елементи і вся
програмна підтримка баз даних .NET
(див. розділ І). При натисненні
клавіші F5 VS .NET IDE генерує web-страницу
і автоматично відображає її в
Internet Explorer. Після натиснення кнопки
вікна набуває вигляд, показаний на
мал. 12.2.
Нижче приведений
повний код сторінки з розгорткою
регіонів: Public
Class Webforml Inherits System.Web.UI.Page Protected Withevents Labell As System.Web.UI.WebControls.Label Protected Withevents
Buttonl As System.Web.UI.WebControls.Button #region "Web
Form Designer Generated Code " 'This call is required by the Web Form Designer. <System.Diagnostics.DebuggerStepThrough()> Private
Sub _ Initializecomponent() End Sub Private Sub Page_init(Byval
sender As System.Object. Byval e As System.EventArgs)
Handles Mybase.Init 'CODEGEN:
наступний виклик необхідний для
дизайнера форм Web. ' Не
змінюйте його в редакторові! Initializecomponent() End Sub #End
Region Private Sub Page_load(Byval sender As System.Object._ Byval e As System.EventArgs)
Handles Mybase.Load ' Тут розміщується призначений для користувача код ініціалізації сторінки End
Sub Private Sub Bultonl_click(Byval sender As System.Object._ Byval e As System.EventArgs) Handles Buttonl.Click Me.Label1.Font.Size_ Fontunit.XLarge Me.Label1.Text = "Welcome to ASP .NET @" & Now End Sub End Class
Мал. 12.2. Результат
виконання простої коди ASP .NET У ASP .NET
використовується файл globalasax — аналог
файлу global.asa з ASP. Головна відмінність
між цими файлами полягає в
тому, що звернення до файлу global.asax
відбуваються:
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||