Sql Management Studio Online
SQL management studio online
Cuprins
Introducere
Motivarea alegerii temei
Capitolul 1. Încadrare teoretică
1.1 Despre HTTP
1.2 Limbajul HTML
1.3 CSS
1.4 JavaScript
1.5 Platforma .NET
1.6 C#
1.7 ASP.NET MVC5
1.8 Razor
1.9 Servicii Web
1.10 Protocolul SOAP
1.11 Web Services Description Language (WSDL)
1.12 Web API
1.13 Sistemul de rutare ASP.NET Web API
1.14 SQL Server
1.15 Transact-SQL (T-SQL)
1.16 SSMS
1.17 jQuery
Capitolul 2: Proiectul EQuery
2.1 Implementare
2.2 WebApiProxy
2.3 Proiectul EQuery.WebAPI
2.4 Proiectul EQuery.BLL
2.5 EQuery.Data
2.6 EQuery.Entities
Capitolul 3: Utilizarea aplicației
3.2 Ecranul de conectare
3.3 Ecranul principal
3.4 Interogarea bazei de date
Introducere
În secolul vitezei și al calculatoarelor este foarte important să punem la dispozitia utilizatorilor sisteme rapide si accesibile de pe diverse platforme. Acest lucru este foarte posibil și la îndemănă cu ajutorul internetului. O pagina HTML putând fi accesată de pe orice mașina cu acces la internet si de pe orice sistem de operare.
În ceea ce privește obiectivele propuse pentru această lucrare, menționăm:
Aprofundarea cunoștințelor despre aplicațiile web și programarea web.
Dobândirea de cunoștințe necesare implementarii serviciilor de tip Web API
Dobândirea de cunoștințe necesare pentru a crea aplicatii folosind ASP.NET MVC5
Dobândirea de cunostinte necesare pentru a crea aplicatii care folosesc SQL Server
Crearea unei aplicații ASP.NET MVC5
În lucrarea de față sunt prezentate noțiuni de de bază privind aplicațiile web, Web API, SQL Server si implementarea acestora.
Lucrarea conține trei secțiuni:
Cadru general
Prezentarea aplicației ”EQuery”
Descrierea aplicației ”EQuery”
În primul capitol, care reprezină o încadrare teoretică a lucrării de față, sunt descrise noțiuni generale în ceea ce privește aplicațiile web, modul de funcționare și implementare a acestora, descrierea tehnologiilor folosite, și anume:
C#
ASP.NET MVC5 cu HTML, CSS și JavaScript
ASP.NET Web API
SQL Server
Primul capitol prezintă o descrie scurtă a fiecărei dintre tehnologiile folosite.
Al doilea capitol, împărțit în 6 subcapitole, cuprinde detalii legate de implementarea proiectului, toate componentele poiectului și cum acestea interacționează, de la instrucțiunea utilizatorului și până la afișarea rezultatului. Acesta conține informații legate de organizarea aplicației, arhitectura folosită și explică în detaliu cum sunt folosite tehnologiile ce intră în alcătuirea proiectului.
Al treilea capitol, împărțit în 4 subcapitole, cuprinde descrierea proiectului în detaliu și instrucțiuni de utilizare a acestuia.
Motivarea alegerii temei
Tema lucrării de față, ”SQL management studio online”, a fost aleasă în urma realizării unei documentări legate de modul de funcționare a aplicațiilor ASP.NET MVC5 împreună cu serviciile web de tip web API.
Aplicația a fost creată din dorința de a încapsula toate facilitățile funcționale majore ale unui client SQL Server desktop intr-o aplicație web, care poate fi accesată de pe orice mașină cu acces la internet.
Am ales tehnologiile ASP.NET MVC5 împreună cu web API, și nu alte tehnologii care s-ar fi dovedit la fel de eficiente, din dorința de a avea un set tehnologii uniform, ușor de utilizat. ASP.NET MVC5 este o platforma modernă ce poate fi folosită pentru o plajă foarte largă de aplicații web, atât pentru cele mici cât și pentru aplicații mari sau cu un număr mare de utilizatori.
Așadar, tema a fost aleasă din dorința de a realiza o aplicație web care se folosesțe de un serviciu web pentru a abstractiza logica de bază.
Capitolul 1. Încadrare teoretică
Despre HTTP
Internetul a revoluționat lumea calculatoarelor și comunicațiilor cum nicio alta tehnologie nu a facut-o. Acesta reprezintă unul din cele mai reprezentative exemple ale beneficiilor cercetării si investitiilor susținute asupra tehnologiei informației.
HTTP (Hyper Text Transfer Protocol) este un set de reguli folosit pentru a transfera fișiere(text, imagini, sunet) in rețeaua web. Protocolul definește cum sunt formatate și transmise mesajele, și ce acțiuni serverele web si browser-ele ar trebui să execute ca și răspunsuri la diverse comenzi.
HTTP este un protocol stateless (fără stare), însemnând că fiecare comandă este executată independent, sau fără a fi în relație cu alte comenzi executate înaintea ei. Din acest motiv, este dificil de implentat site-uri web care să raspundă inteligent la input-ul utilizatorului. Acest dezavantaj al protocolului HTTP este depașit de catre tehnologii relativ noi, cum ar fi ActivX, JavaScript si fișierele cookie.
O tranzacție HTTP este reprezentată de:
Conexiune: Se stabilește o conexiune a clientului către server, folosind protocolul TCP/IP portul 80 este cel mai utilizat port, însă se pot folosi și alte porturi care nu sunt rezervate
Request (Cerere): clientul trimite un mesaj, în care este specificată o cerere, serverului
Response (Răspuns): server-ul trimite un raspuns clientului
Limbajul HTML
HTML este un subset al SGML (Standard Generalized Markup Language) si este specificat de către World Wide Web Consortium
HTML a fost dezvoltat in 1990 de către Tim Berners-Lee și este o prescurtare pentru HyperText Markup Langage. HTML este folosit pentru a crea documente electronice ce vor fi disponibile pe web. Codul HTML asigură o formatare unitară a textului si a imaginilor, astfel încăt browser-ul să poată afișa pagina așa cum creatorul acesteia a intenționat. Fără HTML, un browser nu ar ști cum să afișeze textul ca si elemente ce compun pagina.
Un tag (o etichetă) de HTML are strctura:
tag-ul de deschidere
atribute (împreuna cu valoarea acestora)
conținutul din interiorul tag-ului
tag-ul de inchidere
HTML este un limbaj usor de folosit și accesibil ce necesita un minim de echipament: computer, un editor de HTML (sau chiar un simplu editor de text) si un browser.
CSS
CSS(Cascading Style Sheets) este un limbaj folosit pentru a formata și a modifica aspectul unui document scris intr-un limbaj markup. De cele mai multe ori este folosit pentru a schimba stilul paginilor web scrise in HTML sau XHTML. Împreună cu JavaScript, CSS este o piatră de temelie folosită de majoritatea developerilor și designerilor web pentru a crea pagini web cu aspect îmunătățit.
CSS este creat în principal pentru a permite separarea conținutlui documentului de formatarea acestuia. Mai multe pagini HTML pot partaja același fișier de formatare .css, ajutănd astfel la reducerea complexității și a repetiției in conținutul structural.
CSS permite separarea instrucțiunilor de prezentare de fișierul html intr-un alt fișier sau intr-o secțiune de stil a documentului HTML.
Un avantaj al CSS este faptul că schimbările de design grafic al unuia sau mai multor documente pot fi făcute rapid, modificând cateva linii intr-un singur fișier.
Specificațiile CSS descriu o schemă prioritate pentru a determina ce reguli de stil vor fi aplicate în cazul ăn care mai multe reguli se potrivesc unui element.
JavaScript
Javascript este un limbaj de programare, orientat pe obiecte, interpretat, și este cel mai cunoscut limbaj de scripting pentru pagini web. JavaScript, contrar opiniei generale greșite, nu este Java pentru web, sau Java interpretat. Acesta este un limbaj de programare dinamic, ce poate fi folosit și procedural și obiectual. Sintaxa de bază este asemănătoare cu sintaxa Java sau C++.
JavaScript este cel mai des folosit pentru scripturi client, ca parte a unei pagini web, ce interacționează cu utilizatorul și permit acestuia să comunice asincron cu serverul sau să modifice conținutul documentului afișat.
Platforma .NET
Platforma .NET este o tehnologie care permite crearea si rularea de aplicatii Windows. Rolul acesteia este de a oferi un mediu de programare consistent (indiferent de tipul de aplicație -web , mobile sau desktop), de executa cod fara a ne mai pune problema de performanță.
Principalele avantaje ale platformei .NET sunt:
Interoperabilitatea: acest lucru permite programelor dezvoltate sub platforma .NET sa acceseze funcționalități din programe aflate în afara platformei
Common Runtime Engine: cunoscut și ca CLR (Common Language Runtime) permite programelor dezvoltate sub .NET sa manifeste comportamente comun, în termeni de utilizare de memorie, tratarea excepțiilor și securitate.
Utilizarea librăriilor, evitându-se astfel codul duplicat
Asigură ușurință instalarea aplicațiilor, evitându-se interfernța cu versiunile anterioare
C#
C# este un limbaj de programare modern, orientat pe obiecte, generic, ce foloseste tipuri dezvoltat de Microsoft pentru platforma .NET.
Scopul creării limbajului C# este sa faciliteze schimbul de informații și servicii folosind rețeaua web și de a permite dezvoltatorilor de software să producă aplicații portabile.
C# a fost dezvoltat de Anders Hejlsberg, care a mai dezvoltat înainte și Turbo Pascal și Borland Delphi, și a fost dezvoltat ca și un limbaj de programare simplu, cu adresare generală și orientat pe obiecte. Numele de cod al limbajului a fost Project Cool, deoarece, la început, intenția Microsoft a fost ca acesta să se fie numit COOL. Denumirea de C# vine din muzică, unde simbolul ”#” înseamnă că nota va fi mai înaltă cu un semiton (similar cu C++, unde ”++” este operatorul care incrementează o variabilă). Sintaxa lui C# este foarte similară cu sintaxa C++ și a limbajui Java, deși nu se vrea un competitor direct a acestora. Heijlberg a înceracat să implementeze în C# diverese neajunsuri pe care acesta le-a observat în C++, Java, Delphi, cum ar fi:
verificare de tip
verificare de indecși ai vectorilor
verificare în cazul utilizării variabilelor neinițializate
permitere de folosire în medii distribuite
ASP.NET MVC5
Model -View-ontroller (MVC) este un pattern arhitectural pentru a implementa interfețe utilizator. Acesta divide aplicația in 3 părți interconectate .
MVC a fost unul din cele mai influente perspective a dezvoltării de interfețe grafice utilizator, și una din primele abordări care descrie și implementează concepte software în termeni de responsabilități.
Trygve Reenskaug a introdus modelul MVC in Smalltalk-76 în timp ce vizita Xerox Parc în anii 70. În anii 80, Jim Althoff implementeaza o versiune de MVC pentru biblioteca Smalltalk-80. Abia în 1988, într-un articol din The Journal Object of Technology, patternul MVC a fost prezentat ca și concept general. Patternul MVC a evoluat, mai apoi, dând naștere unor variante, cum ar fi: HMVC, MVA, MVVM, adaptând conceptul Model-View-Controller la diferite contexte.
ASP.NET este o platforma folosită pentru a crea pagini web dinamice dezvoltată de Microsoft. A fost lansată in ianuarie 2002 împreuna cu platforma .NET și este succesoarea tehnologiei ASP (Active Server Pages). Datorită fptului că se bazează pe CLR, dezvoltatorii pot crea aplicații web folosind orice limbaj de programare .NET.
ASP.NET MVC este o platforma bazată pe ASP.NET ce utilizează pattern-ul MVC (Model-View-Controller) pentru a crea aplicații web.
Modelul MVC definește aplicații web ce folosesc trei straturi logice:
Model (layer-ul business)
View (layer-ul de afișare)
Controller (layer-ul de input)
Figura 1.1
Obiectele Model reprezintă acea parte a aplicației care implementează logica pentru domeniul de date al aplicației. De multe ori, obiectele model stochează și aduc informații din baza de date. De exemplu, un obiect User poate aduce informații din baza de date, să prelucreze acele informații, și apoi să salveze informația modificată înapoi într-un tabel User într-un server de baze de date.
În aplicațiile mici se poate întâlni situația în care modelul reprezintă doar o separare conceptuală și nu una fizică. De exemplu, dacă aplicația citește dataset-uri pe care le trimite apoi layer-ului de afișare (View), atunci aplicația nu are un layer fizic pentru model și clasele asociate acestuia, iar dataset-urile preiau ctele Model reprezintă acea parte a aplicației care implementează logica pentru domeniul de date al aplicației. De multe ori, obiectele model stochează și aduc informații din baza de date. De exemplu, un obiect User poate aduce informații din baza de date, să prelucreze acele informații, și apoi să salveze informația modificată înapoi într-un tabel User într-un server de baze de date.
În aplicațiile mici se poate întâlni situația în care modelul reprezintă doar o separare conceptuală și nu una fizică. De exemplu, dacă aplicația citește dataset-uri pe care le trimite apoi layer-ului de afișare (View), atunci aplicația nu are un layer fizic pentru model și clasele asociate acestuia, iar dataset-urile preiau rolul obiectului model.
View-urile reprezintă componentele care afișează interfața utilizator a aplicației. De obicei, componenta UI este creată din model.
Controller-ele sunt componentele care manevrează interacțiunea cu utilizatorii. Acestea funcționează cu modelele, iar scopul lor final este să decidă ce View se va afișa utilizatorului, în baza cererii facute de către acesta.
Pattern-ul MVC ajută dezvoltatorii să creeze aplicații web care separă diferitele aspecte ale aplicației (inputul de la utilizator, logica de business, si logica de afișare). În același timp MVC asigură o decuplare a acestor straturi, facându-le independete unele de celelalte. Astfel, putem spune că logica de UI aparține layer-ului de View, logica de input utilizator aparține layer-ului de Controller, iar logica de business a aplicației aparține layer-ului de model. Această separare ne ajută să gestionăm complexitatea unei aplicații, pentru că ne permite să ne concentrăm pe un singur layer al aplicației, fără să depindem de alte layere.
Figura 1.2
Această decuplare între layer-ele aplicației ne permite și posibilitatea de dezvoltare paralelă a aplicației. Astfel, în timp ce un developer lucrează la un view, un alt developer poate să lucreze la logica de controller, iar un al treilea developer se poate concentra la logica de business din model.
Avantajele platformei ASP.NET MVC sunt:
Este mai ușor să gestionăm complexitatea divizând aplicația în cele trei straturi componenete: Model-View-Controller
Nu folosește view state (mecanism de persistență a datelor ce folosește input-uri ascunse în pagina HTML), facând din acest lucru platformă ideală pentru dezvoltatorii care for să aibă control deplin asupra comportamentului aplicației
Ofera un suport mai bun pentru test driven development (dezvoltare bazată pe testare)
Se pretează foarte bine la aplicații care sunt dezvoltate de un număr mare de programatori și care au nevoie de un grad mare de control asupra comportamentului aplicației
Razor
Razor este o sintaxă de programare ASP.NET care a fost creat pentru realizarea de pagini web dinamice în C#. Razor a fost dezvoltat în 2010 și lansat în ianuarie 2011 pentru Visual Studio 2010 ca și parte a platformei ASP.NET MVC 3. Folosind Razor, utilizatorul nu mai trebuie să folosească sintaxa .ASPX. Conceptul care stă în spatele Razor este să ofere o sintaxă optimizată pentru generarea de cod HTML folosind o abordare de fuziune între codul C# și codul HTML. Designul acestuia face ca scrierea să fie mai ușoară și mai rapidă
Alte avantaje a folosirii Razor ar fi:
Este suportat de IntelliSense
Poate fi testat folosind Unit Test
Suportă scheme de pagina (layout-alternativă la Master Page)
Mai ușor și mai rapid de scris
Foarte ușor de învățat
Poate fi folosit cu price editor de text
Servicii Web
Un serviciu web este o metodă de comunicare între două sisteme folosind o rețea. World Wide Web Consortium descrie web service ca fiind un sistem software al cărui scop este să suporte interacțiune interoperabilă mașină-mașină cu ajutorul unei rețele.
Serviciile web au apărut datorită nevoii sistemelor de a comunica între ele folosit un protocol standardizat de comunicare.
Deoarece aplicațiile sunt scrise în diverse limbaje de programare, acestea nu pot comunica între ele. Un web service permite această comunicare folosind o combinație de protocoale deschise, fițiere XML, protocolul SOAP și WSDL.
Un web service folosește XML pentru a scrie datele, SOAP pentru a transimte mesajele și WSDL pentru a descrie disponibilitatea serviciului.
Protocolul SOAP
Protocolul SOAP (Simple Object Access Protocol ) este folosit pentru a trimite și a primi mesaje între aplicații fără a ne confrunta cu probleme legate de interoperabilitate. Deoarece SOAP este folosit și pentru a trimite, dar și pentru a primi mesaje, conținutul acestuia poate fi ulor diferit în funcție de scopul pentru care este folosit.
Putem vedea în figura de mai jos un mesaj de cerere a metodei GetBookPrice cu parametrul BookName, care are valoarea ”The FleaMarket”
Figura 1.3
Raspunsul cererii de mai sus:
Figura 1.4
Metoda GetBookPriceResponse întoarce parametrul Price care are valoare ”10.95”.
Web Services Description Language (WSDL)
WSDL a stat la baza specificațiilor serviciilor web, pașii se urmează în punearea la dispoziție și consumarea unui serviciu sunt:
Un furnizor descrie serviciile puse la dispoziție folosind WSDL
Un consumator localizează un serviciu și găsește modalitatea prin care poate comunica cu serviciul respectiv
O parte din WSDL este transmisă consumatorului, aceasta îi spune consumatorului care sunt cererile pe care le poate specifica furnizorului și care sunt răspunsurile la care se poate aștepta din partea furnizorlui
Consumatorul face o cerere furnizorului
Furnizorul întoarce răspunsul așteptat consumatorului
Web API
API, Application Program Interface, reprezintă un set de rutine și protocoale folosite pentru a crea aplicații software. API specifică modul în care componentele software ar trebui să interacționeze
O abordare API este o abordare arhitecturală care presupune punerea la dispoziție de interfețe programabile dezvoltatorilor. Web API permite mai multor aplicații să acceseze aceleași resurse puse la dispoziție de către un pusblisher.
În contextul dezvoltării de aplicații web, un API este definit ca un set de cereri folosind protocolul HTTP, împreună cu cu o definire a structurii răspunsului. Răspunsul este de obicei transimis in format Extensible Markup Language (XML) sau in format JavaScript Object Notation (JSON)
Trendul recent în dezvoltarea de aplicații ce comunică prin servicii este de a ne îndepărta de protocolul Simple Object Access Protocol (servicii web SOAP) și a ne îndrepta spre stilul arhitectural REST (REpresentational State Transfer).
Apariția API-urilor web a permis comunităților web să creeze o arhitectură deschisă pentru a partaja conținut și date între comunități (de exemplu partajarea fotografiilor între diferite platforme de socializare Photobucket-Facebook). Utilizator poate partaja informațiile cu alte aplicații (web sau mobile).
Figura 1.5
Arhitectura REST folosețte următoarele standarde:
XML/JSON/JPEG/GIF
HTTP
URI
REST reprezintă, în esență, aplicarea unui set de reguli unei arhitecturi, nefiind suficient de detaliat pentru a putea defini o arhitectură reale, putem spune că REST este, de fapt, un stil arhitectural.
Pentru a crea un Web API trebuie să ținem cont de următoarele:
Resurse: REST folosește resurse de adresare pentru a defini structura API. Acestea sunt URI-ule
Verbele de cerere: acestea descriu ceea ce vrem să facem cu resursele. Verbele pot fi: GET, POST, PUT, DELETE, etc.
Headerele Cererii: acestea sunt instrucțiuni adiționale trimise odată cu cererea, Acestea pot defini ce tip de răspuns este așteptat, sau pot da detalii de autentificare
Corpul cererii: reprezintă datele care sunt trimise cu cererea. Pentru o cerere POST, de exemplu, sunt necesare o serie de date pe care o vom găsi în corpul cererii, de obicei în format JSON sau XML.
Corpul Raspunsului: reprezintă efectiv răspunsuș pe care API-ul îl intarce clientului care a făcut cererea, de obicei în format JSON sau XML ca și corpul cererii
Codurile de stare ale răspunsului (Status codes)
Sistemul de rutare ASP.NET Web API
Pentru a determina ce acțiune să apeleze, platforma folostește un tabel de rutare. Tabelul de rutare este creat în fișierul Global.asax al aplicației și este un fișier special care tratează toate evenimentele ce pot apărea în ciclul de viață a aplicației.Sistemul de rutare este foarte similar cu cel folosit de controller-ele de MVC. Aplicația primește o cerere HTTP, și încearcă să găsească URI aferent în tabelul de rutare, dacă nici un URI nu se potrivește cu cel ce a fost cerut atunci clientul va primi o eroare.
SQL Server
SQL Server este un sistem de gestiune al bazelor de date dezvoltat de Microsoft. Scopul lui principal este să stocheze și să returneze date conform cererii altor aplicații software, fie că acestea se află pe aceeași mașină sau într-o rețea.
Există mai multe ediții de Microsoft SQL Server targetate către diverși consumatori în funcție de nevoile acestora. Prima versiune de SQL Server a apărut în anul 1989 și a fost produsă de în parteneriat de Microsoft, Sybase și Ashton-Tate și a luat amploare pe măsură ce sistemul de operare Windows devenea tot mai popular. În 1993 a apărut SQL Server 4.21, care a fost prima versiune cu interfață grafică. În 1997 Microsoft a cumpărat codul sursă al SQL Server și a apărut varianta SQL Server 7.0. În anul 2000 Microsoft a lansat SQL Server 2000, versiune care a fost rescrisă cu totul și oferea o mulțime de facilități noi, cum ar fi XML, fișiere BLOB sau reporting. SQL Server Azure, lansat în 2010, este o versiune bazată pe Cloud și pe Platform as a Service.
Transact-SQL (T-SQL)
Este o extensie a limbajului SQL. Dezvoltat inițial de IBM, SQL, acronim de la Structured Query Language, este un limbaj de programare standardizat, declarativ folosit pentru integrarea, alterarea și definirea bazelor de date. Extensia T-SQL suportă programare procedurală, procesare de date, procesare de șiruri de caractere, variabile locale, funcții matematice. Toate aplicațiile care comunică cu o instanță de SQL Server folosesc T-SQL.
SSMS
MSDN descrie SQL Server Management Studio (SSMS) este un mediu integrat folosit pentru a accesa, configura, dezvolta și administra toate componentele unui Server SQL. SQL Server Management Studio combină plajă largă de instrumente grafice, de editoare de script pentru a facilita accesul dezvoltatorilor și administratorilor la serverul de baze de date.
jQuery
jQuery este o librărie de JavaScript, cross-platform, dezvoltată ca să simplifice partea de client a paginilor web. Este considerată ca fiind cea mai populară librărie de JavaScript datorită faptului că este gratis și open-source. Sintaxa de jQuery dorește să facă navigarea în documentul HTML mai simplă, printr-o simplificare a accesării elementelor DOM. Aceasta totodată reușește să simplifice crearea de animații, gestiunea evenimentelor și a requesturilor Ajax. Abordarea modulară din librăria jQuery ne permite crearea de aplicații web dinamice și atractive.
Microsoft încorporează jQuery în platformele sale: în Visual Studio atât pentru aplicații ASP.NET cât și pentru aplicații ASP.NET MVC.
La bază jQuery este o librărie care manipulează DOM-ul (Document Object Model), o structură arborescentă care reprezintă toate elementele unui document HTML. jQuery găsețte, selectează și manipulează aceste elemente. jQuery face manipularea evenimentelor mai ușoară, putând astfel să evităm adăugarea de atribute eveniment în elemente HTML.
Principalul avantaj a lui jQuery este că elimină incompatibilitățile dintre browsere. Din păcate motoarele de JavaScript ale navigatoarelor web diferă puțin, ceea ce face ca dacă un cod JavaScript funcționează pe un browser, pe alt browser să nu aibă comportamentul așteptat.
Bootstrap
Dezvoltat de Mark Otto și Jacob ThorntonBootrap este o colecție gratuintă și open-source pusă la dispoziția utilizatorilor pentru a crea pagini web. Bootstrap conține șabloane și teme de HTML și CSS
IDE si alte resurse (ADO, NewtonJSON, )
Pentru realizarea proiectului am ales ca si mediu de dezvoltare Visual Studio 2013 Proffesional.
Arhitectura N-Tier
Figura 2.1
Arhitectura N-tier este probabil una din cele mai folosite modele arhitecturale. Principalele avantaje ale acestei arhitecturi sunt:
faptul că este scalabilă: poate fi folosită atât pentru proiecte mici cât și pentru proiecte mari, dar mai ales pentru proiecte mici care în timp devin tot mai mari
este extensibilă
ușor de întreținut: pentru că fiecare layerele sunt independente unele de celelalte, iar o modificare facută în unul din layere poate fi făcută fără sa afecteze toată aplicația ca și întreg.
separă rolurile developerilor, astfel aceștia își pot desfășura activitatea în paralel
Un proiect cu o arhitectura N-tier este compus din mai multe straturi separabile fizic, fiecare cu rolul său bine definit astfel:
Entități
Accesul la DB
Componente business
Servicii web
Prezentarea (UI)
Componente comune
Layer-ul Entităților
Conține toate entitățile care sunt folosite în aplicație, cum ar fi: modele ASP.NET MVC, DTO-uri, POCO-uri, tabele mapate de diferite ORM-uri
Layer-ul de acces la baza de date
Este compus din clase și metode care conțin funcționalitate pentru comunicarea cu baza de date. Acest layer se va ocupa de operațiile de creare, alterare, inserare și ștergere (CRUD) în baza de date. Acest layer poate să folosească diverse ORM-uri (Object-relational mapping) sau biblioteci ce facilitează accesul la baza de date. În cazul în care se folosește un ORM, tabelele mapate de acesta se vor folosi din layer-ul de entități. Doar layer-ul de business va folosi acest layer.
Layer-ul de componente business
Acesta constă în clase și metode care vor compune toată funcționaliatea de bază a aplicației. Scopul acestui layer este sa fie un strat intermediar între interfața grafică și baza de date a aplicației, acesta încapsulând toate operațiile și porcesările pe care un utilizator le poate face cu datele. Ca și layer-ul de acces la baza de date, și acesta va avea nevoie să facă referire la modele și entități. Acest layer va fi accesat doar de layer-ul de prezentare sau de layer-ul de servicii (unde este cazul)
Object-relational mapping
Acest layer ne oferă posibilitatea să partajăm componentele business ale aplicației cu alte aplicații expunând metode sub formă de servicii web. În acest fel, putem avea mai multe aplicații pe diverse platforme care se comportă la fel (de ex. Aplicație desktop, aplicație mobile și aplicație web). Acest layer poate folosi tehnologii precum Web API, Web service, WCF etc.
Layer-ul de prezentare
Este reprezentat de tot ce ține de interfață grafică, indiferent de tehnologia folosită. De exemplu, pentru o aplicație web layer-ul de prezentare reprezintă toate fisierele HTML, CSS și JavaScript ce intră în componența aplicației.
Layer-ul de componente comune
Acesta este un layer ajutător ce poate fi folosit în oricare din parține componente ale aplicației. Acesta poate conține funcționalități de validare, securitate, encriptare și decriptare, logare de erori etc.
Dezavantajele unei astfel de arhitecturi ar putea fi următoarele:
Performața întregii aplicații poate fi scăzută în cazul în care componentele hardware și lățimea de bandă a rețelei nu sunt suficient de bune deoarece sunt implicate mai multe calculatoare și rețele
Costuri ridicate necesare achiziționării de componente hardware corespunzătoare
Înainte de a implementa o arhitectură N-tier trebui să ne asigurăm că respectăm câteva puncte cheie ce vor putea face ca aplicație să fie viabilă în timp:
Să asigurăm independența layer-elor, ca să putem modifica, adăuga sau schimba tehnologiile componente
Să implementăm principiul Responsabilității singulare, astfel fiecare componentă sau modul se va ocupa de o singură funcționaliate specifică
Să ne asigurăm că layer-ul de componente comune este disponibil tuturol celorlalte layere.
Capitolul 2: Proiectul EQuery
EQuery este un client web pentru SQL Server, care oferă utilizatorului funcționalitățile principale pe care un client SQL Server desktop le poate oferi. Acesta are o interfață web tocmai din motivul de a face accesul către serverul de baze de date mai simplu, fără a fi nevoie ca utilizatorul să instaleze pe mașina de lucru un client desktop.
Implementare
Pentru implementarea proiectului Equery s-a folosit ca și tehnologie de bază limbajul C#. Interfața grafică este implementată folosind ASP.NET MVC 5, serviciile web sunt implementate folosind ASP.NET Web API, iar layer-ul de Business, Entități și layer-ele ajutătoare sunt de tip class library.
Soluția este alcătuită din 7 proiecte:
WebSite
WebApiProxy
WebApi
Utilities
Entities
Data
BLL
Figura 2.2
Proiectul EQuery.WebSite reprezintă interfața grafică a aplicației. Acest este un priect de tip ASP.NET MVC5 cu C#. ASP.NET MVC5 poate fi folosit și împreună cu Visual Basic. Proiectul este organizat în directoare care conțin fișiere specifice.
Figura 2.3
Folderul Views conține toate view-urile ce pot fi randate de către aplcații, iar în folderul Controllers găsim toate controller-ele folosite.
Practic proiectul EQueryWebSite conține toate elementele necesare afișării aplicației: codul HTML, bibliotecile jQuery, clasele CSS.
Pentru a face scrierea de cod Razor mai ușoară s-a apelat la una din facilitățile oferite de platforma MVC, și anume de a crea helpere personalizate. Helper-ele Razor ne permit să creăm într-un mod foarte simplu metode ajutătoare care încapsulează funcționalitatea de afișare. Acestea facilitează reutilizarea codului în cazul în care o anumită funcționalitate de afișare este folosită în mai multe locuri. Astfel, scriind o singură metodă helper, aceasta poate fi folosită în mai multe ecrane ale aplicației doar prin apelul acesteia, fără a mai fi nevoie a se scrie tot codul HTML pe care aceasta îl generează. Platforma ASP.NET MVC pune la dispoziția dezvoltatorilor o serie de helpere care încapsulează diverse controale HTML care se pot apela folosind sintaxa:
@Html.[nume_metoda]([nume_control], [obiect],[parametru de stil/clasa CSS])
Figura 2.4
Folosind Razor, programatorul nu trebuie să-și mai facă griji legate de închiderea tag-urilor de HTML, de asemenea acesta trebuie să aibă grija sa nu mai încheie apelul de metodă cu ”;” deoarece acest va apărea în pagina HTML randată.
Pentru a crea un helper personalizat, putem apela la două variante: să scriem codul helper-ului în fișierul .cshtml, însă acesta va fi vizibil doar în acea pagină, sau să creăm o clasă în proeict și în interiorul acelei clase să creem o metodă de extensie. Metoda va avea următoarea semnătură:
Metoda va returna un MvcHtmlString care este un tip în care va fi encodat codul HTML și care nu va mai fi encodat la rândul său.
Razor se poate combina foarte usșor cu codul HTML, oferind în acest fel o modalitate foarte avantajoasă și simplă de genera pagini cu conținut dinamic.
Pentru a face paginile HTML cât mai modulare, am folosit ecrane parțiale pentru a compune documentul în părțile sale componente.
Ecranele parțiale sunt ecrane speciale care afișează doar o parte a conținutului paginii ca și un ”User Control” din ASP.NET Web Forms. Ecranele parțiale pot fi refolosite în mai multe ecrane și ajută la reducerea codului duplicat, afișându-le în interiorul ecranelor părinte.
Un ecran parțial este instanțiat cu o copie proprie a ViewDataDictionary (un mecanism folosit pentru a transfera date între controller și view). Apelarea unui ecran parțial se face folosind următoarele două metode:
”@Html.RenderPartial” sau ”@Html.Partial”
Figura 2.5
Putem observa faptul că un ecran parțial se apelează folosind numele acestuia, transmis ca și primul parametru, iar opțional, putem transmite un obiect în al doilea parametru. Daca ecranul parțial a fost definit cu un model, acesta va aștepta să primească un obiect de tipul modelului respectiv.
Pentru a păstra elementele majore ale paginii și pentru a avea consistență între pagini se folosește un fișier de layout în care se vor defini toate elementele ce vor fi prezente în paginile ce vor implementa layout respectiv. În fișierul de layout se vor integra și toate stilurile de CSS precum și bibliotecile de jQuery ce vor fi folosite de paginile respective.
Cu ajutorul Razor vom putea include stilurile și bibiotecile de jQuery folosind bundle-uri (pachete). Pentru a defini pachetele de stil și JavaScript ne vom folosi de fișierul BundleConfig.cs, iar în metoda RegisterBundles vom înregistra toate pachetele de vare vom avea nevoie în aplicație.
Figura 2.6
Pentru a include un pachet în pagină sau în fișierul de layout se pot folosi metodele Styles.Render și Scripts.Render pentru a include stiluri și respectiv fișiere script.
Odată definită o pagină, aceasta va avea și un controller aferent, care va face legătura dintre interfața aplicației și partea de back-end. Un controller poate avea mai multe metode definite ce vor fi apelate din ecran. Unele metode vor fi apelate folosind link-uri clasice (HTTP GET), sau cu ajutorul butoanelor de submit (HTTP POST), ce vor determina reîncărcarea paginii sau redirecționarea la pagina cerută. Pentru a actualiza conținutul unei porțiuni de pagină fără a reîncărca toata pagina se vor folosi cereri Ajax. Acestea pot fi realizate folosind JavaScript sau cu ajutorul helper-elor de formulare puse la dispoziție de platformă. O cerere Ajax trebuie să conțină:
tipul cererii (GET sau POST)
datele ce vor fi transmise
adresa la care cererea va fi făcută
funcția de succes
Datele pe care cererea Ajax le va transmite server-ului trebuie să fie în formatul și cu denumirea așteptată de server, altfel cererea va fi considerată invalidă. Cu ajutorul funcției serialize() se poate transmite un formular întreg serverului, fără a ne mai preocupa de extragerea datelor din formular și transmiterea lor explicită. În cazul în care se alege să se transmită un formular, metoda care va primi cererea se va aștepta să primească un obiect.
Adresa la care va fi trimisă cererea va fi de forma ”Controller/Metodă” și ea reprezină un apel de metodă. Funcția de succes tratează ceea ce se va întâmpla cu răspunsul trimis de server în cazul în care cererea a fost făcută cu succes. Pentru a actualiza o secțiune a paginii se va folosi metoda .html(răspuns).
O cerere Ajax poate avea și alte proprietăți, cum ar fi: cache, async, funcția de eroare (în care vor fi tratate cazurile în care cererea nu se face cu succes), funcția complete (care va conține cod ce se va executa indiferent dacă cererea a fost făcută cu succes sau nu) și altele.
Ajax este un instrument foarte util care a ajutat la dezvoltarea internetului și a aplicațiilor web datorită faputlui că ca nu se vor mai reîncărca paginile la fiecare cerere făcută către server, dând impresia utilizatorului că navigarea și comunicarea cu server-ul se face mai cursiv.
Un apel Ajax are următoarea formă generală:
Figura 2.7
În urma unui cereri HTTP se apelează o metodă dintr-un controller. Această metodă va apela o metodă din WebApiProxy care, la rândule ei va apela Web API și va întoarce, în funcție de nevoie, un ecran parțial, o funcție de JavaScript sau va redirecta utilizatorul către o pagină nouă.
Pentru a îmbunătpți interacțiunea cu utilizatorul s-au folosit metode de JavaScript. Acestea se află organizate în fișiere specifice JavaScript cu extensia .js. Fișierele se regăsesc în folderul Scripts și prezintă o organizare în funcție de scopul pe care îl deservesc.
WebApiProxy
WebApiProxy este un proiect de tip class library care încapsulează în clase și metode cererile pe care proiectul WebSite la va face la Web API. S-a ales această metodă deoarece este mai simplu și elegant ca acestea să fie încapsulate în clase și metode cu nume sugestive. În acest fel programatorul care lucrează la partea de interfață nu trebuie să știe la ce adresă se află API-ul și la ce controller și metodă să facă apelul, făcând astfel procesul de dezvoltare mult mai ușor și fluid.
Figura 2.8
Fiecare metodă din clasele acestui proiect face un apel la Web API și returnează un răspuns apelatorului. Pentru a face acest lucru generic s-a creat o clasă RequestResponse care conține doua metode, una pentru cele doua verbe folosite pentru comunicarea cu serverul de Web API, și anume, GET și POST. Aceste două metode sunt generice și primesc ca și parametri:
object model: este de fapt obiectul (informația) pe care interfața grafică o trimite API-ului pentru a fi procesat
controller
metododă
Ambele funcții returnează un obiect de tip T, tip cu care se face apelarea acestora sub forma:
Figura 2.9
În figura 2.8 se face un apel la metoda ”Post” din clasa ”RequestRespone” cu tipul string și cu parameteri: un obiect serverConnection, la controller-ul ”Login” și la metoda ”Login”. Apelul returnează un obiect de tip string.
Folosind acest mecanism se tranferă responsabilitatea de a ști despre Web API (localizare, metode oferite) de la interfață (proiectul EQuery.WebSite) la proiectul EQuery.WebApiProxy făcând astfel procesul de dezvoltare mai cursiv și oferind o decuplare a proiectelor. Astfel, daca API-ul își schimbă adresa, aceasta va trebui modificată într-un singur loc (în clasa ”RequestResponse”).
Proiectul EQuery.WebAPI
Pentru a crea proiectul ce deservește ca web API, s-a creat un proiect de tip ASP.NET Web API folosind limbajul C#, acesta se poate folosi și înpreună cu Visual Basic. Structura proiectului este foarte asemănătoare cu cea a site-ului. Și acest tip de proiect, ca și EQuery.WebSite folosește clase de tip controller pentru a primi cereri și a returna răspunsuri apelantului însă aceste controllere derivă din clasa ApiController.
Figura 2.10
În figura 2.9 se poate observa structura proiectului WebApi și cat de mult acesta seamănă cu cea a proiectului WebSite, prezentând o mulțime de elemente comune.
Acest proiect este de fapt legătura dintre layer-ul de prezentare a aplicației și layer-ul de business a acesteia. Toate acțiunile întreprinse de utilizator vor trece prin acest proiect cu scopul de a ajunge la layer-ul de logică a aplicației pentru a fi prelucrate și interpretate.
Proiectul EQuery.BLL
Poriectulul BLL (Business Logic Layer) conține toată logica de aplicație, acesta realizează toate procesările pe care utilizatorul le cere.
Este împărțit în mai multe clase, fiecare după tipul de obiect pe care îl procesează: tabel, procedură stocată, funcție sau view. Acesta mai conține o clasă care realizează conexiunea la baza de date.
Figura 2.11
EQuery.Data
EQueary.Data este proiectul care accesează baza de date. Este singurul proiect care face acest lucru, el fiind apelat doar de către EQuery.BLL. Rolul acestuia este să facă legătura dintre aplicație și baza de date accesată de către utilizator.
Ca și EQuery.BLL și acest proiect este împărțit în clase în funcție de obiectele pe care acesta le prelucrează: tabele, proceduri stocate, funcții și view-uri, plus clasa care testează conexiunea la baza de date.
Această separare face posibilă accesarea bazei de date fără a fi deranjați de logica sau regulile aplicației aplicației, fiecare metodă având rolul exclusiv de a aduce date sau de a scrie date în baza de date.
Figura 2.12
Pentru a accesa baza de date s-a folosit obiecte împreună cu metodele lor din biblioteca ADO.NET.
ADO.NET reprezintă un set de clase al căror rol este să expună serviciile de acces a bazei de date pentru platforma .NET. Aceasta este folosită de programatori pentru a accesa serverle de baze de date într-un mod simplificat și comprehensibil. ADO.NET este împărțit în două nivele: nivelul furnizor de date și nivelul consumator. Furnizorul de date poate fi un o bază de date SQL Server, un fișier Excel, o bază de date Access, iar consumatorul este aplicația care folosește baza de date.
Pentru a accesa o bază de date cu ajutorul ADO.NET și a aduce date sau a modifica date sunt necesari câțiva pași:
Crearea unei conexiuni -folosind clasa SqlConnection
Crearea unei comenzi – comanda poate să fie de tip text sau poate să fie numele unei proceduri stocate ce va fi apelată
Adăugarea de parametri (unde este cazul)
Executarea comenzii
Citirea rezultatului (unde este cazul)
EQuery.Entities
Acest proiect conține toate modelele folosite în afișarea aplicației precum și în prelucrarea logică a acesteia. Există modele care sunt reprezentări abstracte a unor obiecte regăsite într-o bază de date, cum ar fi modele de tabele, proceduri stocate, funcții și modele ale căror scop este să faciliteze transferul de date între layer-ele aplicației sau comunicarea dintre interfață și web API.
Layer-ul de business, interfața precum și API-ul web operează cu aceste modele, primindu-le ca și parametri în metodele lor, sau returnându-le în urma unor cereri.Există modele care sunt populate din baza de date.
Figura 2.13
Procesul Interfață-Proxy-WEB API-BLL-Data
Workflow-ul aplicației
De la interfața grafică și până la baza de date, aplicația trecele prin toate layer-ele descries mai sus. Fiecare layer primește informații de la layer-ul care îl apeplează, procesează acele informații, iar mai apoi, trimite acele informații următorului layer.
Acest workflow se desfășoară în felul următor:
Din interfața grafică (View) utilizatorul face un apel HTTP (POST sau GET) către un anumit controller și o anumită metodă din respectivul controller
Apelul HTTP este redirectat, prin sistemul de rutare a platformei, în controller-ul și metoda specificată de interfață
În metoda din controller care prelucrează cererea se apelează o metodă din clasele care încapsulează apelul la web API (EQuery.WebApiProxy) și se așteaptă raspuns
Metoda din WebApiProxy face un apel HTTP (POST sau GET) la serviciul de web API, specificâd controller-ul si metoda care va primi apelul
Serviciul de web API, în controller-ul și metoda specificată de apelant , va apela layer-ul de business care va procesa informația transmisă de utilizator și va apela layer-ul de bază de date pentru a adduce informațiile cerute de către acesta.
Layer-ul de baze de date primește apelul layer-ului de business, va accesa baza de date și îi va răspunde acestuia cu informațiile cerute.
Layer-ul de business primește răspunsul, transformă datele în modele folosite pentru comunicare pe care le trimite înapoi pe web service, clasei din WebApiProxy
Clasa din WebApiProxy trimite răspunsul metodei care a apelat-o
Controller-ul trimite interfeței răspunsul corespunzător
Interfața afișează răspunsul primit de la controller
Instalarea aplicației
Aplicația se poate instala pe doua servere: unul care va ține aplicația MVC iar celălalt serviciul web.
Pentru a instala aplicația pe un server web, este nevoie de IIS (Internet Information Service) care este un server web oferit de Microsoft, securizat și ușor de folosit și de configurat.
Capitolul 3: Utilizarea aplicației
EQuery este un client de SQL Server bazat pe tehnologii web al cărui scop este să faciliteze accesul la un server de baze date SQL Server fără a mai fi nevoie de alte aplicații instalate pe mașină.
Aplicația se poate conecta la un server local, pe mașina pe care este găzduită aplicația, sau la un server remote care acceptă conexiuni remote. Utilizator va depinde doar de o conexiune la internet și de un navigator web.
EQuery pune la dispozișia utilizatorului o aplicație cu interfață grafică prietenoasă și atractivă și toate facilitățile majore ale unui client SQL Server desktop.
Ecranul de start
Figura 3.1
Primul ecran pe care utilizatorul îl va întalni la intrarea în aplicație este unul simplu și elegant, care oferă opținuea ca acesta să se conecteze la un server SQL.
În secțiunea de sus acesta poate alege să intre pe alte câteva pagini, cum ar fi pagina Despre (About) sau pagina de Contact.
Butonul ”Learn more” va duce către o pagină în care utilizatorul poate afla mai multe aplicații despre cum funcționează și cum se utilizează aplicațiea.
Ecranul de conectare
Figura 3.2
În ecranul de conectare utilizatorul va avea la dispoziție trei casete de text pentru a-și introduce datele de conectare la server.
Precum se vede în figura 3.2, prima casetă este folosită pentru a introduce adresa mașinii pe care se află serverul de SQL. În a doua casetă utilizatorul va trebui să introducă numele de utilizator cu care se va conecta la server, iar în cea de-a doua căsuță, acesta trebuie să introducă parola.
În cazul în care utilizatorul dorește șă se conecteze la o un server care se află pe mașina pe care este gazduită aplicația (local), acesta trebuie să introducă în casuța ”Server Address” numele instanței de SQL Server pe care dorește să o acceseze (vezi figura 3.3)
Figura 3.3 Acces server local
Pentru cazul în care utilizatorul dorește să se conecteze la un server remote, acesta va trebui să introducă adresa de IP a mașinii pe care este instalat serverul de SQL (vezi figura 3.4)
Figura 3.4 Acces server remote
Odată ce a introdus toate datele, utlizatorul va acționa butonul ”Login” pentru a se putea conecta la server (Vezi figura 3.5).
Figura 3.5
Odată ce utilizatorul a apăsat butonul ”Login”, aplicația va încerca să acceseze serverul pe care acesta l-a introdus în caseta de dialog. În cazul în care adresa server-ului, numele utilizatorlui sau parola, dar și în cazul în care serverul este setat să nu primească conexiuni remote, utilizatorul va primi un mesaj de eroare (figura 3.6) prin care va fi avertizat de faptul că aplicația nu a reușit să acceseze serverul din unul din motivele enumerate mai sus.
Figura 3.6 Conexiune invalidă
Ecranul principal
În cazul în care conexiunea este una validă și serverul de baze de date recunoaște datele de autentificare a utilizatorului, acesta va fi redirecționat către pagina principală a aplicației.
În această pagină, utilizatorul are posibilitatea de:
a-si alege baza de date pe care vrea să o acceseze
să vadă afișate toate tabele ale bazei de date
toate procedurile stocate ale bazei de date
toate view-urile bazei de date
toate funțiile bazei de date
Figura 3.7
În figura 3.7 se poate observa structura ecranului principal care conține:
Secțiunea din partea stângă a ecarnului compusă din:
Un control de tip dropdown care conține, ca și elemente, toate bazele de date disponibile pe server
O listă cu toate elementele bazei de date selectate organizate pe tabele, proceduri stocate, view-uri și funcții
Secțiunea din partea dreaptă a ecranului compusă din:
O zonă de text în care utilizatorul va introduce textul interogărilor la baza de date
O zonă de rezultate care va afișa raspunsul serverului la interogarea primită
Aplicație este foarte ușor de folosit de către utilizator și intuitivă deoarece interfața grafică este foarte similară cu a altor clienți de SQL Server, facănd astfel navigarea și utilizarea foarte facilă.
Pentru a alege o bază de date anume utilizatorul trebuie să selecteze din controlul de tip dropdown numele acesteia (figura 3.8)
Figura 3.8
Odată selectată o bază de date, componentele sale vor fi încărcate în lista de mai jos, iar toate interogările care se vor face, vor folosi respectiva bază de date.
Utilizatorul are posibilitatea de a desfășura lista ce conține componentele bazei de date pentru a putea vedea elementele acesteia precum și detalii (vezi figura 3.9, 3.10, 3.11), cum ar fi:
coloanele tebelelor
indexatorii tabelelor
chei
parametri de proceduri stocate
parametri de funcții
coloane de view-uri
De fiecare dată când utilizatorul schimbă baza de date, lista cu componente se reîncarcă cu elementele bazei de date selectate. Ca acest lucru să fie făcut mai eficient, se folosește un apel Ajax care reîncarcă doar list, nemai fiind necesară reîncărcarea întregii pagini
Figura 3.9 Tabelele desfășurate
Figura 3.10 Procedurile stocate desfășurate
Figura 3.11 Funcțiile și view-urile desfășurate
Interogarea bazei de date
Pentru a face interogări la baza de date, utilizatorul va folosi zona de text din sânga ecranului pentru a introduce textul interogării (figura 3.12).
Figura 3.12 Caseta de text pentru interogări
După ce a introdus textul interogării pe care o dorește, utilizatorul va acționa butonul ”Run Query” pentru a trimite interogarea la server-ul de baze de date. În cazul în care interogarea nu este una validă utilizatorului i va afișa mesajul de eroare trimis de către server (vezi figura 3.13)
Figura 3.13 Eroare interogare invalidă
Dacă interogarea este una validă serverul va trimite utilizatorului rezultatele acesteia. În cazul unei interogări de tip select sub caseta de text se va afișa un tabel cu rezultatele returnate (figura 3.14), iar dacă interogarea este de tip insert, update, sau delete, serverul va returna numărul de rânduri afectate de către interogare ( figura 3.15)
Figura 3.14 Rezultate pentru comandă de tip select
Figura 3.15 Rezultatul comenzii delete
Utilizatorul are la dispoziție opțiunea de a lucra cu mai multe file de lucru, astfel acesta poate adăuga și șterge file în funcție de necesități (figura 3.16). Folosind butonul ”+”, utilizatorul poate adăuga o filă, și folosind butonul ”-” acesta poate șterge fila selectată. Pentru a preveni un mediu de lucru prea încărcat numărul maxim de file pe care un utilizator îl poate crea este zece.
Figura 3.16
Aplicația pune la dispoziția utilizatorului o opțiune de a genera automat script-uri pentru tabele, proceduri stocate, funcții și view-uri . Script-urile generate pot fi:
de creare funcție, procedură sau tabel
alterare funcție, procedură sau tabel
ștergere a obiectelor din baza de date
select, insert, update, delete a unui tabel
Pentru a realiza acest lucru, utilizatorul trebuie să acționeze butonul ”+”din dreptul obiectul al cărui script dorește să-l genereze și să selecteze tipul de script dorit (figura 3.17), o noua filă se va deschide, iar căsuța de text a acestei file va fi poplată cu textul scriptului.
Figura 3.17 Meniu generare script pentru tabele
EQuery este o aplicație web pentru accesarea serverlor de baze de date de tip SQL Server, așadar, utilizarea acesteia necesită o conexiune la internet și un navigator web.
Concluzii
Tema aplicației prezentată în lucrarea de față a fost aleasă datorită dorinței de aprofundare a tehnologiilor web oferite de Microsoft, precum și din dorința a replica un client de SQL Server într-o interfață web, usor accesibilă și de folosit care să ofere utilizatorului o experiență cât mai apropiată de ce cea a folosirii unei aplicații desktop.
Am ales folosirea de servicii web pentru a încapsula logica de aplicație tocmai din dorința de a continua acest proiect și în alte forme de prezentare. Serviciile web create pentru această aplicație pot fi refolosite alte aplicații de tip client SQL Server.
În urma dezvoltării aplicației EQuery am dobândit numeroase cunștințe folositoare în dezvoltarea de aplicații web precum și în crearea și folosirea de servicii web.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sql Management Studio Online (ID: 146888)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
