Sie sind auf Seite 1von 34

ASP.

NET tehnologija je namenjena web serverskom programiranju Postoje razne alternativne tehnologije za web serversko programiranje kao to je php, cgi, jsp i druge Za klijentsko web programiranje se koristi JavaScript ASP.NET je naslednik stare ASP tehnologije gde se programski skript meao sa html kod-om To je mogude i u ASP.NET-u, ali je ovde osnovna ideja sasvim drugaija ASP.NET omogudava da serversko programiranje bude veoma slino desk top programiranju

ASP.NET technology

Poreenje - slinosti i razlike web serverskog i desktop programiranja


Osnovni koncept kod obe vrste programiranja je komunikacija sa korisnikom preko vizuelnog grafikog interface-a Logika aplikacije je u oba sluaja odvojena od grafikog interface-a kod desk top wpf aplikacije se koriste dva razliita file-a *.xaml koji definie izgled forme i *.xaml.cs koji definie logiku aplikacije U ASP.NET-u je takoe odvojena definicija grafikog prikaza u *.aspx file-u, dok je logika aplikacije u *.aspx.cs file-u

Poreenje - slinosti i razlike web serverskog i desktop programiranja


Osnovna razlika se sastoji u tome to je web serverska aplikacija podeljena u dva dela koja se fiziki nalaze na dva razliita raunara (iako u specijalnom sluaju mogu biti i na istom) Za grafiki prikaz se koristi poseban klijentski program web browser, kome podatke alje udaljeni web server Kod web serverskog programiranja, web server vri dve osnovne funkcije alje podatke za prikaz grafikog interface-a html kod i izvrava program koji definie logiku aplikacije

Najbitnija razlika je u komunikaciji korisnika i aplikacije koja definie logiku Komunikacija sa web serverom se vri preko preko mree putem http protokola kojim se prenosi html kod http protokol nema stanja, tako da se bez preduzimanja posebnih mera na strani servera ne vri nikakvo pamdenje prethodnog stanja u komunikaciji korisnika sa serverom Dalje, sama mrea preko koje se vri komunikacija ima ograniene resurse i u principu je nepouzdana to dovodi do raznih drugih problema

Poreenje - slinosti i razlike web serverskog i desktop programiranja

Poreenje - slinosti i razlike web serverskog i desktop programiranja


Serversko programiranje je sutinski razliito od programiranja desk top aplikacije koja je samo za jednog korisnika, dok server treba i moe da opsluuje vie korisnika istovremeno to vie to bolje Razliite korisnike koji istovremeno trae uslugu web servera treba efikasno razlikovati na neki nain, a to http protokol ne omogudava, tako da web server treba da odrava stanja raznih korisnika Pri tome se angauju resursi servera bez garancije da de korisnik uopte nastaviti dalju komunikaciju

ASP.NET - karakteristike
Podrava http Efikasno odrava stanja klijenata Obezbeuje alate za lak razvoj web aplikacija Aplikacijama se pristupa preko bilo kog standardnog savremenog web browser-a Skalabilne aplikacije sa kratkim vremenom odziva Aplikacije se izvravaju na IIS (Internet Information Server) u Stara ASP tehnologija se bazirala na skriptnom kodu (Basic) koji se kombinovao sa html kod-om u istom file-u, kao php

ASP.NET - karakteristike
Meanje html koda i ASP skript-a je loe i oteava razvoj web aplikacije ASP.NET omogudava sutinsko razdvajanje vizuelnog izgleda aplikacije - *.aspx file od koda logike aplikacije *.aspc.cs file ASP.NET se moe programirati u nekom od .NET jezika C#, VisualBasic i JScript, dok C++ nije na raspolaganju za programiranje ASP.NET aplikacija Prevedeni kod se keira na serveru radi poboljanja performansi brzine rada Serverske kontrole koje omogudavaju lak pristup i programiranje na serveru a pre slanja klijentu se prevode u standardni html kod

