Chapter 01

Hyrje ne ASP.NET 3.5

Te kuptojme aktoret

Nje aplikim web eshte ndryshe nga nje aplikim standard i Windows. Ai nuk ekzakutohet ne nje proces te vetem ne nje makine te vetme. Ne realitet, vendoset ne nje server web dhe aksesohet nepermjet nje browseri web qe ndodhet ne nje makine te klientit. Komunikimi midis serverit web dhe web browserit realizohet duke perdorur HTTP. Eshte e domosdoshme qe ju te keni nje kuptim baze te ketij komunikimi para se te filloni te shkruani. Komunikimi tipik midis serverit web dhe web browserit mund te pergjithesohet ne hapat e meposhtme:

Nje perdorues perdor ose browserin e tij/te saj web per te nisur nje kerkese (request) per nje web server.

  1. HTTP perdoret per te derguar nje kerkese GET ne web server.

  2. Web serveri perpunon kerkesen GET ne server ( zakonisht gjen kodin e kerkuar dhe e ekzekuton ate ) .

  3. Web server dergon nje pergjigje ne web browser. Perdoret HTTP si protokoll per te derguar nje HTTP (response) pergjigje drejt web browser.

  4. Web browser i perdoruesit atehere proceson pergjigjen ( zakonisht HTML dhe JavaScript ) dhe pergatit faqen web per tia shfaqur perdoruesit.

  5. Perdoruesi pastaj mund te vendose te dhenat e tij ne nje forme dhe te kryeje nje veprim si klikimi i nje butoni submit qe realizon dergimin pas (post back) te te dhenave te tij ne web server per perpunim .

  6. HTTP perdoret per te POST-uar (post back) te dhenat pas ne web server

  7. Web server pastaj proceson kerkesen POST ( perseri , duke e thirrur kodin tuaj per proces ) .

  8. Web server dergon nje pergjigje perseri ne web browser. HTTP perdoret per te derguar pergjigje HTTP ( response ) ne web browser

  9. Web browseri serish proceson pergjigjen dhe shfaq faqen web per perdoruesin.

Ky proces perseritet pa pushim gjate nje sesioni tipik te aplikimit web.

Roli i Web Serverit

Web Serverat e pare ishin pergjegjes per pranimin dhe perpunimin e kerkesave te thjeshta te perdoruesit nga browserat nepermjet

HTTP. Web serveri trajtonte kerkesen e dhe i dergonte nje pergjigje prapa web browserit. Web serveri me pas mbyllte çdo lidhje mes tij dhe browserit dhe lironte te gjitha burimet qe ishin te perfshire me kerkesen. Keto burime kane liroheshin lehte nga web server pasi ishte

perfunduar procesimi i kerkeses. Ky lloj aplikimi web eshte konsideruar si pa gjendje (stateless), sepse nuk mbaheshin te dhena nga serveri web ndermjet kerkesave dhe nuk lihej asnje lidhje e hapur . Keto aplikacione zakonisht perfshinin faqet e thjeshta HTML dhe per kete arsye ishin ne gjendje per te trajtuar me mijera kerkesa te ngjashme per minute. Figura 1-1 tregon nje shembull i ketij mjedisi te thjeshte, pa gjendje (stateless).

Serverat e sotem web ofrojne sherbime qe shkojne pertej serverave origjinale web. Veç ofrimit te fileve statike HTML, serverat moderne

web trajtojne kerkesat per faqet qe permbajne kodin qe ekzekutohet ne server ; web server e ekzekuton kete kod ne baze te kerkeses

dhe i pergjigjet me rezultatet e marra. Keto servera web gjithashtu kane aftesine per te ruajtur te dhenat ndermjet kerkesave. Kjo do te

thote se faqet web mund te jene lidhur se bashku per te formuar nje aplikim web qe kupton gjendjen aktuale te kerkesave tek çdo

perdorues individual. Keto servera mbajne nje lidhje te hapur per browserin per nje periudhe kohore ne pritje te kerkesave shtese nga i

