Internetul In Lume

Capitolul 1

Cuprins

Capitolul 1. Introducere

1.1 Internetul în lume

1.2 Funcționarea Internetului

Capitolul 2. Obiectivele Proiectului

Capitolul 3. Studiu Bibliografic

3.1 Platforma .NET

3.1.1 Aplicații Web în ASP.NET

3.1.2 Structura unei aplicații

3.1.3 Configurația ASP.NET

3.2 Limbajul C

3.2.1 Crearea aplicațiilor console

3.3 Baze de date

3.3.1 Elemente de teoria bazelor de date

3.3.2 Serverul de baze de date Microsoft SQL

Capitolul 4. Analiză și Fundamentare Teoretică

4.1 Studiul cerințelor

4.2. Modelul cazurilor de utilizare

4.3. Cerințe de interfață

4.4. Alte aplicații informatice utilizate în domeniu

Capitolul 5. Proiectare de Detaliu si Implementare

5.1 ARHITECTURA MAGAZINELOR ONLINE

5. 1.1 Noțiuni generale

5. 2. Crearea unui site auto

5.3. Detalierea interfeței

Capitolul 6. Testare și Validare

Testare in diferite browsere:

Test case

Capitolul 7. Concluzii

Bibliografie

Anexa 1

1

Capitolul 1

Capitolul 1. Introducere

1.1 Internetul în lume

Internetul poate fi considerat un mediu, o infrastructură ce oferă agenților economici, spre exemplu, abilitatea de a se face cunoscuți atât clienților cât și posibililor parteneri de afaceri, de a accesa informația ușor și rapid.

Ce este internetul? Sunt multe definiții pentru acest mediu. Este considerat, în primul rând, ca și o rețea prin care circulă informația de orice țip: sunet, text, imagine, imagine video; o infrastructură globală realizată din nenumărate rețele mai mici prin care se conectează milioane de calculatoare, telefoane și tablete din întreaga lume.

Internetul a apărut în anul 1965, prin încercarea de a conecta rețeaua Departamentului Apărării Statelor Unite (cunoscută sub numele de ARPAnet) cu alte rețele conectate prin dispozitive radio sau satelit.

I-a urmat NSFNET, înființată de NSF (Național Science Fundation), o agenție guvernamentală americană, însa problema costului ridicat al liniilor telefonice închiriate pe distanțe foarte mări a fost un impediment pentru dezvoltarea și lărgirea acestui mediu. Deși separate, cele două rețele puteau comunica în continuare, creându-se astfel o inter-retea denumită DARPA Internet, Internetul de mai târziu.

Inițial, Internetul a fost o rețea în care cea mai mare parte a utilizatorilor era formată din cercetători din domeniul academic, guvernamental sau industrial.

Odată cu introducerea aplicației, WWW și a lansării primului site din istorie în anul 1991, conceput de Tim Berners Lee, inventatorul www, Internetul intra în domeniul comercializării, deoarece devine posibil accesul tuturor la site-uri, care pun la dispoziție un număr de pagini interconectate, care conțin texte, sunet, fotografii și chiar imagini video. La început siturile nu erau nici pe departe atât de complexe și încărcate grafic cum sunt în prezent, limbajul utilizat – HTML – fiind un limbaj nu prea puternic și permițând numai o serie limitată de formatări, precum și inserarea de linkuri, pentru a putea "lega" paginile între ele, designul web fiind, de fapt, mai mult "programare" web.

În prezent preocuparea pentru aspectul grafic al siturilor,au devenit puternic instrumente comercial și publicitar, iar tehnologiile folosite s-au diversificat și au devenit din ce în ce mai complexe. Companiile care produc situri lucrează cu angajați specializați pentru fiecare etapă a dezvoltării unui site, de la stadiul de concepție grafică la programare și editare de conținut.

Pentru realizarea unui site web indifferent de scopul acestuia trebuie parcurse următoarele erape:

2

Capitolul 1

1. Analiza preliminară

2. Concretizarea ideilor

3. Schițarea elementelor vizuale și compunerea structurii sitului

4. Programarea paginilor web într-un limbaj specializat.

5. Testarea sitului

6. Schimbarea parților care nu corespund

7. Publicarea site-ului

1.2 Funcționarea Internetului

Toate serviciile Internet au la baza comunicarea mesajelor între o sursă și un destinatar. Adresa unică a unui calculator este o succesiune de 4 numere naturale mai mici decât 255, separate prin ".", cea mai mică adresa fiind 0.0.0.0, iar cea mai mare adresa fiind 255.255.255.255 .

Dezavantajul memorării și folosirii acestor numere de către utilizatori este evident, motiv pentru care s-a utilizat o metodă de asignare a unui nume pentru fiecărui calculator din Internet. Restricția de bază este aceea că nu trebuie să existe în Internet doua calculatoare cu același IP (aceleași numere) .

Numele sunt folosite doar pentru a ușura utilizarea Internet-ului. Numele calculatoarelor sunt stocate în baze de date distribuite și organizate ierarhic. Există doar 7 domenii organizaționale diferite.

Acestea sunt prezentate mai jos:

Tabel 1.2.1 Cele 7 domenii organizaționale diferite.

3

Capitolul 1

În afară de domenii organizaționale exista și domenii geografice. Dacă domeniul este în afara Statelor Unite, el include un cod care arată țara căreia îi aparține. Fiecare țară are câte un cod, astfel încât privind la numele unui calculator se poate afla locația acestuia. Câteva coduri mai des întâlnite sunt prezentate în tabelul următor:

Tabel 1.2.2 Domenii geografice.

4

Capitolul 2

Capitolul 2. Obiectivele Proiectului

Obiectivul principal al acestei aplicatii este vizionarea si postarea de anunturi pentru cei interesati de un anumit comert- in cazul de fata vanzare cumpararea de masin, si autoinformarea persoanelor care doresc sa achizitioneze/ vanda o masina si nu stiu, sau nu sunt la current cu procedurile pe care trebuie sa le urmeze pentru a face acest tip de operatiune.

Site-ul prezentat este un site de prezentare de masini si diverse anunturi de vanzare-cumparare, ceea ce pentru mine reprezinta un hoby si mi-a facut mare placere sa lucrez la acest proiect.

Aceasta aplicatie isi propune sa vina in ajutorul persoanelor interesate de domeniu si le usureze mult timpul de cautare ;un avantaj al acestui site fata de altele o reprezinta cautarea care este una avansata datorita filtrelor, reducand astfel mult din timpul de cautare a userului si dandu-i acestuia o stare de confort si siguranta.

Un alt element important reprezinta logarea in aplicatie, care se face pe doua nivele: administrator si user normal care isi face un cont activ. Administratorul se ocupa de mentenanta site-ului si de gestionarea conturilor userilor si a anunturilor publicate de acestia.

5

Capitolul 3

Capitolul 3. Studiu Bibliografic

Aplicația a fost realizată în Microsoft Visual Studio 2010, limbajul de programare fiind Visual Basic C# și interfața în ASP.NET . Pentru stocarea datelor a fost folosit Microsoft Sql Server 2008.

3.1 Platforma .NET

.NET este strategia Microsoft pentru dezvoltarea de software care permite oamenilor să îl utilizeze din orice loc, utilizând orice fel de dispozitiv.

.NET înseamnă foarte mult Internet, iar Internetul este un exemplu de tehnologie sau fenomen care înseamnă lucruri diferite pentru persoane diferite. Astfel, din punct de vedere al dezvoltatorilor, Internetul este o stivă de protocoale și un model computațional bazat pe TCP/IP. Din punct de vedere al afacerilor, este o tehnologie care promite multe. Pentru consumatori, este o incredibilă resursa de comunicație, informație și conectivitate.

Descrierea pe larg a .NET este următoarea: o platformă de servicii web bazată pe XML care constă în:

. platforma software pentru construirea experienței .NET;

. un model de programare pentru a construi și integra servicii web bazate pe XML; . un set de servicii web bazate pe XML programabile;

. un mijloc de a permite utilizatorilor să interacționeze cu un set larg de dispozitive inteligente prin intermediul Web-ului, asigurând în același timp faptul că utilizatorul și nu aplicația controlează interacțiunea;

. un mijloc de a oferi utilizatorilor aplicații, servicii și dispozitive care sunt personalizate, simple, consistente și sigure.

.NET incorporează o platformă software pentru construirea experienței .NET ceea ce înseamnă server care rulează baze de date, servere web și alte sisteme.

.NET cuprinde un model de programare împreună cu uneltele respective prin care se permite dezvoltatorilor să creeze serviciile web pe care se bazează .NET. Modelul este .Net Framework, care este descris în cele ce urmează.

Extinderea intraneturilor și portalurilor prin utilizarea .NET 97

Componenta finală a .NET este rezultatul modelului de programare, uneltelor și platformei. Serviciile web oferă aceste servicii și informații necesare utilizatorilor în faza a treia de dezvoltare a Internetului. Deoarece aceste servicii web sunt programabile, ele permit unui utilizator să utilizeze orice dispozitiv pentru a accesa informația și pentru a o partaja cu alte site-uri sau servicii.

.NET este construit peste familia de servere .NET care cuprinde următoarele produse: . SQL Server 2000 – server de baze de date;

. Exchange 2000 – server de mesagerie și groupware;

. Commerce Server 2000 – pentru crearea de infrastructuri pentru comerț

6

Capitolul 3

electronic;

. BizTalk 2000 – primul server .NET, destinat pentru construcția de procese de afaceri care să fie integrate cu alte procese asemănătoare prin intermediul mesajelor;

. Host Integration Server – pentru integrarea diverselor sisteme (inclusiv a mainframe-urilor);

. Application Center 2000 – produs prin care se face managementul aplicațiilor web;

. Internet Security and Accelaration Server 2000 – pentru securitatea și accelerarea aplicațiilor;

. Mobile Information Server – pentru accesarea informațiilor în timp real de pe dispozitivele mobile.

Pentru a oferi componente dezvoltatorilor pentru crearea de soluții de tip servicii web, .NET utilizează o serie de protocoale standard pe Internet: XML, SOAP, HTTP și TML. Unealta utilizată este Visual Studio.NET. De asemenea trebuie oferite cadrele de lucru, limbajele și ghidul. Pentru ajutorul construirii acestor servicii.

Toate acestea sunt integrate în Framework.

Microsoft a decis, pe termen lung, să înlocuiască COM cu CLR (CommonLanguage Runtime), în care s-au incorporat cele mai bune aspecte ale COM, dar s-au omis aspectele “dureroase” ale scrierii aplicațiilor bazate pe COM.Cele mai frustrante probleme ale COM sunt:

– interoperabilitatea dintre limbaje;. – instalarea aplicațiilor;

– versiunile de componente;

Noul model de programare introdus de CLR servește pentru a elimina multedintre detaliile nenecesare sau confuze ale COM p 949j96j rivitoare la scrierea sau intelegereacodului pentru o aplicație distribuită.

Istoria COM a fost marcată de probleme privind interoperabilitatea diverselorlimbaje de programare; cu toate că există un anumit grad de interoperabilitate intrelimbajele necontrolate (unmanaged), acesta este departe de a fi ideal. De exemplu,programatorii C++ produc componente DLL care nu pot fi utilizate de Visual Basicsau limbajele de scripting. Multe din tipurile din C++ sunt desemnate pentru vectori,pointeri sau alte tipuri care nu sunt practice pentru alte limbaje sau nu se pot consumaCLR asigura cel mai înalt grad de interoperabilitate, modelul de programareCLR fiind bazat pe sistemul universal de tipuri (universal type system), în care fiecare limbaj managed este așezat deasupra și este mapat la un set de tipuri standard.

