ASP.NET

S Vikipedije, slobodne enciklopedije
ASP.NET
Programer(i)Majkrosoft
Prvo izdanjejanuar 2002.
Stabilno izdanje
4.0.30319.1 (.NET 4.0) / 12. april 2010.
Repozitorijum Uredi na Vikipodacima
Operativni sistemMicrosoft Windows
Platforma.NET Framework
Veb-sajtwww.asp.net

ASP.NET (engl. Active Server Pages .NET) je veb tehnologija kompanije Microsoft koja omogućava programerima da prave dinamičke veb-sajtove, veb-aplikacije i veb-servise. Prvi put je objavljena u januaru 2002. godine sa verzijom 1.0 .NET Framework-a, pa samim time ASP.NET je naslednik ASP tehnologije. ASP.NET je izgrađen na CLR-u (engl. Common Language Runtime), pa time omogućava programerima da pišu ASP.NET kod u bilo kom programskom jeziku koji podržava tehnologiju .NET programskog okvira. ASP.NET SOAP proširenje omogućava ASP.NET komponentama da obrađuju SOAP poruke.

Istorija[uredi | uredi izvor]

Nakon izdavanja IIS-a 4.0 (engl. Internet Information Services) 1997. godine, Мајкрософт je počeo istraživanje mogućnosti za novi model veb aplikacija koji bi rešio žalbe na ASP, posebno u pogledu razdvajanja prezentacije i sadržaja i mogućnosti za pisanje „čistog“ koda. Mark Anders (engl. Mark Anders), menadžer IIS tima i Skot Gutri (engl. Scott Guthrie), koji su se pridružili Majkrosoftu 1997. godine nakon maturiranja na univerzitetu Djuk imali su zadatak da utvrde koje je najbolje rešenje. Početni dizajn je razvijen tokom dva meseca od strane Anders-a i Gutri-ja.

Prvobitni prototip zvao se XSP i bio je napisan pomoću Jave, ali uskoro je odlučeno da se napravi na novoj platformi koja je nudila objektno-orijentisano programersko okruženje i mnoge druge opcije koje Microsoft-ova Component Model Object platforma nije podržavala.

Nakon prelaska na Common Language Runtime, XSP je ponovo implementiran u C#-u, i ime mu je promenjeno u ASP+, jer je u tom trenutku nova platforma gledana kao naslednik ASP-а.

Mark Anders je prvi demonstrirao ASP+ na ASP Connections konferenciji u Finiksu, Arizona, 2. maja 2000. godine. Beta verzija ASP+-a demonstrirana je 11. jula 2000. godine u Orlandu, Florida, na konferenciji „2000 Professional Developers Conference. Tokom uvodne prezentacije Bila Gejtsa, kompanija Fujistu je pokazala da je ASP+ u sprezi sa COBOL-om i podrškom za razne programske jeziku kao što je najavljeno, uključujući novi Visual Basic .NET i C Sharp, kao i Python i Perl.

Kada je .NET brendiranje odlučeno u drugoj polovini 2000, takođe je odlučeno da se ime ASP+ promeni u ASP.NET. Mark Anders je objasnio na MSDN Show-u da su želeli da dovedu ime nove platforme u skladu sa ostatkom platforme koji čini .NET Framework.

Nakon četiri godine razvoja, kao i niz beta izdanja 2000 i 2001. godine, ASP.NET 1.0 je objavljen 5. januara 2002. kao deo verzije 1.0 .NET Framework-a. Čak i pre objavljivanja desetine knjiga je napisano o ASP.NET-u. Majkrosoft je promovisao deo svoje platforme za veb servise. Gatri je postao menadžer za ASP.NET, i sa razvojem je nastavio brzo, sa verzijom 1.1 koja je objavljena 24. aprila 2003. god kao deo Windows Server 2003 operativnog sistema. Izdanje 1.1 bilo je fokusirano na poboljšanje podrške ASP.NET-a za mobilne uređaje.

Karakteristike[uredi | uredi izvor]

Strana[uredi | uredi izvor]

.NET stranice, zvanično poznate kao veb forme (engl. Web Forms), glavni su kamen temeljac za razvoj aplikacija. Veb forme su fajlovi sa *.aspx екстензијом. One najčešće sadrže statički XHTML, kao i oznake koje definišu serversku stranu veb kontrola i korisničkih kontrola gde programeri stavljaju sve potrebne statičke i dinamičke sadržaje strance. Pored toga, dinamički kod koji se pokreće na serverskoj strani može biti postavljen u bloku <% dinamički kod %> koji je sličan ostalim tehnologijama za veb programiranje kao što su PHP, JSP i ASP.