njejti perdorues . Ky lloj i nderveprimit eshte ilustruar ne figuren 1-2.

1.3 Roli i web browserit

Web browser perben nje platforme te pavarur me mjete qe sherbejne per te shfaqur faqet Web qe jane shkruar ne HTML. HTML

eshte projektuar te jete ne gjendje te shfaqe informacion ne çdo system operimi pa duke vene asnje kufizim ne lidhje me madhesine

e dritares. Kjo eshte arsyeja pse faqet web konsiderohen te pavarura nga platforma. HTML eshte projektuar te "rrjedhje", duke e

mbledhur tekstin, si te jete e nevojshme per tu pershtatur me dritaren e browserit. Browseri web gjithashtu tregon imazhe dhe

pergjigjet per lidhjet me faqet e tjera. Çdo kerkese nga nje faqe web drejt web server, sjell pershtatjen e web browser ne ekran

per te shfaqur informacion te ri.

Edhe pse roli i browserit eshte thjesht te paraqese informacionin dhe te mbledhe te dhena nga perdoruesit, shume teknologji te reja

klient-side mundesojne qe browserat e sotem web te ekzekutojne kode te tille si JavaScript dhe te ofroje plug-ins qe permiresojne pervojen e perdoruesit. Teknologjite te tilla si Asynchronous JavaScript dhe XML (AJAX), dhe Microsoft Silverlight lejojne browserat

web te komunikojne me serverat web pa hequr web faqen qe ekziston nga dritarja e browserit. Keto teknologji e bejne perdoruesin te

kete eksperience me dinamike dhe interaktive.

1.4 Roli i Hypertext Transfer Protocol

HTTP eshte nje protokoll komunikimi i bazuar ne tekst qe eshte perdorur per te kerkuar web faqe nga web serverat dhe per te

derguar pergjigjet perseri ne web browser. Mesazhet HTTP dergohen zakonisht midis serverit web dhe web browserit duke perdorur

porten 80 ose porten 443 nese jemi duke perdorur Secure HTTP (HTTPS).

Faqet zakonisht kerkohen nga nje perdorues duke hyre ne browserin e tij dhe duke klikuar ne nje te bookmark preferuar, me ane

te kryerjes se nje kerkimi, ose nga formulimi i nje Uniform Resource Locator (URL). Kur kerkohet nje faqe Web, dergohet nje

komande tekstuale nga browseri per web serverin. Kjo komande mund te duket si me poshte:

GET /default.aspx HTTP/1.1

Host: www.northwindtraders.com

Rreshti i pare ne kete komande permban ate qe quhet metode, e njohur edhe si folje ose komande. Ne kete rast folja eshte GET.

Folja eshte ndjekur nga nje URL e faqes web qe do te shikohet (/default.aspx). Pas kesaj eshte versioni i HTTP qe do te perdoret per

te perpunuar komanden (HTTP / 1.1). Ne kete menyre, metoda tregon veprimet qe do te kryhen nga serveri web, URL qe eshte

objektivi i kesaj metode, dhe protokolli i komunikimit.

Rreshti i dyte i komandes (Host: www.northwindtraders.com) identifikon emrin e hostit qe duhet te perdoret nga web serveri. Kjo

eshte e dobishme ne qofte se nje server web po hoston me shume se nje web site. Ne kete rast, web server duhet te kaloje kerkesen

ne vendin (site-n) e pershtatshem per perpunim. Ky proces njihet si perdorimi i headers te hostit per te identifikuar web site-in qe

do te merret me kerkesen e dhene. Ka dhe metoda te tjera te percaktuara ne HTTP. Tabela 1-1 permban nje liste te disa prej metodave

te zakonshme HTTP me nje pershkrim te perdorimet e tyre. Vini re se nese Authoring Distributed dhe Versioning (DAV) eshte aktivizuar

ne faqen e internetit, jane ne dispozicion shume me teper folje, te tilla siLOCK dhe UNLOCK.