Sistemul de tipuri al CLR definește un set predictibil de tipuri primitive conținând deexemplu, numere întregi și cu virgulă flotantă. De asemenea, sistemul de tipuridefineste clasele standard pentru alte tipuri, precum Strâng,Array iar limbajele .NET oferă cuvinte cheie care sunt mapate direct către tipurile integrate în CLR. Deexemplu, Visual Basic.NET oferă cuvântul cheie Integer al cărui echivalent în C#

este int, ambele tipuri fiind mapate direct la tipul System.Int32 din CLR. CLR este îmbunătățit fata de COM prin standardizarea unui set de tipuri care este partajat de toate

7

Capitolul 3

limbajele managed. De exemplu, sistemul de tipuri oferă tipuri integrate pentruunsigned integer, care sunt suportateu nu se pot consumaCLR asigura cel mai înalt grad de interoperabilitate, modelul de programareCLR fiind bazat pe sistemul universal de tipuri (universal type system), în care fiecare limbaj managed este așezat deasupra și este mapat la un set de tipuri standard.

Sistemul de tipuri al CLR definește un set predictibil de tipuri primitive conținând deexemplu, numere întregi și cu virgulă flotantă. De asemenea, sistemul de tipuridefineste clasele standard pentru alte tipuri, precum Strâng,Array iar limbajele .NET oferă cuvinte cheie care sunt mapate direct către tipurile integrate în CLR. Deexemplu, Visual Basic.NET oferă cuvântul cheie Integer al cărui echivalent în C#

este int, ambele tipuri fiind mapate direct la tipul System.Int32 din CLR. CLR este îmbunătățit fata de COM prin standardizarea unui set de tipuri care este partajat de toate

7

Capitolul 3

limbajele managed. De exemplu, sistemul de tipuri oferă tipuri integrate pentruunsigned integer, care sunt suportate în întregime de C#, dar nu și de Visual Basic.NET. acest lucru poate însemna faptul că pot exista dezvoltatori care ca creeze componente care să expună unsigned integer în maniere imposibil de utilizat în alte limbaje.

Termenul managed (controlat / gestionat) semnifică faptul că un cod sau limbaj are nevoie de Common Language Runtime pentru a fi executat, spre deosebire de codul simplu, care nu necesită motorul CLR.

Pentru a preveni situații ca cele de mai sus s-a creat un document numit Common Language Specification (CLS) în care este definit un subset de tipuri și facilitați CLR pe care componentele și limbajele trebuie să le suporte pentru a interopera cu alte

limbaje managed.

Sistemul de tipuri al CLR se bazează în cea mai mare parte pe moștenire, întregul sistem de tipuri fiind bazat pe o ierarhie de moștenire unică. Toate tipurile uilizate pentru a crea obiecte derivă în cele din urmă din radacinaSyste,Object. În momentul în care se creează o clasă fără a se moșteni în mod explicit altă clasă, nouă clasă creată moștenește în mod implicit System.Object.

3.1.1 Aplicații Web în ASP.NET

ASP.NET este mai mult decât următoarea versiune de Active Server Pages, fiind o platformă unificată de dezvoltare care oferă serviciile necesare dezvoltării de aplicații web. În timp ce ASP.NET oferă o sintaxă asemănătoare ASP, ele pun la dispoziție și un nou model de programare și infrastructura pentru aplicați mai sigure,scalabile și stabile.ASP.NET este un mediu bazat pe .NET în care se pot dezvolta aplicații în orice limbaj compatibil .NET (VB.NET, C#, Perl.NET, etc.) în plus, Framework-ul.NET este disponibil oricărei aplicații ASP.NET. Printre beneficiile acestei tehnologii se numără: mediul de execuție controlat, siguranța tipului, moștenire, cache, scheme de autentificare, etc.

Dezvoltatorii pot alege sau combina aplicațiile ASP.NET sub formă de formulare web și /sau servicii web. Astfel, formularele web permit construirea de pagini de web bazate pe formulare care conțin elemente simple care pot fi programate pentru anumite sarcini. Serviciile web bazate pe XML oferă mijloacele de acces la funcționalitatea unor servere la distanță prin care se pot expune interfețe de programare pentru accesul la datele sau logică unei afaceri, toate acestea prin protocoalele standard HTTP și XML. În plus, serviciile web nu sunt legate de o anumită componenta tehnologică sau o convenție de apelare a obiectelor.

Modelul obiectual al ASP.NET s-a schimbat semnificativ de la ASP [15], transformându-se într-unul mai structurat și orientat-obiect. Din nefericire pentru programatorii care utilizau Active Server Pages, noul model nu este în întregime compatibil cu versiunea anterioară, aproape fiecare pagină trebuind să fie modificată pentru a rula sub ASP.NET. În plus, schimbările majore aduse Visual Basic implica faptul că paginile ASP scrise cu Visual Basic Scripting Edition nu pot fi portate direct în ASP.NET. De asemenea, accesarea bazelor de date din aplicațiile ASP este o tehnică frecvență, iar noua versiune ASP.NET aduce, pe lângă îmbunătățiri multiple, și necesitatea transformării codului existent.

8

Capitolul 3

3.1.2 Structura unei aplicații

O aplicație pentru platformă (un assembly) este format din patru componente: un assembly manifest ce conține informații despre assembly precum versiunea, cultura, fișierele componente, semnătura digitală etc.; cod Intermediate Language; tabele de metadata și resurse.

Aceste componente se regăsesc într-unul sau mai multe module. Pentru fișiere executabile există întotdeauna un modul principal, care conține punctul de intrare al aplicației. De menționat că, cu toate că modulele conțin cod ÎL și metadata, ele nu pot fi executate independent, în afara contextului assembly-ului. Pentru majoritatea aplicațiilor, este suficient un singur modul. Platforma permite executarea aplicațiilor ce mențin module pe alte calculatoare, modulele fiind copiate pe calculatorul pe care rulează aplicația doar în momentul în care sunt referite – în această situație, pentru un assembly de dimensiuni mari, este indicată de folosirea modulelor multiple.

Desigur, o aplicație poate apela cod dintr-un assembly extern – la fel cum o aplicație pentru platformă Windows poate apela funcții din bibliotecile sistemului său biblioteci scrise de utilizatori.

3.1.3 Configurația ASP.NET

Facilitățile de configurație ale ASP.NET sunt conținute într-o infrastructură extensibilă care permite dezvoltatorilor să definească setări de configurație la prima instalare a aplicațiilor, astfel încât pot fi adăugate sau modificate setările curente în orice moment, cu un impact minimal asupra aplicațiilor Web operaționale sau serverelor. Sistemul de configurație al ASP.NET presupune că:

– informația pentru configurație este stocată în fișiere text într-un format bazat pe XML care se poate modifica fie manual, fie utilizând un editor /parser XML standard;

– fiecare director sau aplicație poate avea propriul fișier de configurare numit web.config, configurație care se aplică directorului curent și subdirectoarelor

acestuia. De asemenea, configurația aflată în fișierele din subdirectoare poate moșteni configurația din directorul părinte sau o poate suprascrie.

Fișierul general de configurație numit machine.config care se afla în directorul: WinNTMicrosoft.NETFrameworkversiuneconfig conține setările pentru întregul server de web.

În momentul execuției, ASP.NET utilizează configurația din fișierele de configurații pentru a calcula o colecție de setări de configurație pentru fiecare resursă URL, aceste setări fiind păstrate pentru toate cererile următoare la resursa respectivă.

ASP.NET detectează schimbările în fișierele de configurație și aplică în mod automat noile setări resurselor afectate fără ca serverul web să fie repornit pentru că schimbările să intre în vigoare.

Pe lângă setările existente, se pot adăuga noi parametrii de securitate și se pot scrie proceduri pentru manipularea acestora. Setările sunt protejate de accesul din exterior prin configurarea IIS astfel încât nu este permis accesul la aceste fișiere.

9

Capitolul 3

3.2 Limbajul C#

C# este un limbaj de programare orientat-obiect creat de Microsoft la sfârșitul anilor 90. A fost conceput ca un concurent pentru limbajul Java. Ca și acesta, C# este un derivat al limbajului de programare C++.

Scopul limbajului de programare C# este de a simplifica mult scrierea de programe pentru sistemul de operare Windows.

Cod scris în C++:

public:

int main(array<System::Strâng ^> ^args) {

Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false);

Application::Run(gcnew Form1()); return 0;

}

Același cod cu aceleași atribuții dar scris în c#:

public static void Main() {

Form1 form1 = new Form1(); form1.Show(); Application.Run(form1);

}

C# este un limbaj simplu, cu circa 80 de cuvinte cheie și 12 tipuri de date predefinite. El permite programarea structurată, modulară și orientată obiectual, conform perceptelor moderne ale programării profesioniste.

Principiile de bază ale programării orientate pe obiecte (ÎNCAPSULARE, MOȘTENIRE, POLIMORFISM) sunt elemente fundamentale ale programării C#. Î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 strâng) sau chiar eliminate (moștenirea multiplă și pointerii către funcții). Unele funcțiuni (cum ar fi accesul 6 direct la memorie folosind pointeri) au fost păstrate, dar secvențele de cod corespunzătoare se consideră „nesigure”.

3.2.1 Crearea aplicațiilor consolă

Pentru a realiza aplicații consolă (ca și cele din Borland Pascal sau Borland C) în mediul de dezvoltare Visual Studio, trebuie să instalăm o versiune a acestuia.

După lansarea aplicației, din meniul File se alege opțiunea NewProject apoi alegem ConsoleApplication.

10

Capitolul 3

Figura 3.2.1 Console Aplication

Când creați o aplicație consolă, se generează un fișier cu extensia .cs. În cazul nostru, s-a generat fișierul ConsoleApplication1.cs. Extensia cs provine de la C Sharp. Redenumirea lui se poate realiza din fereastra Solution Explorer, pe care o puteți afișa cu ajutorul combinației de taste Ctrl+W,S sau din meniul View.

Codul sursă generat este :

using System;

using System.Collections.Generic; using System.Linq;

using System.Text;

namespace ConsoleApplication1 {

class Program {

static void Main(strâng[] args) {

} }

}

Complectând funcția Main cu următoarea linie de program: Console.WriteLine("Hello World!");

Veți observa că în scrierea programului sunteți asistați de IntelliSense, ajutorul contextual.

11

Capitolul 3

Figure 3.2.2 Scrierea programului. Programul complectat va arăta așa:

using System;

using System.Collections.Generic; using System.Linq;

using System.Text;

namespace ConsoleApplication1 {

class Program {

static void Main(strâng[] args) {

Console.WriteLine(“Hello World!”); }

}

}

Primele 4 linii de cod sunt o directivă care specifică faptul că se vor folosi clase incluse în spațiul de nume.

Linia 6: numele atribuit proiectului;

linia 8: orice program C# este alcătuit din una sau mai multe clase linia 10: metoda Main, „punctul de intrare” în program

linia 12: clasa Console, amintită mai sus, este folosită pentru operațiile de intrare/ieșire.Aici se apelează metoda WriteLine din această clasă, pentru afișarea mesajului dorit pe ecran.În cazul nostrum mesajul este următorul:

12

Capitolul 3

Figura 3.2.3 Prezentarea programului

Pentru compilarea programului, selectați Build din meniul principal sau apăsați tasta F6. În cazul în care aveți erori, acestea sunt afișate în fereastra Error List. Efectuând dublu-clic pe fiecare eroare în parte, cursorul din program se poziționează pe linia conținând eroarea.

Rularea programului se poate realiza în mai multe moduri:

– rapid fără asistență de depănare (Start Without Debugging Ctrl+F5)

– rapid cu asistență de depănare (Start Debugging F5 sau butonul din bara de instrumente)

– rulare pas cu pas (Step Into F11 și Step Over F10)

– rulare rapidă până la linia marcată ca punct de întrerupere (Toggle Breakpoint F9 pe linia respectivă și apoi Start Debugging F6). Încetarea urmăririi pas cu pas (Stop Debugging Shift+F5) permite ieșirea din modul depănare și revenirea la modul normal de lucru. Toate opțiunile și rulare și depanare se găsesc în meniul Debug al mediului de programare.