Imajte na umu da se kod koji se .NET kod koji se unosi u veb formu malo razlikuje od onoga koji se unosi u kodni fajl stranice:

 <%@ 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>

Kodni fajl[uredi | uredi izvor]

Microsoft preporučuje da se prilikom korišćenja dinamičkog koda kod piše u страна.aspx.cs ili страна.aspx.vb fajlu koja se automatski kreira prilikom kreiranja veb forme. ASP.NET kodni fajl označava odstupanje od klasičnog ASP-a, koji omogućava dizajnerima veb stranice da izgrade aplikacije na lakši način. Samim time dizajner može da se fokusira na dizajn i manje mora da brine da slučajno ne promeni programski kod strane.

 using System;
 namespace Default
 {
      public partial class primerKodnogFajla : System.Web.UI.Page {
           protected void Page_Load(object sender, EventArgs e) {
                Response.Write("Поздрав свете!");
           }
      }
 }

U ovom slučaju, Page_Load() metoda se poziva svaki put kada se stranica zatraži.

Korisničke kontrole[uredi | uredi izvor]

Korisničke kontrole su sekcije strana koji se registrovane i koriste se kao kontrole u ASP.NET-u. Korisničke kontrole se čuvaju u ASCX ekstenziji. Oni su najčešće fajlovi koji sadrže statički (X) HTML sadržaj, kao i oznake koje definišu veb kontrole koje se izvršavaju na serverskoj strani. Korisničke kontrole se kompajliraju kada se otvori strana koja sadrži tu kontrolu, a čuvaju se u memoriji za kasnije zahteve. Ove kontrole imaju svoje događaje koji se događaju tokom ASP.NET zahteva. Za razliku od ASP.NET veb forme (stranice), korisničke kontrole ne mogu se zatražiti nezavisno već jedna stranica mora sadržati istu kontrolu.

Prilagođene kontrole[uredi | uredi izvor]

Programeri mogu izraditi prilagođene kontrole za ASP.NET aplikacije. Za razliku od korisničke kontrole, one se ne nalate u ASCX fajlu već svoj kod imaju kompajliran u DLL fajlu. Takve kontrole mogu se koristiti u više veb aplikacija i Visual Studio projekta (korisničke kontrole nemaju ovu osobinu). Pomoću „Register,, direktive, kontrola se može učitati u stranu. Primer je antispam „programče“ pod imenom reCAPTCHA.

Tehnika renderovanja[uredi | uredi izvor]

ASP.NET koristi koristi kompozitnu tehniku renderovanja. Tokom kompiralicije, šablon (.aspx) fajl se kompajlira u inicijalizacioni kod koji gradi kontrolno stablo koje predstavlja originalni šablon. Inicijalizacija kod se kombijnuje sa korisnički-napisanim kodom (obično skupina više parcijalnih klasa) i rezultat u klasi spicifičnoj za stranu.

Stvarni zahtevi za stranice su obrađeni kroz nekoliko koraka. Prvo, tokom koraka inicijalizacije, instanca klase stranice se kreira i izvršava se inicijalizacioni kod. Ovo daje početno kontrolno stablo kojim se sada može manipulisati pomoću metoda stranice i sledećih koraka. Svaki čvor u stablu je kontrola koja je predstavljena kao instanca klase, kod može da promeni strukturu stabla kao i manipulisanje svojstva/metoda pojedinačnih čvorova. Tokom koraka renderovanja posetilac se koristi da poseti svaki čvor u stablu, tražeći svaki čvor da renderuje sebe korišćenjem metode posetioca. Konačno, HTML rezultat se šalje klientu.

Nakon što se zahtev obradi, инстанца klase stranice se odbacuje kao i celo kontrolno stablo. Ovo je izvor konfuzije među ASP.NET programerima koji se oslanjaju na članove instance klase koji se izgube sa svake stranice prilikom zahteva/odgovora.

Upravljanje[uredi | uredi izvor]

ASP.NET aplikacije se hostuju pomoću veb servera i pristupa im se pomoću HTTP protokola (engl. Hypertext Transfer Protocol).

Stanje sesije[uredi | uredi izvor]

Sesija na serverskoj strani je kolekcija korisnički-definisanih promenljivih. Ovim promenljivama se pristupa pomoću Session kolekcija, i ona je jedinstvena za svaku sesiju. Ova promenljiva može biti automatski uništena nakon određenog vremena neaktivnosti iako se sesija još uvek nije završila. Sesija na klientskoj strani se održava pomoću kolačića ili pomoću enkriptovanja identifikacionog broja sesije u URL-u.

Ostalo[uredi | uredi izvor]

ASP.NET podržava kolačiće, upitne stringove (engl. Query String) i mnoge druge tehnologije.

Šablon[uredi | uredi izvor]

