Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Internet


Index » educatie » » informatica » Internet
» Php, jsp, elemente .net


Php, jsp, elemente .net


PHP, JSP, elemente .NET

1. Limbajul PHP[1]

Limbajul PHP (acronim recursiv petnru 'PHP: Hypertext Preprocessor' sau Personal Home Page) este un limbaj de scripting utilizat pe scara larga, realizat si distribuit in sistem Open Source, ce se potriveste productiei Web si poate fi incapsulat in HTML. Ceea ce-l deosebeste de alte limbaje, cum ar fi Pearl sau C este faptul ca se inlocuieste editarea (scrierea) unui program cu o multime de comenzi, pentru a produce un HTML, cu un script HTML ce include codul. Codul PHP este delimitat de taguri de start si de sfarsit care permit intrarea si iesirea din 'modul PHP' (acestea sunt "<?" si "?>").



Diferenta dintre PHP si JavaScript este aceea ca PHP este executat pe server pe cand JavaScript este executat pe calculatorului clientului. Astfel, in cazul unui script aflat pe server , clientul primeste doar rezultatele scriptului ce este rulat, fara a putea vedea in nici un fel codul din spatele acestuia.

Dezvoltarea limbajului PHP este axata in special pe partea de scripting ce ruleaza pe server, deci un program scris in PHP poate face orice si un program CGI cum ar fi : colectarea de date din formulare, generarea de pagini cu continut dinamic sau trimitere si primire de cookie-uri.

2. Functionarea motorului PHP

Cel mai important domeniu in care este utilizat limbajul PHP este reprezentat de scripturile ce ruleaza pe server. Pentru ca aplicatia sa mearga este nevoie de : un interpretor de PHP, un server de web si un navigator de web (browser). Este necesar ca serverul de web sa fie pornit, cu o conexiune PHP instalata. Rezultatul programelor PHP poate fi accesat cu un browser prin intermediul serverului de web.

In functie de sistemul de operare se poate sa existe instalat un server de web (ex. Apache pe Linux sau Windows si IIS pe Windows) iar browserul web poate fi Internet Explorer sau Netscape.

In cazul in care acesta nu exista, se va instala impreuna cu PHP-ul iar pentru a le conecta exista doua metode. Pentru majoritatea serverelor PHP-ul are un modul direct de interfata (numit si SAPI). Lista acestor servere include printre altele si Apache, Microsoft Internet Information Server, Netscape si iPlanet. Daca PHP nu are suport de modul pentru serverul web, poate fi folosit intotdeauna ca un procesor CGI.

3. Limbajul PHP si bazele de date

Una dintre cele mai puternice si importante facilitati in PHP este suportul sau pentru o gama larga de baze de date. Scrierea unei pagini de web ce interactioneaza cu o baza de date este incredibil de simpla. Urmatoarele baze de date sunt cateva din cele suportate: Oracle (OCI7 and OCI8) ,dBase, InterBase , PostgreSQL ,mSQL,Direct MS-SQL, MySQL ,Informix ,ODBC , Unix dbm.


Fig.2 Executarea unei interogari SQL utilizand limbajul PHP

In figura de mai sus se pot observa operatiile efectuate asupra unei baze de date in cadrul unui transfer de date intre browser si serverul Web,utilizandu-se si un server Mysql. Pasii efectuati sunt:

  • Initierea de catre browser a unei conexiuni cu serverul Web
  • Interpretatrea codului PHP de catre preprocesorul PHP
  • Trimiterea interogarii SQL continute de codul PHP spre serverul MySQL
  • Returnarea datelor obtinute in urma interogarii bazei de date
  • Returnarea de catre preprocesorul PHP a codului HTML, in urma procesarii intregului program in PHP
  • Trimiterea documentului final HTML spre browserul Web pentru afisare

4. Dezvoltarea aplicatiilor utilizand Java

Java a fost scris de la zero de catre Sun Microsystems, in ideea de a fi un limbaj de programare orientat spre obiect, portabil, pentru Internet. Initial, el a fost proiectat pentru comunicatia intre dispozitivele client, dar s-a renuntat la aceasta idee pe masura ce interesul fata de Word Wide Web a crescut. Astfel compania Sun a lansat un browser Web pentru Internet bazat pe Java pur, denumit Hotjava, care putea descarca extensii Java, denumite applet-uri (applets), si apoi sa le ruleze in cadrul browserului. Acelasi lucru a fost facut si de firma Netscape care a lansat o versiune a propriului browser care putea rula applet-uri Java. Se nastea astfel continutul dinamic pentru Internet. Applet-urile erau sigure (ele erau impiedicate sa stearga sau sa modifice datele de pe hard-discul clientului), independente de platforma si orientate spre retea ( trei dintre principalele caracteristici implementate in limbaj inca din faza initiala).