ASP.NET - karakteristike
Odravanje stanja korisnika preko kolaida - cookies kod klijenta ili na serveru preko SQL servera Centralizovano upravljanje izgledom aplikacije koridenje tema themes pored standardnih naina koridenjem kaskadnih stilova CSS Kontrole za povezivanje sa izvorima podataka DLINQ, SQL server, Access, XML AJAX (Asynchronous JavaScript and XML) aplikacije koje su efikasne u pogledu komunikacije sa korisnikom i generisanja mrenog saobradaja izbegavanjem slanja itave web strane, umesto ega se alju samo neophodni podaci samo oni koji su promenjeni

ASP.NET - karakteristike
Podrka autentifikaciji (utvrivanje identiteta) i autorizaciji (prava identifikovanih korisnika) Podrka za administraciju i konfiguraciju web site-a

ASP.NET web aplikacija


Web forma se nalazi u *.aspx file-u koji sadri html kod kao i neke specifine .NET tag-ove Uz svaku web formu se moe nalaziti i pratedi *.aspx.cs file koji definie poslovnu logiku pozadinski kod web forme web.config file u XML formatu koji sadri podatke od znaaja za konfiguraciju web site-a aplikacije ASP.NET aplikacija se veoma jednostavno kreira iz VS-a U VS 2008 nije neophodno da IIS bude instaliran, jer sam VS obezbeuje pomodni web server za testiranje aplikacije

ASP.NET web aplikacija


VS prua mogudnost kreiranja ASP.NET web site-a kao i ASP.NET web application aplikacije U jednostavnijim i manje zahtevnim sluajevima se moe kreirati web site kod koga nema projektnog file-a, i koji je organizovan prema strukturi foldera gde svi file-ovi pripadaju projektu Projekat tipa Web aplikacije slui za sloenije sluajeve gde se projektnim file-om odreuje pripadnost file-ova projekta, i gde se prevode samo file-ovi eksplicitno navedeni u projektnom file-u U solution-u moe biti vie web aplikacija

New web site

Kod *.aspx strane


<%@ Page Language=C# AutoEventWireup=true CodeFile=EmployeeForm.aspx.cs Inherits=_Default %> <!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd> <html xmlns=http://www.w3.org/1999/xhtml> <head runat=server> <title>Employee Information</title> <style type=text/css> .employeeFormStyle { font-family: Arial; color: #0000FF; background-image: url(computer.bmp); height: 500px; } </style> </head>

Page direktiva Deklaracija html verzije Html xmlns

Kod *.aspx strane


<body> <form id=form1 runat=server> <div class=employeeFormStyle> <asp:Label ID=Label1 runat=server Font-Bold=True Font-Names=Arial Black Font-Size=X-Large Height=36px Text=Litware, Inc. Software Developers Width=630px></asp:Label> <asp:Label ID=Label2 runat=server Text=First Name></asp:Label> <asp:Label ID=Label3 runat=server Text=Last Name></asp:Label> <asp:Label ID=Label4 runat=server Text=Employee Id></asp:Label> <asp:TextBox ID=firstName runat=server Height=24px Width=230px></asp:TextBox> <asp:TextBox ID=lastName runat=server Height=24px Width=230px></asp:TextBox> <asp:TextBox ID=employeeID runat=server Height=24px Width=230px></asp:TextBox> </div> </form> </body> </html>

Apsolutno pozicioniranje kontrola


<asp:Label ID=Label1 ... Style=position: absolute; left: 96px; top: 24px></asp:Label> <asp:Label ID=Label2 ... Style=position: absolute; left: 62px; top: 104px></asp:Label> <asp:Label ID=Label3 ... Style=position: absolute; left: 414px; top: 104px></asp:Label> <asp:Label ID=Label4 ... Style=position: absolute; left: 62px; top: 168px></asp:Label> <asp:TextBox ID=firstName ... Style=position: absolute; left: 166px; top:102px> </asp:TextBox> <asp:TextBox ID=lastName ... Style=position: absolute; left: 508px; top: 102px> </asp:TextBox> <asp:TextBox ID=employeeID ... Style=position: absolute; left: 166px; top:166px> </asp:TextBox> <asp:Label ID=Label5 ... Style=position: absolute; left: 86px; top: 224px></asp:Label> <asp:RadioButton ID=workerButton ... Style=position: absolute; left: 192px; top:224px/> <asp:RadioButton ID=bossButton ... Style=position: absolute; left: 206px; top:260px/> <asp:RadioButton ID=presidentButton ... Style=position: absolute; left: 174px; top:332px/> <asp:RadioButton ID=vpButton ... Style=position: absolute; left: 138px; top:296px/> <asp:Label ID=Label6 ... Style=position: absolute; left: 456px; top: 224px></asp:Label> <asp:DropDownList ID=positionRole ... Style=position: absolute; left: 512px;top: 224px> </asp:DropDownList> <asp:Button ID=saveButton ... Style=position: absolute; left: 328px; top: 408px/> <asp:Button ID=clearButton ... Style=position: absolute; left: 424px; top: 408px/> <asp:Label ID=infoLabel ... Style=position: absolute; left: 62px; top: 454px></asp:Label>

