Aplicatie Bancara Online Pentru Credite de Consum Dezvoltata Prin Tehnologii Microsoft
– Capitolul 1 –
Cum functioneaza o aplicatie Web
Introducere
Inainte de a intelege ce poate face o aplicatie C# trebuie inteles ce se intampla cu o cerere web in general. Deoarece in majoritatea cazurilor o aplicatie web este o simpla combinatie de pagini HTML si pagini dinamice mult mai complexe, trebuie inteles cum rezolva serverul cererile ce nu necesita cod. O cantitate insemnata de negociere si transfer de date se intampla inainte ca cererea utilizatorului sa ajunga la cod.
O aplicatie web este impartita in cel putin doua parti – clientul si serverul. Scopul acestui capitol este de a arata cum comunica clientul si serverul. In plus, se va arata cum C# se integreaza in acest proces de comunicatie.
Cum functioneaza o cerere Web
O cerere web are necesita doua componente: un server web si un client. Clientul este in marea majoritate un browser, dar poate fi si alt tip de program, cum ar fi de exemplu un spider(un program ce viziteaza link-urile web, adunand informatii) sau un agent (un program ce are sarcina sa gaseasca informatii specifice, utilizand in cele mai multe cazuri motaorele de cautare), o aplicatie executabila standard, un dispozitiv wireless etc.
Serverul si browserul sunt de obicei pe calculatoare separate, dar aceasta nu este o cerinta. Poti folosi un browser care sa acceseze pagini de pe u nserver web care ruleaza pe acelasi calculator.
Atat serverul cat si clientul folosesc un protocol definit pentru a comunica intre ele. Un protocol este pur si simplu o metoda agreata pentru initierea sesiunirol de comunicare, trecand informatia inainte si inapoi, si apoi incheind sesiunea. Cateva protocoale sunt folosite pentru cumunicatiile web; cele mai intalnite sunt Hypertext Transfer Protocol (HTTP), Secure Hypertext Transfer Protocol(HTTPS), File Transfer Protocol(FTP) si Network News Transfer Protocol(NNTP). In afara protocolului folosit, cererile web se bazeaza pe protocolul de retea numit Transmission Control Protocol/Internet Protocol (TCP/IP), protocol standard de comunicare globala ce determina regulile de baza pe care cele doua calculatoare le urmaresc in schimbul de informatii.
Serverul asteapta pana cand ajunge o cerere pentru a initializa comunicatia. Intr-o aplicatie web clientul intotdeauna trimite initializarea pentru a incepe o sesiune – serverul poate doar raspunde. Initializarea sesiunii consta intr-o serie definita de biti. Continutul bitilor nu este important – singurul lucru important este ca ambele calculatoare sa recunoasca seria de biti ca si initailizare. Cand serverul primeste cererea de initializare, el anunta tranmisia prin trimiterea unei alte serii de biti catre client.
Cerere client
Cand se scrie o cerere intr-un browser sau se apasa un hyperlink, browserul impacheteaza cererea si trimite o portiune importanta a URL-ului, numita domain name, sau numita in mod curent server DNS. Serverul de nume pastreaza o baza de date cu numele, fiecare cu adresa IP asociata. Computerele nu inteleg foarte bine cuvintele, asadar serverul traduce adresa solicitata intr-un numar. Textul care apare de obicei intr-un link sau in bara de adrese este o versiune prietenoasa a unei adrese IP.
Fiecare adresa IP identifica in mod unic un singur calculator. Daca primul server de nume nu are adresa ceruta in baza de date, automat il trimite ma ideparte catre serverul aflat mai sus in ierarhie. Eventual, daca nici un server de nume nu poate traduce numele cerut in adresa IP, cererea ajunge la unul din serverele ce detine toate IP-urile publice inregistrate. Daca nici un server nu reuseste sa traduca adresa, raspunsul de eroare ajunge inapoi la browser, de la u nserver la altu in ierarhie inversa. In acest moment se va vedea mesajul de eroare.
Daca serverul de nume gaseste o intrare pentru adresa IP a cererii, va introduce cererea in cache, astfel incat sa nu mai ajunga la serverele aflate mai sus in ierarhie. Perioada pana ajunge in cache se numeste Time to live (TTL), astfel incat daca cererea depaseste TTL, atunci serverul va trimite ma ideparte cererea. Serverul de nume va intoarce la browser adresa IP, ce va fi folosita la contactarea serverului ce are atribuit IP-ul respectiv.
Asadar, procesul afisarii paginii web consta in mod obisnuit intr-o serie de conversatii scurte intre browser si server. In mod obisnuit, browser-ul primeste pagina principala, o analizeaza in vederea altor referinte, si apoi incepe afisarea paginii principale in timp ce cere fisierele referite. Asta e un motiv pentru care se vad mai intai locurile defaisrea ale imaginilor cat timp se incarca pagina. Pagina principala contine referinte catre alte fisiere care contin imagini, dar pagina principala nu continea ea insasi acele imagini.
Cum raspunde serverul web – pregatirea
Din punctul de vedere al serverul web, fiecare conversatie inseamna un contact nou nout. In mod implicit, serviciile unui server web merg pe principiul primul venit – primul servit. Serverelw web nu „isi amintesc” un anumit browser de la o cerere la alta.
Browserele si serverele moderne folosesc versiunea 1.1 a HTTP, ce implementeaza conexiunile keep-alive. Aceasta inseamna ca, odata realizata, conexiunea poate fi pastrata activa pe timpul mai multor cereri. In ciuda conexiunilor HTTP keep-alive, fiecare fisier trimis necesita o cerere separata si un ciclu de raspuns.
Parte din URL
Linia scrisa in campul de adresa al browserului pentru a accesa u nfisier este numita Uniform Resource Locator(URL). Serverul actioneaza o procedura standard pentru a servi fiecare cerere. In primul rand analizeaza cererea prin separarea URL-ului cerut in partile componente: slah-uri, coloane, puncte, semne de intrebare si ampersant – tot numiti delimitatori – fac mai usoara impartirea. Fiecare parte are o functie specifica. Un exemplu de URL:
http://www.microsoft.com:80/CSharpASP/default.htm?Page =1&&Para=2
Explicatii:
http protocol. Spune serverului ce protocol ar trebui sa foloseasca pentru a raspunde la cerere.
www.microsoft.com Nume domeniu. Aceasta parte a URL-ului translateaza catre adresa IP. Domeniul insusie e format din mai multe parti: numele gazda:www; numele de domeniu, microsoft; si numele domeniului Internet,com.
80 Numar port. Un server web are mai multe porturi. Fiecare arata un loc unde serverul „va asculta” dupa comunicatii.
Csharp Director virtual. Serverul traduce acest nume intr-o cale fizica pe har drive. Un director virtual este un nume scurt, un pointer ce face referinta la un director fizic. Numele directoarelor fizice si virtuale ar trebui sa nu fie la fel.
Default.htm Numele fisierului. Serverul va intoarce continutul fisierului. Daca fisierul va fi recunoscut ca executabil de catre web server (cum ar fi ASP), serverul va executa codu lde program din fisier si va intoarce rezultatele. Daca fisierul nu este recunoscut, serverul ofera posibilitatea descarcari iacelui fisier.
?(semn intrebare) Separator. Semnul de intrebare separa fisierul cerut de anumiti parametrii trimisi odat acu cererea. In exemplu URL acesta contine 2 parametrii: Page=1 si Page=2.
Page. Nume parametru. Programele, cum ar fi paginile ASP, pot citi parametrii si sa se foloseasca pentru a furniza informatii.
= (semnul legal). Separator. Semnul egal separa numele parametrului de valoarea parametrului.
1 Valoare parametru. Parametrul numit Page are valoarea 1. De notat ca browserul trimite toate valorile parametrilor ca si sir de date. Un sir inseamna o serie de caractere.
& (Ampersand) Separator. Ampersandul separa parametrii.
Para=2 Parametru si valoare.
Serverul traduce calea
Cererile web nu contin calea reala sau fizica; in schimb, cererile se fac folosind pagini virtuale. Dupa analiza URL, serverul traduce calea virtuala in cale fizica. .
Serverul aloca resursele
Serverul verifica pagina ceruta. Daca nu exista, serverul intoarce un mesaj de eroare – de obicei HTTP 404 – File Not Found.
Serverul verifica nivelul de acces
Dupa localizarea resursei, serverul verifica daca contul care a realizat cererea are un nivel suficient de acces pentru acea resursa. In mod implicit, Internet Information Server (IIS) cere folosirea unui cont special numit IUSR_Machinename, unde Machinename este numele calculatorului server. In cele mai multe cazuri acest cont poarta numele de cont „anonim”, deoarece serverul nu cunoaste nici o informatie reala despre userul ce realizeaza cererea. Pentru paginile ASP.NET, IIS foloseste contul SYSTEM sau alt cont guest numit aspnet_wp_account in mod implicit.
Cum raspunde un server web
IIS diferentieaza diferitele tipuri de fisiere dupa extensie (de exemplu .asp, .htm, .exe etc) ca si Windows Explorer. Cand se realizeaza un dublu click pe un fisier sau o iconita in Windows Explorer, se verifica extensia fisierului in registry, o baza de date speciala ce retine informati idespre sistem si aplicatii. Registrul contine o intrare pentru fiecare tip de extensie inregsitrata. Fiecare extensie are asociata un tip de fisier. Fiecare tip de fisier are asociat un fisier executabil. Serverul extrage extensia din numele fisierului, cauta programul asociat si lanseaza in executie programul
Alte servere web folosesc extensiile de fisier pentru a determina cum sa proceseze o cerere de fisier, dar nu folosesc asociatiile din registrii. De exemplu tipul MIME.
Majoritatea serverelor web au ca metoda de rezolvare a cerintelor catre fisierele a caror extensie nu o cunosc, oferirea spre descarcare. Unele servere asigura deasemnea o actiune implicta daca se face cerere catre un URL care nu contine un fisier. In acest caz, majoritatea serverelor incearca sa reintoarca un fisier dintr-o lista de nume implicite – de obicei un fisier numit default.htm sau index.htm. Aceasta lista se poate configura, atat in mod global pentru toate directoarele virtuale, cat si pentru fiecare director virtual separat.
Serverul poate incepe transmisia raspunsului inapoi la client imediat ce se genereaza, sau il poate tine in memorie pana cand se formeaza tot raspunsul si apoi sa il trimita. Raspunsul are doua componente: capul raspunsului si corpul raspunsului. Prima parte contine informatii despre tipul raspunsului. Pe langa altele , prima parte poate contine:
un cod de raspuns
tipul MIME al raspunsului
data si timpul dupa care raspunsul nu mai este valid
un URL pentru redirectare
orice valoare cookie pe care serverul va dori sa o retina la client
Cookie-urile reprezinta siruri text pe care browser-ul le salveaza in memorie sau pe hard drive-ul calculatorului client. Cooki-urile se pot pastra pe durata sesiunii browserului sau se pot pastra pana la o data de expirare specificata. Browserul trimite cooki-urile asociate cu un site inapoi la server cu fiecare cerere catre acel site.
Ce face clientul cu raspunsul
Clientul, de obicei un browser, trebuie sa cunoasca tipul continutului cu care raspunde serverul. Clientul citeste tipul MIME al header-ului pentru a determina tipul continutului. Pentru cele mai multe cereri, tipul MIME este ori text/html, ori un tip imagine, cum ar fi image/gif, dar poate fi totodata un fisier video sau audio, o animatie, sau orice alt tip. Browserele, ca si serverele, folosesc valoriile din registrii si tipul MIME pentru a determina modul de afisare al fisierului.
Cand corpul raspunsului este HTML, browserul analizeaza fisierul pentru a separa continutul. Apoi va folosi inceputul fisierulu ipentru a detrrmina modul de afisare a continutului pe ecran. Fisierele HTML moderne pot contine cateva tipuri diferite, cum ar fi text si imagine. Browserele se ocupa de fiecare in mod diferit.
Cascading Style Sheets. Acestea sunt fisiere text intr-un format specific ce contin directive despre cum este formatat continutul unui fisier hTML. Browserele moderne folosesc Cascading Style Sheet(CSS) pentru a desemna fonturi, culori, margini, vizibilitate, pozitionare si alte informatii despre formatare a elementelor de pe pagina. Stilurile CSS pot fi ocntinute intr-un tag, pot fi asezader-ului pentru a determina tipul continutului. Pentru cele mai multe cereri, tipul MIME este ori text/html, ori un tip imagine, cum ar fi image/gif, dar poate fi totodata un fisier video sau audio, o animatie, sau orice alt tip. Browserele, ca si serverele, folosesc valoriile din registrii si tipul MIME pentru a determina modul de afisare al fisierului.
Cand corpul raspunsului este HTML, browserul analizeaza fisierul pentru a separa continutul. Apoi va folosi inceputul fisierulu ipentru a detrrmina modul de afisare a continutului pe ecran. Fisierele HTML moderne pot contine cateva tipuri diferite, cum ar fi text si imagine. Browserele se ocupa de fiecare in mod diferit.
Cascading Style Sheets. Acestea sunt fisiere text intr-un format specific ce contin directive despre cum este formatat continutul unui fisier hTML. Browserele moderne folosesc Cascading Style Sheet(CSS) pentru a desemna fonturi, culori, margini, vizibilitate, pozitionare si alte informatii despre formatare a elementelor de pe pagina. Stilurile CSS pot fi ocntinute intr-un tag, pot fi asezate intr-o zona separata dintr-o pagina HTML, sau poate exista intr-un fisier separat pe care browserul il acceseaza dupa ce analizeaza pagina principala, dar inainte de afisarea continutului pe ecran.
Script. Toate browserele moderne pot executa JavaScript, chiar daca nu il executa in acelasi mod.
ActiveX Components or Java Applets. Aceste programe mici se executa la client mai mult decat la server. Componentele ActivX ruleaza numai in Internet Explorer sau pe paltforma Windows, pe cand appleturile Java ruleaza pe aproape toate browserele si toate platformele.
XML Extensible Markup Language (XML) este similar cu HTML – amandoua se bazeaza pe taguri si continut. Aceasta nu e o surpriza, deoarece amandoua deriva din Standard Generalized Markup Language (SGML).
Introducere in paginile web dinamice
Procesul client-server-client este important deoarece se intampla de fiecare data cand clientul contacteaza serverul pentru a prelua date. Aceasta se itnampla intr-un mod diferit fata de modelul client-server descris mai inainte. Deorece serverul si clientul nu cunosc nimic unul despre celalalt, pentru fiecare interactiune, trebuie trimis, initializat si restaurat valorile apropiate pentru a mentine continuitatea aplicatiei.
Ca un exemplu simplu,, se spunem ca avem un site securizat cu un formular de autentificare. Intr-o aplicatie standard, dupa ce userul se autentifia, aceasta ramane singura autentificare necesara. De fapt acest lucru inseamna ca utilizatorul s-a autentificat pe toata durata aplicatiei. In contrast, cand autentificarea se realizeaza pe un site securizat doar prin utilizator si parola, serverul trebuie sa realizeze reautentificarea pentru fiecare cerere efectuata.
Acesta este unul din motivele pentru care aplicatiile dinamice au devenit asa populare. Intr-un site ce permite conexiuni anonime, utilizatorii se pot autentifica numai prin compararea valorilor utilizator/parola cu cele reale stocate pe un server. In timp ce HTML este un limbaj adecvat pentru afisare si nu este un limbaj de programare, este nevoie de cod pentru autentificarea utilizatorilor.
Un alt motiv pentru care paginile dinamice au devenit asa populare este faptul schimbarii informatiei. Paginile statice sunt foarte bune pentru articole, lucrari pentru scoala, carti si imagini – in general, pentru informatii al caror continut nu se schimba decat foarte rar. Dar paginile statice nu sunt deloc adecvate pentru a nota informati idespre angajati, liste de contacte, informatii de tip calendar, stiri, meciuri sportive – in general, date cu care interactionezi zi de zi. Datele se schimba prea des pentru a folosi cu succes paginile statice.
Avantajele C# in aplicatiile web
C# este un instrument extrem de puternic pentru crearea de aplicatii pentru platforma Windows. Dar nu este,cu siguranta, singurul instrument pentru a realiza acest lucru. Sunt si alte limbaje de programare care pot face acest lucru, dar prin faptul ca asigura suport intern pentru anumite tipuri de aplicatii, ofera managementul memoriei si dezvoltare orientata obiect, C# reduce foarte mult efortul implicat in crearea de aplicatii.
Serviciile web
Un serviciu web nu este mai mult decat o interfata web ctre obiecte ce ruleaza pe server. Este similar cu vechiul DCOM. DCOM oferea posibilitatea lansarii aplicatiilor si folosirea aplicatiilor de la distanta si a DLL-urilor ca si cu mar fi rulat de pe masina locala. Realiza acest lucru prin crearea de proxiuri la ambele capete ale tranzactiei. DCOM impacheta apoi functia, subrutina, metoda sau proprietatea apelata de aplicatia local impreuna cu alti parametrii si o trimitea catre server prin retea. Serverul despacheta aceste valori, lansa obiectul sau aplicatia si realiza apelarea prin transmiterea parametrilor. Operatia inversa se intampla cand se reintorc valorile. DCOm foloseste un instrument de impachetat binar foarte eficient pentru a transmite datele prin retea.
Serviciile web realizeaza exact aceleasi sarcini ca si DCOM – te lasa sa folosesti obiecte aflate la distanta. Dar folosesc un alt fel de sistem, numit Simple Object Access Protocol(SOAP), pentru a impacheta apelarea si parametrii. SOAP este un fisier text. El foloseste XML pentru simplificarea sintaxei si identificarea diferitelor tipuri de valori de date necesare aplearii la distanta. Deoarece SOAP este un fisier text, poate trece peste protectia firewall. Oircum, SOAP nu este un necesar pentru realizarea de apelari la distanta; este pur si simpu un standard si astfel reprezinta un convenient in al folosi.
C# si Visual Studio au suport extins pentru SOAP. In fapt, folosirea SOAP in C# este transparent. Cadrul de lucru .NET are grija de toata tranlsatarea valorilor si problemelor de transport, lasand programatorul sa se ocupe doar de scrierea codului de aplicatie. Procesul crearii unui serviciu web este foarte similar cu procesul de creare a unui DLL COM.
Cea mai mare problema cu serviciul web si SOAP este performanta; nu este deloc simplu si eficient sa translatezi valorile din si intr-o reprezentare text asa cum este sa le translatezi dintr-u nformat binar ca cele folosite de DCOM si CORBA.
Aplicatii client – Formularele Web
C# lucreaza impreuna cu ASP.NET pentru a crea formulare web. Un formular web este un formular HTML integrat cu cod C#. Aplicatiile se creeaza prin drag & drop al controalelor pe suprafata formularului. Dupa ce se aseaza controlul in pozitia dorita, printr-un dublu click se poate edita codul corespunzatoru unui eveniment al acelui control .Formularele web suporta majoritatea controalelor Windows, cum ar fi controalele text, etichetele, listele etc. Suporta chiar si controalel invizibile, cum ar fi timerele.
ASP.NET
Ce este ASP.NET?
Ce este ASP.nET? Desi pare o intrebare simpla, nu este asa. Deoarece ASP.NET este parte din cadrul de lucru .NET, este disponibil numai pe serverele cu acest cadru de lucru instalat. Cu alte cuvinte, nu mai este un add-on. ASP.NET este implementat intr-un ansamblu ce cuprinde clase si obiecte ce realizeaza sarcini predefinite specifice.
Programele ASP.Net sunt aplicatii centralizate gazduite pe unul sau mai multe servere web ce raspund in mod dinamic la cererile clientului. Raspunsurile sunt dinamice deoarece ASP.NET intercepteaza cererile pentru pagini cu extensii specifice, cum ar fi .aspx sau .ascx si are ca datorie sa raspunda la aceste cereri printr-un cod compilat just-in-time(JIT) ce poate construi un raspuns in timp ce acesta este transmis. Figura 1 arata cum ASP.NET se integreaza cu restul componentelor .NET.
FIG.1
Din aceasta figura se observa ca ASP.NET are de a face in mod specific cu fisierele de configurare (web.config si machine.config), fisierele de servicii web (ASMX), si fisierele de formulare web(ASPX). Serverul nu serveste nici unul din aceste tipuri de fisiere – doar intoarce continutul catre client. Fisierele de tip configurare contin partea de initializare si setarile unei anumite aplicatii sau a unei portiuni din aplicatie. Alt fisier de configurare, numit machine.web, contine initializarea la nivel masina. Serverul ignora cerereile pentru fisierele web, deoarece deservirea acestora ar putea constitui un bresa de securitate.
Atat cererile din formularele web cat si a serviciile web pot profita de avantajul securitatii integrate ASP.NET si a accesului la date prin ADO.NET si poate rula cod ce foloseste serviciile sistem in constructia sistemului.
Diferenta majora intre o cerere statica si o cerere dinamica este ca o cerere web tipica se refera la un fisier static. Serverul citeste fisierul si raspunde prin continutul fisierului cerut. Cu ASP.NET nu exista aceasta limitare. Nu trebuie raspuns cu un fisier existent – se poate raspunde la cerere cu ce se doreste, inclusiv cu un fisier HTMl creat dinamic, XML, grafice sau date binare. Deci care sunt diferentele?
Spre deosebire de clasicul ASP, ASP.NET foloseste limbajele .NET. Pentru aceasta trebuie accesata toata puterea unui ansamblu .Net sau clase exact in acelasi mod cum se face pentru orice aplicatie Windows scrisa in C#. Codul ASP.NET exista compilat in ansamblul JIT compilat DLL , ce poate fi incarcat la comanda. Odata incarcat, acest DLL poate deservi cereri multiple.
ASP.NET suporta toate limbajle .NET, deci se pot scrie aplicatiile in orice limbaj modern de programare.
De ce s-a ales ASP.NET?
Primele limbaje erau la inceput doar simple substituiri ale instructiunilor codului masina, dar cum calculatoarele au devenit din ce in ce mai complexe, fiecare generatie noua de limbaje a inceput sa suporte un nivel din ce in ce mai mare de abstractie. Visual Basic, de exemplu, a transformat constructia interfetei intr-un simpla operatiune de drag and drop.
Similar, cand programarea web s-a raspandit peste tot, existau doar cateva aplicatii care sa ajute programatorul in scrierea de cod. Pentru a crea o aplicatie web, trebuia scris initial un cod de comunicatie de nivel jos. Peste ani, nivelul de abstractizare a crescut si el.
ASP.NET este ultima realziare in domeniu, de abstractizare, deoarece te lasa sa lucrezi aporpae exclusiv cu clasele si obiectele de nivel inalt decat cu siurile de date. Fara ASP.NET crerea unei aplicatii web este o sarcina neplacuta. Cu ASP.NET crearea unei aplicati iweb este similara cu crearea unei aplicatii win32.
Schimbari la nivel client
ASP.NET permite crearea de aplicatii web ce interactioneaza cu paginile afisate la distanta. La inceput, clasicul ASP a fost proiectat sa lucreze cu browserele, ceea ce la momentul respectiv inseamna ceva mai mult decat afisarea datelor si imaginilor cu cod HTML. Daca modul de integrare nu s-a schimbat, clientii s-au schimbat dramatic. De exemplu, browserele moderne sunt mai capabile acum decat atunci cand a aparut ASP. Nu numai ca afiseaza datele si imaginile din HTML, ci foloseste si CSS, DHTML, XML, animatii, efecte complexe de imagine, grafica vectoriala, sunet si video – si pot rula cod.
Aplicatii web centralizate
Nu numai browserele s-au schimbat. Aplicatiile web centralizate au castigat mult in planul investitiilor din partea firmelor, ce au din ce in ce mai multa nevoie sa ajunga la clientii aflati la departe sau mobili. Singurul cost efectiv pentru mentinerea acestui tip de client, este crearea unei aplicatii care sa lucreze pe Internet via HTTP, WAP sau alte protocoale avansate. Astfel, aplicatiile web nu mai sunt exclusive, accesibile numai unui webmaster sau specialisiti in dezvoltare; ele au devenit parte integranta a operatiunilor IT.
Interoperabilitate
Ca urmare a tranzitiei de la aplicatiile stand-alone la aplicatiile bazate pe interfete web, alt factor a aparut: interoperabilitatea. Departamentele IT s-au luptat cu interoperabilitatea inca de la inceputurile programarii. Cum numarul calculatoarelor si a aparatelor de calcul a crescut, si problema a crescut. Astazi, calculul nu mai este limitat la calculatoarele de birou sau la laptopuri. Handheld-urile sau calculatoarele de tip notepad, chiar si telefoanele comunica cu serverele web si au nevoie de a afisa datele – cateodata sa ruleze si sa afiseze aceeasi aplicatie ca si un calculator de birou. Similar, departamentele IT ruleaza acum aplicatiile pe mainframa-uri, minicomputere si pe tipuri diferite de servere. Aceste servere sunt construite de diferiti producatori, si de multe ori ruleaza sisteme de operare diferite si incompatibile; si totusi companiile trebuie sa transporte si sa consume date intre aceste maisni, intre baze de date si clienti.
Companiile au atacat interoperabilitatea in mai multe moduri. Au incercat sa limiteze hardware-ul si software-ul – creand standarde pentru calculatoarele de birou, laptop-uri sau dispozitivele mobile. Aceast mod nu a functionat insa ucm trebuie – industria se sechimba intr-un ritm prea rapid. Au incercat sa implementeze Java atat ca platforma, cat si ca limbaj de programare – dar problemele de performanta, slaba cooperare intre marii producatori de soft si nivelul slab comercial – cel putin pana acum – au dus la esecul acestui mod deasemenea. Din fericire, un nou standard si-a facut aparitia – XML.
Standradizare si HTTP
XML asigura o solutie posibila acestor probeleme de interoperabilitate. XML-ul nu este leacul universal, dar asigura un standard si un format de fisier verificabil, ce ajuta la usurarea problemelor ce apar in mutarea datelor de la un server la altul, la fel ca si afisarea datelor identice la clienti diferiti. Standardul XML ajuta pentru ca formatul de fisier este recunoscut universal. XML simplifica programarea pentru ca poate fi verificat prin folosirea unui document type definition (DTD) sau a unei scheme, care arat daca intra-devar fisierul are un anumit format. In sfarsit, formatul XML se transfera foarte bine printr-o conexiune simpla HTTP, evitand astfel problemele cu firewall-urile si cu codul malitios.
Accesarea datelor
Unul din avantajele -sau problemele, depinde de cum se privesc lucrurile – a programarii pe baza COM a fost faptul ca fiecare obiect creat avea un counter de referinta. Cand se crea un obiect, avea ca referinta un counter=1. Cum se adaugau referinte la acel obiect, se apela AddRef pentru incrementarea counterului.
Similar, programatorii in C si C++ distrugeau referinta la obiect decrementand contuarul manual prin apelarea metodei Release. Cand contuarul ajungea la 0, sistemul putea distruge obiectul si sa elibereze memoria imediat.
Una din greselile cele mai intalnite pe care o fac programatorii web incepatori cand acceseaza o baza de date este extragerea exagerata de date. Un motiv pentru care trebuie extrase numai datele de care ai nevoie este clientul. In primul rand pentru ca ma sina client nu poatte procesa atatea date, iar apoi nu este bine pentru interfata.
Alt motiv pentru extragerea numai a datelor de care este nevoie este reducerea incarcarii retelei atunci cand aplicatia ta are nevoie de fapt doar de cateva informatii. Mai ales acum, cand formularele web isi metin starea in mod automat pentru fiecare control de pe pagina, acest proces cerand serverului sa trimita de doua ori volumul de date cu care sa umple controlul, deoarece transmite datele odata pentru control sia a doua oara pentru campul ascuns _VIEWSTATE. Aceasta inseamna ca dureaza aproximativ de doua ori mai mult sa incarci o pagina cand se mentine ViewState pentru controale ca DataGrid sau DataList. Nu numai ca ocupa foarte mult din banda de retea si dureaza pana se descarca, dar formularele web posteaza datele inapoi pe server pentru fiecare eventiment client de pe server. Astfel ,trebuie luat foarte seriso in considerare daca trebuie mentinuta sau n ustarea pentru aceste controale. Astfel, daca se foloseste SQL, nu trebuie extrase coloane care nu sunt necesare. Cand se scrie comanda SQL trebuie evitata extragerea tuturor randurilor si a tuturor coloanelor. Facand acest lucru se va imbunatati in mod automat timpul necesar pentru incarcarea paginii.
In al treilea rand, trebuie luat in considerare impactul pe care il va avea extragerea datelor asypra serverului si retelei. Micile aplicatii C# ruleaza in mod obisnuit atat IIS cat si SQLServer pe aceeasi masina. Aceasta produce un access extrem de rapid la baza de date, deoarece nu exista comunicatii intre masini, desi efectul este redus un pic de faptul ca atat IIS cat si SQLServer isi pastreaza fisierele de evenimente , ceea ce duce cateodata la conflicet I/O, ce incetinesc aplicatia. Firmele mari folosesc de obicei u nserver IIS si o alta masina pentru a deservi ca server SQLServer. Aceasta rezolva problema fisierelor de evenimente, dar totodata inseamna ca IIS va folosi o retea pentru a accesa datele din SQLServer. Astfel, fiecare operatie efectuata creste traficul prin retea, existand astfel posibilitatea aparitiei de blocaje ale aplicatiei. In plus, bazele de date moderne isi pastreaza datele in memoria cache, permitand extragerea unor date mai mari.
La sfarsit, trebuie luat in calcul serverul de baze de date insusi. Ce se intampla cand serverul primeste o interogare? In primul rand, serverul trebuie sa analizeze interogarea, separand diferitele clauze si sa valideze si sa identifice numele de baze de date. Apoi, compileaza interogarea si creaza asa numitul query execution plan, ce identifica indecsii sau indexeaza ceea ce ar fi cel mai eficient si ce acceseaza cel mai des tabelele. In sfarsit, ruleaza planul de executie, identificand paginile disc sau randurile ce trebuie citite pentru a satisface cererea.
Una din solutiile la aceasta problema sunt procedurile stocate. O procedura stocata inseamna o interogare preanalizata si precompilata. Folosirea procedurilor stocate poate creste performanta extragerii de datelor in mod dramatic, daca se planuieste cu atentie si se stocheaza datele in asa fel incat folosirea indecsilor va fi o metoda mai rapida decat scanarea tabelelor. In plus, scrierea interogarilor in proceduri stocate si eliminarea din codul aplicatiei este intotdeauna un lucru bun, deoarece se poate schimba si recompila interogarea pentru a repara unele erori in locul unei recompilari si a unei republicari a aplicatiei.
Introducere in procedurile stocate
O procedura stocata nu este altceva decat o declaratie SQL pregatita special chiar in baza de date. Se pot crea proceduri stocate folosind template-uri din aplicatia SQl Query Analyzer sau prin scrierea si rularea declaratiei CREATE PROCEDURE in Enterprise Manager, printre alte metode.
Crearea de proceduri stocate
Baza de date class records captureaza relatiile dintre Studenti, Profesori si Clase.
SELECT StudentID
FROM TeacherStudent INNER JOIN Teachers
ON TeacherStudent.TeacherID=Teachers.TeacherID
WHERE Teachers.LastName='Franklin' AND Teachers.FirstName='Marsha'
Extragerea datelor folosind procedurile stocate
Se creeaza un nou formular web in Visual Studio .NET. Se adauga un obiect de tip DataGrid in formular si se va binda DataGrid-ul cu SQLCommand.
using System.Data.SqlClient;
using System.Configuration;
private void Page_Load(object sender, System.EventArgs e) {
this.sqlConnection1.Open();
SqlDataReader dr =
sqlCommand1.ExecuteReader(CommandBehavior.SequentialAccess);
DataGrid1.DataSource = dr;
DataGrid1.DataBind();
dr.Close();
sqlCommand1.Dispose();
sqlConnection1.Close();
sqlConnection1.Dispose();
}
Listare a codului autogenerat VS.NET si codul obiectului command
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form
Designer.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Required method for Designer support – do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.sqlConnection1 = new
System.Data.SqlClient.SqlConnection();
this.sqlCommand1 = new System.Data.SqlClient.SqlCommand();
//
// sqlConnection1
//
this.sqlConnection1.ConnectionString =
"data source=localhost;initial catalog=ClassRecords;" +
"persist security info=False;user id=sa;"
"workstation id=RUSSELL-DUAL;packet size=4096";
//
// sqlCommand1
//
this.sqlCommand1.CommandText =
"dbo.[qryStudentsOfMarshaFranklin]";
this.sqlCommand1.CommandType =
System.Data.CommandType.StoredProcedure;
this.sqlCommand1.Connection = this.sqlConnection1;
this.sqlCommand1.Parameters.Add(new
System.Data.SqlClient.SqlParameter("@RETURN_VALUE",
System.Data.SqlDbType.Int, 4,
System.Data.ParameterDirection.ReturnValue, false,
((System.Byte)(10)), ((System.Byte)(0)), "",
System.Data.DataRowVersion.Current, null));
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
Crearea si folosirea procedurilor stocate cu parametrii
public String makeStudentsForTeacherQuery(String firstname,
String lastname) {
return "SELECT StudentID " +
"FROM TeacherStudent INNER JOIN Teachers " +
"ON TeacherStudent.TeacherID=Teachers.TeacherID " +
"WHERE Teachers.LastName='" & lastname & "'" +
"AND Teachers.FirstName='" & firstname & "'";
}
Crearea unei proceduri stocate cu parametrii
Pentru a crea o procedura stocata cu parametrii, se definesc parametrii si tipurile, iar apoi numele procedurii stocate inainte de clauza AS:
CREATE PROCEDURE qryGetStudentIDsFromTeacherName
@lastname char(20), @firstname char(20)
AS
SELECT StudentID
FROM TeacherStudent INNER JOIN Teachers
ON TeacherStudent.TeacherID=Teachers.TeacherID
WHERE Teachers.LastName=@lastname AND
Teachers.FirstName=@firstname
Procedura accepta doi parametrii de tip sir numiti @lastname si @firstname. Parametrii sunt necesari pt ca nu au o valoare implicita, dar se pot crea parametrii care au valori implicite.
public class ch14_3 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.ListBox lstTeachers;
protected System.Web.UI.WebControls.DataGrid dgStudentIDs;
protected System.Web.UI.WebControls.Label lblSelectedTeacher;
SqlConnection conn = new SqlConnection
(ConfigurationSettings.AppSettings.Get("ClassRecordsSql"));
// more code here
}
private void Page_Load(object sender, System.EventArgs e) {
SqlDataReader dr = null;
SqlCommand cm = new SqlCommand();
cm.Connection = conn;
conn.Open();
if (!IsPostBack) {
cm.CommandText = "Select firstname + ' ' + lastname as " +
"Name from Teachers order by lastname, firstname asc";
cm.Connection = conn;
dr = cm.ExecuteReader();
while (dr.Read()) {
lstTeachers.Items.Add(dr.GetString(0));
}
dr.Close();
}
}
private void lstTeachers_SelectedIndexChanged(object sender,
System.EventArgs e) {
String aName;
String[] names = new String[2];
SqlCommand cm = new SqlCommand();
SqlDataReader dr = null;
if (lstTeachers.SelectedIndex >= 0) {
cm.Connection = conn;
aName = lstTeachers.SelectedItem.ToString();
lblSelectedTeacher.Text = "Students of " + aName;
names = aName.Split(' ');
/* One way to define the parameters.
* comment the following four lines to test the
* alternate version
*/
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "qryGetStudentIDsFromTeachername";
cm.Parameters.Add(new SqlParameter("@lastname", names[1]));
cm.Parameters.Add(new SqlParameter("@firstname", names[0]));
/* An alternate way to define parameters.
* uncomment the following five lines to test
* the alternate method.
*
* Be sure to comment the first version, above, before
* testing the alternate method
*/
//SqlParameter param = null;
//param = cm.Parameters.Add("@lastname",
SqlDbType.Char,20);
//param.Value = names[1];
//param = cm.Parameters.Add("@firstname",
SqlDbType.Char,20);
//param.Value = names[0];
dr = cm.ExecuteReader();
dgStudentIDs.DataSource = dr;
dgStudentIDs.DataBind();
dr.Close();
}}
-Capitolul 2-
Aplicatie bancara – sistem de acordare credite pentru persoane fizice
Introducere
Aplicatia este un sistem pentru managementul cererilor de acordare de credite pentru consum, precum si evaluarea acestora . Aplicatia este o aplicatie web, bazata pe ASP.NET si cu suport de baze de date pe SQL SERVER 2000 SP3.
Ea are ca obiective rationalizarea fluxului de informatii intre client, magazine si companiile de credit, precum si minimalizarea timpului necesar pentru analiza solvabilitatii si credibilitatii unei persoane. Aplicatia asigura un trafic al datelor securizat intre cei implicati in procesul de creditare.
Sistemul poate fi folosit de catre banci pentru verificarea cererilor de credit, cererilor de ipoteca si totodata in procesul acordarii de carduri de credit;de catre companiile de telemarketing – in scopul verificarii rapide a oamenilor si companiilor care dorescsa devina clienti; si pentru oricare alta companie implicata in procesul acordarii de credite de consum ce au nevoie de o verificare rapida a persoanei, chiar si din punct de vedere juridic.
Folosirea acestui sistem duce la reducerea costurilor prin reducerea de personal necesar analizarii cererilor de credit; reducerea timpului pentru procesarea unei cereri de credit; reducerea timpului necesar aflarii informatiilor; reducerea timpului necesar analizarii si evaluarii cererii de credit; reducerea timpului necesar aprobarii sau respingerii cererii de credit; generarea automata a scoringului pentru persoanele aplicante; sistemul genereaza in mod real statistici, previziuni, analize de marketing si vanzari; flexibilitate.
Totodata sistemul imbunatateste sistemul de documente necesare acordarii unui credit de consum: permite operatorilor sa revizuiasca,sa tipareasca si sa transmita atasat documentele necesare analizei unei cereri de credit; permite o analiza amanuntita si completa a actiunilor fiecarui utilizator prin stocarea activitatii lor; elimina completarea manuala a formularului de credit; creste acuratetea datelor din formular prin verificara automata a datelor, prin calculul automat al scoringului si prin posibilitate atasarii documentelor scanata dupa originale; este eliminata subiectivitatea din analiza unei cereri; generare de rapoarte cu activitatea zilnica;
Prezentare modul banca (ofiter de credit)
Sesiunea de autentificare
Se acceseaza pagina introducand numele ei in campul numit Address din browser-ul dumneavoastra. Va aparea urmatoarea pagina:
Trebuie rezlizata autentificarea pentru a avea acces in sistem cu Nume utilizator si parola care v-au fost furnizate in prealabil. Apasati butonul Submit si va aparea urmatoarea pagina care va fi denumita Pagina de Inceput (sau Home Page).
2. Pagina cu rapoarte curente despre utilizator
2.1 Raport cu istoria utilizatorului
Acest raport descrie activitatea utilizatorului (cat cereri a evaluat in ultimele 10 zile)
2.2 Raport cu detaliile din sectiunea Work pentru intreag acompanie
Acest raport afiseaza in procente aplicatiile aflate in stari diferite. Ofera o imagine asupra intregii activitati a companiei.
2.3 Modulul de log-uri
Acest mdoul retine activitatea utilizatorului curent, atat din motive de securitate, cat si pentru anumite rapoarte ulterioare.
Trebuie sa stiti ca o cerere se poate afla in 5 stari:
Inbox – aceasta inseamna ca cererea se afla in lista de asteptare pentru a fi analizata
Working (In lucru) – aceasta inseamna ca cererea este in curs de analizare de catre un ofiter de credit. Cat este analizata de catre un ofiter, ea nu mai poate fi accesata de catre un alt ofiter.
Analizata – cererea a foat analizata de un ofiter de credit, a primit un raspuns care a fost trimis la comerciant
Unfinished (Neterminata)– daca un ofiter de credit este in curs de analizare a unei cereri si este intrerupt la un moment dat, el are optiunea de a pune cererea in directorul Unfinished de unde o poate redeschide si continua lucrul mai tarziu. In acest director ceilalti ofiteri nu vor avea acces la cerere.
Hold (In asteptare) – acest director este similar directorului Unfinished, insa orice cerere neterminata pusa aici de un ofiter de credit va putea fi vizualizata si analizata de toti ceilalti ofiteri.
3. Prezentare modul lista cu aplicatii
Apasati linkul Work pentru a accesa pagina de lucru care contine lista cu cererile in asteptare.
3.1 facilitate de sortare dupa mai multe campuri
Se pot face ordonari ale listei dupa oricare din campuri.Aveti posibilitatea de filtrare a
cererilor din lista de asteptare dupa o serie de criterii pentru a va organiza munca cat mai eficient.
Filtrul de data :
La apasarea Butonului de deschidere a cererii, se deschide un pop-up de lucru in care sunt vizibile toate datele aferente cererii: datele clientului, comentariile comerciantilor si ale celor de la Creditinfo, Scor, Rank, istoric al cererilor anterioare ale clientului. Spatiul de lucru este impartit in 3 parti prin tab-uri cum se vede mai jos: Datele Cererii, Mesaje si Fisiere atasate.
Datele cererii
Acest popup contine toate infomatiile necesare unui ofiter de credit pentru analiza
unei cereri de credit.
Informatia primara a cererii de credit, cu posibilitate de printare a cererii in format electronic in detaliu sau numai sumar.
Istorie CNP
Aceasta facilitate permite ofiterilor de credit sa vada si sa compare datele din
aplicatiile anterioare ale aceleiasi persoane, permitandu-le sa observe orice neconcordanta in delcaratiile anterioare.
Butoane de decizie si camp de comentariu
Aceste butoane reprezinta ultimul pas in luarea unei decizii. Apasand butonul
corespunzator se va atribui un raspuns aplicatiei: aprobat, respins, anulat etc.
3.2.4 Tab-ul Mesaje
In acest tab se pot introduce comentarii. Mutarea unei cereri in directoarele Unfinished sau Hold nu se poate face fara un comentariu cu eventuale explicatii, etc.
3.2.5 Tab-ul Fisiere atasate
Aici pot fi vizualizate fisierele atasate cererii.
Foldere de lucru in stilul Microsoft Outlook, pentru organizarea muncii ofiterilor de credit: Inbox, Neterminate, In astpetare, Toate
Aceasta facilitate ofera posibilitatea ofiterilor de credit sa isi organizeze munca, astfel incat nici o aplicatie sa nu se piarda sau sa fie ratacita.Supervizorii si administratorii pot observa cu usurinta munca unui ofiter de credit si eficienta acestuia.
Folderul „In asteptare” are urmatoarea functie: daca ofiterul de credit considera ca evaluarea nu este terminata, poate muta aplicatia spre a o analiza mai tarziu, sau pentru a fi analizata de alt ofiter cu mai multa experienta.
Folderul „Neterminate” are aceeasi facilitate, doar ca aplicatiile nu pot fi vizualizate decat de cel care le-a mutat in acel folder.
Iconite care semnalizeaza faptul ca o aplicatie are documente atasate
Iconitele informeaza ofiterul de credit ca aplicatiile au documente atasate, care sunt vitale in procesul de analiza.
Prezemtare modul Sistem(QUEUES)
4.1 Sistem de foldere pentru fiecare tip de stare
Folsind modelul de foldere Outlook, sistemul ofera un mod foarte organizat si intuitiv de urmarire a cererilor de credit. Fiecare folder contine aplicatiile aflate intr-o anumita stare de lucru . In timpul procesului, fiecare modificare de stare a cererii duce la modiifcarea folderului in care aceasta se gaseste.
4.2 Filtre avansate
Dupa analizarea cererii de credit si luarea unei decizii, acest modul ofera supervizorilor un feedback foarte bun al starii sistemului , incluznand aici si vechile aplicatii analizate. Astfel nici o informatie nu este pierduta si poate fi accesata foarte usor. De aceea sunt foarte folositoare aceste filtre avansate.
4.3 Vizualizare detalii
4.3.1 Informati idespre aplicatie
Contine toate informatiile despre o aplicatie acumulate pana in acest moment. Afiseaza deasemenea si informatiile referitoare la Rating, Scor si Decizie. Contine timpul in care s-a intrat in fiecare stare si timpul cat a stat in acea stare. Astfel, eficienta ofiterilor de credit poate fi evaluata.
4.3.2 Previzualizare fisiere atasate
Aceasta facilitate permite previzualizarea si tiparirea documentelor atasate
4.3.3. Facilitate de „Rolback” pentru aplicatiile analizate
Aceasta facilitate permite supervizorilor si administratorilor sa schime starea cererii ca Neprelucrata, in cazul in care se constata o greseala in analiza dosarului.
Modul de rapoarte
Raportul zilnic(Daily report)
Acest raport prezinta starile cererilor din sistem pentru o anumita zi – selectata.
5.1.1 Primul grafic prezinta numar de cereri de credit venite / ora.
5.1.2 Al doilea grafic prezinta numarul de aplicatii analizate / ora in intregul sistem, dar arata si distributia starilor cererilor analizate
5.1.3 Primul piechart arata procentajul cererilor trimise de catre un comerciant – dar numai daca reprezinta minim 1%
5.1.4 Al doilea piechart arata procentajul cererilor trimise de catre un comerciant – dar numai daca reprezinta maxim 1%
5.1.5 Primul tabel arata numarul de aplicatii trimise de fiecare reprezentantaa unui comerciant /ora
5.1.6 Al doilea tabel prezinta numarul de aplicatii, grupate dupa decizie, pentru fiecare reprezentanta
Raport zilnic de baza (Daily Basis)
Acest raport consta intr-un tabel ce afiseaza detaliile fiecarei aplicatii introduse in sistem, indiferent in ce stare se afla, sau daca a fost sa unu analizata.
Raportul Overview
Acest raport este o colectie de grafice ce afiseaza o imaginea foarte clara asupra sistemului
5.3.1 Primul grafic arata distributia cererilor in ele trei stari ale sistemului
5.3.2 Al doilea grafic arata procentajul cererilor analizate si distributia in sistem a cererilor neanalizate in ultima zi
5.3.3 Al treilea grafic arata ditributia aplicatiilor analizate grupate dupa raspunsurile atribuite
5.3.4 Ultimele trei grafice (4,5 si 6) arata distributia cererilor in mod explicit pentru fiecare stare a sistemului.
Raportul Ofiteri de credit
Raportul arata activitea ofiterilor de credit facand posibila analiza eficientei si cuantificarea raspunsurilor date
Graficul din partea stanga afiseaza ofiterii care au analizat cele mai multe aplicatii, iar cel din dreapta pe cei care au nalizat cele mai putine aplicatii.
Acest tabel cuprinde informatiile detaliate despre activitatea fiecarui ofiter de credit, grupand aplicatiile dupa starile lor.
Raportul „Totaluri”
Acest raport are ca obiectiv o analiza comparativa. Astfel, el afiseaza numarul aplicatiilor introduse in sistem grupate dupa comercianti, dupa numarul de aplicatii analizate si raspuns de aprobare pe fiecare zi aleasa din interval .
5.5.1
Acest grafic arata numarul de aplicatii introduse de fecare comerciant in sistem in fiecare zi
5.5.2
Acest grafic ofera o imagine de ansamblu a intregului sistem, aratand numarul de aplicatii analizate si cum sunt distribuite in sistem aplicatiile neanalizate / fiecare zi aleasa in interval.
5.5.3
5.5.4
Acest raport afiseaza numarul de aplicatii analizate / comerciant in intervalul de timp ales.
5.5.5
Acest raport afiseaza numarul de aplicatii analizate / grupate pe zile si cele neanalizate in fiecare stare a sistemului.
5.5.6
Acest raport afiseaza numarul de aplicatii analizate, grupate dupa statusul lor si dupa zi.
Raport „ Detalii total”
Acest raport afiseaza detaliile fiecarei aplicatii pentru fiecare aplicatie din ziua curenta.
Acest grafic arata o comparatie intre numaru lde aplicatii analizate in ziua curenta pentru fiecare comerciant.
Raport „Demografic”
Acest raport arata informatiile importante despre datele demografice ale aplicantilor.
5.7.1 Graficul nr.1 arata distributia clientilor in functie de starea civila
5.7.2 Graficul nr. 2 arata distributia clientilor in functie de tipul contractului de munca
5.7.3 Graficul nr.3 arata distributia clientilor dupa numarul de copii sub 18 ani
5.7.4 Graficul nr.4 arata distributia clientilor dupa starea prorpietatii
5.7.5 Graficul nr. 5 arata un top al primelor 10 functii alese de clienti
5.7.6 Graficul nr. 6 arata distributia clientilor pe diferite tipuri de functii.
Prezentare modul COMERCIANT
Pagina de autentificare
Lista de cereri
Counteri pentru cele trei etape in care se poate afla o aplicatie: Outbox. Trimisa si Analizata.
Acesti counteri sunt corelati cu criteriile de cautare/filtru. Ei arata numarul de aplicatii aflate in cele trei stari, in concordanta cu filtru aplicat. Valoarea implicita este ziua curenta.
Lista cu aplicatii cu posibilitate de Previzualizare, Tiparire si Stare
Acest grid afiseaza datele de identificare ale unei aplicatii: Numar, Nume, Prenume, Oras si Starea tiparit
Gridul contine si butonul de Previzualizare ce permite deschiderea unui popup ce contine toate datele aplicatiei.
Functionalitatea de tiparire a aplicatiei
Aceasta facilitate a fost gandita pentru oferirea de suport pe hartie sistemului. Este proiectat sa poata lucra cu hartie pretiparita.
Export in formate multiple
Lista cu cereri poate fi exportata in mai multe tipuri de formate: XLS, PDF, HTML , si apoi tiparita in conformitate cu dorinta clientului.
Cautare avansata si Filtrare
Facilitatea de Cautare/ Filtrare permite utilizatorului sa afiseze imediat aplicatia dorit, fara sa mai stea sa caute in toata lista de aplicatii. Aceasta facilitate include un pop-up de cautare cu campuri de cautre si filtrare dupa data. Acestea doua pot fi combinate astfel incat sa rezulte un sistem de cautare foarte avansat
Informatia primara a aplicatiei
Aceasta este informatia pe care utilizatorul o primestedupa ce completeaza formularul. Contin informatiile de identificare ale aplicatiei (ID, nume, Prenume, CNP, Data, Stare tiparire), si, cel mai important creditul maxim ce poate fi obtinut si numarul maxim de rate.
Calcul automat al sumei maxime pe care o poate obtine aplicantul si numarul maxim de rate, calculate din datele declarate de catre aplicant
Zona pentru comentarii din partea utilizatorilor
Aceasta zona permite comerciantului sa transmita date importante catre unitatea de creditare
Functie de editare pentru aplicatii
Acest submodul permite modificarea/adaugarea de informatii pentru cererea de creditare.
Modul de atasare fisiere scanate
functionalitate de navigare si validare tip fisier
previzualizare fisiere atasate
functiide stergere si salvare
Modul editare imagini : redimensionare, schimbare tip fisier, functii de schimbare pozitie. Utilitate mare cand se ataseaza documentele scanate, permitand utilizatorului sa pregateasca fiserele pentru stocare.
3. Formular aplicare – chestionar
3.1 Validare automata CNP aplicant
Cand este introdus un CNp se realizeaza verificarea automata si semnaleaza faptul ca acest CNP este valid sau nu, permitand totodata modificarea cestuia in caz de introducere gresita. Aceasta este o masura de securitate; daca CNP-il este invalid, aplicatia nu poate fi completata, deci nu poate fi introdusa in sistem .
3.2 Istoric aplicatii
Este un pop-up ce contine toate aplicatiile anterioare realizate cu acelasi CNP. Astfel se pastreaza un istoric al aplicatiilor realizate de o persoana si pot fi vazute evenetualele modificari de la o declaratie la alta. Are facilitatea de a completa automat formularul cu ultimele date declarate de catre aplicant.
Dictionar de adrese cu ascoiere intre cod postal si adresa
O adresa poate fi gasita dupa codul postal sau vice-versa. Are ca scop cresterea acuratetii datelor declarate de catre o persoana, imbunatatind dramatic procesul de verificare. In acest scop s-au creat dictionare si pentru Nationalitate, Profesie etc
Generare automata a scorului; algoritm bazat pe datele declarate de catre un aplicant. Foloseste un set de parametrii predefiniti din modulul de administrare.
Restrictii logice pentru anumite campuri implicate in algoritmul de prescoring.
Rapoarte
Raport pentru intreaga activitatea a unui comerciant
Acest raport afiseaza starea aplicatiilor introduse in sistem: numarul aplicatiilor introduse pe zi de catre acel comerciant si starea in care se afla
Raport pentru utilizatorul curent
Acest raport afiseaza starea aplicatiilor introduse de urilizator in sistem si starea in care se afla acestea.
Filtru dupa data
Exportul rapoartelor in formate multiple
Calculator eligibilitate
Completare automata a datelor cu datele din formular
Afisare punctaj obtinut pentru fiecare valoare din camp
Validare campuri
Calculatoare
Calculator suma maxima
Calculator rata de plata pe luna
Alegerea datei pentru plata ratei in fiecare luna
5.5 Actualizare campuri formular
Calculator plan rambursare
Completare automata a datelor cu datele din formular
Calculatoare
Calculator suma maxima
Comsion banca
Calculator rata de plata pe luna
Alegerea datei pentru plata ratei in fiecare luna
Export in Excel
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: Aplicatie Bancara Online Pentru Credite de Consum Dezvoltata Prin Tehnologii Microsoft (ID: 149039)
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.