Unul dintre principalele avantaje ale applet-urilor Java pentru partea de client era ca ele puteau realiza o multime de efecte multimedia spectaculoase, deoarece, spre deosebire de HTML, erau mici aplicatii care rulau in interiorul browserului. Dezavantajul principal pe partea de client era ca Java era lent si cu defecte, iar applet-urile, (in afara de cazul in care erau extrem de simple ), aveau nevoie de destul de mult timp pentru a fi descarcate. De asemenea, din cauza restrictiilor de securitate, applet-urile erau extrem de limitate in ceea ce priveste lucrurile pe care le puteau realiza.

Acum applet-urile pot fi semnate, asa ca ele pot face absolut orice pe calculatorul dumneavoastra, daca le acordati permisiunea. Aparitia vitezelor mari de descarcare a facut descarcarea unui applet aproape insesizabila. In prezent Java este mult mai rapid si mai stabil in partea de client. Exista insa alte provocari. Aparitia lui JavaScript (care nu are nici o legatura cu Java, in afara unei intelegeri comerciale intre companiile Sun si Netscape care a dus la adoptarea acestui nume), a foilor de stiluri si a DHTML, a facut aproape sa dispara nevoia de applet-uri, exceptand cazurile in care acestea sunt foarte complexe. Toate artificiile vechilor applet-uri Java pot fi acum realizate in JavaScript si DHTML, folosind accesul direct la interfetele API ale browserului Web.

Acum cativa ani s-a inceput scrierea de aplicatii server in Java, situatie in care viteza este mai putin importanta, dar nu sunt folosite nici bibliotecile grafice din Java care solicita puternic resursele de calcul. Folosirea Java pentru servere a luat avant dar in acelasi timp utilizarea lui pentru aplicatiile client a scazut ceea ce nu inseamna ca s-a renuntat la imbunatatiri la partea de client. In domeniul serverelor au aparut o multime de interfete API, s-au facut progrese importante in ceea ce priveste cresterea de performanta si scalabilitate, iar in prezent corporatii intregi isi bazeaza sistemele de afaceri pe o combinatie de Java si tehnologii mostenite.

JDK este adesea denumit si SDK, deoarece inca de la lansarea lui Java 2 compania Sun s-a referit la el atat sub numele de Java Software Development Kit, cat si sub numele de Java Development Kit. JDK contine instrumentele folosite pentru dezvoltarea de software. De asemenea, in el este inclus si un mediu de executie JRE.

JRE este prescurtarea de la Java RunUme Environment (mediu de executie Java). JRE contine toate bibliotecile de rulare necesare la executarea oricarui program Java. JRE contine de asemenea si o masina JVM.

JVM este software-ul care executa toate aplicatiile Java. JVM inseamna de fapt doar cateva fisiere plasate in directoarele din JDK sau JRE, unele dintre aceste fisiere fiind de fapt o interfata care instantiaza masina virtuala Java si o face sa lucreze pe sistemul de operare nativ din calculator.

Masina virtuala Java (Java Virtual Machine - JVM) reprezinta cheia portabilitatii limbajului Java. Ea este un program scris de obiecei in C. Codul sursa Java este compilat intr-un limbaj binar intermediar, denumit cod octet (byte code). Compilatorul de Java inscrie o serie de astfel de coduri de octeti intr-un fisier si denumeste acest fisier folosind extensia .class. Atunci cand se executa codul octet (adica atunci cand ruleaza aplicatia), codul octet este incarcat si interpretat intr-o masina JVM. Multe masini JVM actuale folosesc un fel de compilare in timpul executiei (Just in Time - JIT) pentru a compila in timp real codul octet in cod masina specific platformei pe care se lucreaza. Compilarea JIT face ca Java sa se execute aproximativ la fel de repede ca aplicatiile scrise in cod nativ.