Izgled web forme

Podeavanja web site-a


Debug-ovanje se moe podesiti iz VS-a, ali takoe i iz web.config file-a sa: <compilation debug=false> <assemblies> ... </assemblies> </compilation> Debug-ovanje je korisno u toku razvoja projekta, ali ga treba iskljuiti u fazi eksploatacije

Deploy ing postavljanje web site-a


Web site razvijen u VS koridenjem ugraenog pomodnog web site-a u VS se jednostavno moe prebaciti na web site gde de se koristiti Za postavljanje web site-a se koristi alat koji se pokrede iz menu-a Website / Copy web site... Odredite razvijenog site-a moe biti web site na lokalnom raunaru, kao i udaljeni web site

Serverske kontrole asp:


<asp:Label ID=Label1 runat=server Font-Bold=True Font-Names=Arial Black Font-Size=X-Large Height=36px Text=Litware, Inc. Software Developers Width=630px Style=position: absolute; left: 96px; top: 24px></asp:Label>

C# kod pozadinski file


using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml.Linq; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { initPositionRole(); } }

C# kod pozadinski file


private void initPositionRole() { positionRole.Items.Clear(); positionRole.Enabled = true; positionRole.Items.Add(Analyst); positionRole.Items.Add(Designer); positionRole.Items.Add(Developer); } protected void workerButton_CheckedChanged(object sender, EventArgs e) { initPositionRole(); } protected void bossButton_CheckedChanged(object sender, EventArgs e) { positionRole.Items.Clear(); positionRole.Enabled = true; positionRole.Items.Add(General Manager); positionRole.Items.Add(Project Manager); }

C# kod pozadinski file


protected void vpButton_CheckedChanged(object sender, EventArgs e) { positionRole.Items.Clear(); positionRole.Enabled = true; positionRole.Items.Add(VP Sales); positionRole.Items.Add(VP Marketing); positionRole.Items.Add(VP Production); positionRole.Items.Add(VP Human Resources); } protected void presidentButton_CheckedChanged(object sender, EventArgs e) { positionRole.Items.Clear(); positionRole.Enabled = false; }

C# kod pozadinski file


protected void saveButton_Click(object sender, EventArgs e) { String position = ; if (workerButton.Checked) position = Worker; if (bossButton.Checked) position = Manager; if (vpButton.Checked) position = Vice President; if (presidentButton.Checked) position = President; infoLabel.Text = Employee:&nbsp + firstName.Text + &nbsp + lastName.Text + &nbsp&nbsp&nbsp&nbspId:&nbsp + employeeID.Text + &nbsp&nbsp&nbsp&nbspPosition:&nbsp + position; }

C# kod pozadinski file


protected void clearButton_Click(object sender, EventArgs e) { firstName.Text = ; lastName.Text = ; employeeID.Text = ; workerButton.Checked = true; bossButton.Checked = false; vpButton.Checked = false; presidentButton.Checked = false; initPositionRole(); infoLabel.Text = ; } <asp:RadioButton ID="workerButton" runat="server" Checked="True" GroupName="positionGroup" Text="Worker" TextAlign="Left" Style="position: absolute; left: 192px; top: 224px; bottom: 300px;" AutoPostBack="True" oncheckedchanged="workerButton_CheckedChanged"/>

