Proiectarea Unui Site Dinamic, Utilizand Tehnologiile Asp.net Si Mysql
Capitolul 1 Introducere
1.1 Tema proiectului
La ora actuală, calculatoarele personale și accesul la Internet au ajuns obiecte de uz casnic. De aceea, dezvoltarea de aplicații Web este un subiect de stringentă actualitate în informatica zilelor noastre.
Internet-ul a fost ridicat la rangul de ‘Information Superhighway’ și această analogie este destul de precisă. Autostrăzile nu sunt așa de atractive precum locurile în care se poate ajunge călătorind pe ele și acest lucru este valabil și pentru Internet. Ceea ce face Internet-ul așa de atrăgător sunt aplicațiile care rulează pe baza sa și ceea ce poate fi realizat cu ajutorul acestora.[Cra.1]
Aplicațiile Web sunt folosite de o mare varietate de utilizatori, devenind un instrument eficient de realizare a unor acțiuni de la distanță care altfel ar necesita mult efort și consum de timp. Unul dintre cele mai frecvent întâlnite principii ale web-designului este acela de a întelege cine sunt utilizatorii si ce doresc aceștia sa facă. În rețea sunt foarte mulți utilizatori, fiecare cu diferite obiective, toți accesând aceeași pagină Web. [w.1]
Analizând site-urile web de la noi, am observant că majoritatea programatorilor, designeri-lor uită cel mai important lucru, și anume utilizatorul. Această amploare a site-urilor web, structura, designul lor precum și utilizatori mi-au atras atenția. De aceea am ales să abordez pentru proiectul de dizertație o aplicație web, care sa aibe un design clar, să fie ușor de utilizat și orientat spre nevoile și dorințele principalilor utilizatori.
Având în vedere schimbările ce au loc în societatea în care trăim, nevoile și dorințele tot mai exigente ale populației, este necesară depășirea limitelor impuse de comerțul tradițional. Firmele au fost nevoite să se adapteze progresului tehnologic, iar internetul prin avantajele sale a pus la dispoziția acestora un mijloc facil și ieftin de integrare a unei afaceri. Astfel a apărut comerțul electronic, un nou concept care revoluționează mediul de afaceri. Potențialul financiar al comerțului electronic reprezintă atractivitatea acestui domeniu. El produce deja mai mulți bani decât industriile aeronautică și de telecomunicații, luate împreună. [Ste.2]
În plus,oricine realizează astăzi, că succesul și creșterea afaceri sale depinde în mare măsură de reclamă și promovare. Lucrurile pot exploda în momentul în care o afacere este pusă pe internet. Figura 1.1, rezultă în urma studiilor ce arată relațiile dintre afacerile ce își desfășoară activitatea online (prin intermediul internetului, site-uri web), afacerile offline (fară reclamă sau activitate pe internet) și cele care au activități concomitente online și offline.
Fig.1.1 Publicitate online vs. offline
Liviu Taloi afirma următoarele: “În momentul de față, putem considera că aproape 5% din site-urile care funcționează în România sunt destinate activităților de comerț electronic. “
Magazinele online românești de îmbracăminte au câștigat din ce în ce mai mult teren anul acesta, valoare medie a unei vânzări pe segmentul fashion crescând, în medie, cu peste 50% de la începutul anului și până la final.
Cel mai important motiv al alegeri acestei teme, pe lângă cele enumerate mai sus, o reprezintă pasiunea mea pentru îmbracăminte, modă și noutate. Cum să nu îți dorești să dezvolți o aplicație care oferă beneficii atât firmelor cât și clienților? Comerțul on-line oferă posibilitatea firmelor să-și comercializeze produsele în întreaga lume, sporind numărul potențialilor clienți prin eliminarea barierelor geografice. Clienții au acces la acele produse 24 de ore din 24, dispun de posibilitatea de a compara produsele oferite de firmele concurente mult mai ușor și în plus, ei vor aprecia comoditatea și prețurile scăzute pe care le pot oferi cumpărăturile într-un magazin on-line.
Lucrare de față prezintă o aplicație ce constă într-un site dinamic, construit utilizând tehnologiile ASP.NET și MySQL. Proiectul reprezintă un site e-commerce a unui magazin de haine.
Am ținut să respect cele cinci aspecte care definesc succesul unui magazin online: promovarea, prezentarea, calitatea fotografiilor, sistemul de comandă, calitatea produselor și serviciilor. Produsele căutate și calitatea descrierilor sau a informațiilor adiționale (condiții de plată, transport sau returnare) sunt găsite cu ușurință. Fotografiile sunt elementul cel mai puternic pentru a converti un vizitator într-un cumpărător și de aceea am folosit fotografii clare, la rezoluții cât mai bune și într-un numar cât mai mare. Am pus la dispoziția utilizatorului toate informațiile de care ar putea avea nevoie, ca să știe exact la fiecare click efectuat ce se va întampla la pasul următor.
Învățând din greșelile altora am început lucru la acest site prin a identifica cât mai precis utilizatorul, el reprezentând clientul. Utilizatorul are următoarele caracteristici: femei, din toate zonele țării, cu vârste cuprinse între 18 și 45 ani, cu un grad mediu de folosire a internetului.
Un studiu a arătat faptul că participanții au preferat layout-urile cu paging în defavoarea lazout-urilor cu scrolling. De asemenea s-a observat că utilizatorii preferă un site cu un număr moderat de link-uri pe el (în jur de 50). Ca și culoare de bază am ales negru deoarece simbolizează eleganța, este o culoare rafinată și atrage atenția. Această culoare merge foarte bine ca și suport pentru alte culori, iar fotografiile, sunt prezentate foarte bine pe negru.[w.2]
1.2 Comerțul Electronic (e-Commerce)
Comerțul electronic se referă la procesul de vânzare sau cumpărare a unui produs sau serviciu prin intermediul unei rețele electronice. [Ste.2]
Prin intermediul Internetului se dezvoltă o relație de servicii și schimb de mărfuri între ofertant și viitorul cumpărător.
IBM-ul definește pentru prima dată e-business-ul: “Acces securizat, flexibil și integrat pentru desfășurarea diferitelor afaceri prin combinarea proceselor și sistemelor care execută operații de baza ale afacerilor cu cele ce fac posibilă găsirea informației pe Internet.”
Cea mai importantă componentă a e-business-ului o reprezintă e-commerce-ul. Figura 1.2 evidențează pașii care se fac pentru cumpărarea unui produs prin intermediul comerțului electronic.
Fig.1.2 E-commerce
Se pot reliefa câțiva pași importanți în apariția și evoluția e-commerce-ului:
•Dezvoltarea în 1960 a setului de standarde Electronic Data Interchange (EDI) pentru tranzacțiile elctronice.
•Apariția browserul Mosaic în1992. Acesta a devenit curând o versiune ce se putea downloada cu ușurință–Netscape.
•Dezvoltarea DSL (Digital Subscriber Line –o familie de tehnologii de transmitere digitală a datelor de mare viteză)
•În 2000, AOL fuzionează cu Time Warner și astfel se grupează o companie online și una tradițională.
•În 2001, cel mai amplu model de e-commerce, Business-to-Business, avea tranzacții de aproximativ 700 miliarde de dolari.
Amazon și Ebay care au fost primele companii ce au permis tranzacții pe Internet. În prezent, există cinci companii importante din punct de vedere al vânzărilor prin intermediul Internetului: Amazon, Dell, Staples, Office Depot și Hewlett Packard.
Conform statisticilor, cele mai vândute categorii de produse sunt: carțile, calculatoarele, muzica, birotica și consumabilele electronice.
Comerțul electronic în România se afla încă în faza incipientă. Clienții manifestă temeri în ceea ce privește furtul cardurilor de credit sau a confidențialității datelor persoanale. În România, comerțul electronic a apărut la sfârșitul lui 1999. Un alt aspect de remarcat este faptul că aici, cel mai dezvoltat sistem de plată este cel ramburs. Produsele se trimit prin colet poștal și plata se face în momentul ridicării coletului de la poștă.
În România, Visa și Mastercard au pus la dispozitie impreuna cu RomCard, ,sistemul de plata 3D Secure care reunește doua programe de verificare a identității plătitorului și anume: Verified by Visa și Mastercard SecureCode . .Sistemul de plata 3D Secure asigura o foarte mare securitate a plătitorului, acesta putând fi sigur că nimeni în afară de Visa sau MasterCard nu salvează detaliile carții sale de credit. Sistemul de plata 3D Secure poate fi integrat în cadrul unui magazin virtual numai prin intermediul unei bănci care va încasa și banii pentru produsele / serviciile
comercializate , urmând livrarea ulterioara în contul furnizorului. [Buc.3]furnizorului.
Figura următoare, arată apariția primelor site-uri de comerț electronic din România.
Fig.1.3 Primele site-uri e-commerce din România
Comerțul electronic acoperă trei tipuri de tranzacții. În primul rând o tranzacție se poate realiza între o companie și un consumator (B2C). Acest lucru înseamnă un site orientat pe client (consumator) ce presupune un volum mare de vânzări și un număr mare de produse vândute la fiecare comandă. Câteva exemple edificatoare în acest sens ar fi:Amazon.com, WallMart.com, Emag.ro și Dol.ro.
A doua formă generală de comerț electronic implică tranzacții între două companii (B2B) . Un bun exemplu de companie angajată în acest tip de comerț este Cisco Systems. Ei crează o mare parte din infrastructura fizică a internetului, care permite comunicarea între companii. [Ste.2]
O formă de comerț care a devenit foarte populară în ultimii ani implică tranzacții între doi consumatori. Cel mai cunoscut exemplu de companie angajată în acest comerț este eBay. eBay permite clienților săi să organizeze licitații de obiecte pentru alți clienți.
Comerțului electronic prezintă foarte multe beneficii, printre care:
Pentru firme:
Extinderea pe piețele internaționale prin asigurarea de servicii și performanță;
Crează posibilitatea modelării produselor și serviciilor după nevoile cumpărătorilor și simplificarea procedurilor;
Costuri de comunicație mai mici;
Pentru consumatori:
Posibilitatea consumatorilor să cumpere sau să facă tranzacții la orice ora din zi, în tot timpul anului, din aproape orice locație;
Acordă consumatorilor mai multe posibilități de alegere a produselor și prețurilor;
Consumatorilor li se dă siguranța asupra valorii. Vânzatorii pot realiza acest lucru oferind un produs sau o linie de produse care atrage potențialii clienți prin prețuri competitive, la fel ca și în comerțul ne-electronic;
Permite o livrare rapidă a produselor și/sau serviciilor (în anumite cazuri);
Consumatorii pot să primeasca informații relevante în decursul câtorva secunde, și nu zile sau săptămâni;
Face posibilă participarea în licitații virtuale;
Îndemnarea consumatorilor la consum.
Permite consumatorilor să interacționeze cu alți cumpărători în comunități electronice și să compare experiențele;
Pentru societate:
Crearea unui "simț comun" al comunității comerciale, de exemplu prin chat-uri, scheme de loialitate și programe de afinitate;
Dă posibilitatea mai multor persoane să lucreze / să cumpere de acasă, ceea ce micșorează traficul rutier și poluarea aerului;
Permite ca anumite mărfuri să fie vîndute la prețuri mai scăzute, cu avantaje pentru cei cu venituri mai mici;
Crește eficiența și/sau îmbunătățesc calitatea;
Pune la dispoziție o organizare suficient de atentă și agilă pentru a raspunde rapid la orice schimbări din mediul economic, social și fizic. [Nir.4]
Capitolul 2 Fundamentare teoretică
2.1 Tehnologia ASP.NET
ASP.NET este o nouă tehnologie de programare pentru internet creată de Microsoft, care folosește o abordare mai directă, orientată pe obiecte, pentru dezvoltarea de aplicatii dinamice Web. Cu tehnologia Active Server Pages existentă, codul interfeței server se amestecă și se combină cu codul HTML al aplicației client. Prima tehnologie de acest gen a fost lansată în Ianuarie 2002 ,versiunea numindu-se 1.0, și era succesoarea tehnologiei Microsoft Active Server Pages (ASP). Tehnologia este construită pe baza Common Language Runtime (CLR), permițându-le astfel programatorilor să scrie cod folosind orice limbaj .Net.
ASP.NET este un limbaj de programare independent de browser. El poate fi executat de cele mai noi versiuni ale browserelor Internet Explorer și Netscape Navigator, precum și de alte browsere. Asta înseamnă că vasta majoritate a utilizatorilor de Internet vor putea folosi aplicațiile de web pe care le creați fără a fi nevoie să introduceți un cod specific pentru browser. Acum codul aplicațiilor este cod compilat care este executat în server, în loc să fie interpretat pe măsura solicitărilor paginilor. [Joe.5]
2.2 Avantajele utilizarii tehnologiei ASP.NET
ASP.NET prezintă mai multe avantaje, atât pentru programator cât și pentru utilizatorul final. Aplicațiile în ASP.NET sunt mai rapide din două motive : codul compilat și cacheing-ul. În trecut, codul era interpretat în "limbajul mașină" când site-ul era accesat de către un vizitator. Acum, cu ASP.NET codul este compilat în "limbajul mașină" înainte ca vizitatorul să ajungă pe site. Caching-ul presupune stocarea informației care va fi refolosită într-o locație a memoriei pentru un acces mai rapid mai târziu. ASP.NET permite programatorilor să seteze pagini sau doar zone din pagini care sunt de obicei refolosite, să fie păstrate în memoria tampon (cache) o perioada de timp pentru a îmbunătăți performanța aplicațiilor web. În plus, ASP.NET permite păstrarea informației din baza de date în zona de memorie tampon astfel încat website-ul să nu fie încetinit de accesările succesive ale bazei de date dacă aceasta nu se schimbă foarte des. [w.3]
Permite folosirea concomitentă a mai multor limbaje de scripting în cadrul aceluiași cod sursă cum ar fi de exemplu VBScript, JavaScript fiecare dintre acestea având la bază limbajele de programare VisualBasic, Java.
Față de tehnicile uzuale de server-side-scripting, ASP.NET introduce și noțiunea de server-side-controls. În tehnologiile uzuale, controalele sunt implementate manual și în plus programatorul trebuie să aibă grijă să implementeze modul de manifestare al acestora la acțiunile utilizatorului. Problema este destul de complexă în realitate, indiferent de locația la care se face scriptarea. ASP.NET rezolvă această problemă prin intermediul controalelor pe server. Aceste controale scriptează codul HTML necesar afișării controlului în browser, dar, de asemenea, generează și funcțiile JavaScript și respectiv codul HTML ascuns care păstrează starea controlului. Când utilizatorul acționează asupra controlului, informația este furnizată înapoi serverului, iar controlul procesează automat informația și alterează codul HTML astfel încât afișarea acestuia să se facă în noul context. [w.4]
ASP este o soluție fiabilă pentru dezvoltarea aplicațiilor destinate afacerilor virtuale dispunând de toate instrumentele, metodele și procedurile care au rolul de a ușura munca programatorului în procesul de elaborare a aplicațiilor virtuale cu caracter comercial și nu numai. [Lia.6]
2.1.1 Pagini
Paginile .Net, cunoscute inițial ca “web forms”, sunt blocul principal în dezvoltarea de aplicații și servicii web. Paginile .Net sunt defapt niște fișiere cu extensia .aspx; în limbaj de programare profesional, aceste pagini conțin defapt text static HTML, controale web de tip server-side, precum și controale utilizator, unde programatorul inserează tot conținutul dinamic și static de care are nevoie acea pagină web. În plus, codul dinamic care rulează pe server poate fi plasat într-o pagină, într-un bloc <% – cod dinamic – %> care este similar cu alte tehnologii de dezvoltare web, cum ar fi PHP, JSP și ASP, dar această practică este, în general, descurajantă, cu excepția cazului în care se afișează date care necesită mai multe apeluri când afișeaza o pagină.
Fig.2.1 Imagine din Visual Studio reprezentând conținutul unei pagini .aspx
2.1.2 Modelul “Code-behind”
Este recomandat de Microsoft, ca în cazul în care se lucrează cu cod dinamic, să se folosească modelul “Code-behind”, care amplasează astfel de cod în pagini separate, sau într-un script cu un design special. Fișierele Code-behind au de obicei numele format astfel: MyPage.aspx.cs sau MyPage.aspx.vb, pe bază de nume de fișier ASPX. Când se folosește acest stil de programare, dezvoltatorul scrie cod care raspunde la diferite evenimente, cum ar fi determinarea paginii care este accesată, sau determinarea controlului pe care se dă click, mai degrabă decât o plimbare procedurală prin document.
Model ASP.Net “Code-behind” marchează o evoluție de la clasicul ASP, în sensul că încurajează dezvoltatorii să despartă în minte partea de conținut de partea de interfață. Teoretic, această parte îi permite unui programator web, de exemplu să se concentreze mai mult pe partea de design, făra să distrugă partea care face ca acest design să funcționeze corect. Acest lucru este similar cu cel de separare al operatorului de vedere în framework-uri de modelul model-view-controller.
2.1.3 Controlerul de tip utilizator
ASP.Net sprijină folosirea de componente refolosibile, prin crearea de controlere de tip utilizator. Un controler de tip utilizator, are aceeași structură ca un web form, cu excepția că asemenea controlere sunt derivate din clasa System.Web.UI. UserControl și sunt stocate în fișiere de tip .ascx. La fel ca fișierele .aspx, un fișier .ascx conține cod HTML și XHTML, la fel ca și codul care definește controlerul de tip utilizator și alte controlere de tip utilizator. Deasemenea pot folosi modelul code-behind. Programatorii pot să adauge propriile lor proprietăți, metode și manipulari de evenimente.
Utilizatorul poate deasemenea construi controlere customizate pentru aplicații ASP.NET, caz în care controalele sunt compilate în fișiere de tip DLL. Utilizatorul poate folosi controlerul DLL cu ajutorul lui “Register directives”.
2.2 Internet Information Services(IIS)
Internet Information Services reprezintă un set de servicii Windows responsabile cu procesarea cererilor venite din rețea pe un anumit port. În acest sens există un serviciu Windows numit World Wide Web Publishing Service ce ascultă de obicei pe portul 805 (destinat comunicațiilor prin HTTP) sau 443 (HTTPS) cereri HTTP pentru un anumit site Web. Acest serviciu Windows este administrat de IIS Manager.
În cadrul IIS site-urile sunt grupate în directoare virtuale care sunt mapate către directoare existente pe disc în care se află aplicațiile web.
Aplicațiile Web sunt accesate de client prin intermediul unui browser căruia îi precizăm un URL; acestă adresă conține mai multe informații ce vor indica: tipul protocolului, portul pe care se află mapată aplicația web pe server , locația virtuală a resursei și cel mai important numele resursei sau al fișierului.
Extensia aspx este foarte importantă pentru server întrucât procesarea depinde de tipul ei. Fiecare extensie de fișier are mapată în cadrul IIS unei extensii ISAPI6; această extensie este reprezentată fizic de un DLL, de exemplu extensia pentru fisierele din ASP clasic (*.asp) este asp.dll iar pentru fiesierele ASP.NET (*.aspx si *.asmx ) este aspnet_isapi.dll.
Trebuie menționat că înainte de a trimite mai departe cererea, IIS face câteva preprocesări cum ar fi verificarea drepturilor de acces pentru resursa respectivă sau autentificarea utilizatorilor. De acceea resursele aplicației trebuie configurate în cadrul IIS cu acces anonim și public. O dată cererea ajunsă la extensia ISAPI pentru ASP.NET procesarea efectivă a cererii este realizată de mediul .NET. Mai precis cererea este dată unui proces separat ce reprezinta mediul în care rulează ASP.NET. [w.5]
2.3 Limbajul HTML
HTML este prescurtarea de la HyperText Markup Language și este un limbaj de marcare utilizat pentru crearea paginilor web ce pot fi afișate într-un navigator. Scopul acestui limbaj de marcare este mai degraba orientat către prezentarea documentelor text pe o singură pagină, utilizând un software de redare specializat, numit agent utilizator HTML, cel mai bun exemplu de astfel de software fiind navigatorul pentru internet. HTML furnizează mijloace prin care conținutul unui document poate fi adnotat cu diverse tipuri de metadata și indicații de redare. Indicațiile de redare pot varia de la decorațiuni minore ale textului, cum ar fi specificarea faptului că un anumit cuvânt trebuie subliniat sau ca o imagine trebuie introdusă, până la scripturi sofisticate, hărți de imagini și formulare. Metadatele pot include informații despre titlul și autorul documentului, informații structural despre cum este împarțit documentul în diferite segmente, paragrafe, liste, titluri etc. și informații cruciale care permit ca documentul să poată fi legat de alte documente pentru a forma astfel hyperlink-uri.
2.3.1 Tag-uri
În HTML, un Tag îi arată unui navigator operația care trebuie să o execute. Când se crează o pagină HTML, Tag-urile sunt folosite pentru a îndeplini mai multe obiective:
– să schimbe stilul în care este prezentată o pagină;
– să afișeze o imagine;
– să insereze o tabelă;
– să creeze o legatură la o altă pagină
Tag-urile care le scriem noi nu sunt vizibile în navigatorul web, dar acțiunile lor sunt vizibile. Ele încep cu simbolul < > și se termină cu simbolul < /> și apar ca perechi, prima pentru a începe o acțiune și cea de-a doua pentru a închide acțiunea.
Ordinea deschiderii și a închiderii tag-urilor este foarte importantă. Dacă un tag este deschis într-un altul, de exemplu body este deschis în html atunci acel tag (body) este cel care trebuie închis înaintea celui de-al doilea tag (html).
2.3.2 Structura unui document HTML
Componenta unui document HTML este:
versiunea HTML a documentului
zona head cu etichetele <head> </head>
zona body cu etichetele <body> </body> sau <frameset> </frameset>
Versiunea HTML poate fi:
-HTML 4.01 Strict
-HTML 4.01 Transitional
-HTML 4.01 Frameset
Toate paginile HTML încep cu eticheta <html> și se termină cu eticheta </html>.
În interiorul acestor etichete găsim perechea <head> </head> și perechea <body> </body>.
Zona head conține titlul paginii între etichetele <title> și </title>, descrieri de tip <meta>, stiluri pentru formatarea textului, scripturi și linkuri către fișiere externe (de exemplu scripturi Javascript, fișiere de tip CSS ).
Conținutul etichetei title este afișat de browser pe cea mai de sus linie (banda albastra de sus). Zona body găzduiește practic toate etichetele afișate de browser pe ecran. Comentariul în HTML, care bineînțeles nu va fi afișat de browser, poate fi introdus astfel:
<!– Acesta este un comentariu in HTML –>
2.4 CSS – Cascading Style Sheets
CSS (Cascading Style Sheets) este un standard pentru formatarea elementelor unui document HTML, creat pentru a simplifica procesul de înfrumusețare a pagilor web. Cu CSS se pot controla culoarea textului, stilul fondului, spațiul dintre paragrafe, ce culoare sau imagine se va folosi in background, precum și alte efecte. CSS este combinat cu limbaje markup precum HTML și XHTML.
Sintaxa CSS-ului este diferită de cea a (X)HTML-ului, ea este compusă doar din trei părți: selector { proprietate: valoare } .
Selectorul este elementul (X)HTML pe care dorești să îl stilizezi. Proprietatea este chiar titlul (numele) proprietatii respective, iar valoarea reprezintă stilul pe care îl aplici proprietății.
Fiecare selector poate avea multiple proprietăți, și fiecare proprietate din acel selector are valori independente. Proprietatea este separată de valoare cu semnul ":". Toate proprietățile împreună cu valorile lor, aparținând aceluiași selector sunt cuprinse între acolade "{}". Multiplele valori din aceași proprietate sunt separate prin virgulă "," și dacă o valoare conține mai mult de un cuvânt, acestea se cuprind între ghilimele '"'. [Ric.7]
2.5 Microsoft SQL Server
Astăzi, cele mai multe dintre activitățile noastre zilnice necesită accesarea și actualizarea informației dintr-o bază de date: consultarea unui catalog de produse, lansarea unei comenzi, cumpărarea unui bilet de avion sau verificarea evidenței plăților. De cele mai multe ori, informațiile pe care le dorim sunt obținute prin prelucrarea unor seturi de date relaționate. De exemplu, o bază de date pentru un magazin on-line conține o listă de clienți, o listă de produse și o listă de vânzări bazată pe informațiile din primele două liste.
Aceste informații sunt descrise cel mai bine utilizând un model relațional, model de divizare a informațiilor în seturi consistente și definirea relațiilor dintre aceste seturi. Modelul relațional stă la baza tuturor produselor moderne axate pe baze de date, incluzând aici SQL Server, Oracle, MySQL și chiar Microsoft Access.
Din punct de vedere tehnic este posibil să organizăm datele în tabele și să păstrăm aceste tabele pe hard în unul sau mai multe fișiere (eventual folosind un standard XML). Această abordare nu este însă foarte flexibilă. O aplicație web are nevoie de un sistem complet de gestionare a bazelor de date cum ar SQL Server, care să asigure gestionarea infrastructuri, performanță și fiabilitate. De exemplu, un astfel de sistem poate furniza date pentru mai mulți utilizatori simultan, elimină datele incorecte și poate executa la un moment dat un grup de comenzi care sunt văzute ca o singură unitate. [Mic.8]
Microsoft SQL Server poate accepta simultan mii de utilizatori și baze de date de ordinul teraocteților. Unele dintre cele mai mari site-uri web comerciale din Internet utilizează SQL Server, printre care Dell, Buz.com, Barnes și Noble.
Există trei versiuni de SQL Server 7.0: SQL Server Desktop, SQL Server Standard Edition și SQL Server Enterprise Edition. Ultima ediție este o versiune îmbunătățită a ediției standard care acceptă mai multă memorie, mai multe procesoare, grupuri de servere și servicii OLAP(Prelucrare analitică online). [Ste.2]
Fig.2.2 Sistemul de managment al bazelor de date Microsoft SQL Server.
2.6 Limbajul de programare C#
Limbajul C# a fost dezvoltat de o echipă restrânsă de ingineri de la Microsoft. Cea mai recentă versiune este 3.0 care a fost lansată împreuna cu .NET Framework în 2007. Următoarea versiune este 4.0, dar care se află înca în stadiul de dezvoltare. El permite programarea structurată, modulară și orientată obiectual, conform perceptelor moderne ale programării profesioniste. În mare, limbajul moștenește sintaxa și principiile de programare din C++. Sunt o serie de tipuri noi de date sau funcțiuni diferite ale datelor din C++, iar în spiritul realizării unor secvențe de cod sigure (safe), unele funcțiuni au fost adăugate (de exemplu, interfețe și delegări), diversificate (tipul struct), modificate (tipul string) sau chiar eliminate (moștenirea multiplă și pointerii către funcții). Unele funcțiuni (cum ar fi accesul direct la memorie folosind pointeri) au fost păstrate, dar secvențele de cod corespunzătoare se consideră „nesigure”. [Mic.9]
Legat de C#, arhitectura.NET definește două entități foarte importante.
Prima dintre aceste este motorul comun de programare. Acesta este sistemul care se ocupă cu execuția programelor. Pe lângă alte avantaje, el permite programelor să fie portabile, asigură programarea în limbaj mixt și securitatea.
Cea de-a doua entitate este biblioteca de clase.NET. Prin intermediul acestei biblioteci, programul are acces la mediul de rulare.
În general atunci când se scrie un program în C#, se crează cod tratat. Avantajele codului tratat sunt multiple, printre care gestiunea modernă a memoriei, posibilitatea de a amesteca limbajele, o mai bună securitate, posibilitatea controlului versiunilor și o modalitate curată de interacțiune a componentelor software. [Her.10]
În noua economie Web, profitabilă și în plină expansiune, afacerile sunt obligate să facă față unor mari amenințări competiționale. Programatorii sunt solicitați să scurteze ciclicitatea și să producă revizii incrementale într-un anumit program în loc să creeze o singură versiune monumentală a acelui program. C# este proiectat având în minte aceste considerații. Limbajul este proiectat să ajute programatorii să realizeze mai mult cu cât mai puține linii de cod și, implicit cu mai puține șanse de eroare.
C# include suport pentru transformarea orcărei componente într-un serviciu Web care poate fi invocat pe Internet din orice aplicație, rulată pe orice tip de platformă. El mărește puterea programatorului tradițional în C și C++, oferindu-i:
Nu conține variabile sau funcții globale; toate metodele sau membrii trebuie declarate în interiorul unei clase; variabilele sau funcțiile globale pot fi înlocuite cu membrii statici ai claselor publice.
C# suportă un tip strict boolean (bool); declarații care cer condiții, cum ar fi while și if, necesită o expresie de tip boolean.
În C# pointeri de adrese de memorie, pot fi utilizați doar în blocuri marcate special cu cuvântul cheie „unsafe”, iar programe cu cod unsafe necesită anumite permisiuni pentru a rula.
Memoria gestionată nu poate fi golită explicit, în schimb ea este golită automat de către „Garbage Collector”
Moștenirea multiplă nu este acceptată, cu toate că o clasa poate implementa orice număr de interfețe.
C# este mai „typesafe” decât C++, sigurele conversii implicite sunt acelea care sunt considerate sigure. [Chr.11]
2.7 Mediul de dezvoltare Microsoft Visual Studio
Microsoft Visual Studio este un mediu de dezvoltare integrat (IDE) de la Microsoft. Acesta poate fi folosit pentru a dezvolta aplicații de tip consolă cât și aplicații grafice folosind ferestre windows, site-uri web, aplicații web și servicii web, atât în cod nativ cât și în „managed code” pentru toate platformele suportate de Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight.
Visual Studio include un editor de cod care este susținut de IntelliSense cât și un “code refactoring”.
Fig.2.3 Imaginea reprezintă sistemul IntelliSense
Microsoft Visual Studio pune la dispoziția utilizatorului foarte multe tehnologi foarte folositoare. Unele dintre acestea fiind:
Designer WinForms : acest designer este folosit pentru a dezvolta aplicații de tip GUI folosind WinForms. El include o paletă vastă de controale și widget-uri de tip UI, care pot fi „drag and dropped” pe suprafața unei forme.
Fig.2.4 Designer-ul WinForms
Designer WPF: a fost introdus odata cu apariția lui MS Visual Studio 2008; la fel ca designerul WinForms și acesta suportă metoda drag and drop. Este folosit pentru acele interfețe care au ca țintă Windows Presentation Foundation. Acesta suportă toate functionalitățile WPF, inclusiv databinding cât și managementul automat al layout-ului. Acesta generează cod XAML pentru UI. Codul XAML este legat de cod, folosind modelul code-behind.
Fig.2.5 Designer-ul WPF, accesibil doar din Visual Studio 2008
Designer-ul bazei de date: acesta poate fi folosit pentru a edita grafic schema bazei de date, incluzând tabelele, cheile primare și cele straine și constrangerile. Deasemenea poate fi folosit pentru a genera interogări utilizând vederea grafică a tabelelor.
Fig.2.6 Designer-ul bazei de date
Capitolul 3 Specificațiile aplicației
Specificațiile acestei aplicații au fost determinate în urma unor discuții avute cu câțiva administratori de magazine on-line. Site-ul web trebuie să raspundă următoarelor: creșterea vânzărilor, potențarea renumelui, să ofere o mai bună asistență clienților, furnizarea de informație relevantă și actuală, asigurarea unui punct de contact cu firma.
Pe lângă aspectele de mai sus s-au mai conturat și următoarele cerințe tehnice: realizarea unei aplicați web care să poată administra o bază de date, bază de date ce conține date despre clienți și despre produsele disponibile în stocul magazinului.
Aplicația este creată cu acces restricționat la baza de date. Numai utilizatorii cu drept de administrator, în urma autentificării, pot accesa toate informațiile din tabele.
Printre cele mai importante specificații au fost cele legate de operațiile pe care administratorul trebuie să le poată face, și anume:
adăugarea unui nou produs -administratorul va complete toate câmpurile cerute pentru inserarea noului produs în stoc;
adăugarea unei noi categori de produs, există posibilitatea diversificării produselor, atunci când se dorește extinderea gamei de produse acestea se pot adăuga cu ușurință de către administratorul magazinului; la fel este disponibilă și opțiunea de adăugare a unui nou tip de material;
evidența clineților sau a utilizatorilor care și-au creat un cont pe site;
evidența produselor aflate pe stoc, se afișează toate produsele disponibile;
listarea tuturor comezilor efectuate;
comentariile lăsate de către clienți sau de simpli vizitatori ai site-ului;
Pentru efectuarea tuturor acestor operați, administratorul trebuie să fie logat. În momentul în care își încheie activitatea, acesta poate părăsi zona sa printr-un link de log out.
Există și specificațiile ce avizează clienții, care sunt foarte importanți.
Pe lângă o interfață dedicată lor și informații clare și actualizate aceștia pot face cumpărături online, doar după ce și-au creat un cont și s-au autentificat.
Știind cât de important este pentru clienți să aibe o zonă dedicată lor, unde își pot spune părerile, am adăugat și această funcționalitate site-ului. Clienți sau vizitatori site-ului pot lăsa un mesaj pe site prin completarea câmpurilor cerute și bineînțeles a mesajului.
3.1 Schema-bloc a sistemului. Scurtă descriere a aplicației
Când se începe construirea unui site există mai multe produse diferite ce se pot folosi.
Trebuiesc alese următoarele:
Hardware pentru serverul Web
Un sistem de operare
Software pentru un server Web
Un sistem de gestiune a bazelor de date
Un limbaj de programare sau de scriptare
Unele din aceste opțiuni depind unele de celelalte. De exemplu, nu toate sistemele de operare vor rula pe orice tip de hardware, nu toate limbajele de scriptare se pot conecta la orice bază de date și așa mai departe.
La această lucrare s-a folosit mediul de dezvoltarea Microsoft Visual Studio 2008, tehnologia ASP.NET, iar aici am optat pentru limbajul de programare C# deoarece prezintă multe avantaje, unele dintre ele sunt enumerate în capitolele anterioare. Gestiunea bazelor de date se face cu Microsoft SQL Server Managemet Studio 2008.
În elaborarea acestui site web am ales paginile dinamice, deoarece ele sunt cele care dau viață Web-ului. Paginile dinamice conțin foarte puțin text. În schimb extrag informațiile necesare din alte aplicații. Paginile dinamice pot comunica cu bazele de date, foi de calcul tabelar, sisteme de gestiune a bazelor de date client-server și multe alte aplicații.[Lar.12]
Crearea paginilor Web dinamice permite crearea de aplicații puternice, care pot include caracteristici precum următoarele:
interogarea aplicațiilor de baze de date existente pentru obținerea datelor
crearea de interogări dinamice care facilitează obținerea în mod flexibil a datelor
execuția procedurilor stocate
sporirea capabilităților formularelor HTML standard prin folosirea unor funcții de validare
popularea în mod dinamic a elementelor din formulare
Modul de lucru al aplicațiilor web dinamice folosind ASP.NET și SQL Server este redat în figura de mai jos. Inițiem o cerere de la client către serverul web pentru a primi o anumită pagină în care vom vizualiza, de exemplu, produsele de pe un magazin online. Serverul web primește cererea și va acționa întocmai, însă datele necesare generării acestei pagini HTML care va conține informațiile despre produse, se află în baza de date, deci pe un alt server. Serverul web, prin intermediul librariilor din ASP.NET va iniția acum o cerere către serverul de SQL pentru a întoarce informațiile despre produse, pe care cel din urmă le va furniza. În această ultimă situație serverul web este client pentru serverul de SQL pentru că el este cel care inițiază o cerere de date iar baza de date va furniza răspunsul la această cerere. În final, cu datele primite se va furniza pagina HTML complet formatată.
Fig.3.1 Generarea paginilor dinamice pe server
Site-ul este împărțit în două mari părți: zona dedicată utilizatorilor privilegiați și zona cliențiilor sau a vizitatorilor.
Zona clienților conține mai mult pagini informative legate de modul în care se poate achiziționa un produs, cum se face plata, cum se face livrarea produsului. Pe când zona administratorului reprezintă diverse interogări ale tabelelor cu scopul de a avea o evidență clară a tot ce se întâmplă pe site.
În continuare este prezentată figura 3.2, din care reies principalele activități ale administratorului și cele ale clienților precum și legăturile cu baza de date.
Facilitatea de adăugare este foarte importantă pentru administrator, deoarece el trebuie să poată adăuga produse noi cu proprietăți asemănătoare sau diferite față de cele existente deja.
Dacă consideră că și-a încheiat munca, acesta poate accesa link-ul de Log Out pentru părăsirea zonei sale și vizitarea zonei cliențiilor.
Zona dedicată clienților a fost implementată în urma unor discuți avute cu posibili clienți ai site-ului, precum și după consultarea unor studii de interfață și a lipsurilor găsite pe alte site-uri cu același specific.
În primul rând utilizatorilor li se oferă informați despre cum pot achiziționa un produs, precum și o scurtă descriere a produsului, cu poze, și prețuri. Fiecărui produs îi este alăturată poza, care face chiar mai mult decât 1000 de cuvinte.
Pentru diferite întrebări,observații sau pentru mai multe informații am adăugat și partea de contact, aceasta fiind extrem de importantă. Aici sunt furnizate datele necesare pentru contactarea administratorului atât telefonic cât și prin e-mail sau prin formularul de contact.
Ultima secțiune disponibilă utilizatorilor este cea de comentarii. Pot fi văzute comentarile adăugate de către clienți sau doar simpli vizitatori ai site-ului.
Toate acestea alcătuiesc funcționalitățile site-ului implementate în urma determinări nevoilor cliențiilor precum și pentru a ușura munca administratorului, oferindu-i o gestiune clară a clienților săi oricând doar prin câteva click-uri.
3.2 Interfața cu utilizatorul
Interfața asigură un mecanism de interacțiune utilizator-aplicație. Cel mai important aspect este: „audiența” adică utilizatorii finali ai aplicației. O interfață bine construită ajută utilizatorii să o folosească cum trebuie, pe când una întortochiată poate duce la frustare.
Interfața a fost gândită în așa fel încât sarcina utilizatorului să fie cea mai potrivită. Astfel, fiecare scenariu de utilizare spune o poveste credibiă: secvența de acțiuni pe care trebuie să o urmeze utilizatorul, cunoștiințele sale și posibilitațile interfeței.
Interfața pentru partea cliențiilor este asemănătoare cu a altor site-uri de comerț electronic, pentru o utilizare cât mai ușoară și mai naturală. În partea stângă a ecranului este disponibil un meniu pentru acțiuniile principale, deoarece meniul asigură o modalitate structurată pentru expunerea comenzilor disponibile utilizatorilor. S-a folosit un limbaj cunoscut utilizatorului, s-a dorit minimalizarea lucrurilor pe care utilizatorii trebuie să le rețină; la trecerea de la un form la altul sistemul reține datele necesare, facând astfel sarcina acestuia mai ușoara.
Dacă utilizatorul ajunge într-o situație care nu îl interesează, el poate să se întoarcă repede și cu ușurință prin apăsarea butonului Home. Mesajele de eroare sunt precise și constructive, pentru o anumită problemă este sugerat un anumit sfat pentru a conduce la o soluție. Ele sunt afișate cu ajutorul dialogurilor.
S-au folosit elemente de grafică pentru o prezentare concisă și pentru rezumarea informației. Mărimea textului de 11, fontul Arial, culoare albă și spațierea este aleasă pentru a-l face ușor de citit. De asemenea s-au utilizat icoane semnificative pentru log off, contul meu și istoric comandă, deoarece o icoana bine aleasă este ușor de reținut, mai intuitivă și apelează capacitățile de memorie vizuală.
Așa cum specialiști sugerează link-ul de Home este localizat în partea de stânga sus a paginii, link-urile interne sunt localizate în partea stângă a paginii iar coșul de cumpărături se află în partea dreaptă sus a paginii.
Rezultatele preliminare ale cercetărilor profesorilor de la SURL indică faptul că hărțile de site pot fi într-adevăr benefice, reducând sentimentul de dezorientare sau rătăcire în interiorul site-ului. Acest element poate ajuta utilizatorii să conceptualizeze cadrul unui site, ajutându-i să devină mai eficienți în găsirea informațiilor, de aceea am ales să folosesc și pentru acest site o astfel de hartă. [w.1]
Ca și culoare de bază am ales negru deoarece simbolizează eleganța, este o culoare rafinată și atrage atenția. Această culoare merge foarte bine ca și suport pentru alte culori, iar fotografiile, sunt prezentate foarte bine pe negru.[w.2]
Paul Jacques Grillo spunea că: “Simplitatea nu presupune absența oricărei decorațiuni, ci doar faptul că decorațiunea trebuie să aparțină intrinsec concepției de proiectare și orice altceva străin acesteia să fie înlaturat”.
Interfața potrivită și operațiile clare pe care clienți le au de îndeplinit fac ca aplicația să fie ușor de utilizat și învățarea funcțiilor sale se apropie de natural și pot fi realizate în timp scurt, fară să fie nevoie ca utilizatorul să comute pe alt gen de abordare decât cel pe care îl posedă prin cultură și pregătire profesională. [Lăc.13]
Capitolul 4 Proiectarea de detaliu
4.1 Arhitectura programului
Acest proiect reperzintă o aplicație e-commerce, de unde clienții pot cumpăra diferite articole vestimentare. Aplicația este împărțită în trei secțiuni, și anume: paginile cu extensia *.aspx conțin interfața cu utilizatorul, paginile cu extensia *.aspx.cs care conțin logica aplicației și baza de date. La rândul ei interfața este și ea împărțită în două părți: conține atât paginile destinate cliențiilor și vizitatorilor cât și cele destinate administratorului site-ului.
În figurile 4.1 și 4.2, pentru o mai bună înțelegere a modului de funcționare a site-ului, este prezentată structura destinată cliențiilor și structura destinată administratorului, cu paginile sale *.aspx și *.aspx.cs, cu legăturile dintre acestea și o succintă descriere a funcționalitățiilor fiecăreia.
Partea destinată clienților conține pagini de prezentarea a produselor dispuse pe diferite categori, informațiile necesare fiecărui produs, cum ar fi: scurtă descriere a produsului, mărimile disponibile precum și cantitatea pentru produsul selectat. Utilizatorii își pot creea cont pe site, având disponibilă și o pagină cu toate informațiile contului, pe care le pot modifica oricând. Pentru a putea plasa o comandă clienții trebuie să fie autentificați. De asemenea, conține și o parte logică pentru a putea adăuga o comandă în coș și pentru a lăsa un comentariu.
Administratorul, după cum reiese și din figura 4.1 trebuie să se autentifice mai întâi pentru a avea acces la zona sa. Aici el are un meniu cu operații precum: afișarea comenzilor efectuate de clienți, pentru a ști ce produse și unde trebuiesc expediate, afișarea produselor disponibile în stoc. Poate vizualiza toți utilizatorii înregistrați pe site având drept de editare sau de ștergere a unui utilizator sau îi poate da drept de administrator. Este disponibilă și o evidență a mesajelor lăsate de către clienți sau simpli vizitatori. Aceste mesaje vor apărea pe site doar dacă sunt aprobate de către administrator. Există și opțiuniile de adăugarea a unui nou produs, în momentul în care se primesc produse noi trebuie reînoit stocul. În cazul extinderi magazinului, se pot adăuga noi materiale și noi categorii de produse.
4.2 Descrierea principalelor operații-schemele operațiilor
Pentru o mai bună înțelegere a operațiilor pe care clienți dar și administratorul trebuie să le îndeplinească de-a lungul site-ului am realizat următoarele figuri care descriu operațile de achiziționare a unui produs, adăugarea de noi produse sau de noi caracteristici ale produselor și evidența clienților.
În figura 4.3 este prezentată operația de achiziționare a produselor. Pentru a ajunge la pagina de achiziționare a unui produs, clientul trebuie să treacă mai întâi prin pagina cu informațiile generale, adică Default.aspx. Aici sunt prezentate toate butoanele către toate paginile acesibile clienților. Din meniu, utilizatorul poate alege categoria de produse pe care le dorește, ajungând în pagina content.aspx, unde se transmite ca și parametru tipul produsului. Primul lucru pe care clientul trebuie să îl facă este să își creeze un cont, lucru care se face în pagina detalii_personale.aspx.cs. Dacă utilizatorul are un cont, se poate autentifica în pagina login.aspx.cs. În urma autentificării se intră în contul_meu.aspx unde se pot vizualiza detaliile contului. Vizualizarea produselor se face în pagina detaliu_produs.aspx. De aici se poate selecta produsul dorit, mărimea acestuia și cantitatea, detaliu_produs.aspx.cs. Următorul pas, cel al achiziționări produsului se face în pagina cos.ascx.cs, aici are loc adăugarea produsului în coș. Coșul de cumpărături permite editarea cantități și a marimi unui produs anume, precum și ștergerea lui. Tot aici se afișează și prețul fiecărui produs din coș, dar și totalul comenzii(suma produselor din coș). Ultimul pas este reprezentat de confirmarea comenzii și trimiterea ei, lucru facut în pagina checkout.aspx.cs. Este necesară completarea tuturor câmpurilor, necompletarea lor sau introducerea unor date greșite duce la semnalarea erorilor. Se semnalează eroare pentru fiecare câmp completat greșit, știind astfel exact unde ați greșit.
Figura 4.4, descrie pași pe care administratorul trebuie să îi facă pentru a putea adauga noi produse în site sau noi categorii și tipuri de materiale. Pagina de autentificare a administratorului este Default.aspx. În urma verificarii user-ului și a parolei, dacă acestea sunt corecte se permite accesul în panoul de administrare al magazinului, dacă sunt greșite se afișează un mesaj de eroare. După autentificare se intră în AdminFPanel.aspx, unde se poate vedea meniul special creat pentru utilizatorii autorizați. Se poate opta pentru adăugarea unui produs, în urma completări tuturor câmpurilor cerute aici, pagina adAdaugaProduse.aspx.cs v-a adauga noul produs în stoc. Pagina adAdaugaMaterial.ascx.cs permite adăugarea de noi materiale, necesară în momentul în care produsele primite sunt confecționate cu materiale noi. Este permisă și adaugarea de noi categorii de produse, opțiune prevăzută pentru momentul în care se extinde gama de produse diponibile pentru vânzare.
Operațiile de afișare disponibile administratorului sunt descrise în figura 4.5. Pentru a intra în pagina AdminFPanel.aspx, acesta trebuie să se autentifice, cu username-ul și parola corespunzătoare. Meniul cuprinde afișarea comenzilor, ListaComenzi.aspx, pentru a ști exact ce s-a vândut și unde trebuiesc trimise comezile. Prezintă și o evidență a utilizatorilor care și-au creat un cont pe acest site. De aici se pot edita datele despre utilizatori, se poate șterge un utilizator sau i se poate da dreptul de administrator. Este disponibilă și o evidență a produsele de pe stoc.
Pagina adGBMessages.aspx, afișează toate mesajele din tabela GuestBookMessages. Inițial toate mesajele sunt neaprobate, când se acționează acest link, mesajul corespunzător devine aprobat. Asta înseamnă că, mesajul aprobat poate fi văzut acum de către toți clienți și vizitatori.
O altă operație foarte importantă pentru utilizatori și mai ales pentru clienți este secțiunea în care ei pot lăsa un mesaj. Din pagina cu informațiile generale se poate intra în pagina de contact, contact.aspx. Aici pe lângă informațiile necesare contactări administratorului există un formular de contact unde în urma completării câmpurilor cerute și acționări butonului “Trimite”, se apelează funcția btn_trimite_msg_Click(), prin care mesajul clientului se trimite direct în email-ul administratorului.
Vizitatorii sau clienții magazinului online pot lăsa un comentariu în pagina guestbook.aspx. Aceste comentarii se salvează automat în tabela GuestBookMessages. Mesajele din această tabelă pot fi văzute de administrator care trebuie să le aprope. Dacă mesajul a fost aprobat el poate fi văzut de toată lumea în pagina de comentarii, prin intermediul pagini guestbook.aspx.cs. În cazul în care, din diverse motive, mesajul nu este aprobat, acesta nu o sa poată fi văzut de către utilizatori.
Nivel de
Vizitare
ASPX
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel
Cumpărare
ASPX.CS
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel baza
de date
SQL
––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Fig.4.3 Achiziționarea produselor
Nivel de
Vizitare
ASPX
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel
Adăugare
ASPX.CS
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel baza
de date
SQL
––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Fig.4.4 Operațiile de inserare disponibile administratorului
Nivel de
Vizitare
ASPX
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel
Afișare
ASPX
––––––– ––––––––––––––––––––––––––––––––––––––––––––––––––––––––-
Nivel baza
de date
SQL
––––––– –––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Fig.4.5 Afișare
4.3 Structuri de baze de date
Proiectul are o singură bază de date, care s-a construit având ca suport aplicația Microsoft SQL Server Management. Structura bazei de date a fost elaborată astfel încât să respecte recomandările beneficiarului, incluzând câmpurile deja existente în aplicați asemanatoare, folosite de diverse magazine vestimentare on-line. De asemenea, au fost introduse câmpuri noi astfel încât baza de date să conțină toate informațiile necesare bunei desfășurări a activităților administratorului.
Baza de date, Irmgard, conține șapte tabele. Fiecare dintre ele putând fi scrise și citite de către administrator. Cele șapte tabele sunt: Users, Products, Categorii, Comenzi, GuestBookMessages, Marimi și TipMaterial. Clienți pot scrie tabelele Users și Comenzi. Tabela GuestBookMessages poate fi scrisă și citită de către clienți dar și de către vizitatori site-ului.
Tabela Users conține informațiile despre utilizatorii autentificați pe site. Products prezintă toate informațiile necesare unui nou produs. Categorii, Marimi și TipMaterial conțin categoriile, marimile și tipurile de materiale disponibile pentru produse. Tabela Comenzi salvează datele comenzilor efectuate de către useri autentificați. GuestBookMessages prezintă mesajele lăsate de vizitatori/clienții site-ului.
În forma actuală, baza de date conține șapte tabele principale:
Users
Products
Categorii
Comenzi
GuestBookMessages
Marimi
TipMaterial
Figura 4.6 descrie conținutul tabelei „Users”. Aceasta are date despre cei care și-au creat conturi pe acest website. De fiecare data când un utilizator își creează un cont, în campul „DateEntered” este reținută data la care acesta și-a creat contul.
Această tabelă mai conține și câmpul „IsAdmin”, care este un câmp de tipul bit, și care daca are valoarea 0, înseamna că utilizatorul are doar drepturi de vizitator al website-ului, iar daca are valoarea 1 înseamna că acesta poate aduce și modificări site-ului, acesta putânduse loga,
în modul de administrare, care se accesează utilizând link-ul: http://localhost:49207/website/admin. Cheia primară a acestei tabele este câmpul „ID”.
Fig.4.6 Tabela „Users”
Tabela „Products” conține date despre produsele care se vând pe acest website. Câmpul cheie primară a acestei tabele este câmpul „ProductName”. Pe lângă alte câmpuri, și această tabelă are un câmp „DateEntered”, în care se înregistrează data la care a fost adăugat produsul în stoc. În această tabelă se salvează și imaginile pentru fiecare produs în parte.
Fig. 4.7 Tabela „Products”
În figura 4.8 se poate vedea tabela „Categorii” care conține informații despre categoriile de produse care se vând pe acest website. Așa cum reiese din figura 4.8, această tabelă are un singur câmp, „NumeCategorie”, ce are proprietatea de cheie primară a acestei tabele, și care ne ajută să determinăm elementele care sunt introduse în meniul din stânga website-ului. Deasemenea, mai folosește la modulul de administrare al website-ului, în momentul în care se adaugă un nou produs, se poate selecta dintr-un control de tipul DropDownList categoria produsului nou introdus, controlul fiind populat tot de acest câmp.
Fig.4.8 Tabela „Categorii”
Tabela „Comenzi” conține informații despre comenzile făcute de către clienți. Această tabela prezintă informații precum datele de contact ale cumpărătorului, datele adresei sau adreselor de livrare, modalitate de plată, informații despre suma de plată cât și despre cantitatea produselor, modul de livrare, datele consultantului de vânzari și alte informații de contact. Câmpul cheie primară al acestei tabele este câmpul „ID”.
Fig.4.9 Tabela „Comenzi”
Figura 4.10, prezintă tabela „GuestBookMessages” ce conține toate mesajele lăsate de către utilizatorii website-ului. Aceste mesaje reprezentând opinia utilizatorilor în legătura cu website-ul și cu produsele expuse. Această tabelă are un câmp ID, care reprezintă ID-ul mesajului, dar pentru că un utilizator poate lăsa mai multe mesaje, mai exista și un câmp ID_Msg, care reprezintă ID-ul mesajului lăsat de fiecare utilizator în parte. Câmpul cheie primară al acestei tabele este câmpul „ID_Msg”.
Fig.4.10 Tabela „GuestBookMessages”
Tabela, ”TipMaterial”, păstrează informații despre tipurile de materiale pe care le pot conține articolele de îmbracăminte sau încălțăminte de pe acest website.
Fig.4.11 Tabela “TipMaterial”
Figura următoare, prezintă tabela ”Marimi”, care conține numărul de produse din fiecare mărime, pentru fiecare produs care se află pe stocul magazinului.
Câmpul cu proprietatea de cheie primară este câmpul „ProductName”. Această tabelă mai prezintă și un câmp „Quantity”, a cărui valoare este suma tuturor câmpurilor care au ca tip, tipul „Int”, adică câmpurile: XS, S, SM, M ML, L, XL, XXL.
Fig.4.12 Tabela “Marimi”
4.4 Proceduri (funcții, subrutine)
Website-ul www.irmgard.ro, al cărui scop este comercializarea de îmbracăminte și accesorii pentru femei este dezvoltat folosind tehnologia ASP.Net, tehnologie pusă la dispoziție de către Microsoft.
Site-ul este împarțit în două module:
modulul accesibil tutoror utilizatorilor și clienților;
modulul de administrare, accesibil doar utilizatorilor cu drepturi privilegiate.
4.4.1 Modulul accesibil utilizatorilor
Acest modul este disponibil tuturor vizitatorilor site-ului cât și clineților care apelează la serviciile puse la dispoziție de acest site. În acest modul sau folosit servicii oferite de Microsoft Visual Studio 2008, precum:
Web Form;
Web User Control;
Site Map;
Site Master;
Toate aceste servicii sunt folosite pentru a ușura munca dezvoltatorului și pentru a asigura o funcționare mai rapidă și mai sigură website-ului.
Dezvoltarea aplicației a început prin crearea unui fișier de tip SiteMaster. Acest fișier este foarte asemănător cu formele Web obișnuite. Pentru a obține un aspect unitar al site-ului, se folosește o pagină specială numită MasterPage. Aceasta este o machetă pe baza căreia vor fi realizate toate paginile din site-ul web. În afara conținutului moștenit din MasterPage, fiecare pagină .aspx va avea și un conținut propriu. În aplicația curentă fișierul de tip sitemaster poartă denumirea „site.master”. Fișierul cuprinde două tipuri de elemente:
– elemente care se schimbă odată cu schimbarea pagini curente a site-ului
– elemente care nu se schimbă
Elementele care nu se schimbă, sunt cele care rămân pe orice pagină a website-ului, în cazul de față, sunt urmatoarele:
Header-ul
Meniu stânga
Footer-ul
MasterPage conține o zonă numită ContentPlaceHolder unde va fi inserat conținutul paginilor .aspx construite pe baza acestui template.
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder>
Aceste elemente sunt fișiere de tipul Web Form. Web Form-urile conțin doar partea care se schimbă a website-ului, far să mai conțină și elementele de header, meniu stânga și footer, care sunt deja definite în site.master.
Toate opțiunile de prezentare a paginilor sunt specificate de CSS și sunt păstrate într-un fișier de tip .css ce poartă numele site.css.
Aplicația mai conține și un fisier de tipul .sitemap. În cadrul lucrării curente, acest fișier poartă denumirea de web.sitemap. El este de tip XML, conține și afișează informații despre locația curentă a utilizatorului în interiorul website-ului. În continuare este prezentat partial codul fișierului web.sitemap.
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode url="Default.aspx" title="Irmgard Fashion Store – Imbracaminte pentru femei" description="Haine pentru femei">
….
<siteMapNode url="confidentialitate.aspx" title ="Zona ajutor clienti Irmgard.ro" description="Confidentialitate"/>
</siteMapNode>
</siteMap>
Paginile de tipul Web User Control au extensia .ascx și reprezintă controale de tip utilizator care pot fi refolosite. Ele au aceeași structura ca și paginile de tip .aspx (web form-urile). Aplicația curentă are cinci astfel de controlere:
h_m_haine1.ascx: reprezintă meniul principal din partea de Header;
h_m_haine2.ascx: reprezintă meniul secundar din partea de Header;
l_s_haine.ascx: reprezintă meniul din stânga site-ului;
f_m_haine.ascx: reprezintă meniul din partea de Footer;
cos.ascx: reprezintă coșul de cumpărături, cu toate elementele sale.
Website-ul prezintă mai multe pagini de tipul .aspx. Unele dintre acestea sunt pur informative (ex: conditii_de_returnare.aspx,confidentialitate.aspx,cum_cumpar.aspx. etc).
Pe lângă aceste pagini mai există și pagini care afișează informații sau care trimit informații la server. Dintre aceste pagini, amintim urmatoarele: contact.aspx, concurs.aspx, content.aspx, detaliu_produs.aspx, info_cont.aspx, istoric_comenzi.aspx, etc. Informațiile de pe aceste pagini sunt afișate prin intermediul funcțiilor C# sau ale elementelor puse la dispoziția programatorului de către mediul de dezvoltare Visual Studio.
Cele mai importante și cele mai folosite funcții sunt păstrate într-un folder care are numele App_Code, în clase cu nume reprezentative. Cea mai importantă clasă este Global.cs.
Funcția Connect() din clasa Global.cs stabilește conexiunea cu baza de date. Ea este apelată de fiecare dată când vrem să accesăm datele din baza de date. Această funcție inițializează o instanță de tip SqlConnection, apoi îi setează atributul ConnectionString, ca având valoarea obținută prin apelul funcției getConnectionString(), funcție care se află tot în clasa Global. Apoi apelează metoda Open(), care deschide o conexiune la baza de date cu proprietățile setate prin intermediul atributului ConnectionString.
O alta funcție este cea cu numele Disconnect(). Ea apelează metoda Close(), pentru a închide conexiunea cu baza de date.
Aceste două funcții nu sunt printre cele mai importante, dar sunt folosite foarte des.
Functia getConnectionString() returneaza o valoare de tip șir de caractere. Acest șir de caractere este obținut din fișierul de configurație al aplicației, numit web.config.
O alta clasă este Login.cs. Aceasta conține o funcție care returnează un rezultat de tip boolean și care primește doi parametrii, ambii de tip string: un parametru care conține adresa de e-mail,folosită de utilizator pentru a se loga, și un parametru care conține parola.
Se verifică cei doi parametri,email și password, dacă ei coincid cu parametri introduși de client atunci se face autentificarea acestuia.
La fiecare încercare a utilizatorului de a se autentifica, această funcție este apelată. Stringul sql este interogarea folosită pentru a verifica daca utilizatorul este înregistrat. În cazul în care utilizatorul este înregistrat, această înregistrare va fi salvată în SqlDataReader. Dacă acest SqlDataReader are date, adică nu este gol, variabila de tip boolean bLogin își pastrează valoarea TRUE și SqlDataReader dr este închis, apoi este închisă și conexiunea la baza de date. Funcția returnează în final valoarea variabilei bLogin. Dacă această variabila este True, atunci utilizatorul este autentificat.
Clasa SecurePage.cs este o clasa care prezintă metode ce verifică dacă utilizatorul este autentificat sau nu. Scopul acestei verificari este acela de a nu permite utilizatorului să acceseze unele pagini decât dacă este autentificat. OnSecurity() face acest lucru pentru partea accesibilă utilizatorilor fără drepturi privilegiate, pe când funcția OnAdminSecurity() face acest lucru pentru modulul de administrare al website-ului.
La fel funcționează și OnAdminSecurity(), cu specificația că sesiunea la care îi pune condiția se numește Session[“UserAuthentication”].
Clasa cea mai dezvoltată și una dintre cele mai importante, este clasa CartItem.cs. Ea conține toate funcțiile necesare pentru o funcționalitate corectă a coșului de cumpărături. Este compusă din două clase serializabile: CartItem și ShoppingCart.
– clasa CartItem contine variabile private, constructori și declarații de proprietăți.
– clasa ShoppingCart prezintă pe lângă variabile private, constructori, și declarații de proprietăți și alte funcții care duc la buna funcționare a coșului de cumpărături.
Functia Insert(),introduce produsele în coșul de cumpărături. Ea verifică mai întâi dacă produsul cu același nume mai există în coș. Dacă există mai verifică și dacă dimensiunea este aceeași. Dacă și dimensiunea este aceeași mărește cantitatea cu cantitatea selectata de utilizator în momentul comandării, în caz contrar această funție adaugă un nou produs în coșul de cumpărături.
Utilizator are posibilitatea de a modifica cantitatea de produse comandate chiar din coșul de cumpărături,prin selectarea cantități dorite, iar apoi acesta este obligat să apese butonul update. La apăsarea acestui buton functia Update() este apelată. Ea actualizează coșul cu modificările făcute de utilizator.
Funcția Delete(), șterge produse din coșul de cumpărături. Această ștergere se face pentru fiecare produs în parte.
Clasa CreateUser.cs este de asemenea o clasă importantă. Ea este folosită pentru înregistrarea de noi conturi, create de către utilizatori. Prezintă o metodă AddSubscriber() cu următoarele argumente: nume, prenume, adresa, oras, judet, telefon1, telefon2, email, password, cpassword, newsletter, acord, dateEntered.
Datele respective sunt introduse de către utilizator, la încercarea acestuia de a-și înregistra un nou cont. Condițiile necesare pentru a crea un nou cont sunt puse în pagina de tip code-behind cu numele delatii_personale.aspx.cs. Doar după ce condițiile sunt îndeplinite funcția de AddSubscriber() este apelată și contul este înregistrat.
4.4.2 Modulul de administrare al site-ului
Acest modul este folosit de către utilizatori privilegiați, adică de către administratorii site-ului.
El permite administrarea stocului, a comenzilor, a mesajelor din cadrul secțiunii de GuestBook cât și a mesajelor din cadrul secțiunii de comentarii pentru fiecare produs în parte.
La acest modul este folosită aceeași tehnica ca în modulul accesibil tuturor utilizatorilor, adică conține o pagina de tip .master, pagina care are numele adminSite.master. Acest modul este accesat utilizand link-ul : http://localhost:50445/Irmgardfashion/admin/
În momentul accesări acestui link, utilizatorul este rugat să se logheze. Doar utilizatorii cu drepturi privilegiate se pot autentifica pe acest modul al website-ului. Restul paginilor sunt construite folosind acest schelet, care cuprinde și un control utilizator cu numele de adminTopMenu.ascx. Câteva din funcțiile importante din acest modul de administrare sunt păstrate tot în folderul App_code.
În cadrul paginii adAdaugaProduse.aspx se adaugă și cantitatea pentru fiecare marime a produsului, prin intermediul unor textbox-uri. Aceste textbox-uri au ca valoare inițială, valoarea 0, pentru că baza de date să poată calcula valoarea câmpului Quantity din cadrul tabelei “Marimi”, valoare care se calculează folosind formula:
((((((([XS]+[S])+[SM])+[M])+[ML])+[L])+[XL])+[XXL]), câmpurile respective au valori de tipul int. Tot din această parte de administrare a site-ului se mai pot adaugă și noi categorii de materiale, sau noi categorii de produse.
În continuare voi afișa partial conținutul paginii adminSite.master și ulterior voi comenta câteva din elementele acestei pagini, pentru a se vedea și structura aproximativă a paginilor care conțin cod HTML.
<%@Master Language="C#" AutoEventWireup="true" CodeFile="adminSite.master.cs" Inherits="admin_adminSite" %>
<%@RegisterAssembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%@Register TagPrefix="uc" TagName="NavMenu" Src="adminTopMenu.ascx"%>
<head runat="server">
<title></title>
<link href="cssAdmin.css" rel="stylesheet" type="text/css" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server" method="post">
<div id="all" style="background-image: url('images/AdminH.png'); background-color:White;">
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<div id="adHeaderSpace" class="clearfix">
<div id="adHLogo">
<div style="float:left; margin:0; height:auto; width:auto; padding:0; border:0;padding-top:18px;padding-left:28px;"><a href="AdminFPanel.aspx" title="Home"><span id="img1" style="width:201px;height:75px;"><img src="images/adHLogo.png" width="201px" height="75px" border="0" alt=""/></span></a></div>
</div>
<div style="float:right; width:500px; margin:0; padding:0; border:0; padding-top:18px; padding-right:28px;">
<div id="adHLoginInfo">
<asp:Label ID="lblAdHLoggedIn" CssClass="lblAdHLoggedIn" runat="server" Text="Logged in as "></asp:Label>
<asp:Label id="lblAdHTime" CssClass="lblAdHTime" runat="server" Text=" | label | "></asp:Label>
<asp:LinkButton ID="lbtnAdHLogOut" CssClass="lbtnAdHLogOut" runat="server" OnClick="lbtnAdHLogOut_Click" Text="Log Out"
Font-Names="verdana, tahoma,sans-serif" Font-Size="11px" Font-Underline="True" ForeColor="White">
</asp:LinkButton>
</div></div></div>
<divid="topMenu"class="clearfix"style="margin:0;padding:0;border:0;float:left;height:30px; width:100%;">
<div style="margin:0;padding:0;border:0;float:left;height:30px; width:100%; background-image:url('images/bgTopMenu.png'); background-repeat:repeat-x;">
<uc:NavMenu ID="NavMenu" runat="server"/>
</div></div>
….
<div id="content_admin">
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
<div id="adFooterSpace" style="background-image:url('images/footer_admin.png')" class="clearfix">
</div></div>
</form>
</body>
</html>
Putem observa că este respectată întocmai structura HTML specificată mai sus.
În tag-ul <head>, această pagină conține un link către fișierul care se ocupă cu formatarea elementelor din cadrul paginii. Tag-ul <body> constă din elementele care alcătuiesc conținutul paginii propriu-zise. Toate elementele din această pagină sunt incluse în div-uri.
Se deosebesc câteva tag-uri care sunt diferite de cele ale limbajului HTML obișnuit. Aceste tag-uri sunt specifice tehnologiei ASP.Net.
Câteva exemple de tag-uri specifice ASP.Net:
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<asp:Label runat="server"> </asp:Label>
<asp:LinkButton runat="server"> </asp:LinkButton>
Capitolul 5 Utilizarea sistemului
5.1 Interfața vizuală
În continuare se prezintă manualul de utilizare al acestei aplicații web, pentru ca utilizatori să aibe o vedere de ansamblu asupra site-ului precum și o detaliere a tuturor operațiilor pe care doresc să le îndeplinească.
Principalii clienți ai unei asemenea afaceri sunt femeile cu vârste cuprinse între 18 și 45 de ani. Majoritatea femeilor din ziua de azi lucrează și sunt foarte ocupate, așa că magazinul on-line este cea mai comodă și rapidă variantă pentru ași face cumpărăturile. Pe internet este mult mai ușor și mai lejer de găsit ceea ce căutați și, pe deasupra aici poate fi facută o prezentare vastă a articolelor oferite, de la descriere la imagini. Întreaga aplicație a fost construită ținând cont de lucrurile menționate mai sus și bineînțeles de dorințele clienților.
S-a dorit ca prima pagină a site-ului să ofere acces direct la toate opțiunile disponibile pentru clienți și vizitatori. De asemenea s-a urmărit ușurarea îndepliniri sarcinilor clienților, vizitatorilor și administratorului, oferind link-uri clare și mesaje explicite în cazul unor erori. Rezultatul obținut în acest fel a fost scurtarea timpului necesar explorări site-ului și eliminarea eventualelor greșeli de completare a câmpurilor cerute pentru achiziționarea produselor, creare unui cont și lăsarea unui mesaj.
S-a mai urmărit dirijarea clineților în utilizarea programului astfel încât el să nu ajungă în imposibilitatea de a nu găsi ceea ce căuta, acest lucru a fost implementat prin crearea unor link-uri de revenire și a butoanelor de reset.
Interfața cu utilizatorul s-a dorit a fi plăcută și expresivă în același timp, și să ofere toate opțiunile absolut necesare unei utilizări eficente.
5.1.1 Pagina principală
Fig.5.1 Pagina principală
Ceea ce se observă în figura de mai sus este exact fereastra pe care o va vedea utilizatorul imediat după lansarea aplicației. Lansarea programului se face introducând în browser-ul web următoarea pagină web: http://localhost:49207/website/Default.aspx.
Figura 5.1, reprezintă pagina principală a site-ului. Aici fiind prezentate butoanele care duc spre celelalte pagini ale magazinului. În partea stângă se află un meniu cu toate categoriile de produse disponibile, în partea de sus a pagini sunt prezente butoanele principale: Home, Contact, Guestbook, precum și butoane informative. În antetul pagini se pot observa link-urile de autentificare și coșul de cumpărături.
Pagina de start a magazinului prezintă cele mai noi produse adăugate în stoc, precu și un tabelul cu mărimi.
5.1.2 Pagina Informativă
Utilizatorilor le sunt puse la dispoziție mai multe pagini pur informative, cu scopul de a le prezenta mecanismul de funcționare al magazinului și de a elimina orice nelămuriri. Când se face click pe butonul “Cum Cumpar” se deschide o noua pagina unde se regăsesc principalele informații despre achiziționarea unui produs.
5.1.3 Pagina creare cont
Site-ul prezintă un link pentru autentificare. Toți cei care doresc să facă cumpărături de aici trebui mai întâi să își creeze un cont pe acest site. În momentul în care se face click pe “autentificare” se ajunge în pagina din figura 5.2. Dacă utilizatorul are deja un cont creat, atunci el trebuie să completeze câmpurile din partea stângă și să acceseze butonul “Log-in”. Aici se face verificarea user-ului și a parolei introduse cu cele existente în tabela Users iar în cazul în care nu corespund se va afișa mesajul “Userul sau parola nu sunt corecte!”, clientul fiind nevoit să reintroducă datele.
Fig.5.2 Crearea unui cont
În cazul în care clientul și-a uitat parola, aceasta poate fi recuperată prin introducerea în câmpul ”E-mail” a unui e-mail valid și acționarea ulterioară a butonului “Recuperare parola”. Clientul își v-a primi parola în e-mail-lul personal.
Dacă utilizatorul nu are un cont pe site, acesta trebuie să acceseze butonul “Doresc cont” din partea dreaptă a figurii 5.2. În acest moment i se v-a deschide pagina din figura 5.3, unde el este nevoit să completeze toate câmpurile marcate ca fiind obligatorii, iar apoi trebuie să acceseze butonul “Crează contul meu”.
Fig.5.3 Înregistrare cont
La acționarea acestui buton dacă toate câmpurile au fost completate corect se va afișa un mesaj informativ.
În urma autentificării clientul este trimis în pagina ce conține detalii legate de contul său. Aici el poate modifica orice câmp dorește. Dacă de exemplu și-a schimbat adresa, trebuie să o modifice și aici pentru a nu fi probleme la livrarea comenzii. Tot aici el poate vizualiza toate comenziile efectuate până în acest monent și are, bineînțeles și butonul de “Log Off” pentru a părăsi contul său.
5.1.4 Coșul de cumpărături
Unul din lucrurile cele mai importante pentru clienții care vizitează site-ul unui magazin online este acela de a vedea poze cu articolele disponibile pentru a ști ce cumpără. Eu nu am ignorat acest lucru, astfel că atunci când acționați unul din butoanele prezente în meniul din stânga, de exemplu “Rochii” , acesta vă va trimite pe pagina de prezentare a rochițelor disponibile în stoc.
Fig.5.3 Produse
Dacă sunteți interesată de o anumită rochiță, atunci faceți click pe poza respectivă sau pe “detalii” și o să intrați în pagina din figura 5.4. Aici puteți vedea o poză mai mare a produsului, o scurtă descriere a acestuia, materialele din care este făcut și bineînțeles prețul acesteia.
În partea dreaptă a pozei sunt disponibile două câmpuri: marime și cantitate. Dumneavoastră trebuie să selectați marimea și cantitatea dorită, iar apoi se acționează butonul “Adauga in cos”.
Fig.5.4 Detalii produs
Figura 5.5 afișează pagina în care ajungeți imediat după acționare butonului “Adauga in cos”. Aici sunt afișate toate produsele pe care le-ați selectat pentru a fi adăugate in cosul de cumpărături. Puteți vedea poza cu produsul ales, descrierea sa, prețul, cantitatea și totalul acestora în cazul în care selectați o cantitate mai mare de unu. Tot aici va este afișat și costul transportului și totalul comenzii, pentru a ști exact cât aveți de plată. Dacă doriți să mai adăugați produse în coș, trebuie doar să acționați butonul “Continua cumparaturile” care vă va duce în pagina cu produse. În momentul în care ați terminat cumpărăturile, se face click pe butonul “Comanda acum!” pentru a putea trimite comanda.
Fig.5.5 Coșul de cumpărături
Când ajungeți în pagina din figura 5.6, trebuie să bifați toate opțiunile cerute și apoi să acționați butonul “Confirm comanda”. În acest moment comanda dumneavostră a fost trimisă și o să primiți un mesaj de confirmare.
Fig.5.6 Procesare comandă
5.1.5 Pagina Contact
Urmează link-ul “Contact” unde se găsesc datele necesare contactări administratorului, precum și un formular de contact.
Dacă se face click pe butonul “Trimite”, în urma completării câmpurilor obligatorii, mesajul se va trimite în e-mail-ul administratorului:[anonimizat].
Fig.5.7 Trimiterea unui mesaj
În cazul în care nu se completează toate câmpurile marcate cu steluță, se afișează un mesaj precum în figura 5.7. Trebuiesc completate toate câmpurile și apoi retrimis mesajul.
5.1.6 Pagina Mesaje
Când se acționează butonul “GuestBook”, se ajunge în pagina care permite lăsarea unui mesaj. Aici trebuiesc completate toate datele cerute, altfel va fi afișat un mesaj de eroare. După scrierea mesajului se apasă butonul “Adauga comentariu” care îi trimite mesajul dumneavoastră administratorului.
După ce utilizatorul autorizat aprobă mesajele lăsate de clienți sau vizitatori acestea apar pe site.
5.1.6 Pagina Autentificare
Pentru a avea acces în zona sa, administratorul trebuie mai întâi să se autentifice. Adică să introducă user-ul și parola sa, după care se acționează butonul “Log In”.
Dacă username-ul sau parola introdusă de administrator este greșită, se va afișa un mesaj de atentionare iar utilizatorul va trebui sa incerce din nou.
Fig.5.8 Zona administratorului
După introducerea datelor corecte utilizatorul este trimis în zona administratorului unde poate avea acces la bazele de date ce conțin informați despre clienți, comenzi și produse, dar mai poate face și o serie de operați pentru gestiunea acestora. Operațiile pe care le poate face administratorul sunt: adăugarea de noi produse, categorii și materiale, afișarea comezilor, afișarea cliențiilor, afișarea mesajelor și aprobarea acestora. Toate aceste operați sunte descrise mai pe larg în continuare.
5.1.7 Pagina Evidența
Prima operație pe care o poate face administratorul este cea de afișare. La acționarea butonului “Comenzi” acestuia i se deschide pagina din figura de mai jos. Aici el poate vizualiza toate comeziile făcute de către clienți. Le poate edita, schimbând anumite date dacă este nevoie, sau le poate șterge, dacă sunt foarte vechi.
Fig.5.9 Evidența Comenzilor
Alegând butonul “Clienti” și apoi “Users” adminitratorul va vedea toți utilizatorii care au cont pe site. Aici sunt și link-urile “Edit” și “Delete” . Câmpul ”Is Admin” permite adminsitratorului să dea drept de admin sau să ia acest drept utilizatorilor.
Fig.5.10 Evidența clienților
Mesajele trimise de clienți sau de vizitatori site-ului trebuie să fie aprobate de către administrator pentru a putea fi văzute și de către vizitatori/clienți.
5.1.8 Pagina Adăugare
O altă operație pe care administratorul o poate face este acea de adăugare. La acționarea butonului “Catalog” se deschide un meniu, și de aici se alege “Adauga Produse”. V-a apărea pagina din figura de mai jos. Aici trebuiesc completate toate câmpurile, respectiv alegerea unui tip de produs și tipurile de materiale din care este făcut produsul. După ce se completează toate câmpurile și se încarcă pozele dorite cu respectivul produs se face click pe butonul “Adauga produs” , pentru adăugarea articolului în categoria aleasă.
După apăsarea butonului “Adauga Categorii”, administratorul va fi trimis pe pagina din figura 5.22. Aici sunt afișate categoriile existente deja în magazin, iar în partea dreaptă se poate introduce o nouă categorie, apăsând butonul”Adauga”.
Fig.5.11 Adăugarea unei categorii
Introducerea unui nou tip de material se face la fel ca adăugarea unei categorii. Pagina care se deschide pentru această acțiune la apăsarea butonului “Adauga Material” este prezentată în figura 5.12.
Fig.5.12 Adăugarea unui nou material
Capitolul 6 Concluzii
Lucrare de față prezintă o aplicație ce constă într-un site dinamic, construit utilizând în întregime ASP.Net 3.5. Este un site care conține foarte multe tool-uri, meniuri, controlere de autentificare și altele, care în versiunile anterioare necesitau foarte mult timp pentru a fi create. Aplicația web administrează un magazin online,o bază de date ce conține date despre clienți, produsele disponibile în stoc și mesajele acestora.
Am realizat un magazin virtual, de unde se pot achiziționa articole vestimentare. Partea administratorului fiind implementată după cerințele acestuia pentru a-i ușura munca și pentru a-i automatiza anumite sarcini, este simplă și cât mai ușor de înțeles și de învățat.
Aplicația este creată cu acces restricționat la bazele de date, doar administratorul în urma autentificări le poate accesa, intrând în zona dedicată lui.
S-au implementat toate operațiile propuse: coșul de cumpărături, crearea unui cont, trimiterea unui comentariu de către vizitatorii magazinului, adăugarea unui nou produs, adăugarea unor noi materiale și categorii de produse, afișarea comenzilor efectuate de către clienții magazinului, afișarea tuturor utilizatorilor care și-au creat un cont pe site, afișarea mesajelor și aprobarea acestora de către utilizatorul cu drept de admin.
Proiectul are o singură bază de date, Irmgard, care s-a construit având ca suport aplicația Microsoft SQL Server Management Studio. Structura bazei de date include câmpurile deja existente în aplicații asemanatoare, folosite de diverse site-uri de e-commerce. De asemenea, au fost introduse câmpuri noi astfel încât baza de date să conțină toate informațiile necesare bunei desfășurări a activităților administratorului.
Structura web site-ului deși pare complicată, există pagini specifice fiecărei acțiuni în parte pentru ca administratorul și clienți să nu se piardă de-a lungul site-ului.
Aplicația prezintă articolele vestimentarea disponibile în stocul magazinului, descrierea fiecărui articol împreună cu pozele acestuia. Există pagini explicative pentru modul de plată, de livrare și modul în care se face achiziționarea unui produs.
Interfața potrivită și operațiile clare pe care clienți le au de îndeplinit fac ca aplicația să fie ușor de utilizat și învățarea funcțiilor sale se apropie de natural și pot fi realizate în timp scurt, de asemenea ea este realizată în urma determinări principalilor utilizatori și a dorințelor acestora.
În creearea aplicației am mers după principiul uzabilități. Pentru ca o aplicație să fie performantă (eficientă), trebuie să permită utilizatorului să își ducă la bun sfârșit sarcina, în cel mai bun și mai ușor mod posibil.
Site-ul oferă un avantaj clientului, acesta nu mai trebuie să se deplaseze la diferite magazine pentru a intra în contact cu comerciantul, poate cumpăra direct de acasă și la prețuri mult mai bune.
Unei aplicații i se pot aduce mai tot timpul îmbunătățiri. Nici aplicația de față nu face excepție. Dintre îmbunatatirile care i se pot aduce voi enumera câteva:
dezvoltarea structurii bazei de date cu noi entități care să permită realizarea de statistici în baza de date sau alte operați administrative a site-ului;
adaugarea unui filtru prin care administratorul poate vedea doar anumite comenzi cu privire la data produselor comandate;
optimizarea pentru motoarele de cautare(SEO – procesul de editare al conținutului și al codului unui site web, pentru a crește vizibilitatea și rank-ul în motoarele de căutare);
Această aplicație s-a dorit a fi folositoare, atrăgătoare și nu în ultimul rând practică.
Bibliografie
[Cra.1] Craus Mitica, Aflori Cristian, Leon Florin, Gavrilă Augustin–Ionuț, „Regăsirea informațiilor pe Web”, Editura Politehnium, Iași, 2005
[Ste.2] Stephen Walther, Jonathan Levise, „Programarea în ASP.NET pentru comerțul electronic”
[Buc.3]Bucur Ilie, „E-Commerce in România”
[Nir.4] Nirvana Popescu, Curs „E-COMMERCE”, 2010
[Joe.5] Joe Martin, Brett Tomson, „Introducerea în ASP.NET”, Teora, București, 2002
[Lia.6] Liana-Maria STANCA, „A Compared Aproach: ASP versus PHP”, Cluj-Napoca
[Ric.7] Richard York , „Beginning CSS: Cascading Style Sheets for Web Design”
[Mic.8] Microsoft, „Programarea web cu ASP.NET”
[Mic.9] Microsoft, „Programare orientată pe obiecte și Programarea vizuală”
[Her.10] Herbert Schldt, „C#”, Teora, 2002
[Chr.11] Chris H. Pappers, William H. Murray, „C# pentru programarea Web”, B.I.C ALL, 2002
[Lar.12] Larry Ullman , „PHP si MySQL pentru site-uri web dinamice”
[Lăc.13] Lăcrămioara Stoicu-Tivadar, „Proiectarea interfețelor utilizator”
[w.1] www.tree.ro
[w.2] http://www.coolhomepages.com/cda/color
[w.3] www.elvensoft.ro/avantaje-asp-dot-net
[w.4] www.infoap.utcluj.ro (curs ”Programare avansata in Visual C#”)
[w.5] www.csharpcommunity.info (curs ” Introducere in aplicatii ASP.NET”)
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiectarea Unui Site Dinamic, Utilizand Tehnologiile Asp.net Si Mysql (ID: 150287)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