1.5 Cfare eshte autorizimi i shperndare dhe vendosja e versionit

Autorizimi i shperndare dhe Versioning (DAV) eshte nje bashkesi e shtesave (extensions) te HTTP/1.1 qe thjeshton zhvillimin e

websiteve kur punohet ne nje skenar si ekip. DAV eshte nje standard i hapur dhe eshte ne dispozicion ne platforma te shumta.

DAV ofron mundesine per bllokimin dhe zhbllokimin e fileve dhe aftesine per te caktuar versione.

DAV eshte ndertuar drejtperdrejt mbi HTTP / 1.1, keshtu qe nuk ka nevoje per protokolle te tjera, te tilla si File Transfer Protocol (FTP)

ose Server Mesage Block (SMB). DAV gjithashtu ofron mundesine te pyese web serverin per atributet e ndryshme te burimeve/resurseve

te tilla si emri, timestamp, dhe madhesia. DAV gjithashtu u jep zhvilluesve aftesine per te kryer kopjimin dhe levizjen ne ane

server-side te fileve. Per shembull, ju mund te perdorni foljet HTTP GET dhe PUT per te mare filet nga serverat web dhe per ti ruajtur

ato ne vende te ndryshme, ose ju mund te perdorin foljen e DAV COPY per ti treguar thjesht nje serveri te kopjoje nje file.

Komunikimi nga web browser ne web server eshte percaktuar si nje kerkese. Ne ASP.NET, ka nje objekt Request qe eshte perdorur

per te perfaqesuar komunikimet e browserit web drejt nje web serveri. Ajo e vendos kerkesen mbi burimet ne nje objekt qe mund

te kerkohet ne kodin qe ne do te zhvillojme. Kjo i mundeson kodit tuaj akses per gjera te tilla si cookies te lidhur me site-in

tuaj, parametrat string query qe u kaluan ne URL, pathin e kerkeses, dhe informacione te tjera.

Komunikimit nga web server perseri ne web browser i referohemi zakonisht si pergjigje (response). Ne ASP.NET ky informacion

eshte i vendosur ne objektin Response. Ju mund te perdorin kete objekt per te vendosur cookies, te percaktojme procesin e caching,

per te vendosur vendosur skadencen e faqes dhe disa veprime me shume. Kur web server i pergjigjet nje kerkese, ai perdor ate qe

gjen ne objektin Response per te shkruar pergjigjen HTTP ne format tekst. Ky komunikim mund te duket si me poshte:

HTTP/1.1 200 OK

Server: Microsoft-IIS/6.0

Content-Type: text/html

Content-Length: 38

<html><body>Hello, world.</body><html>

Rreshti i pare tregon protokollin e komunikimit dhe version e informacionit. Ai gjithashtu perfshin kodin e statusit per pergjigjen

dhe arsyen qe shpjegon kodin e statusit.

Kodet e statusit jane tre shifrat e grupuar siç tregohet ne Tabelen 1-2.

Perveç grupeve te kodit te statusit, HTTP / 1.1 percakton dhe kodet unike te statusit dhe arsyet. Nje arsye nuk eshte asgje me shume

se nje pershkrim shume i shkurter i kodit te statusit. Tabela 1-3 tregon nje liste te kodeve te perdorura me teper te statusit dhe

arsyet e tyre. Teksti i arsye mund te ndryshohet pa u thyer protokolli.

Rresht i dyte i pergjigjes tregon llojin e web server (p.sh., Server: Microsoft-IIS / 6.0). Rreshti i trete (Content-Type) tregon llojin

e burimeve qe eshte duke u derguar ne web browser si pjese e pergjigjes. Ky tregues eshte ne formen e nje lloji Multipurpose

Internet Mail Extensions (MIME type). Ne rastin e ketij shembulli (Content-Type: text / html), file eshte nje skedar statik teksti HTML.

Lloji MIME eshte e ndare ne dy pjese ku eshte caktuar tipi / nentipi, ne te cilin pjesa e pare eshte lloji burimeve (teksti ne kete shembull),