Kada se desi neki dogaaj na koji web kontrola reaguje, tj. postoji metod koji se izvrava u tom sluaju, onda web browser alje zahtev web serveru za obradom tog dogaaja, jer se kod izvrava na web serveru. Poto kontrole na web strani mogu sadrati podatke unete od strane korisnika, koje aplikacija treba da obradi, zajedno sa zahtevom se alju i ti podaci metodom get ili post Ali, na web serveru u ASP.NET-u, mogu se programski promeniti preko serverskih kontrola i oni podaci elementi web strane koji se ne alju kao korisniki uneti podaci

Obrada dogaaja i zahtevi serveru

Obrada dogaaja i zahtevi serveru


Kako web server onda zna ta je uradio u prethodnoj sesiji, ta je sve eventualno promenio? Odgovor moe biti taj da se to pamti na serveru Ali, to bi bilo previe zahtevno za server, kada je optereden, kada ima puno zahteva Onda se svi ti podaci sa web strane koji nisu vezani za input polja pamte u hidden skrivenom input polju u web browser-u, dakle u RAM memoriji klijentskog raunara a ne nepotrebno na serveru Pri slededem zahtevu, iz hidden polja se podaci na standardan nain alju web serveru, zajedno sa korisnikim podacima metodom get ili post

Hidden polje
<input type=hidden name=__VIEWSTATE value=/WEPdDwxNDk0MzA1NzE0O3Q8O2w8aTwxPjs+O2w8bDxpPDE3PjtpPDE5 PjtpP DIxPjtpPDI3PjtpPDMzPjs+O2w8dDxwPHA8bDxDaGVja2VkOz47bDxvPH Q+Oz4+Oz 47Oz47dDxwPHA8bDxDaGVja2VkOz47bDxvPGY+Oz4+Oz47Oz47dDxw PHA8bDxDaGVja2 VkOz47bDxvPGY+Oz4+Oz47Oz47dDx0PDt0PGk8Mz47QDxBbm FseXN0O0Rlc2lnbmVyO0 RldmVsb3Blcjs+O0A8QW5hbHlzdDtEZXNpZ25lcjtE ZXZlbG9wZXI7Pj47Pjs7Pj t0PHA8cDxsPFRleHQ7PjtsPFxlOz4+Oz47Oz47Pj 47Pj47bDxQZW9uQnV0dG9uO1BIQ kJ1dHRvbjtQSEJCdXR0b247VlBCdXR0b247 VlBCdXR0b247UHJlc2lkZW50QnV0dG9uO 1ByZXNpZGVudEJ1dHRvbjs+Pg== />

Ovakvo ponaanje se moe promeniti za datu kontrolu, ako se postavi vrednost svojstva EnableViewState = false, u kom sluaju se ne alju podaci za tu kontrolu

Formatiranje web strane koridenjem Theme umesto stilova


Stilovi se mogu primenjivati na uobiajen nain za formatiranje aspx strana kao i za obine html strane Postoji i drugi veoma modan nain u ASP.NET-u koridenjem Theme Theme je skup skin file-ova koji se nalaze u podfolderu App_Themes foldera web site-a Naziv podfoldera App_Themes foldera odreuje naziv Theme Skin file je text file sa ekstenzijom skin koji odreuje formatiranje web kontrola

*.skin file
<asp:TextBox BackColor=Red ForeColor=White Runat=Server /> <asp:Label BackColor=White ForeColor=Red Runat=Server Font-Bold=True /> <asp:RadioButton BackColor=White ForeColor=Red Runat=Server/> <asp:Button BackColor=Red ForeColor=White Runat=Server Font-Bold=True/> <asp:DropDownList BackColor=Red ForeColor=White Runat=Server/> %@Page Theme=BlueTheme ...% <configuration> <system.web> <pages theme=BlueTheme /> </system.web> </configuration>

Primena Theme na jednu stranu se navodi u Page direktivi u svojstvu Theme Primena Theme na itav site se navodi u web.config file-u u svojstvu theme elementa pages

Das könnte Ihnen auch gefallen