PC Press
O nama
O nama
Pretplata
O nama
Postanite saradnik PC-ja
Kontakt sa redakcijom
PC Press
Novi broj
Novi broj   
Pretrazivanje
Arhiva
Arhiva   
PC Online
PC Plus   
Specijalna izdanja
Softver Softver
PC #66 : April 2001 Knjiga 50 godina racunarstva u Srbiji

 Naslovna  Sadržaj 
Ivan Sekulović  

Sasvim novi ASP

Active Server Pages doživljavaju i četvrtu generaciju - ASP.NET. Kao što se po imenu može zaključiti, noviteti su prevashodno vezani za Microsoft-ovu .NET tehnologiju.

Današnji Web se ne može zamisliti bez Active Server Pages tehnologije. Od svog prvog pojavljivanja u drugoj polovini 1996. godine, ASP se veoma brzo širio, da bi danas postao najčešće korišćena tehnologija i de facto standard za programiranje na serverskoj strani u Windows okruženju. Standardna specifikacija za interfejs Web servera, zvana Common Gateway Interface (ili skraćeno CGI), omogućavala je da izvršni program pristupi svim informacijama koje stižu sa klijent strane. Program onda može da generiše izlaz, HTML stranu, i da je pošalje klijentu putem Web servera.

Da bi posao izrade ovakvih aplikacija bio jednostavniji, neki programski jezici, kao što je Perl, koriste programe koje prihvataju tekstualne skript datoteke i izvršavaju ih. Sve što programer treba da uradi je da napiše skript, a Web server će ga izvršiti koristeći Perl interpreter. Microsoft je za IIS razvio svoj interfejs poznat pod imenom ISAPI (Internet Server Application Programming Interface) koji se razlikovao od CGI-a po tome što je dozvoljavao da se kompajlirani kod u okviru DLL-a izvršava direktno od strane Web servera.

ASP.NET

Kada se 1996. pojavila beta verzija ASP-a (codename: Denali), zauvek je promenila razvoj Web aplikacija. Izvršavanje koda u okviru Web strane je postalo veoma jednostavno i veoma moćno. Finalna verzija ASP 1.0 koja se pojavila kao dodatak za IIS 3.0, ubrzo je postala široko rasprostranjena. ASP 2.0 je stigao 1998. godine, kao deo besplatnog Windows NT4 Option Pack-a. ASP 2.0 i IIS 4.0 omogućili su kreiranje ASP aplikacija i izvršavanje komponenti u zasebnom, sopstvenom, memorijskom prostoru (tj. out-of-process). Početkom 2000. godine, zajedno sa Windows-om 2000 i IIS-om 5.0 pojavio se i ASP 3.0, sa par manjih poboljšanja. Sada na stolu imamo ASP.NET, u Beta 1 izdanju.

ASP.NET je deo .NET SDK-a, koji predstavlja skup tehnologija neophodnih za pravljenje i testiranje .NET aplikacija. SDK Beta 1 možete, ili preuzeti sa Interneta (oko 111 MB), ili naručiti na CD-u. Beta 1 verzija podržava Windows 2000 Server sa IIS-om 5, ali, za razliku od Preview verzije, podržan je Windows NT 4.0 sa IIS-om 4. ASP.NET nije moguće izvršavati pod Windows-om 95/98/ME.

(kliknite za veću sliku)

Microsoft tvrdi da SDK možete instalirati bez brige za svoje postojeće ASP aplikacije. Iako smo se mi odvažili na taj korak i nismo imali nikakve probleme, ipak vam ne savetujemo da to radite, bar ne sa Beta verzijom. Teorijski gledano, ASP.NET i ASP aplikacije mogu zajedno da egzistiraju. Ekstenzije datoteka ASP aplikacija (.asp, .asa) se razlikuju od ASP.NET aplikacija (.aspx, .asax, .ascx, .asmx) tako da se mogu nalaziti čak i u istom folderu.