3.3 Baze de date

Datorită implicării tot mai accentuate a calculatoarelor în mai multe domenii de activitate, sfera problemelor rezolvate cu ajutorul calculatorului s-a extins foarte mult. A apărut astfel o specializare a programelor (pachetelor de programe), orientate spre rezolvarea diverselor tipuri de probleme: matematice, tehnice, economice, de proiectare. Sistemele de Gestiune a Bazelor de Date (pe scurt SGBD) sunt sisteme informatice (software) specializate în stocarea și prelucrarea unui volum mare de date, volumul de

13

Capitolul 3

prelucrări implicit fiind relativ mic. Termenul de "bază de date" se va referi la datele prelucrate, la modul de organizare a acestora pe suportul de memorare, iar termenul de "gestiune" va semnifica totalitatea operațiilor ce se vor aplică asupra datelor din bazele de date.

Apariția și răspândirea rețelelor de calculatoare a dus la dezvoltarea într-o nouă direcție a SGBD-urilor, ele căpătând un caracter multiutilizator – mai mulți utilizatori folosesc simultan aceeași bază de date. Principalul avantaj al rețelelor a fost eficiența mult sporită de utilizare a resurselor sistemelor de calcul: la baza de date aflată pe un server central, de obicei foarte puternic, au acces simultan mai mulți utilizatori, situați la distanță de aceasta, de unde rezultă o bună utilizare a resurselor serverului și o economie de memorie, datorită memorării unice a bazei de date (doar pe server, nu și pe stațiile de lucru.)

De asemenea, au apărut bazele de date distribuite, care reprezintă baze de date logic integrate, dar fizic distribuite pe mai multe sisteme de calcul. Utilizatorul unei asemenea baze de date o vede ca pe o bază de date unică, compactă (nivelul logic), cu toate că, în realitate, ea este distribuită pe mai multe calculatoare legate între ele (nivelul fizic). La nivel statistic această organizare a dus la o creștere substanțială a vitezei de acces, pe un server local sunt mai rapid accesibile decât ele s-ar fi aflat pe un server la distanță, unde ar fi fost stocată baza de date în întregime, în cazul nedistribuirii (menționăm că un factor important care limitează viteza de lucru este transferul de date între calculatoare). Tot datorită distribuirii, se mărește considerabil limita maximă a dimensiunii unei baze de date, care nu mai este determinată de capacitatea fizică de memorare a sistemului de calcul.

Îmbunătățiri a suferit și modelul de organizare a bazelor de date. Structura tabelară a bazelor de date simple din SGBD-urile mai vechi a fost înlocuită în cele moderne cu modelul relațional de organizare a bazelor de date. Conform acestui model, o bază de date relațională este formată din mai multe tabele simple, între care se stabilesc anumite relații. În paralel cu acest model s-a dezvoltat un nou limbaj de interogare a bazelor de date.

SQL (Structured Query Language), neprocedural, care permite accesul rapid și comod la datele memorate în bazele de date.

Pentru utilizatorii neprofesioniști, care nu sunt puțini la număr, au fost perfecționate interfețele SGBD-urilor, utilizatorul având la dispoziție sisteme de meniuri, ferestre, obiecte de control, prin care comunicarea cu SGBD-ul devine o plăcere.

3.3.1 Elemente de teoria bazelor de date a)Activitățile și obiectivele organizării datelor

14

Capitolul 3

Organizarea datelor ocupa un loc important în proiectarea sistemelor informatice. De modul în care sunt organizate datele depinde eficiența sistemului informatic.

Organizarea datelor presupune:

• definirea, structurarea și gruparea datelor în colecții de date omogene;

• stabilirea legăturilor (relațiilor) între date, între elementele unei colecții, între colecțiile de date;

• reprezentarea (stocarea) lor pe suport informațional, prealabil într-un sistem de calcul.

Scopul organizării datelor îl constituie regăsirea automată a datelor după diverse criterii și forme:

• timpul de acces la datele organizate pe diferite suporturi de date să fie minim (acces rapid la date);

• spațiul de memorie internă și externă ocupat de date să fie cât mai redus (economie de memorie internă și externă). Se urmărește ca pe un spațiu de memorie cât mai mic să se introducă un volum cât mai mare de date;

• datele să apară o singură dată în sistem (unicitatea datelor). Totuși, uneori, pentru realizarea unui acces mai rapid la date, se impune acceptarea unei redundanțe minime a datelor;

• în sistemul de organizare a datelor să se reflecte, pe cât posibil, toate legăturile dintre obiectele, fenomenele, procesele economice pe care aceste date le reprezintă;

• să permită schimbarea structurii datelor și a relațiilor dintre ele fără a modifica programele ce le gestionează (flexibilitatea datelor).

b) Concepte utilizate în organizarea datelor

Cele trei concepte de bază utilizate sunt: entitate, atribut, valoare. Ele au fost introduse în literatura de specialitate odată cu apariția bazelor de date. Aceste concepte sunt legate între ele: o entitate are mai multe atribute, iar atributelor li se asociază o mulțime de valori.

Prin entitate se înțelege un obiect concret său abstract reprezentat prin proprietățile sale.

Orice proprietate a unui obiect poate fi exprimată printr-o pereche (ATRIBUT, VALOARE). Exemplu: „masa X are culoarea albă ", unde „culoare" reprezintă atributul, iar „albă" valoarea.

Așadar, o entitate se poate exprima prin mai multe proprietăți, deci mai multe perechi de formă (ATRIBUT, VALOARE). De exemplu, o persoană X poate fi

15

Capitolul 3

reprezentată prin mulțimea de perechi (NUME, Nicolae); (VÂRSTA, 21); (SEX, MASCULIN); (PROFESIE, student); (SALARIU, 5500000).

În realitate, mulțimea atributelor NUME, VÂRSTA, SEX, PROFESIE, SALARIU poate fi asociată mai multor persoane. Rezultă că atributul nu caracterizează dor o entitate, ci poate caracteriza o clasă de entități numită entitate grup. În exemplul de mai sus entitatea grup s-ar putea numi PERSOANE. Deoarece toate elementele unei entități grup se caracterizează prin aceeași mulțime de atribute, se poate spune că entitățile din cadrul unei entități grup sunt de același tip. În acest sens, se utilizează termenul de „tip de entități" pentru o clasă de entități.

Noțiunea da atribut este cunoscută și sub denumirea de câmp, caracteristică.

Fiecare atribut este caracterizat de natura valorilor pe care le poate lua. Astfel, un atribut este de tip numeric dacă valorile sale sunt numerice, alfanumeric dacă valorile sale sunt șiruri de caractere, etc. În general, un atribut are valori elementare, dar pot exista și situații de atribute compuse (formate prin concatenarea mai multor atribute). Pot fi atribute ce identifică în mod unic o entitate, ele numindu-se atribute cheie sau pot fi atribute ce nu identifică unic o entitate și se numesc atribute non-cheie.

Un alt concept utilizat este cel de dată. Dată este un model de reprezentare a informației, accesibil unui anumit procesor (om, program, calculator); cu acest model se operează pentru a obține noi informații despre fenomenele și procesele lumii reale.

O dată care este indivizibilă în raport cu informația pe care o reprezintă, dar și în raport cu modul de prelucrare se numește dată elementară sau scalară. Mai multe date elementare formează o dată compusă.

Din punct de vedere logic, o dată se definește prin: identificator, atribut și valoare.

Exemplu: PROF -identificator

PROFESIA -atribut

STUDENT -valoare

Din punct de vedere fizic, unei date îi corespunde o zonă de memorie de o anumită mărime, situată la o adresă absolută.

c)Structuri de date

Tipurile de structuri de date întâlnite în sistemele informatice se diferențiază în funcție de sistemul informațional și de tehnologiile de prelucrare a datelor utilizate.

Structura de date este definită ca o colecție de date între care s-au stabilit o serie de relații care conduc la un anumit mecanism de selecție și identificare a componentelor.

Mulțimea de date asociată structurii poate fi alcătuită din datele unui tip sau mai multor tipuri de entități. Componentele structurii pot fi individualizate și identificate prin nume (identificator) sau prin poziția pe care o ocupă în structură (în raport cu ordinea specificată).

16

Capitolul 3

Dacă localizarea unei componente se face prin parcurgerea tuturor componentelor care se aflau în ordinea specificată, atunci structura are un acces secvențial.

Dacă o componentă din structură poate fi selectată fără a ține seama de celelalte componente, atunci structura are un acces direct.

Componentele unei structuri de date pot fi date elementare sau pot fi ele însele structuri de date.

Asupra unei structuri de date se pot efectua o multitudine de operații care se referă la valori și/sau la structură. Dintre acestea, cele mai frecvente sunt:

• crearea (memorarea datelor în formă inițială pe suport de memorie);

• consultarea (accesul la componentele structurii în vederea prelucrării valorilor);

• actualizarea (schimbarea stării structurii prin: adăugarea, ștergerea unor elemente, modificarea valorii unor elemente, modificarea relațiilor dintre elemente);

• sortarea (aranjarea elementelor unei structuri după anumite criterii);

• ventilarea (spargerea structurii în două sau mai multe structuri);

• fuzionarea (formarea unei noi structuri din două sau mai multe structuri);

• copierea;

• interclasarea.

Operațiile la care poate fi supusă o structură de date și eficiența cu care acestea pot fi realizate, depind în mare măsură de relațiile între datele materializate pe suportul de memorie.

Toate structurile de date care au aceeași organizare și sunt supuse acelorași operații formează un anumit tip de structură de date.

Un tip de structură de date este o mulțime ordonată de date între care s-au stabilit anumite relații și pentru realizarea operațiilor se folosește un grup de operatori de bază cu o anumită semantică.

d) Baze de date

Evoluția metodelor și tehnicilor de organizare a datelor a fost determinată de necesitatea de a avea un acces cât mai rapid și mai ușor la un volum din ce în ce mai mare de informații precum și de perfecționarea echipamentelor de culegere, memorare, transmitere și prelucrare a datelor.

În esență, conceptul de bază de date poate fi definit ca fiind una sau mai multe colecții de date aflate în interdependență, împreună cu descrierea datelor și a relațiilor dintre ele.

17

Capitolul 3

Baza de date astfel definită trebuie să îndeplinească condițiile:

• să asigure o independență sporită a datelor față de programe și invers;

• structura bazei de date trebuie astfel concepută încât să asigure informațiile necesare și suficiente pentru cerințele de informare și decizie;

• să se asigure o redundanță minimă și controlată a datelor;

• să permită accesul rapid la informațiile stocate în baza de date.

Bazele de date sunt extrem de variate în funcție de criteriile luate în considerare, ca:

• după orientare: generalizate, specializate;

• după modelul de date: ierarhice, rețele, relaționale, orientate obiect;

• după amploare geografică: locale, distribuite;

• după limbajele utilizate: autonome (limbaje proprii), cu limbaj gazdă, mixte;

Arhitectura bazelor de date evidențiază componentele acestora și a fost standardizată internațional. O astfel de arhitectură generală cuprinde următoarele componente:

• baza de date propriu-zisă în care se memorează colecția de date;

• sistemul de gestiune al bazei de date, care este un ansamblu de programe (soft) care realizează gestiunea și prelucrarea complexă a datelor;

• un set de proceduri manuale și autonome, precum și reglementările administrative, destinate bunei funcționări a întregului sistem;

• un dicționar de date (metabaza de date), ce conține informații despre date, structura acestora, elementele de descriere a semanticii, statistici, documentație;

• mijloacele hard utilizate (comune, specializate etc);

• personalul implicat: (categori de utilizatori: finali – einformaticieni); de specialitate (administrator), analiști – programatori, gestionari, operatori);

