Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 34

ASP.

NET technology
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 mogue i u ASP.NET-u, ali je ovde osnovna
ideja sasvim drugaija
ASP.NET omoguava da serversko
programiranje bude veoma slino desk top
programiranju

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

Poreenje - slinosti i razlike


web serverskog i desktop
programiranja
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 pamenje 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
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 omoguava, tako da
web server treba da odrava stanja raznih
korisnika
Pri tome se angauju resursi servera bez
garancije da e 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 omoguava 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 omoguavaju lak
pristup i programiranje na serveru a pre slanja
klijentu se prevode u standardni html kod

ASP.NET - karakteristike
Odravanje stanja korisnika preko kolaia cookies kod klijenta ili na serveru preko SQL
servera
Centralizovano upravljanje izgledom aplikacije
korienje tema themes pored standardnih
naina korienjem 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 saobraaja 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
pratei *.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 sitea aplikacije
ASP.NET aplikacija se veoma jednostavno
kreira iz VS-a
U VS 2008 nije neophodno da IIS bude
instaliran, jer sam VS obezbeuje pomoni
web server za testiranje aplikacije

ASP.NET web aplikacija


VS prua mogunost 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 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>

Apsolutno pozicioniranje
kontrolaabsolute; left: 96px; top:
<asp:Label ID=Label1 ... Style=position:
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/>

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 korienjem ugraenog
pomonog web site-a u VS se jednostavno moe
prebaciti na web site gde e se koristiti
Za postavljanje web site-a se koristi alat koji se
pokree 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
using
using
using
using
using
using
using
using
using
using

System;
System.Data;
System.Configuration;
System.Linq;
System.Web;
System.Web.Security;
System.Web.UI;
System.Web.UI.WebControls;
System.Web.UI.WebControls.WebParts;
System.Web.UI.HtmlControls;
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"/>

Obrada dogaaja i zahtevi


Kada se desi nekiserveru
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
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
optereen, 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 sledeem 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+O2w8bDxpPDE3PjtpP
DE5
PjtpP DIxPjtpPDI3PjtpPDMzPjs+O2w8dDxwPHA8bDxDaGVja2VkOz47bDxvPH
Q+Oz4+Oz
47Oz47dDxwPHA8bDxDaGVja2VkOz47bDxvPGY+Oz4+Oz47Oz47dDxw
PHA8bDxDaGVja2
VkOz47bDxvPGY+Oz4+Oz47Oz47dDx0PDt0PGk8Mz47QDxBbm
FseXN0O0Rlc2lnbmVyO0 RldmVsb3Blcjs+O0A8QW5hbHlzdDtEZXNpZ25lcjtE
ZXZlbG9wZXI7Pj47Pjs7Pj t0PHA8cDxsPFRleHQ7PjtsPFxlOz4+Oz47Oz47Pj
47Pj47bDxQZW9uQnV0dG9uO1BIQ
Ovakvo ponaanje se moe promeniti za datu
kJ1dHRvbjtQSEJCdXR0b247VlBCdXR0b247
VlBCdXR0b247UHJlc2lkZW50QnV0dG9uO
kontrolu, ako se postavi vrednost svojstva
1ByZXNpZGVudEJ1dHRvbjs+Pg== />

EnableViewState = false, u kom sluaju se ne


alju podaci za tu kontrolu

Formatiranje web strane


korienjem Theme umesto
stilova
Stilovi se mogu primenjivati na uobiajen
nain za formatiranje aspx strana kao i za
obine html strane
Postoji i drugi veoma moan nain u
ASP.NET-u korienjem 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 FontBold=True />
<asp:RadioButton BackColor=White ForeColor=Red Runat=Server/>
<asp:Button BackColor=Red ForeColor=White Runat=Server FontBold=True/>
<asp:DropDownList BackColor=Red ForeColor=White Runat=Server/>
%@Page Theme=BlueTheme ...%
<configuration>
<system.web>
<pages theme=BlueTheme />
</system.web>
Primena Theme na jednu stranu
</configuration>

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

You might also like