Kada se ASP 3 pojavio, nije se mnogo razlikovao od verzije 2. Sa ASP.NET-om situacija je sasvim drugačija, on je radikalno promenjen u odnosu na stari dobri ASP 2 i 3. Doživeo je fundamentalne promene i obezbedio nam kompletno nov pristup Web programiranju. Kao i ASP aplikacije i ASP.NET aplikacije se mogu pisati u najobičnijem tekst editoru. Međutim, više se ne koriste obični skript jezici već je moguće koristiti proizvoljan . NET jezik. Trenutno su na raspolaganju tri takva jezika VB.NET, C# i JScript.NET. Iako vidite da je ASP.NET strane još uvek moguće razvijati sa JScript-om, reč je o značajno promenjenoj i unapređenoj verziji.

Za razliku od „klasičnog“ ASP-a, ASP.NET stranice se ne interpretiraju kada ih browser zatraži. Umesto toga, prvi put kada se stranica poziva, ona se kompajlira u Intermediate Language (IL). IL kod se zatim sačuva i svaki sledeći put kada se ta stranica zatraži, on se poziva, kompajlira pomoću Just-In-Time (JIT) kompajlera i izvršava. Rezultujuća HTML strana se zatim šalje browser-u.

HTML i Web kontrole

ASP.NET nam po prvi put predstavlja koncept pod nazivom Web Forms. Web Forms zapravo predstavljaju ASP.NET strane koje koriste serverske kontrole. Osnovni gradivni element za korisnički interfejs čine serverske kontrole. Reč je zapravo o dve grupe kontrola – HTML kontrolama i Web kontrolama. Instance HTML kontrola se generišu za svaki HTML tag koji sadrži runat=“server“ atribut. Na primer, sledeći kod kreira instancu kontrole HtmlInputText pod nazivom ‘textBox1’.

<input type="text" runat="server" id="textBox1" value="Zdravo, svete!">

Sve HTML kontrole postoje u okviru System.Web.UI.HtmlControls namespace-a i direktno, ili indirektno su izvedene iz osnovne klase HtmlControl. U ove kontrole spadaju i HtmlAnchor (tag <a>), HtmlSelect (<select>), HtmlTextArea (<textarea>), HtmlInputButton (<input type=“button“>), HtmlInputHidden (<input type=“hidden“>), HtmlForm (<form>), HtmlImage (<img>), HtmlTable (<table>), HtmlTableRow (<tr>), HtmlTableCell (<td>) itd. Ukoliko dodamo još jedan atribut (recimo onserverclick=“MojPotprogram“) možemo izvršiti povezivanje nekog događaja (u ovom slučaju click) sa našim kodom na serverskoj (!) strani.

Druga grupa serverskih kontrola u okviru ASP.NET-a su Web kontrole. Ove kontrole postoje u okviru System.Web.UI.WebControls namespace-a, i izvedene su iz osnovne WebControl klase. Web kontrole sadrže i tradicionalne kontrole sa HTML formulara, kao što su TextBox i Button, ali i neke sa većim stepenom apstrakcije kao što su Calendar i DataGrid. Ove kontrole pružaju nekoliko zgodnih mogućnosti koje značajno pojednostavljuju razvojni proces za Web aplikacije. Tu je pre svega dosledan i obiman objektni model. Osnovna WebControl klasa implementira više svojstava koja su zajednička za sve Web kontrole (ForeColor, BackColor, Font, Enabled i dr.). Bilo koje svojstvo kontrole može biti određeno iz baze podataka.

Atraktivno i potencijalno moćno je i automatsko detektovanje browser-a i automatsko prilagođavanje. U praksi to znači da će se Web kontrola u klijentovom browser-u prikazati na način koji će najbolje iskoristiti mogućnosti tog browser-a. Interfejs se tako može automatski prilagođavati da bude u HTML 3.2 formatu, DHTML-u, ili WML-u. Od prve verzije ASP-a pa do današnjih dana, način na koji pristupamo Internetu se dosta izmenio. Danas nije nikakvo čudo da se za surfovanje po Web-u koriste razni Windows CE računari, Palm Pilot uređaji i mobilni telefoni. To je stavilo poseban izazov pred projektante ASP.NET-a i oni su u velikoj meri rešili sve te nove zahteve.