Arhitectura bazei de date dă o imagine despre modul general de organizare și funcționare a ei.

Structured Query Language (SQL-limbajul structurat de interogare) este limbajul standard de factor folosit pentru manipularea și regăsirea datelor din aceste baze de date relaționale. Prin SQL, un programator sau un administrator de baze de date poate face următoarele lucruri:

• Să modifice structura bazei de date

18

Capitolul 3

• Să schimbe valorile de configurare pentru securitatea sistemului

• Să adauge drepturi utilizatorilor asupra bazelor de date sau tabelelor

• Să interogheze o bază de date asupra unor informații

• Să actualizeze conținutul unei baze de date

Cea mai folosită instrucțiune din SQL este SELECT. Această instrucțiune regăsește datele din baza de date și le returnează utilizatorului.

În mod curent, există două metode uzuale de folosire a SQL într-un program aplicativ:

• Embedded SQL (SQL încapsulat)

• CaII level interface for SQL (Interfața de nivel apel pentru SQL) SQL a fost realizat prima dată ca un standard ANSI în 1986. Standardul ANSI 1989 (numit deseori SQL-89) definește trei tipuri de realizare a interfeței cu SQL într-un program de aplicație:

• Module Language (Limbaj modular): Folosește proceduri în cadrul programelor. Aceste proceduri pot fi apelate de programul aplicației și pot returna valori în program prin transmiterea parametrilor.

• Embedded SQL (SQL încapsulat): Folosește instrucțiuni SQL încapsulate în codul de program. Acest lucru necesită adesea folosirea unui precompilator pentru procesarea instrucțiunilor SQL. Standardul definește instrucțiuni pentru Pascal, FORTRAN, COBOL și PL/1.

• Direct Invocation (Apelul direct): Este lăsată la alegerea persoanei care implementează programul.

Embedded SQL (SQL încapsulat a fost cea mai folosită formă de SQL într-un limbaj de programare de foarte mult timp). Folosește ceea ce se numește static SQL (SQL static). Această înseamnă că instrucțiunea SQL este compilată în cadrul aplicației și nu poate fi schimbată în timpul execuției programului.

Standardul ANSI 1992 (SQL-92) a extins limbajul și a devenit un standard internațional- Sunt definite trei niveluri de conformitate cu SQL: introductiv, intermediar și complet.

Noile caracteristici introduse includ următoarele:

• Conectările la baza de date

• Cursoare derulante

• SQL dinamic

• Joncțiuni externe

19

Capitolul 3

SQL dinamic va permite pregătirea instrucțiunii SQL în timpul execuției aplicației. Deși performanța pentru acest tip de SQL nu se ridică la nivelul celei pentru SQL încapsulat, totuși asigură programatorului aplicației (și utilizatorului) un grad mare de flexibilitate. O interfață de nivel apel, cum ar fi ODBC sau biblioteca bazei de date Sybase, este un exemplu de folosirea SQL dinamic.

Interfețele de nivel apel ar trebui să nu fie un concept nou pentru programatorii de aplicații. Când se folosește ODBC, de exemplu, se completează pur și simplu o variabilă cu instrucțiunea SQL și se apelează funcția pentru a trimite instrucțiunea SQL și se apelează funcția pentru a trimite instrucțiunea SQL la baza de date. Erorile sau rezultatele pot fi returnate programului prin folosirea altor apeluri de funcții proiectate pentru aceste scopuri. Rezultatele sunt returnate prin operația numită "Legarea Variabelelor" (binding).

Așa cum s-a menționat, Query (Interogare) este cu adevărat un termen impropriu. O interogare SQL nu este neapărat o întrebare pusă bazei de date. Poate fi și o comandă pentru executarea uneia dintre acțiunile următoare:

• Să construiască sau să șteargă o bază de date;

• Să insereze, să modifice sau să șteargă linii sau câmpuri;

• Să caute în câteva tabele o anumită informație și să returneze rezultatele într-o anumită ordine;

• Să modifice securitatea informațiilor;

3.3.2 Serverul de baze de date Microsoft SQL

a) Introducere

Microsoft SQL este un sistem de gestiune a bazelor de date, construit pe modelul client-server ce folosește limbajul SQL (SQL=Structured Query Language), foarte rapid și ușor de utilizat. Microsoft SQL respectă standardul ANSI . Câteva dintre facilitățile oferite merită să fie menționate:

• Viteză. Microsoft SQL este rapid.

• Ușurință în utilizare. Microsoft SQL este un sistem de baze de date cu performanțe ridicate, dar relativ simplu, a cărui configurare și administrare sunt mult mai simple decât în cazul sistemelor mai mari.

• Suport pentru limbaje de interogare. Microsoft SQL înțelege SQL (Structured Query Language – limbaj de interogare structurat), limbajul preferat al tuturor sistemelor moderne de baze de date. De asemenea, puteți avea acces la Microsoft SQL folosind aplicații care acceptă ODBC (Open Database Connectivity), un protocol de comunicație cu bazele de date, creat de Microsoft.

20

Capitolul 3

• La server se pot conecta mai mulți clienți simultan, care la rândul lor pot folosi mai multe baze de date simultan. Se poate obține accesul la Microsoft SQL în mod interactiv, care să permită introducerea de interogări și vizualizarea rezultatelor: clienți în linie de comandă, browsere Web sau clienți X Window System. De asemenea, este disponibilă o varietate de interfețe de programare pentru limbaje precum C,C#, Java, PHP și Python.

• Conectivitate și Securitate: Microsoft SQL poate fi folosit integral în rețele, iar bazele de date sunt accesibile de oriunde din Internet, deci vă puteți partaja datele cu oricine, oriunde. Dar Microsoft SQL are controlul accesului, astfel încât persoanele care nu au dreptul să vă citească datele nu vor avea această posibilitate.

b) Terminologia folosită în arhitectura sistemului Microsoft SQL

Când folosiți Microsoft SQL, în realitate utilizați două programe, deoarece Microsoft SQL operează folosind o arhitectură client/server:

Figura 3.3.2.1 Microsoft SQL

• Serverul de baze de date este localizat în calculator, unde sunt stocate datele dumneavoastră. Acesta ascultă cererile clienților care sosesc prin rețea și obține acces la conținutul bazei de date în funcție de aceste cereri, pentru a furniza clienților informațiile pe care le solicită.

• Clienții sunt programe care se conectează la serverul de baze de date și emit interogări pentru a-i indica acestuia informațiile pe care le doresc.

Arhitectura client/server din Microsoft SQL are anumite avantaje: Serverul asigură controlul concurenței, pentru că doi utilizatori să nu poată modifica aceeași înregistrare simultan. Toate cererile clienților trec prin server, deci serverul determină clientul care execută o operație anume și când o execută. Dacă mai mulți clienți doresc simultan accesul la același tabel, ei nu sunt obligați să se găsească și să negocieze unii cu alții. Ei trimit cererile la server și îl lasă pe acesta să se ocupe de determinarea ordinii în care vor fi onorate cererile.

21

Capitolul 3

Structura bazei de date