Nivelurile de cod sursa si cod octet sunt cele la care Java este complet independent de platforma. Cu alte cuvinte, o data ce a fost compilat programul Java, acesta se poate rula pe orice calculator care poseda o masia JVM.

4.1. Aplicatii internet folosind JSP si servleti

Cand a devenit clar ca folosirea Java pentru partea de server era o idee foarte buna, s-a propus dezvoltarea unei interfete proiectate special pentru a simplifica si standardiza programarea Java pe partea de server. In scurt timp a fost lansata interfata API Java Servlet, care a fost adoptata de multi programatori de Java care lucrau la extinderea functionalitatii serverelor Web pe partea de server. Interfata API Servlet trata in mod elegant multe dintre problemele carora trebuiau sa le faca fata programatorii Java pe partea de server si furniza un standard pe baza caruia furnizorii de aplicatii puteau construi motoare pentru servlet-uri. Motoarele de servlet-uri au inceput sa intre in scena, furnizand programatorilor un server pe care acestia sa-si ruleze servlet-urile. Unele motoare de servlet-uri rulau in cadrul procesului serverelor Web, in timp ce altele rulau in afara acestor procese, dar puteau fi integrate in serverele de Web. Toate dispuneau de facilitati de rulare si zone de izolare pentru securitate, ceea ce a simplificat mult programarea servlet-urilor pentru dezvoltatorii de aplicatii in Java.

Servlet-urile nu sunt, in mod necesar, legate de serverele Web si pot fi utilizate ca si componente generice de tipul cerere/raspuns. Cele utilizate pentru rezolvarea problemelor legate de web sunt orientate pe un protocol, in sensul ca preiau cererile de la client si apoi proceseaza un raspuns pentru aceasta cerere.

Servlet-urile au si dezavantaje. In primul rand, e frustrant scrierea instructiunii out.print() pentru fiecare bucata de cod HTML care trebuie sa fie afisata clientului. In al doilea rand, pentru a putea scrie servlet-uri sunt necesare ceva cunostinte de Java. In plus, existau si alte tehnologii concurente ca de exemplu ASP, care permite programatorilor de HTML sa creeze continut dinamic pentru Web. De aceea era necesara punerea la dispozitia programatorilor care se ocupau de codificare si scriptare Web a unui limbaj pentru care nu era necesara insusirea limbajului Java.

Java Server Pages (JSP) este o simpla dar puternica tehnologie ce se foloseste pe partea de server pentru a genera continut HTML dinamic. Fiind o extensie directa a Java Servlets JSP furnizeaza o modalilate de a separa partea de procesare de cea de prezentare. Motorul JSP este doar un alt Servlet, mapat la extensia *.jsp. O pagina JSP este un document bazat pe text care descrie cum se va procesa o cerere (request) pentru a crea un raspuns (response).

Atunci cand un client cere pentru prima data o pagina JSP noua sau actualizata containerul JSP trebuie sa localizeze fisierul sursa al paginii si sa inceapa procesul de translatare a acesteia intr-un fisier Java. Extensia de fisier .jsp precizeaza serverului Web ca acest fisier trebuie manipulat de containerul JSP. Apoi motorul JSP apeleaza un compilator pentru a translata fisierul sursa Java intr-un fisier de clasa servlet Java.Clasa Java rezultata este apoi incarcata ca servlet in motorul de servlet-uri al containerului JSP si servlet-ul produce raspunsul cerut de client. Dupa cererea initiala, pagina JSP nu mai este retranslatata, recompilata sau reancarcata in memorie, in afara de cazul in care fisierul sursa JSP se modifica sau containerul servlet este oprit si repornit.


4.2. Generarea paginilor JSP

O aplicatie Web care utilizeaza tehnologia JSP are la baza:

