aspNet uvod

34

description

uvod

Transcript of aspNet uvod

Page 1: aspNet uvod
Page 2: aspNet uvod

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 mešao sa html kod-om • To je moguće i u ASP.NET-u, ali je ovde osnovna

ideja sasvim drugačija• ASP.NET omogućava da serversko programiranje

bude veoma slično desk top programiranju

Page 3: aspNet uvod

Poređenje - sličnosti i razlike web serverskog i desktop programiranja

• Osnovni koncept kod obe vrste programiranja je komunikacija sa korisnikom preko vizuelnog grafičkog interface-a

• Logika aplikacije je u oba slučaja odvojena od grafičkog interface-a – kod desk top wpf aplikacije se koriste dva različita file-a *.xaml koji definiše izgled forme i *.xaml.cs koji definiše logiku aplikacije

• U ASP.NET-u je takođe odvojena definicija grafičkog prikaza u *.aspx file-u, dok je logika aplikacije u *.aspx.cs file-u

Page 4: aspNet uvod

Poređenje - sličnosti i razlike web serverskog i desktop programiranja

• Osnovna razlika se sastoji u tome što je web serverska aplikacija podeljena u dva dela koja se fizički nalaze na dva različita računara (iako u specijalnom slučaju mogu biti i na istom)

• Za grafički prikaz se koristi poseban klijentski program – web browser, kome podatke šalje udaljeni web server

• Kod web serverskog programiranja, web server vrši dve osnovne funkcije – šalje podatke za prikaz grafičkog interface-a – html kod i izvršava program koji definiše logiku aplikacije

Page 5: aspNet uvod

Poređenje - sličnosti i razlike web serverskog i desktop programiranja

• Najbitnija razlika je u komunikaciji korisnika i aplikacije koja definiše logiku

• Komunikacija sa web serverom se vrši preko preko mreže putem http protokola kojim se prenosi html kod

• http protokol nema stanja, tako da se bez preduzimanja posebnih mera na strani servera ne vrši nikakvo pamćenje prethodnog stanja u komunikaciji korisnika sa serverom

• Dalje, sama mreža preko koje se vrši komunikacija ima ograničene resurse i u principu je nepouzdana što dovodi do raznih drugih problema

Page 6: aspNet uvod

Poređenje - sličnosti i razlike web serverskog i desktop programiranja

• Serversko programiranje je suštinski različito od programiranja desk top aplikacije koja je samo za jednog korisnika, dok server treba i može da opslužuje više korisnika istovremeno – što više to bolje

• Različite korisnike koji istovremeno traže uslugu web servera treba efikasno razlikovati na neki način, a to http protokol ne omogućava, tako da web server treba da održava stanja raznih korisnika

• Pri tome se angažuju resursi servera bez garancije da će korisnik uopšte nastaviti dalju komunikaciju

Page 7: aspNet uvod

ASP.NET - karakteristike• Podržava http• Efikasno održava stanja klijenata• Obezbeđuje 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 izvršavaju 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

Page 8: aspNet uvod

ASP.NET - karakteristike• Mešanje html koda i ASP skript-a je loše i otežava

razvoj web aplikacije• ASP.NET omogućava suštinsko razdvajanje vizuelnog

izgleda aplikacije - *.aspx file od koda logike aplikacije - *.aspc.cs file

• ASP.NET se može programirati u nekom od .NET jezika – C#, VisualBasic i JScript, dok C++ nije na raspolaganju za programiranje ASP.NET aplikacija

• Prevedeni kod se kešira na serveru radi poboljšanja performansi – brzine rada

• Serverske kontrole koje omogućavaju lak pristup i programiranje na serveru a pre slanja klijentu se prevode u standardni html kod

Page 9: aspNet uvod

ASP.NET - karakteristike• Održavanje stanja korisnika preko kolačića - cookies

kod klijenta ili na serveru preko SQL servera• Centralizovano upravljanje izgledom aplikacije –

korišćenje tema – themes pored standardnih načina korišćenjem 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 mrežnog saobraćaja – izbegavanjem slanja čitave web strane, umesto čega se šalju samo neophodni podaci – samo oni koji su promenjeni

Page 10: aspNet uvod

ASP.NET - karakteristike• Podrška autentifikaciji (utvrđivanje identiteta) i

autorizaciji (prava identifikovanih korisnika)• Podrška za administraciju i konfiguraciju web

site-a

Page 11: aspNet uvod

ASP.NET web aplikacija• Web forma se nalazi u *.aspx file-u koji sadrži html

kod kao i neke specifične .NET tag-ove• Uz svaku web formu se može nalaziti i prateći

*.aspx.cs file koji definiše poslovnu logiku – pozadinski kod web forme

• web.config file u XML formatu koji sadrži podatke od značaja 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 obezbeđuje pomoćni web server za testiranje aplikacije

Page 12: aspNet uvod

ASP.NET web aplikacija• VS pruža mogućnost kreiranja ASP.NET web site-a

kao i ASP.NET web application – aplikacije• U jednostavnijim i manje zahtevnim slučajevima se