Pentru a realiza o bază de date trebuie ca serverul de baze de date Microsoft SQL Server 2008 să fie pornit. În continuare va trebui să deschidem Programs(Microsoft SQL Server(Enterprise Manager pentru a putea creea baza de date, de unde facem click dreapta pe Database(New Database și introducem numele bazei de date. Pentru creearea de tabele, se selectează baza de date în care dorim să creem o tabelă, facem click dreapta pe Tables(New Table… și introducem capetele de tabel dorite.

După ce am terminarea tabelei trebuie să facem diagrama , făcând click dreapta pe Diagrams(New Database Diagram și apare o casetă numită: New Database Diagram Wizard unde avem de urmat trei pași. O dată ce bază de date a fost creată și relațiile dintre tabele realizate, diagrama va arăta în felul următor:

Figura 3.3.2.2 Structura baza de date

22

Capitolul 4

Capitolul 4. Analiză și Fundamentare Teoretică

4.1 Studiul cerințelor

Problema propusă spre rezolvare se încadrează în domeniul auto având ca scop scurtarea timpului de căutare a unor servicii cum ar fi cumpărarea de mașini, închirierea și repararea acestora , prin realizarea unei aplicații web.

Obiectivul aplicației este de a oferi servicii care să răspundă unor cerințe auto exigente de siguranță și confort.

Prin realizarea aplicației informatice se urmărește eficientizarea informare a vizitatorilor și a celor care oferă astfel de servicii. Va fi astfel necesar să se poată oferi în orice moment informații după diferite criterii. Pentru a împiedica efectuarea de înscrieri fictive care ar conduce la pierderi importante de timp, se vor folosi conturi și parole de autentificare.

Pentru fiecare tip de utilizator se impune realizarea unui modul independent ce va asigura suportul total pentru satisfacerea în timp real a necesitaților.

4.2. Modelul cazurilor de utilizare

În urma descrierilor făcute în studiul cerințelor se conturează următoarele cazuri de utilizare:

administrare sistem – actualizează baza de date

autentificare utilizator – permite introducerea contului și a parolei în vederea adăugări de anunțuri sau primirea de informații referitoare la anunțurile deja existente sau recent introduse

setarea parametrilor de căutare – căutarea unui anunț cu datele prestabilite de utilizator vizionare anunțurilor – permite parcurgerea listei cu anunțuri

adăugarea unui anunț – permite utilizatorilor înscrierea gratuită de anunțuri noi pe site Actorii care interacționează cu sistemul sunt următorii:

administrator sistem – administrează baza de date a sistemului vizitatori – vizionează anunțurile, adăugă anunțuri

Diagrama generală a cazurilor de utilizare este prezentată în Figura 4.2.1 și cu ajutorul ei se poate delimita aria de cuprindere a sistemului și se pot identifica cerințele.

23

Capitolul 4

Figura 4.2.1 Diagrama generală a cazurilor de utilizare Detalierea cazurilor de utilizare

Autentificare utilizator: Realizează operația de autentificare pentru un utilizator al programului.

Actori: administrator aplicație, utilizatori.

Flux principal de evenimente: acțiunile efectuate de utilizator sunt următoarele: Introducere identificator utilizator și parola.

Programul verifica corectitudinea informațiilor introduse.

Dacă informațiile sunt corecte, atunci se permite accesul utilizatorului în sistem, iar cazul de utilizare se încheie.

Flux alternativ de evenimente: dacă informațiile nu sunt corecte:

Se afișează un mesaj de eroare și se solicita reintroducerea informațiilor pentru autentificare.

Utilizatorul poate reîncerca autentificarea, deci se reia cazul de utilizare cu fluxul principal de evenimente.

Utilizatorul renunța, cazul de utilizare luând sfârșit.

Administrare: Descrie secvențele de acțiuni prin care se adăugă/modifica/șterg informațiile despre utilizatorii aplicației și prin care se actualizează lista de servicii oferite.

24

Capitolul 4

Actori: administrator sistem

Flux principal de evenimente: acțiunile executate de administrator, atunci când șterge un anunț al unui utilizator, sunt:

Citirea anunțului, stabilind dacă s-au încălcat condițiile de utilizare a siteului sau nu.

În cazul încălcării anumitor condiții administratorul identifica persoană care a postat.

Șterge anunțul din baza de date.

Trimite avertizment utilizatorului care a încălcat condițiile. Salvează în baza de date avertismentul.

Diagrama detaliată a cazului de utilizare administrare este prezentată în Figura 4.2.2

Figura 4.2.2 Diagrama detaliată a cazului de utilizare administrare Adăugare anunț: Descrie operația de populare a bazei de date cu anunțuri . Actori: utilizator.

Flux principal de evenimente: Acțiunile efectuate la adăugarea unui anunț sunt: Autentificare utilizatorului.

Accesarea paginii care permite realizarea acestei operațiuni

Completarea chestionarului cu informațiile corespunzătoare autovehiculului Înregistrarea anunțului în baza de date.

Precondiții: Utilizatorul trebuie să aibă un cont valid pe website.

25

Capitolul 4

Postconditii: Anunțul se înregistrează în baza de date.

Diagrama detaliată a cazului de utilizare adăugare anunț este prezentată în Figura 4.2.3

Figura 4.2.3 Diagrama detaliată a cazului de utilizare adăugare anunț Adăugare service: Descrie operația de populare a bazei de date cu serviceuri . Actori: utilizator.

Flux principal de evenimente: Acțiunile efectuate la adăugarea unui anunț sunt: Autentificare utilizatorului.

Accesarea paginii care permite realizarea acestei operațiuni

Completarea chestionarului cu informațiile corespunzătoare operațiunilor practicate în acel service

Înregistrarea anunțului în baza de date.

Precondiții: Utilizatorul trebuie să aibă un cont valid pe website. Postconditii: Anunțul se înregistrează în baza de date.

Diagrama detaliată a cazului de utilizare adăugare service este prezentată în Figura 4.2.4

26

Capitolul 4

Figura 4.2.4 Diagrama detaliată a cazului de utilizare adăugare service

Vizualizare Anunțuri: Oferă posibilitatea utilizatorului de a vizualiza anunțuri sortate după anumite criterii selectate de acesta.

Actori: utilizatorul.

Flux principal de evenimente:

Include cazul de utilizare autentificare utilizator .

Se selectează filtrele dorite pentru a vizuliza anunțurile.

Precondiții: Informațiile ce privesc anunțurile trebuiesc introduse în baza de date.

Diagrama detaliată a cazului de utilizare vizualizare anunț este prezentată în Figura 4.2.5

Figura 4.2.5 Diagrama detaliată a cazului de utilizare vizualizare anunț Diagrama detaliată a cazurilor de utilizare este prezentată în Figura 4.2.6.

27

Capitolul 4

Figura 4.2.6 Diagrama detaliată a cazului de utilizare

28

Capitolul 4

4.3. Cerințe de interfață

Aplicația va avea o interfață prietenoasă cu utilizatorul pentru a permite o interacțiune cât mai ușoară cu operatorul uman. Utilizatorul trebuie să aibă doar noțiuni elementare despre utilizarea unei aplicații cu interfața grafică precum și despre navigarea în cadrul unui site web.

Obținerea de informații se realizează prin integrarea naturală a elementelor de raportare, analiza și monitorizare a performanțelor activităților. De asemenea, prezentând o arhitectură scalabila și o singură metadata, utilizatorii pot naviga cu ușurință de la meniuri și tabele de performanță către rapoarte și analize fără a fi nevoiți să folosească o multitudine de instrumente și să interacționeze cu diverse interfețe.

Se dorește ca aplicația să fie un produs software accesibil oricărei categorii de utilizatori ai unui calculator. Totuși, având în vedere complexitatea aplicației, este necesară realizarea unor interfețe dedicate în funcție de rolul utilizatorului: administrator, utilizator.

4.4. Alte aplicații informatice utilizate în domeniu

Până în prezent au fost create foarte multe aplicații informatice care au ca obiectiv publicarea de anunțuri cu caracter informativ despre maisni. Acestea sunt mai simple sau mai complexe, oferind o gamă mai restrânsă sau mai largă de facilități.

Prezentăm în continuare câteva din aplicațiile existente în domeniul auto.

Site-ul http://www.autovit.ro este cel mai site de anunțuri auto la ora actuală din România . Deși nu este un site în care anunțurile se pot posta gratis are peste 54.000 anunțuri auto cu un număr de peste 29.000 de vizitatori unici și peste 200.000 de afișări pe zi.Este un site complex care înglobează diferite tipuri de anunțuri cum ar fi: anunțuri de autoturisme, motociclete și atv-uri, utilaje de construcții, utilaje agricole și nu în ultimul rând piese-dezmembrari.

Site-ul http://www.bestauto.ro este al doilea că număr de vizitatori unici și afișări din România . Spre deosebire de principalul său concurent siteul bestauto.ro va pune la dispoziție 4 metode de audaugare și promovare anunț, 3 dintre ele fiind contra cost, iar ce-a de-a 4 variantă este gratuită.

Site-ul http://www.mobile.de este cel mai mare site de automobile din Europa, având peste 1.200.000 de anunțuri și peste 1.800.000 afișări pe zi fiind în top 600 cele mai accesate siteuri din lume.

29

Capitolul 5

Capitolul 5. Proiectare de Detaliu si Implementare

5.1 ARHITECTURA MAGAZINELOR ONLINE

5. 1.1 Noțiuni generale

Un site web este compus din două părți fundamentale: interfața și code behind (codul din spatele interfeței), care nu se vede, și anume funcționalitatea (partea de programare).

Interfața unei pagini web este ceea ce vizitatorul vede, este partea cu care utilizatorul interacționează, este imaginea și identitatea unei pagini web. Realizarea ei este foarte importantă deoarece ea poate determina revenirea sau nu a clientului. Interfața trebuie să fie bine structurata, trebuie să comunice eficient și să se potrivească cu mesajul administratorului. Utilizatorul trebuie să reușească să interpreteze cu ușurință informațiile pe care autorul paginii web dorește să le transmită prin felul în care a organizat textul, imaginile, animațiile, etc.

Primul element al interfeței, întâlnit la majoritatea site-urilor, este bannerul. Acesta cuprinde titlul paginii și câteva elemente grafice. Următorul element este întâlnit la cele mai multe din site-urile profesionionale și anume meniul, al cărui rol este acela de a permite navigarea rapidă prin paginile site-ului. Urmează apoi, trei coloane verticale în care sunt organizate informațiile, sunt prezentate ofertele și promoțiile, sau pot fi incluse diferite formulare de autentificare sau înscriere. Corpul paginii este încadrat de cele două coloane și se finalizează, cu același meniu din partea de început. Este bine ca proiectantul site-ului să nu încarce excesiv aceste secțiuni din două motive: în primul rând o aglomerație de informații ar putea bulversa un vizitator mai puțin inițiat în privința lucrului cu Internetul, și în al doilea rând eventualele opțiuni care ar putea apărea în viitor nu ar mai avea spațiu pentru adăugare.

Partea centrală a site-ului cuprinde, în general fie produsele din promoții, fie articolele săptămânii, fie reclame, în funcție de domeniul în care activează pagină web. Acestea sunt însoțite de informații suplimentare, cum ar fi prețul, caracteristicile, data publicării, accesări etc. Paginile cuprind și câteva date statistice cu numărul total de vizitatori, recordul de vizitatori pe zi, numărul de articole, produse accesate/descărcate într-o perioadă. Pentru că aceste informații să fie credibile, acestea sunt validate de site-uri specializate în urmărirea și analiza numărului de utilizatori (www.trafic.ro).

În partea dreaptă a paginii poate fi întâlnit un modul de căutare a articolelor, produselor, etc. foarte important indiferent de domeniul din care face parte pagină web. Căutarea poate fi făcută după nume, categorie, preț sau caracteristici. Unele site-uri oferă și link-uri către paginile oficiale ale utilitarelor necesare parcurgerii/navigării (de exemplu Acrobat Reader un program specializat pe citirea documentelor de tip PDF).

Înainte de a se trece la partea de programare din dezvoltarea site-ului se recomandă că interfața să fie terminată pentru că, odatqa începută implementarea efectivă (de exemplu în Asp.NET) va fi relativ dificilă modificarea aspectului inițial al site-ului.

30

Capitolul 5

ASP.NET este un set de tehnologii care ne permite crearea de aplicații web. Este evoluția de la Microsoft Active Server Pages (ASP), dar beneficiază de suportul platformei de dezvoltare Microsoft .NET.

Una dintre cele mai importante calități ale ASP.NET este timpul redus necesar dezvoltării aplicațiilor web. Chiar dacă ASP.NET este gândit pentru a dezvolta aplicații web foarte complexe – prin faptul că se bazează pe .NET, se insistă pe un model de dezvoltare OOP, respectiv pe separarea interfeței de logica aplicației – totuși, este extrem de simplu ca folosind ASP.NET să dezvoltăm aplicații mici, de genul magazinelor online, al aplicațiilor care sunt pur și simplu un ”front-end” pentru o bază de date, sau al site-urilor personale.

ASP.NET cuprinde toate tehnologiile necesare pentru a dezvolta o aplicație web, scriind cantitatea minimă de cod. Limbajele de programare care pot fi utilizate pentru a crea aplicații ASP.NET sunt cele suportate de platformă .NET – cum sunt Visual Basic .NET și C#, iar o altă caracteristică importantă a acestor limbaje (înafara faptului că sunt ”managed”) este că au fost create având în vedere paradigma programării orientată pe obiecte. Totul din .NET, respectiv ASP.NET, este un obiect. Fiecare site / aplicație web trebuie să fie găzduită pe un server pentru a putea fi utilizată.

Ca soluții alternative ar putea fi utilizate combinațiile: – limbaj de programare PHP;

– server de baze de date MySQL; – server web Apache

Php este un limbaj de tip script proiectat special pentru web, care rulează pe server. În cadrul codului HTML al unei pagini web se poate insera cod PHP care va fi executat de fiecare dată când acea pagină este vizitată Codul PHP este interpretat de către serverul web, fiind generat cod HTML sau orice alt tip de conținut cum ar fi de exemplu fișiere grafice.

Limbajul acesta a fost creat în 1994 de către Rasmus Lerdorf și preluat apoi și se alți programatori ajungându-se în prezent la utilizarea lui de către aproximativ 20.000.000 de domenii și 1.200.000 adrese IP.

31

Capitolul 5

Figura 5.1.1 Cresterea utilizarii php

5. 2. Crearea unui site auto

Cerințele unei aplicații informatice de aceste dimensiuni se pot realiza pornind de la trei module elementare:

Autentificarea;

Catalogul de produse și servicii oferite; Administrarea aplicației.

Autentificarea

Un sistem de autentificare presupune, în primul rând, permiterea accesului pentru fiecare dintre utilizatori la serviciile oferite de o aplicație, de un sistem, în funcție de identitatea clientului.

De cele mai multe ori autentificarea se face pe baza unui nume de utilizator, pentru a stabili identitatea vizitatorului, și a unei parole de acces la resursele aplicației. Aceste informații se stabilesc în momentul completării formularului de înscriere, de către posibilul client. Abia după această etapă vizitatorul, acum utilizator poate beneficia, în totalitate de serviciile oferite de magazinul virtual.

În această etapă ar putea apărea o serie de probleme pe care cel care a creat aplicația trebuie să le prevadă și să le prevină. Una din aceste probleme ar fi introducerea, de către client, a unor date incorecte și ar putea fi preîntâmpinata prin apariția, de fiecare dată, a unui mesaj de avertizare.

32

Capitolul 5

Exemplu: vizitatorul a uitat numele de utilizator (username-ul) sau parola. Problema va putea fi rezolvată dacă se trimite în căsuța de email a clientului un nou set de date de identificare necesare pentru autentificare.

Reamintirea parolei se va face la cererea clientului care va completa, în momentul selectării acestei opțiuni, un formular cu datele utilizate la înscriere (nume, prenume, adresa de e-mail). După această etapă va putea folosi vechiul cont dar cu introducerea unei parole noi criptata și stocată într-o bază de date. Nu se va face, astfel o reamintire a parolei, ci va fi generată cu ajutorul algoritmului și a unei chei de criptare o nouă parolă.

Dacă utilizatorul nu își amintește datele cerute în formular singura soluție posibilă va fi crearea unui nou cont de utilizator.

Pentru parola, în momentul în care un vizitator dorește să-și creeze un cont nou, valoarea câmpului parola va fi criptata cu ajutorul unei funcții predefinite . Este indicată obligarea utilizatorilor la folosirea unor parole cât mai lungi, pentru o criptare cât mai sigură dar și mai dificilă.

Funcția are doi parametrii:

șirul care urmează a fi criptat (parola utilizatorului); cheie de criptare (opțional).

Catalogul de produse și servicii

Oferta de bunuri și servicii poate fi considerată un mecanism de vizualizare a produselor facilitând selectarea și cunoașterea lor.

Un exemplu pentru acest mecanism din cadrul aplicației este achiziția unei mașini. Astfel, se alege categoria "Auto", se selectează unul din produsele acestei grupe, se studiază caracteristicile sale detaliate, după care fie contactăm proprietarul, fie căutam alt produs cu aceleași caracteristi sau mai bune.

Se poate continua navigarea:

fie cu selectarea altor produse din aceeași categorie sau din categorii diferite; fie cu modificarea parametrilor produsului;

33

Capitolul 5

Administrarea aplicației

Succesul oricărui site on-line depinde de modul în care acesta este întreținut. Administrarea aplicației se face într-un mod dinamic. Ea nu este destinată utilizatorilor obișnuiți, ci doar administratorilor care se ocupa de buna funcționare a acestuia

5.3. Detalierea interfeței

Deoarece unul din scopurile implementării noastre a fost să dezvoltăm un sistem unitar care să poată fi cu ușurință modificat, extins și actualizat în viitor, am ales pentru implementarea interfeței Web a produsului, tehnologia ASP.NET, care este foarte flexibilă, iar .NET este o platformă al cărei limbaj star este C# și care oferă independenta

față de limbajul de programare.

La conceperea interfeței s-a avut în vedere că prin intermediul aplicației se lucrează online, în principal pentru adăugarea și postarea de anunțuri.

Figura 5.3.1 Prezentarea interfetei

34

Capitolul 5

Primul element al interfeței site-ului, comun majorității paginilor web, este bannerul. El cuprinde, în acest caz un logo cu numele siteului, "rarauto " și conține 2 butoane: un buton pentru autentificare și un buton pentru înregistrare.

Cele două butoane sunt extrem de importante în utilizarea în cazul în care nu dorești să fii un simplu vizitator și vrei să postez anunțuri pe acest site.

Prin selectarea butonului „Înregistrare” se va face redirecționarea spre pagina de înregistrare, aceasta cuprinde șase câmpuri. Aceste câmpuri sunt utilizate pentru a memora câteva date despre utilizator. Aceste câmpuri sunt obligatorii iar necomplectarea lor sau complectarea lor incorect va fi semnalata prin mesaje de avertizare.Cele cinci câmpuri conțin date precum numele, prenumele, adresa de email, parola pentru a se putea loga pe site și numărul de telefon.În figură 5.3.2 este prezentată operația de creare de cont cu mesajele de eroare.

Figura 5.3.2 Operația de creare de cont cu mesajele de eroare

Neintroducerea numelui său a prenumelui va fi avertizata prin * roșie de după text box. Dacă la reintroducerea parolei aceasta se scrie diferit față de cea anterioară va apărea mesajul „Parola introdusă greșit. Vă rugăm reîncercați” . Prin neintroducerea simbolului „@” în adresa de email aceasta va genera mesajul de eroare „Introdu o adresă de e-mail

35

Capitolul 5

validă”. Dacă conținutul numărului de telefon nu este de 10 cifre sau sunt introduse litere în locul cifrelor va apărea mesajul de eroare „Introduceți un număr de telefon valid”.

Dacă toate condițiile au fost respectate și nu există nici un mesaj de eroare atunci înregistrarea poate să fie salvată în baza de date. Conținutul parolei salvate în baza de date este unul criptat după o cheie predefinita.

Alegând butonul „Autentificare” acesta ne va redirecționa spre pagina de autentificare unde vom avea nevoie de datele introduse în tabelul din pagina de înregistrare pentru a ne putea loga. Vom avea nevoie de adresa de email și de parolă. Dacă una din cele două date nu corespunde cu datele introduse de noi anterior, autentificarea nu se va face și veți primi un mesaj de eroare.În momentul în care autentificarea a fost realizată cu succes veți fi redirecționați spre pagina „Prima pagină” și va apărea în locul opțiunii de autentificare adresa de email cu care suntem autentificați iar locul butonului de înregistrare va fi luat de cel al butonului de „Delogare”. Figura 5.3.3 conține operațiunea de după logare unde sunt prezente cele 2 butoane.

Figura 5.3.3 Operația de schimbare a butoanelor și respectiv a funcțiilor

Următorul element prezent este meniul, o componentă care nu lipsește din marea majoritate a păgânilor web. Rolul lui este acela de a permite, de a oferi o navigare cât mai rapidă și eficiența prin paginile site-ului. În acest caz meniul este unul orizontal cu conexiuni către șase pagini de informații: „Prima Pagină”, „Părerea ta”, „Adauga Anunț”, „Închirieri Auto”, Service Auto”, „Anunțurile Mele”. Secțiunea „Adauga Anunț” conține un submeniu cu 3 pagini: „Anunț Auto ”, „Anunț Închirieri”, Anunț Service”.

Pagina principală este împărțită în două secțiuni. În partea stângă a site-ului sunt prezentate șase controllere pentru a putea filtra anunțul în funcție de ce dorim să căutăm. Controller sunt de timpul „drop down list”, popularea acestora cu iteme făcându-se din baza de date.Contollere cu o selecție aleatoare sunt prezentate în Figură 5.3.4

36

Capitolul 5

Figura 5.3.4 Controllere

Tot în partea stângă sub controller găsim 2 butoane: “Căutare” și “Căutare Avansată”. Primul buton și anume “Căutare” face o filtare în baza de date a anunțurilor și face redirecționarea către pagina Cauta_anunț.aspx în care anunțurile sunt încărcate și sunt disponibile pentru vizualizare. Cel de-al doilea buton “Căutare Avansată” are ca scop redirecționarea spre pagina “Căutare_avansată.aspx”, unde anunțurile pot fi filtrate după cincizecisipatru de filter de căutare. O mare parte din aceste filter vor fi prezentate în Figură 5.3.5.

37

Capitolul 5

. Figura 5.3.5 Filtrele de căutare ale paginii “Căutare_avansată.aspx”

După selectarea filtrelor dorite și apăsarea butonului “Căutare ” din partea de jos a paginii, veți fi redirecționat către pagina Cauta_anunț.aspx. Informațiile din filtre vor fi trasmise pe pagina Cauta_anunț.aspx prin intermediul url-ului, câmpurile de tip text box și drop down list vor avea vor avea valori precum “Marca=Audi&Model=A7”, sau vor fi strâng.empty adică nu au fost selectată nici o valoare. Controlleru de tip check box va fi trimis prin intermediu Url-ului având valorile true sau false acesta însemnând la true a fost selectat filtrul respectiv iar dacă e false filtrul respectiv nu a fost selectat.Datele sunt salvate într-un strâng și sunt transmise cu ajutorul comenzii “Response.Redirect()”. Transmiterea datelor prin intermediul url-ului este prezentată în Figură 5.3.6

Figura 5.3.6 Transmiterea datelor prin intermediul url-ului

După cum se poate observa în Figură 5.3.3 selecția autovehiculului conține anul de la care pornește autovehiculul și dotarea ABS a acestuia. Momentan baza de date conține două anunțuri cu aceste două caracteristici. În Figură 5.3.7 este prezentată încărcarea și afișarea anunțurilor pe pagina după anumite criterii.

38

Capitolul 5

Figura 5.3.7 afișarea anunțurilor pe pagina după anumite criteria

Afișarea anunțurilor pe pagina „Cauta_anunț.aspx” cumprinde doar câteva elemente esențiale din anunțul propriuzis. În figură 5.3.8 sunt prezentate elementele primului anunț.

Figura 5.3.8 Prezentarea elementelor unui anunț.

Pentru a putea viziona anunțul complect cu toate specificațiile nu trebuie decât să dăm click pe poza sau pe numele mașinii. În momentul în care dăm click pe unul din cele 2 iteme menționate anterior, vom trimite în Url id-ul anunțului, preluat anterior din baza de date, iar pagina Show_anunț.aspx va încarca toate itemele anunțului.

39

Capitolul 5

Figura 5.3.9

În Url-ul paginii distingem “id=1083” ceea ce reprezintă id-ul anunțului preluat din baza de date, și reperul nostru pentru a verifica corectitudinea datelor și a funcțiilor utilizate referitoare la anunț.În partea dreaptă, sub meniu, se pot distinge două tabele. În partea dreaptă este un table cu informații esențiale despre mașina, iar în partea stânga sunt pozele pe care se poate aplica un zoom pentru a putea fi vizualizate mai bine. Acest zoom este prezentat în figură 5. 3.10.

40

Capitolul 5

Figura 5.3.10

În figură 5.3.8 ne este prezentată partea de dotări a mașinii. Am grupat aceste dotări în trei mari categorii și anume „Caracteristici exterioare”, „ Confort și design interior” și nu în cele din urmă „Siguranță”. Tabelul dispune și de o scurtă „Descriere” făcută de către proprietar și conține specificațiile suplimentare pe care cel ce a adăugat anunțul dorește să le facă despre mașină.

Figura 5.3.11

Revenind la „Prima pagină” în partea dreaptă sub meniu este poziționată o galerie care face rularea imaginilor. Aceste imagini sunt încărcate din fișierul „Images” din interiorul siteului și au scop informativ. Numărul de imagini care poate fi rulat în condițiile actuale este trei dar nu este numărul maxim. Imaginile se pot înlocui cu ușurință și sunt destinate

41

Capitolul 5

informării vizitatorilor despre noile modificări sau oferte în ceea ce privește siteul.În figură 5.3.12 este prezentată această

galerie.

Figura 5.3.12 Rulare de Imagini

A doua component a meniului este “Părerea Ta”. Deoarece vizitatorii sunt un element cheie al siteurilor web s-a realizat un forum în care persoanele care vizitează acest site să își poată da cu părerea despre el să ne zică ce nu le place și ce ar mai trebuii îmbunătățit. Condiția pentru a posta în acest forum este să ai un cont active pe site și să te autentifici. Citirea postarilor se poate face și fără a îndeplinii condițiile de postare.

42

Capitolul 5

A treia component a meniului este “Adauga Anunț”. Această rubrică conține un submeniu cu trei posibilități “Anunț Auto” , “Închirieri Auto”, “Service”.

Rubrica “Anunț Auto” este dedicată tuturor persoanelor care au un autoturism care îl oferă spre vânzare și doresc să folosească serviciile sitului web pentru a face public anunțul. Condițiile care trebuie îndeplinite pentru a putea adăuga un anunț este că persoana care dorește să facă acest lucru, să dețină un cont activ pe site și să se autentifice. În cazul în care nu este autentificata în momentul în care dorește să adauge un anut o fereastră de tip “pop up” se v-a deschide, v-a bloca continulul siteului, afișând mesajul “ Trebuie să vă autentificați pentru a adăuga un anut”. Fereastra de tip pop-up conține 2 butoane. Butonul “OK” care face redirecționarea înspre pagina de autentificare și butonul “Anulați ” care face redirecționarea spre pagina de home. Fereastra de tip pop-up este prezentată în figură 5.3.13.

Figura 5.3.13 Fereastra de tip pop-up

Dacă am îndeplinit condițiile de adăugare anunț atunci fereastra de tip pop-up nu se va mai deschide și puteam parcurge formularul pentru a dauga un anunț. Acest formular conține trei tipuri de contollere: drop down list, text box, check box, având și posibilitatea de a adăuga poze. Datele din drop down list sunt preluate din baza de date și sunt încărcate în pagina odată cu încărcarea paginii.

Pagina este structurata în cinci mari categorii. Prima categorie este “Detalii vehicul” care conține două tip de câmpuri: câmpuri oblicagorii care sunt identificate prin “*” de la sfârșitul descrierii controllerului. Câmpurile oblicatorii sunt: “Marca”, “Model”, “Tip”, “Anul Fabricației”, “Luna Fabricației”, “Motorizare”, “Capacitate”, “Cutie de viteza”, “Norme Euro”, “Culoare”, “Kilometraj”, “Consum”, “Stare”, “Taxa” și “Preț”.Câmpurile care nu sunt obligatorii sunt “Putere maximă” și “Volan”.

Cea de-a doua categorie este Localizare vehicul care conține trei drop down list-uri. Primul drop down list este “Tara de proveniența ” care este singurul câmp ce nu este obligatoriu pentru complectare. Celelalte două câmpuri “Tara în care se afla ” respectiv “județul în care se afla ” sunt câmpuri obligatorii pentru complectare.

43

Capitolul 5

Dacă unul dintre câmpurile obligatorii nu a fost complectat un mesaj de eroare va apărea în pagina conținând mesajul “Unul din câmpurile obligatorii nu a fost selectat. Vă rugăm verificați!!!”.Pentru a exemplifica au rămas neselctate câmpurile care conțin “Marca” și “Modelul”. Mesajul de eroare este prezentat în figură 5.3.14

Figura 5.3.14 Mesajul de eroare pentru câmpurile neselectate

A treia categorie conține dotările pe care o mașină le poate poseda. Toate câmpurile din această categorie sunt de tipul check box și trebuie doar să le selectăm pentru a apărea în descrierea autovehiculului. Gruparea dotărilor este făcută în trei secțiuni pentru a putea fi mai ușor de reperat de către utilizator. Prima secțiune, având denumirea, “ Caracteristici exterioare ” conține următoarele caracteristici: “Jante de aliax”, “Bare portbagaj”,” Faruri cu xenon”,”Cârlig remorcare”, “Culoare metalizată”, “Geamuri colorate” și “Trapa”.

Cea de-a doua secțiune are denumirea de “Confort și design interior” și cuprinde “Sistem de încălzire auxiliar”, “Închidere centralizată”, “Sistem de navigație”, “Comenzi

44

Capitolul 5

volan”, “Climatizare”, “Pilot automat”, “ITP nou”, “Computer bord”, “Dublu climatronic”, “Scaune încălzite electric”, “Parbriz încălzit”, “Oglinzi electrice”, “Tapițerie din piele”, “Geamuri electrice”, “Radio/CD”.

Ce-a de-a treia secțiune o regăsim sub denumirea de “Siguranță” conținând următoarele iteme: “ABS”, “ESP”, “EDS”, “Airbag”, “Proiectoare ceata”, “Tracțiune 4×4”, “Controlul tracțiunii”, “Servo direcție”, “Alarma”, “Senzori ploaie”, “Dispozitiv antidemaraj electric”, “Suspensie reglabilă”, “Antifurt mecanic” , “Imobilizator”, “Cadru de protecție”, “Fără accident”, “Senzori parcare”.

Toate aceste iteme sunt prezentate în figură 5.3.15

Figura 5.3.15

A patra categorie a paginii “Adauga Anunț” este cea de adăugare de poze. Persoana care dorește să adauge un anunț are posibilitatea de a adăuga șase poze. Acestea sunt salvate în baza de date și sunt utilizate în momentul în care anunțul este vizualizat.

A cincea categorie și ultima este cea de “Scurtă descriere”. Aici cel ce dorește să adauge un anunț poate scrie tot ce dorește despre mașina lui pentru a face anunțul mai interesant și poate specifica anumite lucruri care nu s-au specificat în itemele anterioare.

Cel de-al doilea item al submeniului este “Închirieri Auto”. Accesul în această pagină se va face doar dacă utilizatorul are un cont activ pe site și este autentificat. În caz contrat o fereastră de tip pop-up se va , v-a bloca continulul siteului, afișând mesajul “ Trebuie să vă autentificați pentru a adăuga un anut”. Fereastra de tip pop-up conține 2 butoane. Butonul “OK” care face redirecționarea înspre pagina de autentificare și butonul “Anulați ” care face redirecționarea spre pagina de home.

În această pagină utilizatorul v-a putea să își adauge mașinile pe care le oferă spre închiriere, prețul cu care le închiriază pe durata unei zile, o imagine cu mașina și dotările de care dispune mașina.

45

Capitolul 5

Cel de-al treilea item al submeniului este Service. În această rubrică posesorii de service-uri auto pot să complecteze un formular care conține localizarea service-ului, operațiunile pe care le poate face acesta și o imagine cu acesta pentru a fi găsit mai ușor. Adăugarea de anunțuri se va face pe baza unui cont activ iar utilizatorul v-a trebuii să fie logat.

O altă componentă a meniului este “Închirieri auto”. Aici orce persoana fie că este utilizator fie că este un simplu vizitator poate avea acces la informațiile din această pagină. Informațiile din această pagină cuprind anuntiei a persoanelor/firmelor care dau spre închiriere autoturisme.

Cea de-a cincea componentă a meniului este cea de “Service Auto”. Această rubrică a fost creată în favoarea persoanelor care nu știu unde să găsească anumite servicii necesare întreținerii și bunei funcționalități a autovehiculelor pe care le au în posesie. Anunțurile conținute în această pagină vor putea fi filtrate doar după locația în care se afla.

Ultima componentă a meniului este “Anunțurile mele” , pagina care conține toate anunțurile pe care un utilizator al acestui site le-a înregistrat în baza de date. Acesul pe această pagină este restricționat și se poate face doar dacă ești logat pe site. În caz contrar o fereastră de tip “pop up” se v-a deschide, v-a bloca continulul siteului, afișând mesajul “ Trebuie să vă autentificați pentru a vă putea vizualiza anunțurile”. Fereastra de tip pop-up conține 2 butoane. Butonul “OK” care face redirecționarea înspre pagina de autentificare și butonul “Anulați ” care face redirecționarea spre pagina de home. . Fereastra de tip pop-up afișând mesajul este prezentată în figură 5.3.16.

Figura 5.3.16 Fereastra de tip pop-up

Dacă am trecut de acest pas și ne-am autentificat cu succes, anunțurile pe care noi le-am postat de pe ușerul cu care suntem autentificați vor apărea în pagina, conținând o poză cu mașina, datele și specificațiile acesteia. Aceasa încărcare a datelor este prezentată în figură 5.3.17

46

Capitolul 5

Figura 5.3.17 Prezentarea anunturilor din pagina “Anunturile mele”.

47

Capitolul 6

Capitolul 6. Testare și Validare

Exista mai multe tipuri de testare, dupa care se poate verifica si valida functionalitatea si componentele non-functionale ale site-ului, cum ar fii:

-testarea manuala: procesul de testarea manuala a software-ului pentru defecte

-testarea automata(Selenium- de obicei se foloseste pentru regression): pentru a putea controla executia testelor si a urmari rapoartele generate

-testarea software: anchetă efectuata pentru a furniza părțile interesate cu informații despre calitatea produs sau serviciului testat

-unit testing: reprezinta testarea pe componente de catre developer. -security testing: performanta, securitate

Scopul testarii acestui proiect s-a focusat pe:

• Asigurarea unui artefact central care guverneaza abordarea strategică a efortului de testare; definește abordarea generală care urmează să fie folosite atunci când testarea

software-ul și atunci când evaluează rezultatele ca testarea.

• Furnizarea o confirmare vizibilă a părților interesate de testare,a efortului pentru a avea cunoștințe comune cu privire la ceea ce / cum am testat.

Obiectivele principale sunt urmatoarele:

• determina dacă aplicația funcționează conform așteptărilor, fără erori sau bug-uri

• îndeplinite toate criteriile de acceptare

• fixe și a verificat toate bug-uri de poveste

Testare in diferite browsere:

Validarea campurilor existente este o functionalitate foarte importanta si care necesita o atentie sporita. Aceasta testare se poate realiza astfel:

-prin introducerea de scipturi

-max si min de caractere

-caractere, cifre, semne

-litere mari, litere mici

48

Capitolul 6

Dupa fiecare incercare se verifica si mesajul returnat de site in situatia in care datele introduse nu sunt valide.

Test case: I.

1. Login ca credentialele de utilizator

2. Verificare permisiuni necesare administratorului

3. Verifica situatia userilor cu cont activ

4. Se delogheaza

II 1. Login cu credentiale de user cu cont activ

2.adauga anunt

3.verifica daca anuntul s-a incarcat pe site 4. editeaza anuntul

5. se delogheaza

III user -vizitator

1.Intra pe site

2.filtreaza anunturile

3. urmareste rezultatul filtrarii

49

Capitolul 7. Concluzii

Tot ce am spus pana acum poate fi insumat in cateva intrebari pe care orice detinator de site trebuie sa si le puna:

 Cum vor gasi vizitatorii site-ul?

 Ofera site-ul toate informatiile necesare?

 Sunt aceste informatii prezentate intr-o forma clara?  Arata site-ul placut?

 Au vizitatorii motive sa se intoarca in viitor?

 Poate fiecare vizitator sa acceseze intreg site-ul?  Se incarca paginile destul de repede?

 Este site-ul usor de folosit?

 Va fi site-ul usor de modificat si extins in viitor?  Cat ma vor costa aceste schimbari viitoare?

 Cum voi avea acces la statisticile site-ului si cum voi analiza succesul site-ului?

Respectarea standardelor este primul pas care trebuie facut pentru a obtine multe din lucrurile de mai sus.

Nici un aspect din lista de mai sus nu trebuie sa fie in conflict cu un alt aspect (inafara de costul initial, desigur). Nici o data nu trebuie sa se puna problema: un design frumos sau un design rapid si accesibil? Designul trebuie sa

fie si frumos si rapid si accesibil. Un site trebuie sa corespunda tuturor cerintelor de mai sus fara compromisuri.

Frameworkul este o optiune usoara si curate pentru cei care doresc sa realizeze aplicatii ca ecest limbaj. Acesta ofera posibilitatea de a mentine usor separarea conceptelor in aplicatie, faciliteaza crearea de unit teste si de a aborda programarea bazata pe teste.

50

Bibliografie

Bibliografie

[1] Sabin Buraga, "Aplicatii Web la Cheie", Editura Polirom, Bucuresti, 2003.

[2] Sabin Buraga, "Proiectarea Siturilor Web. Design si Functionalitate", Editura Polirom, 2004.

[3] M. Fotache, "Proiectarea bazelor de date", Revista Net Report, martie 2004

[4] BeginningASP.NET 4 in C# and VB Foreword by Vishal R. Joshi, Lead Program Manager, Microsoft Web Platform &amp; Tools

[5] Jesse Liberty – Programming C# – Publisher O'Reilly, 2002

http://msdn.microsoft.com/ msdn.microsoft.com

http://www.w3schools.com/ www.w3schools.com

51

Anexa 1

Anexa 1 (dacă este necesar)

Cod HTML:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Pages_Login" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">

<%–<ul>

<li>

<a href="../pages/Home.aspx">Prima Pagina</a>

</li>

<li>

<a href="../pages/Forum.aspx">Parerea Ta</a>

</li>

<li>

<a href="../pages/Ad_anunt.aspx">Adauga anunt</a>

</li>

<li>

<a href="../pages/Leasing.aspx">Leasing</a>

</li>

<li>

<a href="../pages/Service.aspx">Service</a>

</li>

<li>

52

Anexa 1

<a href="../pages/PaginaMea.aspx">Anunturile Mele</a>

</li>

</ul>–%>

</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">

</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder5" Runat="Server">

<table align="center" style="width: 87%; height: 206px">

<tr>

<td class="label" style="height: 23px; width: 170px">

Email

</td>

<td style="height: 23px; width: 324px">

<asp:TextBox ID="tb_email" runat="server" CssClass="lrtextbox"></asp:TextBox>

</td>

</tr>

<tr>

<td class="label" style="width: 170px">

Parola

</td>

<td style="width: 324px">

<asp:TextBox ID="tb_parola" runat="server" CssClass="lrtextbox" TextMode="Password"></asp:TextBox>

</td>

</tr>

<tr>

<td style="width: 170px">

<asp:Label ID="lb_error" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>

</td>

<td style="width: 324px;">

<p style="text-align:center">Ati uitat parola?</p>

</td>

</tr>

</table>

<p style="padding-left:275px;">

<asp:Button ID="Button1" runat="server" CssClass="buttonn" Text="Login" Width="321px" OnClick="Button1_Click" />

</p>

</asp:Content>

53

Anexa 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data.SqlClient;

using System.Configuration;

using System.Security.Cryptography;

using System.IO;

using System.Text;

using System.Data;

public partial class Pages_Login : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

private string Encrypt(string clearText)

{

string EncryptionKey = "M2SNUCP56VYYP";

byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);

using (Aes encryptor = Aes.Create())

{

Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });

encryptor.Key = pdb.GetBytes(32);

encryptor.IV = pdb.GetBytes(16);

using (MemoryStream ms = new MemoryStream())

{

using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))

{

try

{

cs.Write(clearBytes, 0, clearBytes.Length);

cs.Close();

}

catch

{

cs.Close();

}

}

clearText = Convert.ToBase64String(ms.ToArray());

54

Anexa 1

}

}

return clearText;

}

