ASP.NET

С Википедије, слободне енциклопедије
ASP.NET
Програмер(и)Мајкрософт
Прво издањејануар 2002.
Стабилно издање
4.0.30319.1 (.NET 4.0) / 12. април 2010.
Спремиште Уреди на Википодацима
Оперативни системMicrosoft Windows
Платформа.NET Framework
Веб-сајтwww.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 поруке.

Историја[уреди | уреди извор]

Након издавања 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
и SQL Server 2005

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
  • Инкорпорација ASP.NET Dynamic Data
  • Подршка за контролисање историја браузера у ASP.NET AJAX апликацијама
  • Могућност за комбиновање више Javascript
  • Нови именски простори System.Web.Abstractions и System.Web.Routing
12. април 2010 4.0 Објављен са Visual Studio 2010

Паралелне екстензије са .NET Framework 4 могућностима

Спољашње везе[уреди | уреди извор]