može 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 služi za složenije slučajeve gde se projektnim file-om određuje pripadnost file-ova projekta, i gde se prevode samo file-ovi eksplicitno navedeni u projektnom file-u

• U solution-u može biti više web aplikacija

Page 13: aspNet uvod

New web site

Page 14: aspNet uvod
Page 15: aspNet uvod
Page 16: aspNet uvod

Kod *.aspx strane

• Page direktiva• Deklaracija html verzije• Html xmlns

Page 17: aspNet uvod

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

Kod *.aspx strane

Page 18: aspNet uvod

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>

Page 19: aspNet uvod

Izgled web forme

Page 20: aspNet uvod

Podešavanja web site-a• Debug-ovanje se može podesiti iz VS-a, ali takođe i

iz web.config file-a sa: <compilation debug=”false”>

<assemblies>...</assemblies>

</compilation>Debug-ovanje je korisno u toku razvoja projekta, ali

ga treba isključiti u fazi eksploatacije

Page 21: aspNet uvod

Deploy – ing – postavljanje web site-a

• Web site razvijen u VS korišćenjem ugrađenog pomoćnog web site-a u VS se jednostavno može prebaciti na web site gde će se koristiti

• Za postavljanje web site-a se koristi alat koji se pokreće iz menu-a Website / Copy web site...

• Odredište razvijenog site-a može biti web site na lokalnom računaru, kao i udaljeni web site

Page 22: aspNet uvod

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>

Page 23: aspNet uvod

C# kod – pozadinski fileusing 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(); } }

Page 24: aspNet uvod

C# kod – pozadinski fileprivate 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”);

}

Page 25: aspNet uvod

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;

}

Page 26: aspNet uvod

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;

}

Page 27: aspNet uvod

C# kod – pozadinski fileprotected 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"/>

Page 28: aspNet uvod

Obrada događaja i zahtevi serveru• Kada se desi neki događaj na koji web kontrola

reaguje, tj. postoji metod koji se izvršava u tom slučaju, onda web browser šalje zahtev web serveru za obradom tog događaja, jer se kod izvršava na web serveru.

• Pošto kontrole na web strani mogu sadržati 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 server–u u ASP.NET-u, mogu se programski promeniti preko serverskih kontrola i oni podaci – elementi web strane koji se ne šalju kao korisnički uneti podaci

Page 29: aspNet uvod

Obrada događaja i zahtevi serveru• Kako web server onda zna šta je uradio u

prethodnoj sesiji, šta je sve eventualno promenio?• Odgovor može biti taj da se to pamti na serveru• Ali, to bi bilo previše zahtevno za server, kada je

opterećen, 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 računara a ne nepotrebno na serveru

• Pri sledećem zahtevu, iz hidden polja se podaci na standardan način šalju web serveru, zajedno sa korisničkim podacima metodom get ili post

Page 30: aspNet uvod

Hidden polje

• Ovakvo ponašanje se može promeniti za datu kontrolu, ako se postavi vrednost svojstva EnableViewState = false, u kom slučaju se ne šalju podaci za tu kontrolu

<input type=”hidden” name=”__VIEWSTATE”value=”/WEPdDwxNDk0MzA1NzE0O3Q8O2w8aTwxPjs+O2w8bDxpPDE3PjtpPDE5PjtpP DIxPjtpPDI3PjtpPDMzPjs+O2w8dDxwPHA8bDxDaGVja2VkOz47bDxvPHQ+Oz4+Oz 47Oz47dDxwPHA8bDxDaGVja2VkOz47bDxvPGY+Oz4+Oz47Oz47dDxwPHA8bDxDaGVja2 VkOz47bDxvPGY+Oz4+Oz47Oz47dDx0PDt0PGk8Mz47QDxBbmFseXN0O0Rlc2lnbmVyO0 RldmVsb3Blcjs+O0A8QW5hbHlzdDtEZXNpZ25lcjtEZXZlbG9wZXI7Pj47Pjs7Pj t0PHA8cDxsPFRleHQ7PjtsPFxlOz4+Oz47Oz47Pj47Pj47bDxQZW9uQnV0dG9uO1BIQ kJ1dHRvbjtQSEJCdXR0b247VlBCdXR0b247VlBCdXR0b247UHJlc2lkZW50QnV0dG9uO 1ByZXNpZGVudEJ1dHRvbjs+Pg==” />

Page 31: aspNet uvod

Formatiranje web strane korišćenjem Theme umesto stilova

• Stilovi se mogu primenjivati na uobičajen način za formatiranje aspx strana kao i za obične html strane

• Postoji i drugi veoma moćan način u ASP.NET-u korišćenjem Theme

• Theme je skup skin file-ova koji se nalaze u podfolderu App_Themes foldera web site-a

• Naziv podfoldera App_Themes foldera određuje naziv Theme

• Skin file je text file sa ekstenzijom skin koji određuje formatiranje web kontrola

Page 32: aspNet uvod

*.skin file

• 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

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

Page 33: aspNet uvod
Page 34: aspNet uvod