protected void Button1_Click(object sender, EventArgs e)

{

try

{

SqlConnection connection = new SqlConnection();

connection.ConnectionString = "Data Source=auto-pc;Initial Catalog=rarauto.ro;Integrated Security=True";

connection.Open();

// SqlCommand cmd = new SqlCommand("select COUNT(*) FROM Register WHERE Email like @Email and Parola='" + Encrypt(tb_parola.Text.Trim()) + "'");

SqlCommand cmd = new SqlCommand("select COUNT(*) FROM Register WHERE Email like @Email and Parola like @Parola");

cmd.Parameters.AddWithValue("@Email", tb_email.Text);

cmd.Parameters.AddWithValue("@Parola", Encrypt(tb_parola.Text.Trim()));

// SqlCommand sqlCommand = new SqlCommand("select Id FROM Register ORDER BY Nume ASC");

cmd.Connection = connection;

int OBJ = Convert.ToInt32(cmd.ExecuteScalar());

if (OBJ > 0)

{

try

{

//SqlCommand cmd1 = new SqlCommand("select Nume FROM Register WHERE Email='" + tb_email.Text + "'");

//SqlDataReader sqlDataReader = cmd1.ExecuteReader();

//while (sqlDataReader.Read())

//{

// string nume = sqlDataReader[0].ToString();

//}

HttpCookie user = new HttpCookie("UserInfo");

user["Email"] = tb_email.Text;

// user["Nume"] =

// user.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(user);

//Session["name"] = tb_email.Text;

Response.Redirect("../pages/home.aspx");

}

55

catch

{

}

}

else

{

lb_error.Text = "Invalid username or password";

}

}

catch

{

lb_error.Text = "Invalid username or password";

}

}

}