dhe pjesa e dyte eshte nentip burim ( html ne kete shembull ). Disa lloje te zakonshme MIME jane treguar ne Tabelen 1-4.

Rreshti tjeter eshte gjatesia e permbajtjes (Content-Length: 38 ne kete shembull). Kjo thjesht tregon madhesine e permbajtjes qe vijon. Pas rreshtit gjatesi-permbajtje, eshte mesazhi pergjigje qe u kthye nga serveri. Ky mesazh eshte i bazuar ne llojin MIME. Browseri tenton te procesoje permbajtjen bazuar ne llojin e vet MIME. Per shembull, ai e interpreton HTML per MIME type HTML, dhe ben nje imazh, per llojin MIME image.

1.6 Dergimi i te dhenave te forms ne web server

HTML <form> tag mund te perdoret per te krijuar nje faqe web qe merr te dhena nga perdoruesit dhe dergon te dhenat e

mbledhura perseri ne web server. Formati tag eshte mbivendosur brenda <HTML> tags. Tagu form zakonisht perfshin informacion

per perdoruesit ne formen e tekstit dhe te dhena tag si per shembull butonat inputet e tipit text e dis ate tjera. Nje perdorim

tipik i <form> tag duket si ky:

<form method="POST" action="getCustomer.aspx">

Enter Customer ID:

<input type="text" name="Id">

<input type="submit" value="Get Customer">

</form>

Kjo forme shembull i kerkon perdoruesit nje ID te konsumatoreve, tregon nje kuti teksti qe mbledh ID e deshiruar te konsumatoreve,

dhe gjithashtu tregon nje buton Submit qe realizon dergimin e te dhenave ne server web. Atributi method e formes tag tregon foljen

HTTP (POST) per te perdorur kur derguar kerkesen ne server.Atribut veprim eshte URL relative e faqes per i cili do te dergohet kerkesa.

Ka dy metoda HTTP qe mund te perdoren per te paraqitur te dhenat forme perseri ne web server: GET dhe POST. Kur eshte perdorur

folja GET, te dhenat i bashkengjiten si pjese e vargut URL. String query eshte nje koleksion i celesit kyç dhe vleres, te ndara nga

nje simbol (&). Fillimi i vargut eshte treguar nga nje pikepyetje (?). Me poshte eshte nje shembull:

GET /getCustomer.aspx?Id=123&color=blue HTTP/1.1

Host: www.northwindtraders.com

Ne kete shembull, nje kerkese GET eshte bere ne web server per nje faqe web te quajtur getCustomer.aspx ne hostin e faqes web.

String query permban te dhenat e formes pas pikepyetjes (?).

Kur duke perdorur metoden GET per te derguar te dhenat ne server, komplet URL dhe query string mund te shihet dhe te modifikohet

ne shiritin e adresave te shfletuesit web. Mbani ne mend se, ne varesi te skenarit, kjo mund te jete nje disavantazh apo edhe nje rrezik

i sigurise. Ju nuk duhet te lini te hapura te dhenat tuaja. Ju gjithashtu mund te mos deshironi qe perdoruesit te bejne bookmark faqet

qe perfshijne query string dhe te dergoni ne web server gjithnje te njejtin informacion, per arsye sigurie dhe jo vetem. Nje

tjeter disavantazh eshte se query string eshte e kufizuar ne madhesi nga web browseri dhe web serveri i perdorur. Per shembull,

nese jemi duke perdorur Microsoft Internet Explorer dhe IIS, kufiri per nje query string eshte 1024 karaktere.

Metoda POST eshte menyra e preferuar e paraqitjes se te dhenave perseri ne server si pjese e nje kerkese HTTP. Kur folja POST

eshte perdorur, te dhenat eshte vendosur ne trupin e mesazhit te kerkesa si vijon:

POST /getCustomer.aspx HTTP/1.1

Host: www.northwindtraders.com

Id=123&color=blue

