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.NETSOAP проширење омогућава ASP.NET компонентама да обрађујуSOAP поруке.
Након издавањаIIS-а 4.0 (енгл.Internet Information Services) 1997. године,Мајкрософт је почео истраживање могућности за нови моделвеб апликација који би решио жалбе наASP, посебно у погледу раздвајања презентације и садржаја и могућности за писање „чистог“кода.Марк Андерс (енгл.Mark Anders), менаџерIIS тима иСкот Гутри (енгл.Scott Guthrie), који су се придружили Мајкрософту 1997. године након матурирања науниверзитету Дјук имали су задатак да утврде које је најбоље решење. Почетнидизајн је развијен током два месеца од странеАндерс-а иГутри-ја.
Након преласка на Common Language Runtime,XSP је поново имплементиран уC#-у, и име му је промењено у ASP+, јер је у том тренутку нова платформа гледана као наследник ASP-а.
Када је.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 код који се уноси у веб форму мало разликује од онога који се уноси у кодни фајл странице:
Microsoft препоручује да се приликом коришћењадинамичког кода код пише у страна.aspx.cs или страна.aspx.vbфајлу која се аутоматски креира приликом креирања веб форме. ASP.NET кодни фајл означава одступање од класичногASP-а, који омогућава дизајнеримавеб странице да изграде апликације на лакши начин. Самим тимедизајнер може да се фокусира надизајн и мање мора да брине да случајно не променипрограмски код стране.
Корисничке контроле су секције страна који се регистроване и користе се као контроле у ASP.NET-у. Корисничке контроле се чувају у ASCX екстензији. Они су најчешће фајлови који садрже статички(X)HTML садржај, као и ознаке које дефинишу веб контроле које се извршавају насерверској страни. Корисничке контроле секомпајлирају када се отвори страна која садржи ту контролу, а чувају се умеморији за касније захтеве. Ове контроле имају своје догађаје који се догађају током ASP.NET захтева. За разлику од ASP.NET веб форме (странице), корисничке контроле не могу се затражити независно већ једна страница мора садржати исту контролу.
Програмери могу израдити прилагођене контроле за ASP.NET апликације. За разлику од корисничке контроле, оне се не налазе у ASCX фајлу већ свој код имају компајлиран у DLL фајлу. Такве контроле могу се користити у вишевеб апликација иVisual Studio пројекта (корисничке контроле немају ову особину). Помоћу „Register,, директиве, контрола се може учитати у страну. Пример је антиспам „програмче“ под именомreCAPTCHA.
ASP.NET користи користи композитну технику рендеровања. Током компилације, шаблон (.aspx) фајл секомпајлира у иницијализациони код који гради контролно стабло које представља оригинални шаблон.Иницијализација код се комбинује са кориснички-написаним кодом (обично скупина вишепарцијалних класа) и резултат у класи специфичној за страну.
Стварни захтеви за странице су обрађени кроз неколико корака. Прво, током корака иницијализације, инстанца класе странице се креира и извршава се иницијализациони код. Ово даје почетно контролно стабло којим се сада може манипулисати помоћу метода странице и следећих корака. Сваки чвор у стаблу је контрола која је представљена као инстанца класе, код може да промени структуру стабла као и манипулисање својства/метода појединачних чворова. Током корака рендеровања посетилац се користи да посети сваки чвор у стаблу, тражећи сваки чвор да рендерује себе коришћењем методе посетиоца. Коначно,HTML резултат се шаље клијенту.
Након што се захтев обради,инстанца класе странице се одбацује као и цело контролно стабло. Ово је извор конфузије међу ASP.NETпрограмерима који се ослањају на чланове инстанце класе који се изгубе са сваке странице приликом захтева/одговора.
Сесија на серверској страни је колекција кориснички-дефинисанихпроменљивих. Овим променљивама се приступа помоћуSession колекција, и она је јединствена за сваку сесију. Ова променљива може бити аутоматски уништена након одређеног времена неактивности иако се сесија још увек није завршила. Сесија на клијентској страни се одржава помоћу колачића или помоћуенкриптовања идентификационог броја сесије уURL-у.
Када је први пут објављен, ASP.NET-у је недостајаошаблон (енгл.Master page) који би могао бити приказиван на свим странама. Зато што је.NET Frameworkобјектно оријентисан и дозвољаванаслеђивање, многипрограмери би желели да дефинишу новубазну класу која би наследила "System.Web.UI.Page" методе које рендерујуHTML и омогућавају страницама и њиховим апликацијама наслеђивање из нове класе. Тиме је ASP.NET 2.0 представио концепт главне странице (енгл.Master page), које омогућавају странице које се заснивају нашаблону. Веб апликација може садржати један или више шаблона. Ови шаблони имајуContentPlaceHolder контролу у коју се уносидинамички креиран садржај. Странице која користи тај шаблон да би уContentPlaceHolder контролу унела одређени садржај мора такође садржи ту исту контролу. Шаблон не може бити самостално покренут тј. потребна му јевеб форма.
У принципу, ASP.NET структура директоријума може бити одређена подешавањима програмера. Имена специјалних директоријума су (само од верзије 2.0 па на даље):