56

Bibliografie

Bibliografie

[1] Sabin Buraga, "Aplicatii Web la Cheie", Editura Polirom, Bucuresti, 2003.

[2] Sabin Buraga, "Proiectarea Siturilor Web. Design si Functionalitate", Editura Polirom, 2004.

[3] M. Fotache, "Proiectarea bazelor de date", Revista Net Report, martie 2004

[4] BeginningASP.NET 4 in C# and VB Foreword by Vishal R. Joshi, Lead Program Manager, Microsoft Web Platform &amp; Tools

[5] Jesse Liberty – Programming C# – Publisher O'Reilly, 2002

http://msdn.microsoft.com/ msdn.microsoft.com

http://www.w3schools.com/ www.w3schools.com

Anexa 1

Anexa 1 (dacă este necesar)

Cod HTML:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Pages_Login" %>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">

<%–<ul>

<li>

<a href="../pages/Home.aspx">Prima Pagina</a>

</li>

<li>

<a href="../pages/Forum.aspx">Parerea Ta</a>

</li>

<li>

<a href="../pages/Ad_anunt.aspx">Adauga anunt</a>

</li>

<li>

<a href="../pages/Leasing.aspx">Leasing</a>

</li>

<li>

<a href="../pages/Service.aspx">Service</a>

