ASP.NET
ASP.NET (енгл. Active Server Pages .NET) је веб технологија компаније Microsoft која омогућава програмерима да праве динамичке веб-сајтове, веб-апликације и веб-сервисе. Први пут је објављена у јануару 2002. године са верзијом 1.0 .NET Framework-а, па самим тиме ASP.NET је наследник ASP технологије. ASP.NET је изграђен на CLR-у (енгл. Common Language Runtime), па тиме омогућава програмерима да пишу ASP.NET код у било ком програмском језику који подржава технологију .NET програмског оквира. ASP.NET SOAP проширење омогућава ASP.NET компонентама да обрађују SOAP поруке.
Програмер(и) | Мајкрософт |
---|---|
Прво издање | јануар 2002. |
Стабилно издање | |
Репозиторијум | |
Оперативни систем | Microsoft Windows |
Платформа | .NET Framework |
Веб-сајт | www.asp.net |
Овај чланак можда захтева чишћење и/или прерађивање како би се задовољили стандарди квалитета Википедије. |
Историја
уредиНакон издавања IIS-а 4.0 (енгл. Internet Information Services) 1997. године, Мајкрософт је почео истраживање могућности за нови модел веб апликација који би решио жалбе на ASP, посебно у погледу раздвајања презентације и садржаја и могућности за писање „чистог“ кода. Марк Андерс (енгл. Mark Anders), менаџер IIS тима и Скот Гутри (енгл. Scott Guthrie), који су се придружили Мајкрософту 1997. године након матурирања на универзитету Дјук имали су задатак да утврде које је најбоље решење. Почетни дизајн је развијен током два месеца од стране Андерс-а и Гутри-ја.
Првобитни прототип звао се XSP и био је написан помоћу Јаве, али ускоро је одлучено да се направи на новој платформи која је нудила објектно-оријентисано програмерско окружење и многе друге опције које Microsoft-ова Component Model Object платформа није подржавала.
Након преласка на Common Language Runtime, XSP је поново имплементиран у C#-у, и име му је промењено у ASP+, јер је у том тренутку нова платформа гледана као наследник ASP-а.
Марк Андерс је први демонстрирао ASP+ на ASP Connections конференцији у Финиксу, Аризона, 2. маја 2000. године. Бета верзија ASP+-а демонстрирана је 11. јула 2000. године у Орланду, Флорида, на конференцији „2000 Professional Developers Conference. Током уводне презентације Била Гејтса, компанија Fujistu је показала да је ASP+ у спрези са COBOL-ом и подршком за разне програмске језику као што је најављено, укључујући нови Visual Basic .NET и C Sharp, као и Python i Perl.
Када је .NET брендирање одлучено у другој половини 2000, такође је одлучено да се име ASP+ промени у ASP.NET. Марк Андерс је објаснио на MSDN Show-у да су желели да доведу име нове платформе у складу са остатком платформе који чини .NET Framework.
Након четири године развоја, као и низ бета издања 2000 и 2001. године, ASP.NET 1.0 је објављен 5. јануара 2002. као део верзије 1.0 .NET Framework-а. Чак и пре објављивања десетине књига је написано о ASP.NET-у. Мајкрософт је промовисао део своје платформе за веб сервисе. Гатри је постао менаџер за ASP.NET, и са развојем је наставио брзо, са верзијом 1.1 која је објављена 24. априла 2003. год као део Windows Server 2003 оперативног система. Издање 1.1 било је фокусирано на побољшање подршке ASP.NET-а за мобилне уређаје.
Карактеристике
уредиСтрана
уреди.NET странице, званично познате као веб форме (енгл. Web Forms), главни су камен темељац за развој апликација. Веб форме су фајлови са *.aspx екстензијом. Оне најчешће садрже статички XHTML, као и ознаке које дефинишу серверску страну веб контрола и корисничких контрола где програмери стављају све потребне статичке и динамичке садржаје странце. Поред тога, динамички код који се покреће на серверској страни може бити постављен у блоку <% динамички код %> који је сличан осталим технологијама за веб програмирање као што су PHP, JSP и ASP.
Имајте на уму да се код који се .NET код који се уноси у веб форму мало разликује од онога који се уноси у кодни фајл странице:
<%@ Page Language="C# " %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
vreme.Text = DateTime.Now.ToLongTimeString();
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Sample page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Тачно време је: <asp:Label runat="server" id="vreme" />
</div>
</form>
</body>
</html>
Кодни фајл
уредиMicrosoft препоручује да се приликом коришћења динамичког кода код пише у страна.aspx.cs или страна.aspx.vb фајлу која се аутоматски креира приликом креирања веб форме. ASP.NET кодни фајл означава одступање од класичног ASP-а, који омогућава дизајнерима веб странице да изграде апликације на лакши начин. Самим тиме дизајнер може да се фокусира на дизајн и мање мора да брине да случајно не промени програмски код стране.
using System;
namespace Default
{
public partial class primerKodnogFajla : System.Web.UI.Page {
protected void Page_Load(object sender, EventArgs e) {
Response.Write("Поздрав свете!");
}
}
}
У овом случају, Page_Load() метода се позива сваки пут када се страница затражи.
Корисничке контроле
уредиКорисничке контроле су секције страна који се регистроване и користе се као контроле у ASP.NET-у. Корисничке контроле се чувају у ASCX екстензији. Они су најчешће фајлови који садрже статички (X) HTML садржај, као и ознаке које дефинишу веб контроле које се извршавају на серверској страни. Корисничке контроле се компајлирају када се отвори страна која садржи ту контролу, а чувају се у меморији за касније захтеве. Ове контроле имају своје догађаје који се догађају током ASP.NET захтева. За разлику од ASP.NET веб форме (странице), корисничке контроле не могу се затражити независно већ једна страница мора садржати исту контролу.
Прилагођене контроле
уредиПрограмери могу израдити прилагођене контроле за ASP.NET апликације. За разлику од корисничке контроле, оне се не налате у ASCX фајлу већ свој код имају компајлиран у DLL фајлу. Такве контроле могу се користити у више веб апликација и Visual Studio пројекта (корисничке контроле немају ову особину). Помоћу „Register,, директиве, контрола се може учитати у страну. Пример је антиспам „програмче“ под именом reCAPTCHA.
Техника рендеровања
уредиASP.NET користи користи композитну технику рендеровања. Током компиралиције, шаблон (.aspx) фајл се компајлира у иницијализациони код који гради контролно стабло које представља оригинални шаблон. Иницијализација код се комбијнује са кориснички-написаним кодом (обично скупина више парцијалних класа) и резултат у класи спицифичној за страну.
Стварни захтеви за странице су обрађени кроз неколико корака. Прво, током корака иницијализације, инстанца класе странице се креира и извршава се иницијализациони код. Ово даје почетно контролно стабло којим се сада може манипулисати помоћу метода странице и следећих корака. Сваки чвор у стаблу је контрола која је представљена као инстанца класе, код може да промени структуру стабла као и манипулисање својства/метода појединачних чворова. Током корака рендеровања посетилац се користи да посети сваки чвор у стаблу, тражећи сваки чвор да рендерује себе коришћењем методе посетиоца. Коначно, HTML резултат се шаље клиенту.
Након што се захтев обради, инстанца класе странице се одбацује као и цело контролно стабло. Ово је извор конфузије међу ASP.NET програмерима који се ослањају на чланове инстанце класе који се изгубе са сваке странице приликом захтева/одговора.
Управљање
уредиASP.NET апликације се хостују помоћу веб сервера и приступа им се помоћу HTTP протокола (енгл. Hypertext Transfer Protocol).
Стање сесије
уредиСесија на серверској страни је колекција кориснички-дефинисаних променљивих. Овим променљивама се приступа помоћу Session колекција, и она је јединствена за сваку сесију. Ова променљива може бити аутоматски уништена након одређеног времена неактивности иако се сесија још увек није завршила. Сесија на клиентској страни се одржава помоћу колачића или помоћу енкриптовања идентификационог броја сесије у URL-у.
Остало
уредиASP.NET подржава колачиће, упитне стрингове (енгл. Query String) и многе друге технологије.
Шаблон
уредиКада је први пут објављен, ASP.NET-у је недостајао шаблон (енгл. Master page) који би могао бити приказиван на свим странама. Зато што је .NET Framework објектно оријентисан и дозвољава наслеђивање, многи програмери би желели да дефинишу нову базну класу која би наследила "System.Web.UI.Page" методе које рендерују HTML и омогућавају страницама и њиховим апликацијама наслеђивање из нове класе. Тиме је ASP.NET 2.0 представио концепт главне странице (енгл. Master page), које омогућавају странице које се заснивају на шаблону. Веб апликација може садржати један или више шаблона. Ови шаблони имају ContentPlaceHolder контролу у коју се уности динамички креиран садржај. Странице која користи тај шаблон да би у ContentPlaceHolder контролу унела одређени садржај мора такође садржи ту исту контролу. Шаблон не може бити самостално покренут тј. потребна му је веб форма.
Остали фајлови
уредиЕкстензија | Потребна верзија | Објашњења |
---|---|---|
asax | 1.0 | Global.asax, садржи методе који се покрећу приликом покретања, затварања, креирања сесије или завршетка сесије |
ascx | 1.0 | произвољне корисничке контроле |
ashx | 1.0 | произвољни HTTP handler-и. |
asmx | 1.0 | веб сервис, од верзије 2.0 налази се у App Code фолдеру. |
browser | 2.0 | подешавања за одређени веб-браузере |
config | 1.0 | фајл који може подешавати сервер, написан је у XML формату |
cs/vb | 1.0 | кодни фајл који је написан у Visual Basic-у или C#-у |
dbml | 3.5 | LINQ to SQL фајл |
master | 2.0 | фајл који садржи шаблон |
resx | 1.0 | фајл са ресурсима |
sitemap | 2.0 | конфигурациони фајл мапе сајта |
skin | 2.0 | фајл за теме |
svc | 3.0 | Windows Communication Foundation фајл |
edmx | 3.5 | ADO.NET Entity Framework модел |
Структуре директоријума
уредиУ принципу, ASP.NET структура директоријума може бити одређена подешавањима програмера. Имена специјалних директоријума су (само од верзије 2.0 па на даље):
- App_Browsers
- садржи дефиниције за одређене браузере
- App_Code
- садржи класе које је програмер креирао
- App_Data
- садржи базе података
- App_LocalResources
- садржи ресурсе за одређене стране
- App_GlobalResources
- садржи ресурсе за све стране на сајту
- App_WebReferences
- садржи фајлове за веб сервисе
- Bin
- садржи компајлирани код, најчешће DLL фајлове
Екстензије
уредиMicrosoft је објавио неколико екстензија које могу проширити функционалности ASP.NET-а:
- ASP.NET AJAX
- екстензија са клиентске стране
- ASP.NET MVC Framework
- екстензија за ауторе ASP.NET страна које користе MVC архитектуру
Верзије
уредиДатум | Верзија | Примедбе | Нове ASP.NET могућности |
---|---|---|---|
16. јануар 2002 | 1.0 | Прва верзија
објављена заједно са Visual Studio .NET |
|
24. април 2003 | 1.1 | објављена заједно са Windows Server 2003-ом
објављена заједно са Visual Studio .NET 2003 |
|
7. новембар 2005 | 2.0 |
објављено заједно са Visual Studio 2005, Visual Web Developer Express |
|
21. новембар 2006 | 3.0 |
| |
19. новембар 2007 | 3.5 | Објављен са Visual Studio 2008 и Windows Server 2008 |
|
11. август 2008 | 3.5 Service Pack 1 | Објављен са Visual Studio 2008 Service Pack 1 |
|
12. април 2010 | 4.0 | Објављен са Visual Studio 2010 |
Паралелне екстензије са .NET Framework 4 могућностима |
Спољашње везе
уреди- Званични веб-сајт
- http://msdn.microsoft.com/en-us/aa336522.aspx - ASP.NET на MSDN-у
- http://www.codeproject.com/KB/aspnet/Whatis_New_ASP_Net_4.aspx Архивирано на сајту Wayback Machine (25. децембар 2018) - Шта је ново у ASP.NET-у 4.0