Kada je prvi put objavljen, ASP.NET-u je nedostajao šablon (engl. Master page) koji bi mogao biti prikazivan na svim stranama. Zato što je .NET Framework objektno orijentisan i dozvoljava nasleđivanje, mnogi programeri bi želeli da definišu novu baznu klasu koja bi nasledila "System.Web.UI.Page" metode koje renderuju HTML i omogućavaju stranicama i njihovim aplikacijama nasleđivanje iz nove klase. Time je ASP.NET 2.0 predstavio koncept glavne stranice (engl. Master page), koje omogućavaju stranice koje se zasnivaju na šablonu. Veb aplikacija može sadržati jedan ili više šablona. Ovi šabloni imaju ContentPlaceHolder kontrolu u koju se unosti dinamički kreiran sadržaj. Stranice koja koristi taj šablon da bi u ContentPlaceHolder kontrolu unela određeni sadržaj mora takođe sadrži tu istu kontrolu. Šablon ne može biti samostalno pokrenut tj. potrebna mu je veb forma.

Ostali fajlovi[uredi | uredi izvor]

Ekstenzija Potrebna verzija Objašnjenja
asax 1.0 Global.asax, sadrži metode koji se pokreću prilikom pokretanja, zatvaranja, kreiranja sesije ili završetka sesije
ascx 1.0 proizvoljne korisničke kontrole
ashx 1.0 proizvoljni HTTP handler-i.
asmx 1.0 veb servis, od verzije 2.0 nalazi se u App Code folderu.
browser 2.0 podešavanja za određeni veb-brauzere
config 1.0 fajl koji može podešavati server, napisan je u XML formatu
cs/vb 1.0 kodni fajl koji je napisan u Visual Basic-u ili C#-u
dbml 3.5 LINQ to SQL fajl
master 2.0 fajl koji sadrži šablon
resx 1.0 fajl sa resursima
sitemap 2.0 konfiguracioni fajl mape sajta
skin 2.0 fajl za teme
svc 3.0 Windows Communication Foundation fajl
edmx 3.5 ADO.NET Entity Framework model

Strukture direktorijuma[uredi | uredi izvor]

U principu, ASP.NET struktura direktorijuma može biti određena podešavanjima programera. Imena specijalnih direktorijuma su (samo od verzije 2.0 pa na dalje):

App_Browsers
sadrži definicije za određene brauzere
App_Code
sadrži klase koje je programer kreirao
App_Data
sadrži baze podataka
App_LocalResources
sadrži resurse za određene strane
App_GlobalResources
sadrži resurse za sve strane na sajtu
App_WebReferences
sadrži fajlove za veb servise
Bin
sadrži kompajlirani kod, najčešće DLL fajlove

Ekstenzije[uredi | uredi izvor]

Microsoft je objavio nekoliko ekstenzija koje mogu proširiti funkcionalnosti ASP.NET-a:

ASP.NET AJAX
ekstenzija sa klientske strane
ASP.NET MVC Framework
ekstenzija za autore ASP.NET strana koje koriste MVC arhitekturu

Verzije[uredi | uredi izvor]

Datum Verzija Primedbe Nove ASP.NET mogućnosti
16. januar 2002 1.0 Prva verzija

objavljena zajedno sa Visual Studio .NET

24. april 2003 1.1 objavljena zajedno sa Windows Server 2003-om

objavljena zajedno sa Visual Studio .NET 2003

  • Automatska validacija unosa
7. novembar 2005 2.0

objavljeno zajedno sa Visual Studio 2005, Visual Web Developer Express
i SQL Server 2005

  • Nove kontrole za podatke (GridView, FormView, DetailsView)
  • Nove tehnike za pristup podataka (SqlDataSource, ObjectDataSource, XmlDataSource kontrole)
  • Navigacija kontrolama
  • Šablon
  • Kontrole za prijavljivanje
  • Teme
  • Potpuna pre-kompilacija
  • Nova tehnika lokalizacije
  • Podržava 64-bitne procesore
21. novembar 2006 3.0
19. novembar 2007 3.5 Objavljen sa Visual Studio 2008 i Windows Server 2008
11. avgust 2008 3.5 Service Pack 1 Objavljen sa Visual Studio 2008 Service Pack 1
  • Inkorporacija ASP.NET Dynamic Data
  • Podrška za kontrolisanje istorija brauzera u ASP.NET AJAX aplikacijama
  • Mogućnost za kombinovanje više Javascript
  • Novi imenski prostori System.Web.Abstractions i System.Web.Routing
12. april 2010 4.0 Objavljen sa Visual Studio 2010

Paralelne ekstenzije sa .NET Framework 4 mogućnostima

Spoljašnje veze[uredi | uredi izvor]