(скр. од ) је веб технологија компаније -{Microsoft}- која омогућава програмерима да праве динамичке веб-сајтове, веб-апликације и веб-сервисе. Први пут је објављена у јануару 2002. године са верзијом 1.0 -{.NET Framework}--а, па самим тиме -{ASP.NET}- је наследник -{R|ASP}- технологије. -{ASP.NET}- је изграђен на -{CLR}--у (), па тиме омогућава програмерима да пишу -{ASP.NET}- код у било ком програмском језику који подржава технологију -{.NET}- програмског оквира. -{ASP.NET SOAP}- проширење омогућава -{ASP.NET}- компонентама да обрађују -{SOAP}- поруке.
Историја
Након издавања -{IIS}--а 4.0 () 1997. године, -{Мајкрософт}- је почео истраживање могућности за нови модел веб апликација који би решио жалбе на -{ASP}-, посебно у погледу раздвајања презентације и садржаја и могућности за писање „чистог“ кода. Марк Андерс (), менаџер -{IIS}- тима и Скот Гутри (), који су се придружили Мајкрософту 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}- странице, званично познате као веб форме (), главни су камен темељац за развој апликација. Веб форме су фајлови са -{*.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}- фајлу. Такве контроле могу се користити у више веб апликација и -{R|Visual Studio}- пројекта (корисничке контроле немају ову особину). Помоћу „-{Register}-,, директиве, контрола се може учитати у страну. Пример је антиспам „програмче“ под именом -{reCAPTCHA}-.
Техника рендеровања
-{ASP.NET}- користи користи композитну технику рендеровања. Током компилације, шаблон -{(.aspx)}- фајл се компајлира у иницијализациони код који гради контролно стабло које представља оригинални шаблон. Иницијализација код се комбинује са кориснички-написаним кодом (обично скупина више парцијалних класа) и резултат у класи специфичној за страну.
Стварни захтеви за странице су обрађени кроз неколико корака. Прво, током корака иницијализације, инстанца класе странице се креира и извршава се иницијализациони код. Ово даје почетно контролно стабло којим се сада може манипулисати помоћу метода странице и следећих корака. Сваки чвор у стаблу је контрола која је представљена као инстанца класе, код може да промени структуру стабла као и манипулисање својства/метода појединачних чворова. Током корака рендеровања посетилац се користи да посети сваки чвор у стаблу, тражећи сваки чвор да рендерује себе коришћењем методе посетиоца. Коначно, -{HTML}- резултат се шаље клијенту.
Након што се захтев обради, -{инстанца}- класе странице се одбацује као и цело контролно стабло. Ово је извор конфузије међу -{ASP.NET}- програмерима који се ослањају на чланове инстанце класе који се изгубе са сваке странице приликом захтева/одговора.
Управљање
-{ASP.NET}- апликације се хостују помоћу веб сервера и приступа им се помоћу HTTP протокола ().
Стање сесије
Сесија на серверској страни је колекција кориснички-дефинисаних променљивих. Овим променљивама се приступа помоћу Session колекција, и она је јединствена за сваку сесију. Ова променљива може бити аутоматски уништена након одређеног времена неактивности иако се сесија још увек није завршила. Сесија на клијентској страни се одржава помоћу колачића или помоћу енкриптовања идентификационог броја сесије у -{URL}--у.
Остало
-{ASP.NET}- подржава колачиће, упитне стрингове () и многе друге технологије.
Шаблон
Када је први пут објављен, -{ASP.NET}--у је недостајао шаблон () који би могао бити приказиван на свим странама. Зато што је -{.NET Framework}- објектно оријентисан и дозвољава наслеђивање, многи програмери би желели да дефинишу нову базну класу која би наследила -{"System.Web.UI.Page"}- методе које рендерују -{HTML}- и омогућавају страницама и њиховим апликацијама наслеђивање из нове класе. Тиме је -{ASP.NET}- 2.0 представио концепт главне странице (), које омогућавају странице које се заснивају на шаблону. Веб апликација може садржати један или више шаблона. Ови шаблони имају -{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}- Објектно-оријентисане веб апликације Програмери нису принуђени да користе -{Server.CreateObject(...)}- Програмери могу да користе већ компајлиране кодове (-{DLL}- фајл) 24. април 2003 1.1 објављена заједно са -{Windows Server 2003}--ом
објављена заједно са -{Visual Studio .NET 2003}- Аутоматска валидација уноса 7. новембар 2005 2.0 објављено заједно са -{Visual Studio 2005}-, -{Visual Web Developer Express}- и -{SQL Server 2005}- Нове контроле за податке (-{GridView}-, -{FormView}-, -{DetailsView}-) Нове технике за приступ података (-{SqlDataSource}-, -{ObjectDataSource}-, -{XmlDataSource}- контроле) Навигација контролама Шаблон Контроле за пријављивање Теме Потпуна пре-компилација Нова техника локализације Подржава 64-битне процесоре 21. новембар 2006 3.0 -{Windows Presentation Foundation (WPF)}- -{Windows Workflow Foundation (WF)}- -{Windows Communication Foundation}- који може користити -{ASP.NET}- за сервисе хостовања -{Windows CardSpace}- који користи -{ASP.NET}- за пријављивање 19. новембар 2007 3.5 Објављен са -{Visual Studio 2008}- и -{Windows Server 2008}- Нове контроле за податке (-{ListView}-, -{DataPager}-) -{ASP.NET AJAX}- -{Windows Communication Foundation}- подршка за -{RSS}-, -{JSON}-, -{POX}- и -{Partial Trust}- Све -{.NET Framework 3.5}- промене, као -{LINQ}- итд. 11. август 2008 3.5 -{Service Pack 1}- Објављен са -{Visual Studio 2008 Service Pack 1}-