</li>

<li>

52

Anexa 1

<a href="../pages/PaginaMea.aspx">Anunturile Mele</a>

</li>

</ul>–%>

</asp:Content>

<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server">

</asp:Content>

<asp:Content ID="Content4" ContentPlaceHolderID="ContentPlaceHolder5" Runat="Server">

<table align="center" style="width: 87%; height: 206px">

<tr>

<td class="label" style="height: 23px; width: 170px">

Email

</td>

<td style="height: 23px; width: 324px">

<asp:TextBox ID="tb_email" runat="server" CssClass="lrtextbox"></asp:TextBox>

</td>

</tr>

<tr>

<td class="label" style="width: 170px">

Parola

</td>

<td style="width: 324px">

<asp:TextBox ID="tb_parola" runat="server" CssClass="lrtextbox" TextMode="Password"></asp:TextBox>

</td>

</tr>

<tr>

<td style="width: 170px">

<asp:Label ID="lb_error" runat="server" Font-Bold="True" ForeColor="Red"></asp:Label>

</td>

<td style="width: 324px;">

<p style="text-align:center">Ati uitat parola?</p>

</td>

</tr>

</table>

<p style="padding-left:275px;">

<asp:Button ID="Button1" runat="server" CssClass="buttonn" Text="Login" Width="321px" OnClick="Button1_Click" />

</p>

</asp:Content>

53

Anexa 1

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data.SqlClient;

using System.Configuration;

using System.Security.Cryptography;

using System.IO;

using System.Text;

using System.Data;

public partial class Pages_Login : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

private string Encrypt(string clearText)

{

string EncryptionKey = "M2SNUCP56VYYP";

byte[] clearBytes = Encoding.Unicode.GetBytes(clearText);

using (Aes encryptor = Aes.Create())

{

Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 });

encryptor.Key = pdb.GetBytes(32);

encryptor.IV = pdb.GetBytes(16);

using (MemoryStream ms = new MemoryStream())

{

using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write))

{

try

{

cs.Write(clearBytes, 0, clearBytes.Length);

cs.Close();

}

catch

{

cs.Close();

}

}

clearText = Convert.ToBase64String(ms.ToArray());

54

Anexa 1

}

}

return clearText;

}

protected void Button1_Click(object sender, EventArgs e)

{

try

{

SqlConnection connection = new SqlConnection();

connection.ConnectionString = "Data Source=auto-pc;Initial Catalog=rarauto.ro;Integrated Security=True";

connection.Open();

// SqlCommand cmd = new SqlCommand("select COUNT(*) FROM Register WHERE Email like @Email and Parola='" + Encrypt(tb_parola.Text.Trim()) + "'");

SqlCommand cmd = new SqlCommand("select COUNT(*) FROM Register WHERE Email like @Email and Parola like @Parola");

cmd.Parameters.AddWithValue("@Email", tb_email.Text);

cmd.Parameters.AddWithValue("@Parola", Encrypt(tb_parola.Text.Trim()));

// SqlCommand sqlCommand = new SqlCommand("select Id FROM Register ORDER BY Nume ASC");

cmd.Connection = connection;

int OBJ = Convert.ToInt32(cmd.ExecuteScalar());

if (OBJ > 0)

{

try

{

//SqlCommand cmd1 = new SqlCommand("select Nume FROM Register WHERE Email='" + tb_email.Text + "'");

//SqlDataReader sqlDataReader = cmd1.ExecuteReader();

//while (sqlDataReader.Read())

//{

// string nume = sqlDataReader[0].ToString();

//}

HttpCookie user = new HttpCookie("UserInfo");

user["Email"] = tb_email.Text;

// user["Nume"] =

// user.Expires = DateTime.Now.AddDays(1);

Response.Cookies.Add(user);

//Session["name"] = tb_email.Text;

Response.Redirect("../pages/home.aspx");

}

55

catch

{

}

}

else

{

lb_error.Text = "Invalid username or password";

}

}

catch

{

lb_error.Text = "Invalid username or password";

}

}

}

Similar Posts

  • Sistem Informational Si Sistem Informatic

    1 Sistem informational si sistem informatic Un sistem reprezinta un ansamblu de elemente interdependente, intre care se stabileste o interactiune dinamica, pe baza unor reguli prestabilite pentru a atinge un anumit obiectiv. Interactiunea dinamica dintre elemente se materializeaza in fluxurile stabilite intre acestea, fluxuri implicand resursele existente. Potrivit teoriei sistemelor orice organism economic este un…

  • Framework DE Automatizare CU Selenium Webdriver

    FRAMEWORK DE AUTOMATIZARE CU SELENIUM WEBDRIVER Cu prins I. STADIUL ACTUAL II. FUNDAMENTAREA TEORETICĂ 2.1.Generalitati testare 2.2 Selenium Generalități 2.3 Selenium RC sau Remote Control și IDE 2.4 Selenium Webdriver compatibilități 2.5 WebDriver și Selenium-Server 2.6 Webdriver localizarea elementelor 2.7 Seleium WebDriver DRIVERS 2.8 Selenium Waits (timpi de așteptare) 2.8.1 Explicit wait 2.8.2 Implicit wait…

  • Proiectarea Unei Aplicații Informatice Pentru Activitatea DE Distribuție A Unei Firme

    CUPRINS INTRODUCERE Cap. 1. STUDIUL ȘI ANALIZA SISTEMULUI EXISTENT 1.1. Prezentarea succintă a unității economico-sociale 1.2. Principalele activități desfășurate în unitatea economică 1.3. Studiul sistemului de conducere 1.4. Studiul sistemului condus 1.5. Studiul sistemului informațional 1.5.1. Schema fluxului informațional aferent temei 1.5.2. Descrierea circuitului informațional aferent temei 1.5.3. Descrierea documentelor utilizate. Modelul conceptual al datelor…

  • Magazin Online de Scule

    LUCRARE DE LICENȚĂ MAGAZIN ONLINE DE SCULE Cuprins 1. Introducerea în tehnologii web 1.1. World wide web WORLD WIDE WEB (sau mai simplu WEB sau WWW) este un context arhitectural pentru accesul la documente răspândite pe mii de mașini din Internet, între care există legături.În 5 ani a evoluat de la o aplicație pentru transmiterea…

  • Solutii de Securitate de Tip Firewall

    INTRODUCERE CAPITOLUL I – SOLUȚII DE SECURITATE……………………………………… CAPITOLUL II – FIREWALL……………………………………………………….. 2.1 Istoria Firewall-ului…………………………………………………………. 2.2 Generalitati………………………………………………………………….. 2.3 Componentele unui firewall………………………………………………… 2.4 Politica unui firewall………………………………………………………… 2.5 Functionare…………………………………………………………………. 2.6 Avantajele și dezavantajele folosirii unui firewall…………………………. 2.7 Ce poate și ce nu poate face un firewall……………………………………. CAPITOLUL III – CONFIGURAREA UNUI FIREWALL……………………….. Windows Firewall……………………………………………………………………….. Windows 7……………………………………………………………………………… Comodo………………………………………………………………………………… Zone…

  • Aplicatie Informatica Privind Evidenta Utilajelor

    INTRODUCERE Una dintre problemele fundamentale legate de procesele finalizate care însoțesc viața și dezvoltarea societății omenești este ˝Problema conducerii˝, având ca rezultate creșterea gradului de organizare a materiei, mărirea cantității de informație despre fenomene și procese și implicit reducerea entropiei – măsură a dezorganizării. Datorită creșterii complexității activității economico-sociale și a volumului acesteia, utilizarea calculatoarelor…