- Masina Virtuala Java (Java Runtime Environment care va rula obligatoriu pe server;

- JSP page, care preia cererile si genereaza un continut dinamic;

- Java Servtets, cu acelasi rol ca si JSP;

- Enterprise JavaBeans, componenta server-side care incapsuleaza comportamente si stari;

- documente HTML, XML, DHTML,;

- Java Applets sau JavaBeans, componente client-side si eventual alte fisiere Java de tip class;

- Masina Virtuala Java (Java Runtime Environment) care sa ruleze la client si care sa poata fi incarcate prin plug-in.

Paginile JSP sunt unice prin faptul ca ele inglobeaza continut si cod de reprezentare si atfel ofera o multitudine de optiuni in proiectarea de aplicatii usor de intretinut si extins. Optiunile disponibile pentru intreteserea continutului cu codul, includ componente JavaBeans, tag-uri personalizate si scriptleturi (scriptlets).

Scriptleturi nu sunt altceva decat blocuri de cod servlet pe care limbajul JSP le insereaza in cadrul fisierelor statice HTML utilizand tag-urile <%%>.

Cu toate ca este extensie directa a Java , scriptul JSP nu este cod Java pur, ci este centrat mai mult in jurul problemelor de aspect ale interfetei. Se vor utiliza pagini JSP atunci cand se doreste ca partea de interfata a aplicatiei sa fie separata de restul aplicatiei.

5. Tehnologia Microsoft.NET

In scopul de a face livrari pe baza avantajelor Next Generation Internet, dezvoltatorii de software, producatorii de hardware si furnizorii de servicii au nevoie de o modalitate mai buna de integrare a eforturilor lor. Platforma .NET se dezvolta special pentru a permite aceasta integrare intre discipline si industrii, si include:

  • NET Framework & Tools - Un nou mod de executie pe intelesul tuturor cu o singura structura de lucru multilingva, o noua generatie de pagini Active Server si un nou model de programare, toate asistate de setul de instrumente Visual Studio.
  • NET Building Block Services - O familie de servicii Web disponibile permanent care permit noi clase de solutii si de experiente de tip 'servicii client - server'. Serviciile initiale de generare a structurilor includ mesageria, calendarul, notificarea, stocarea, actualizarea codurilor, identificarea, personalizarea, cautarea si structura de directoare.
  • .NET Servers & Clients - Familia Windows 2000 si serverele .NET de intreprindere includ suportul pentru integrare, scalabilitate, armonizare si defalcare pe baza de XML asigurand intregul suport final pentru rapida implementare si gestionare a serviciilor bazate pe Web. Calculatoarele cu Windows 2000 si dispozitivele controlate sub Windows vor asigura asistenta client pentru platforma .NET.

Introducearea platformei Microsoft.NET a inceput o noua era in domeniul dezvoltarii aplicatiilor internet .ASP.NET, o este un mediu de programare revolutionar care permite dezvoltarea rapida a aplicatiilor web de tip enterprise (major). Aceasta tehnologie ofera cel mai rapid si fiabil mod de dezvoltare de copiere pe server si de rulare a aplicatiilor Web. Aceste facilitati sunt doar cateva din multe altele care transforma ASP.Net in prima alternativa pentru programatorii web. Cu ASP.NET se creeaza aplicatii mult mai simplu decat cu varainta clasica de ASP. Totodata a fost imbunatatita productivitatea ( a scazut timpul necesar dezvoltarii unei aplicatii). ASP.NET ofera functionalitati multiple aplicatiilor dezvoltate prin scrierea unui cod de dimensiune redusa. Partea buna in ASP.NET este ca programarea se poate face cu oricare din limbajele suportate de platforma .NET(C#,VB). Asadar fata de clasicul ASP in care se depindea de interpretarea limbajelor VBScript si Jscript, ASP.NET ofera programatorului posibilitatea de a alege dintr-o gama larga de limbaje.

Cam putin .net

Tehnologia .NET lansata de firma Microsoft in anul 2002 este o noua platforma de dezvoltare a aplicatiilor (in special a aplicatiilor distribuite in Internet) pentru sistemele de operare Windows. Platforma .NET suporta utilizarea si integrarea mai multor limbaje de programare: VB.NET, Managed C++, J C# si limbajul de scripting Jscript. Toate aceste limbaje genereaza cod intr-un limbaj intermediar unic definit in .NET, numit MSIL (Microsoft Intermediate Language) (sau, mai simplu IL), care este executat sub controlul unei unitati de executie, denumita Common Language Runtine (CLR). Codul executat sub controlul CLR este numit cod gestionat (managed code), iar codul executat direct de procesor sub controlul sistemului de operare se numeste cod ne-gestionat (un-managed code) sau nativ. Limbajul Visual Basic .NET reprezinta o extensie pentru platforma .NET a limbajului Visual Basic. Limbajul Managed C++ este extensia limbajului C++ care genereaza atat cod nativ (unmaneged code) cat si cod gestionat de CLR (managed code). Limbajul J# este destinat creerii aplicatiilor .NET de programatori care prefera limbajul Java. Insa, spre deosebire de compilatorul Java, care genereaza bytecode, executabil pe o masina virtuala Java (JVM), codul generat de compilatorul J# este cod getionat care poate fi executat sub controlul CLR. In plus, VS .NET mai contine si un convertor de conversie a codului executabil Java (fisiere .class) in cod .NET. Extensia implicita a fisierelor sursa J# este jsl. Visual J# a fost dezvoltat de firma Microsoft in mod independent, fara sa contina solutii sau aprobari Sun. Limbajul C# este un limbaj obiect-orientat nou creat pentru platforma .NET si este asemanator cu limbajul C++ si, in unele aspecte, cu Java. Pentru dezvoltarea aplicatiilor .NET se poate folosi sistemul de dezvoltare .NET Software Development Kit (SDK) care poate fi obtinut de la adresa https://msdn.microsoft.com/downloads, sau mediul integrat Visual Studio .NET, care reprezinta dezvoltarea pentru platforma .NET a sistemului Microsoft Visual Studio.

5.1 Generalitati referitoare la platforma .NET

Platforma .NET (.NET Framework) este un nivel software plasat peste sistemul de operare Windows si contine doua parti principale: unitatea de executie a programelor .NET (Common Language Runtime - CLR) si biblioteca de clase .NET (Framework Class Library - FCL). Biblioteca FCL este compusa din biblioteca de baza (Framework Base Classes) care contine din tipuri (clase) fundamentale, clase pentru dezvoltarea aplicatiilor de baze de date (ADO.NET, SQL, XML, etc.), clase pentru dezvoltarea aplicatiilor complexe (Windows Forms), clase pentru dezvoltarea aplicatiilor distribuite in

Internet (Web Forms, Web Services).

Unitatea de executie a programelor (CLR) este partea fundamentala a arhitecturii .NET, care gestioneaza codul in timpul executiei. CLR este asemanator masinii virtuale Java (JVM) si realizeaza sarcini de control al executiei, cum ar fi verificarea codului, gestionarea memoriei si a firelor de executie (thread-uri). Codul gestionat (managed code) este o secventa de octeti intr-un limbaj intermediar MSIL (Microsoft Intermediate Language, sau, mai simplu IL - Intermediate Language), generat de compilatoarele compatibile .NET Compilatoarele C#, Visual Basic .NET, J# si Assembler-ul MSIL genereaza intotdeauna module gestionate (managed modules), care contin cod in limbajul IL si metadata (date despre modul) si sunt executabile portabile Windows (Portable Executable - PE), care pot fi executate de CLR.; utilizatorii trebuie sa aiba instalat CLR (.NET Franework) pe sistemul propriu pentru a putea executa astfel de module.

In mod implicit, compilatorul Managed C++ genereaza cod nativ (ca fisiere executabile .exe sau biblioteci DLL), la fel ca si compilatoarele C++ din versiunile anterioare. Astfel de cod poate fi executat direct de sistemul de operare, fara sa fie necesara instalarea CLR. Dar compilatorul Managed C++ poate genera si cod gestionat daca este invocat cu o optiune adecvata (/clr), si mai mult, prin directive de program se poate controla tipul codului generat pentru fiecare clasa in parte (in mod implicit se genereaza cod nativ, iar modificatorul gc plasat inaintea numelui unei clase impune generarea de cod gestionat pentru acea clasa). Aceasta posibilitate oferita de Managed C++ de a combina cod nativ cu cod gestionat ofera o mare flexibilitate de dezvoltare a aplicatiilor si de accesare a unor module existente in cod nativ. Componentele CLR si operatiile efectuate de acesta pentru executia unui modul gestionat (.NET PE) sunt:

Incarcatorul de clase (Class Loader). La intalarea .NET Framework, incarcatorul de programe Windows (loaderul) este actualizat astfel incat sa recunoasca modulule .NET PE si, la incarcarea acestora, trece controlul masinii virtuale CLR care foloseste propriul incarcator de clase pentru a incarca clasele in memorie (incepand cu clasa care contine metoda Main) si, de asemenea recunoaste si memoreaza metodatele din modul (in special manifestul).

Compilatorul JIT (Just in Time Compiler) converteste codul IL in cod nativ gestionat (managed native code), care poate fi executat pe hardware-ul si sistemul de operare al calculatorului gazda. Inainte de compilare, fiecare metoda a claselor incarcate este verificata de componenta verificator (verifier) a compilatorului. Avantajul compilatorului JIT este acela ca poate genera cod optimizat exact pentru tipul de platforma hardware pe care se va executa. Tot din motive de optimizare, JIT compileaza fiecare metoda o singura data, atunci cand este invocata prima oara si memoreaza (intr-o zona de cache proprie) codul nativ al acesteia, iar la apelurile urmatoare se foloseste codul nativ memorat.

Unitatea de gestionare a executiei (Execution Support and Management) asigura mai multe operatii de control in timpul executiei codului gestionat: colectarea datelor nefolositoare (colectarea gunoiului - garbage collection), controlul exceptiilor (exception handling), verificari de securitate (security support), depanare (debugging), controlul

interoperabilitatii (interoperation support). Controlul interoperabilitatii asigura mixarea de cod gestionat (CLR) si cod negestionat (non-CLR), inclusiv comunicarea cu obiecte COM (Component Object Model).

Module si ansambluri (modules, assemblies). Compilatoarele .NET genereaza module (in general, module gestionate). Un modul gestionat (managed module) este compus din mai multe parti:

PE Header - este un antet standard Windows pentru fisiere PE (Portable Executable), similar cu cel continut de fisierele in format COFF (Common Object File Format). Acest antet indica tipul fisierului (GUI, DLL) si contine informatia de timp (timestamp ) de creare.

CLR Header - contine informatii interpretate de CLR. Acestea includ versiunea CLR necesara executiei, punctul de intrare al modulului (metoda Main) si localizarea in modul a informatiilor despre datele modulului (metadata).

Metadata - contine tabele de informatii (metadata tables) care descriu tipurile si membrii acestora referiti in cod. Metadata face posibila programarea .NET fara sa mai fie necesare fisiere header (fisiere .h in C/C++) sau fisiere de biblioteci. Informatiile din metadata sunt folosite de compilatoare (care citesc direct informatiile despre tipurile de date si metodele acestora), de Visual Studio .NET (care foloseste informatiile despre tipurile de date pentru asistenta in scrierea codului - IntelliSense), de CLR (care executa verificarea codului IL pe baza informatiilor din metadata), de garbage collector (care traseaza timpul de viata al obiectelor).

Codul IL - este codul in limbaj intermediar (IL) generat de compilatorul limbajului in care a fost creat codul sursa. Acest cod IL va fi compilat ulterior de compilatorul CLR in cod nativ.

Asadar, un modul gestionat (managed PE) contine atat codul cat si metadata asociate acestuia ca un tot unitar, consistent in permanenta. De fapt, CLR nu opereaza direct cu module ci cu ansambluri (assemblies). Un ansamblu (assembly) este o biblioteca DLL sau o aplicatie executabila .exe, compus dintr-o grupare logica de module si de resurse si este cea mai mica unitate de re-utilizare, instalare, versionare si securitate. In functie de optiunile de compilare sau de instrumentele de dezvoltare folosite, se poate genera un assembly compus dintr-un singur fisier sau din mai multe fisiere.

Fiecare ansamblu contine un bloc de date numit manifest, care este un alt set de tabele metadata si descrie fisierele logice care alcatuiesc ansamblul, tipurile publice exportate, precum si fisierele de date si resurse asociate cu ansamblul respectiv. De asemenea ansamblul mai contine si alte informatii, cum sunt numarul versiunii, informatii de securitate si tot ceea ce CLR necesita pentru a executa ansamblul. De aceea, aplicatiile .NET sunt mult mai simplu de instalat, nefiind necesare operatii de inscriere in registri sau in Active Directory.

Bibliografie

[1]. https://www.php.net/

[2]. Dezvoltarea aplicatiilor JavaServer Pages - Ben Fonta,Edwin Smith-

Editura Teora 2001

[3]. Programarea aplicatiilor Java - Calin Marin Vaduva - Editura Albastra 2001

[4]. https://www.microsoft.com/Romania/dotNET/

[5]. .NET Framework SDK 2001

[6]. O'REILLY .NET Framework Essentials - Thuan L. Thai & Hoang Lam





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate