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.

 

Metoda HTTP

Pershkrimi

OPTIONS

Perdoret nga aplikacionet e klientit per te kerkuar nje liste te te gjitha foljeve. Ne kete

menyre, ju mund te kontrolloni per te pare nese nje server lejon nje folje te veçante para se te humbisni bandwidth rrjeti duke u perpjekur per te derguar nje kerkese te pambuluar.

GET

Merr nje URL nga serveri. Nje kerkese GET per nje URL te veçante, le te themi, / testit.html, Merr file test.html. Te dhenat e marra duke perdorur kete folje zakonisht vendosen ne cache nga browseri. GET gjithashtu punon me koleksione, te tilla si ato te direktorive qe permbajne koleksionet me file. Nese ju kerkoni nje direktori, serveri mund te konfigurohet per te kthyer nje file default, te tille si index.html, qe mund te jete perfaqesues i direktorise.

HEAD

Merr informacionin meta per nje burim. Ky informacion eshte zakonisht identik me informacionin meta te derguar ne pergjigje te nje kerkese GET, por folja HEAD nuk kthen asnjehere vete burimin. Informacioni meta mbahet ne cache.

POST

Dergon te dhena ne Web server per perpunim. Kjo eshte zakonisht rezultat i perdoruesit qe vendos te dhena  ne nje forme dhe dergimit te te dhenave si pjese e nje kerkese.

PUT

Lejon nje klient te krijoje drejtperdrejt nje burim(resurs) ne URL e shenuar ne server. Serveri merr trupin e kerkeses, krijon file-in e specifikuar ne URL, dhe kopjon  te dhenat e marra te file I sapo krijuar. Nese file ekziston dhe nuk eshte i kycur, permbajtja e files do te jete mbishkruhet.

DELETE

Perdoret per te fshire nje burim ne web server. Kerkon te drejtat e shkrimit ne direktori.

TRACE

Perdoret per testimin dhe diagnostifikim; i lejon klientit te shikoje se çfare eshte duke u marre ne anen tjeter te zinxhirit te kerkeses. Pergjigjet per kete metode nuk ruhen ne cache.

CONNECT

Rezervuar per perdorim me nje proxy qe dinamikisht mund te kaloje ne gjendjen e nje tuneli, te tille si Sockets Secure Layer protokoll (SSL).

DEBUG

I papercaktuar ne specifikimin e HTTP /1.1 , por perdoret per te filluar ASP.NET debugging. Kjo metode informon Visual Studio per procesin ne te cilin do te bashkengjitet debuggeri.

 

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.

 

Grupi i Status Code

Pershkrimi

1xx

Informational: Request received, continuing to process.

2xx

Success: The action was successfully received, understood, and accepted.

3xx

Redirect Command: Further action must be taken to complete the request.

4xx

Client Error: The request has a syntax error or the server does not know how to fulfill the request.

5xx

Server Error: The server failed to fulfi ll a request that appears to be valid.



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.

 

Status Code

Qellimi

100

Continue

200

OK

201

Created

300

Multiple Choices

301

Moved Permanently

302

Found

400

Bad Request

401

Unauthorized

403

Forbidden

404

Not Found

407

Proxy Authentication Required

408

Request Time-out

413

Request Entity Too Large

500

Internal Server Error

501

Not Implemented



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.

 

Mime Type

Pershkrim

Text

Informacione tekstuale.

Image

Te dhenat imazh. Kerkon nje pajisje ekran (te tilla si nje ekran grafik ose a grafik printer) per te pare informacionin.

Audio

Te dhenat audio. Kerkon nje pajisje audio output (te tilla si kufje) per "te degjuar" permbajtjen.

Video

Te dhenat video. Kerkon aftesine per te shfaqur imazhe qe levizin, ne menyre standarte duke perfshire hardware dhe software te specializuara. Nje nentip fillestar i quajtur mpeg eshte percaktuar per kete lloj.

Application

Lloje te tjera te te dhenave, te dhena te painterpretuara binare ose informacion qe do te perpunohet nga nje aplikim. Nentipi PostScript percakton transportin e materialit PostScript.


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

 


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

 

 

 

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