U okviru HTML koda Web kontrole su takođe reprezentovane tagovima, ali je ovog puta reč o posebnim tagovima sa prefiksom. Kao i za HTML kontrole i ovi tagovi moraju sadržati runat=“server“ atribut. Pogledajmo primer za TextBox kontrolu. Prefiks „asp“ se odnosi na System.Web.UI.WebControls namespace.

<asp:TextBox id="textBox1" runat= "server" Text="Zdravo, svete!"> </asp:TextBox>

Na prvi pogled deluje da postoje velike sličnosti između nekih HTML i nekih Web kontrola, pa možda čak i duplirane funkcionalnosti. Međutim, između ove dve grupe kontrola postoje i suštinske razlike. Kada koristite HTML kontrole, vi zapravo programirate slično kao u „klasičnom“ ASP-u. Dodavanjem atributa runat=“server“ jednostavno dobijate serverske kontrole. Ove serverske kontrole imaju prilično siromašan objektni model, uglavnom sa atributima koji odgovaraju atributima HTML taga, a Web kontrole imaju znatno bogatiji objektni model, umnogome sličan Visual Basic modelu.

Takođe, dok su HTML kontrole u 1:1 odnosu sa HTML tagovima, dotle Web kontrole imaju znatno veći stepen apstrakcije. Ovo omogućava prilagođavanje prikaza i funkcionalnosti i otvara vrata za široki spektar novih kontrola nezavisnih proizvođača. Međutim, veća fleksibilnost podrazumeva i manju kontrolu kako će sama kontrola konačno izgledati u nekom browser-u. Na vama je da odlučite koje je rešenje bolje za konkretnu situaciju i traženu funkcionalnost. Čak i u okviru jedne strane možete slobodno kombinovati HTML i Web kontrole. Da li je stvarno bilo potrebe za dve grupe serverskih kontrola? Ljudi iz Microsoft-a nas zdušno ubeđuju da je bilo.

Web servisi

Web Forms nisu jedini adut ASP.NET tehnologije. Drugi veoma bitan činilac su Web servisi (Web services). Reč je o tehnologiji za generisanje serverskih objekata, aplikacija, koje bi obezbeđivale različite servise, usluge udaljenim klijentima, pogotovo kada se server i klijent izvršavaju na različitim operativnim sistemima. Komunikacija između servera i klijenta bi se obavljala u XML formatu, ili preciznije rečeno u SOAP (Simple Object Access Protocol) formatu. Ovi serveri, generisani pomoću ASP.NET-a, mogu da primaju SOAP zahteve i da šalju odgovore u SOAP formatu. Klijentu se ovi objekti otkrivaju i opisuju uz pomoć SDL-a (Service Description Language), još jednog jezika baziranog na XML-u. Klijent pristupa objektu uz pomoć HTTP-GET, HTTP-POST, ili HTTP-SOAP metoda koji obezbeđuju dodatnu fleksibilnost.

<%@ WebService Language="VB" Class="Test1" %>
Public Class Test1
   Public Function <WebMethod()> Inkrementiraj(a As Integer)
As Integer
      Return a + 1
   End Function
End Class

Razmena poruka o SOAP formatu i nije neka velika mudrost. Ono što je velika prednost ASP.NET-a je veoma jednostavno generisanje ovakvih objekata. Dovoljno da u bilo kom od podržanih jezika na serverskoj strani kreirate objekat definisan kao public class i da jednu, ili više metoda obeležite posebnim Web Method indikatorom. Nikakvo poznavanje DCOM/COM+, HTTP i SOAP tehnologija nije potrebno.

ASP se iz korena promenio. Da biste se prilagodili ASP programerima biće potrebno malo truda i vremena. Ali to je cena koju se mora platiti za prelazak na .NET tehnologiju, a poučen iskustvom, Microsoft je doneo ispravnu odluku da omogući paralelni rad i klasičnih ASP skriptova.