Duke perdorur foljen POST heq kufizimet e madhesise ne te dhenat. ( Per nje prove me shume se 10 megabajt te dhena jane publikuar

per te pare nese web server do te pranoje te dhenat. Ajo ka punuar, por dergimi i te dhenave te shumta neper internet mund te

shkaktoje probleme te tjera, kryesisht te lidhura me bandwidth, te tilla si problemet e performances.) Perveç kesaj, metoda POST e

pengon perdoruesin te manipuloje kerkesen ne shiritin e adresave te browserit te tyre.

Ne vend te kesaj, te dhenat jane te fshehura ne trupin e mesazhit. Prandaj, ne shumicen e skenareve, metoda POST eshte menyra me

e deshirueshme per te derguar te dhena ne web server.

Dergimi i te dhenave perseri ne server si pjese e kerkeses suaj eshte permendur shpesh si nje postback ne ASP.NET. Edhe pse emri

i saj vjen nga metoda POST, eshte e mundur te kryhet nje post back perdorur metoden GET tashme te pershkruar. Nje web faqe

ASP.NET permban nje atribut quajtur IsPostBack qe eshte perdorur per te percaktuar nese te dhenat jane duke u kthyer ne web server

apo nese web faqja eshte thjesht duke u kerkuar.

1.7 HTTP Troubleshooting

Ju mund te shikoni shkembimin e mesazheve HTTP midis shfletuesit dhe server duke perdorur nje sniffer rrjeti. Snifferi kap te gjitha paketat te derguara mes web browser dhe web server, dhe ju thjesht mund te shikoni te dhenat dhe te lexoni mesazhe te tilla si

Request dhe Response te pershkruara ne kete seksion.

Nje tjeter mjet qe ju mund te perdorni per diagnostifikim te HTTP eshte Telnet. Telnet nuk eshte asgje me shume se nje emulator

terminali qe dergon dhe merr te dhenat tekstuale ne porten 23, por ju mund te specifikoni porten 80 per te komunikuar me web

serverin. Me Telnet, ju mund te shkruani HTTP komandat dhe te shikoni rezultatet.

Ka edhe shume aplikacione qe ju mund te shkarkoni nga Interneti per te analizuar HTTP.

Ushtrim 1: Start Telnet

Start CMD

CLS

Telnet.exe

Set localecho

Set crlf

Ushtrim 2: Komunikimi me Web Site

o msn.com 80

Shtyp enter disa here

GET / HTTP/1.1

Host: msn.com

Shtyp enter 2 here

1.8 Krijimi i Web Site

Visual Studio 2010 ju lejon te testoni: Nje projekt web site te ri te bazuar ne menyren se si keni ndermend per te hyre ne permbajtjen

e faqes nga web server. Ju mund te krijoni nje projekt web i lidhur me nje server file-sistemi i te cilit te jete i bazuar ne kompjuterin

tuaj, nje server IIS, ose nje server FTP.

Ne vijim pershkruhet çdo opsion ne detaje te metejshme:

· File Sistemi, web site i bazuar ne file ruan te gjitha filet per faqen e internetit brenda ne nje folder sipas zgjedhjes suaj. Ky

web site perdor lightweight ASP.NET server i cili gjendet ne Visual Studio 2010. Nje file sistem eshte i pershtatshem kur ju deshironi

per te ekzekutoni web site-in tuaj ne nivel local

· Ftp Ky opsion eshte perdorur zakonisht kur web site-i tuaj eshte ne nje kompjuter te larget dhe aksesi juaj per filet dhe

direktorite ne ate server eshte nepermjet FTP.

· Http Nje web site te bazuar ne HTTP perdoret kur ju jeni duke punuar me file te cilat ndodhen brenda IIS (ose ne nivel lokal

ose ne nje server ne distance).

1.9 Kijimi i nje Web Application

Klikojme me te djathten mbi emrin e aplikacionit qe krijuam dhe shkojme tek “Properties”

Visual Studio ofron nje mjet baze per te krijuar nje projekt web.