Universitatea „POLITEHNICA” Bucuresti
|
SISTEME DE DEZVOLTARE DE APLICATII IN INTERNET
|
|
Bogdan Cristian FLOREA
11/18/2008
|
Cuprins
Cuprins 2
1.Introducere 3
2.Principalele sisteme de dezvoltare de aplicatii in internet 6
2.1.LAMP (Linux, Apache, MySQL, PHP) 6
2.2.ASP / ASP.NET 7
2.3.Java (JavaEE) 9
2.4.IBM Websphere 9
2.5.AJAX (Asynchronous JavaScript and XML) 12
2.6.JavaScript 14
2.7.Microsoft Silverlight 14
2.8.Google Web Toolkit 16
2.9.ColdFusion 17
2.10.Comparatie intre cele mai folosite sisteme de dezvoltare web 18
3.What You See Is What You Get (WYSIWYG) 19
3.1.Adobe Dreamweaver 19
3.2.Microsoft Expression Web 21
3.3.Comparatie intre principalele editoare WYSIWYG 22
4.Web Content Management System (WCMS) 23
4.1.Joomla! 23
4.2.Drupal 24
5.Bibliografie 27
Introducere
Web development (dezvoltarea web) se refera la toate activitatile legate de dezvoltarea unui site web. Aceasta inseamna design, management-ul continutului, scripturi client/server side si configurarea server-ului, desi partea de design nu face intotdeauna parte integranta din conceptual de web development, accentual punandu-se pe codare. Conceptul de web development cuprinde aplicatii care pornesc de la cele mai simple pagini statice HTML pana la cele mai complexe aplicatii internet, afaceri online sau retele sociale.
Dezvoltarea web a cunoscut o crestere spectaculoasa datorita faptului ca tot mai multe companii doresc sa isi ofere produsele si serviciile prin cat mai multe moduri, astefel incat oricine sa poata avea acces la ele. Din acest motiv, dezvoltarea de aplicatii web simple si utile pentru utilizator a fost un domeniu de interes constant. Pe langa acest lucru, siguranta in internet a fost accentuate datorita tranzactiilor care se desfasoara in acest fel si a dorintei utilizatorilor de anonimat.
Din punct de vedere al costului, daca acum 10-15 ani o companie platea sume immense pentru gazduirea unui site web, acum exista solutii de gazduire web pentru toate buzunarele. Acest lucru este posibil datorita multitudinii de sisteme disponibile pe piata, atat in mod gratuity cat si contra cost. Un pagina internet are patru componente majore: sistemul de operare, server-ul web si limbajele de baze de date si scripting. Una din solutiile populare, disponibila in mod gratuit este platforma LAMP (Linux, Apache, MySQL, PHP) si aceasta vine preinstalata in cele mai importante distributii Linux, astefel incat se poate configura foarte rapid un site pe un astfel de sistem.
Un alt aspect al dezvoltarii web foarte puternice o reprezinta dezvoltarea de soft-uri de tip WYSIWYG (What You See Is What You Get) cum ar fi Adobe Dreamweaver, Microsoft Expression Studio (cunoscut anterior ca Microsoft FrontPage) si altele. In acest mod oricine poate avea un site intr-un timp foarte scurt, fara a avea nevoie de cunostinte HTML sau a altor limbaje de scripting.
Conceptul a fost dus mai departe, oferind utilizatorului aplicatii online care in mod traditional erau disponibile ca aplicatii stand-alone. Astfel, in loc sa se ruleze cod executabil local, utilizatorii folosesc o aplicatie web pentru a crea continut nou. Suita office a celor de la Google si multitudinea de aplicatii de procesare a fotografiilor direct pe internet pot fi considerate exemple.
Aplicatiile din categoria e-commerce au schimbat modul in care utilizatorii percep si achizitioneaza bunuri si servicii iar o data cu aparitia blog-ului fiecare individ si-a putut crea o identitate online.
Pentru a facilita gestionarea acestor tipuri de aplicatii foarte complexe au fost dezvoltate asa numitele sisteme de management al continutului (CMS – Content Management Systems).
Din punctual de vedere al dezvolatii unei aplicatii web, exista 2 categorii principale:
-
Dezvoltare client-side – consta in executarea scripturilor trimise de catre server pe calculatorul utilizatorului, astfel sarcina sever-ului este mult diminuata, aceasta trecand pe calculatoarele utilizatorilor.
Principalele limbaje client-side sunt:
-
CSS (Cascade Style Sheets)
-
XHTML (Extensible HTML)
-
JavaScript
-
AJAX (Asynchronous JavaScript and XML)
-
Microsoft SilverLight
-
Dezvoltare server-side – consta in trimiterea variabilelor catre server unde se execut scriptul iar apoi server-ul trimite rezultatul inapoi la utilizator. Acest gen de programare adauga sarcini suplimentare server-ului insa asigura o compatibilitate sporita deoarece nu toti utilizatorii accepta sa execute scripturi din internet.
Principalele limbaje server-side sunt:
-
PHP
-
ASP
-
ASP .NET
-
CGI/Perl
-
Java (J2EE sau WebObjects)
-
SSJS (Server Side JavaScript)
-
Python
-
Ruby
-
Smalltalk
-
ColdFusion
-
Lotus Domino
-
IBM Websphere
Dupa cum am precizat, unul dintre sistemele cele mai populare este LAMP, insa multi dezvoltatori prefer asocierea unor limbaje may putin cunoscute (Ruby, Python) cu alte baze de date (nu MySQL). De exemplu, un alt sistem intalnit este sistemul LAPR (Linux, Apache, PostgreSQL, Ruby). Mai jos avem principalele limbaje pentru baze de date:
-
MySQL
-
PostgreSQL
-
SQLite
-
Microsoft SQL Server
-
Oracle
-
DB2
Principalele sisteme de dezvoltare de aplicatii in internet
LAMP (Linux, Apache, MySQL, PHP)
Acronimul LAMP descrie un pachet de programe si limbaje de programare cu ajutorul carora se poate realiza un server web pe care se pot gazdui site-uri web dinamice.
Un astfel de sistem are patru component principale: sistemul de operare, server-ul web, limbajul de date de date sic el de realizare a paginii web.
In cazul de fata avem un server web Apache, care este cel mai popular server web oferit in varianta free. Acesta este disponibil pentru aproape toate sistemele de operare importante si este folosit in prezent in aproape 50% din site-urile web. De asemenea, prezinta extensii pentru alte tipuri de limbaje, cum ar fi Java, Oracle, WebSphere de la IBM si altele, ceea ce il face foarte flexibil.
Pachetul de programe LAMP vine preinstalat cu toate distributiile majore de Linux, astfel incat se poate configure un server web intr-un timp foarte scurt.
Sistemul de baze de date MySQL este un system multi-user, multi-thread de baze de date relationale. De curand, compania care producea limbajul MySQL a fost achizitionata de Sun Microsystems.
Limbajul PHP este un limbaj server-side cu ajutorul caruia se pot crea pagine web dinamice. El poate fi integrat in HTML, si in urma executiei script-ului se genereaza site-ul HTML corespunzator. Utilizatorul nu poate vedea codul script-ului ci numai rezultatul produs de acesta. Fiind un limbaj server-side, orice actiune pe care utilizatorul o face duce la o noua rulare a script-ului, astfel incarcarea server-ului creste. De obicei se foloseste in combinative cu un limbaj client-side pentru operatiile de interfata cu utilizatorul, iar server-ul sa execute doar compnentele critice.
PHP poate fi inlocuit cu success de catre Perl sau Python, fiind doua alternative foarte folosite.
Variante pentru sistemul LAMP sunt:
-
WAMP (Windows, Apache, MySQL, PHP)
-
BAMP (BSD, Apache, MySQL, PHP)
-
MAMP (MacOS, Apache, MySQL, PHP)
In cazul in care se foloseste un system de operare Windows, se poate folosi serverul web integrat IIS (Internet Information Services), sistemul devenind astfel WIMP.
Cele doua limbaje folosite in LAMP (PHP si MySQL) sunt limbaje free. PHP are sintaxa similara cu a limbajului C si poate fi cu usurinta inclus intr-o pagina HTML. Este un limbaj server-side care genereaza cod HTML pe baza unei cereri effectuate de utilizator. Ofera printer altele si o securitate foarte buna, insa pentru fiecare actiune a utilizatorului trebuie sa se trimita o noua cerere la server sis a se genereze un nou raspuns, astfel incarcarea server-ului creste si aplicatia pare ca raspunde greu la actiunile utilizatorului. De asemenea, exista o comunitate larga si exista metode si functii disponibile pentru a fi descarcate si utilizate in mod gratuit sau contra cost.
ASP / ASP.NET
ASP (Active Server Page) este primul limbaj de programare server-side dezvoltat de Microsoft. ASP nu este un limbaj de programare in sine ci este solutia oferita de Microsoft pentru a folosi limbaje de programare existente intr-un context web. Programarea in ASP se face folosind obiecte, care reprezinta instante ale unor functii des intalnite. Cel mai raspandit limbaj de programare ASP este VBScript (Visual Basic) insa se pot configure si alte limbaje pentru a fi folosite in programarea ASP. Limbajul ASP este de fapt un interpretor si nu un limbaj de sine statator cum este ASP .NET care se bazeaza pe .NET Framework si este un limbaj compilat. ASP .NET este considerat a fi succesorul limbajului ASP, si datorita faptului ca foloseste tehnologia .NET permite programarea in orice limbaj din suita .NET.
ASP .NET ofera mai multe metode de programare, una dintre ele fiind code behind, care permite separarea design-ului unui site de continut. Astfel, se creaza un fisier separate in care este scris codul pentru diversele situatii ce pot aparea (pagina se incarca, utilizatorul a facut click pe un buton, etc.).
ASP .NET incearca sa faca trecerea de la dezvoltarea Windows la dezvoltarea Web prin permiterea creerii de aplicatii web intr-un mod similar creerii de interfete si programe Windows. Daca controalele introduce intr-o aplicatie Windows apar pe ecran, cele introduce intr-o pagina ASP .NET genereaza cod HTML si/sau JavaScript care este apoi trimis catre browser-ul utilizatorului.
Intr-o comparative intre limbajul ASP si PHP putem constata ca desi ambele sunt solutii gratuite, numarul de facilitati si metode incluse in PHP este mult mai mare decat cel inclus in ASP unde este necesar achizitionarea unor script-uri si modul 3rd party externe contra cost pentru a putea obtine aceeasi functionalitate.
De asemenea, faptul ca ASP si ASP .NET sunt tehnologii proprietare Microsoft implica faptul ca acestea trebuie sa ruleze pe un sistem cu sistemul de operare Windows instalat. Acest lucru duce la cresterea costului unui site deoarece este necesara procurarea unei licente Windows, spre deosebire de sistemul LAMP care poate fi descarcat si folosit in regim gratuit cu rezultate similar sau chiar mai bune.
Totusi, datorita faptului ca tehnologia ASP .NET foloseste aceleasi principii si metode ca in cazul dezvoltarii unei aplicatii Windows, este usor pentru cineva care are deja cunostinte de dezvoltarea de aplicatii Windows sa treaca la dezvoltarea de aplicatii web fara un effort prea mare.
Alt avantaj fata de LAMP il constituie faptul ca se foloseste un singur framework pentru dezvoltarea de aplicatii pe cand in cazul LAMP avem de a face cu o multitudine de solutii, putand fi astfel dificil de a allege sau a configura solutia dorita.
Java (JavaEE)
Java reprezinta un limbaj de programare dezvoltat de Sun Microsystems cu aplicatii largi nu numai in dezvoltarea web ci si in aplicatii stand-alone atat pentru PC-uri cat si pentru terminale mobile. Compilatorul Java transforma codul scris de programator intr-un cod intermediary care poate fi rulat pe orice system care are instalat JVM (Java Virtual Machine). Se asigura astfel o compatibilitate ridicata si o portabilitate a aplicatiiolor pentru orice system de operare.
In web development, Java poate fi intalnit cat si ca applet-uri care sunt trimise catre calculatorul utilizatorului de catre server si executate ca atare sau sub forma de Java Server Pages (JSP) care ruleaza la server si trimit catre browser-ul utilizatorului rezultatul. Java este folosit in aplicatii complexe si de obicei de o complexitate ridicata, oferind si o securitate sporita.
Deoarece exista foarte multi dezvoltatori Java este relative usor pentru acestia sa treaca de la dezvoltarea de aplicatii stand-alone la programarea web. Pentru a rula insa un site bazat pe Java, sunt necesare cateva extensii pentru serverul web. Astfel, pentru programul Apache exista extensia Tomcat care permite folosirea Java ca limbaj de dezvoltare pentru site-uri web. Nu toate companiile care ofera hosting ofera insa aceasta extensie sau este oferita contra cost, astfel gazduirea unui site Java este mai dificila decat in cazurile precedente.
JavaEE (Enterprise Edition) contine in plus fata de varianta SE (Standard Edition) component si librarii care adauga posibilitatea rularii de aplicatii pe un server de aplicatii si accesibile din internet.
Exista cateva tehnologii bazate pe Java care sunt folosite in aplicatii complexe, cum ar fi Websphere dezvoltata de IBM si Google Web Toolkit dezvoltata de Google. In continuare vom detalia cele doua tehnologii.
IBM Websphere
Tehnologia Websphere dezvoltata de IBM cuprinde o suita de aplicatii, majoritatea proprietare, insa cel mai comun se refera la IBM Websphere Application Server (WAS). Was a fost dezvoltata folosind tehnologii open source precum JavaEE, XML si servicii web. Poate functiona foarte bine cu Apache HTTP Server, Netscape Enterprise Server, Internet Information Services (IIS) sau IBM HTTP Server.
Websphere Aplication Server este bazat pe o arhitectura orientate pe servicii (SOA) care consta intr-o infrastructura care permite schimbul de date intre aplicatii implicate in procesele de business. Aceste servicii comunica intre ele prin transfer de date sau prin coordonarea unei activitati intre doua sau mai multe servicii. Acest concept isi are radacina in calculul distribuit si in programarea modulara.
Tehnologia Websphere foloseste JavaEE ca limbaj de programare, insa nu se rezuma doar la acesta, astfel, limbajul AJAX este de asemenea foarte folosit pentru a crea pagini interactive.
Websphere este din ce in ce mai intalnit in sectorul e-business cum ar fi magazinele online Web 2.0 unde accentual se pune pe interactivitatea cu utilizatorul, posibilitatea de a-si exprima parerea despre un anumit produs sau de a-si configure preferinte care sa fie memorate de sistem. Putem vedea fiecare pagina ca pe un mini-blog unde utilizatorii pot afla detalii despre un produs atat de la producator cat si de la alti utilizatori care au achizitionat produsul respectiv. Astfel de sisteme sunt implementate in cazul amazon.com sau mai nou la noi in tara in cazul magazinului online Diverta (dol.ro) care foloseste tehnologia Websphere. In imaginea de mai jos avem prima pagina a magazinului online Diverta realizat cu tehnologia Websphere.
Thenologia Websphere, desi ofera o multitudine de avantaje, este scumpa de implementat si are nevoie de servere special si de un sistem de CMS foarte bine pus la punct, astfel este orientate exclusive proiectelor enterprise.
Websphere a cunoscut o crestere foarte mare de cand a fost introdus conceptual de Web 2.0 datorita multiplelor facilitate pe care le ofera in acest sens.
Tehnologia Websphere foloseste Java Servlets, Java Server Pages (JSP) si modelul WebObjects dezvoltat de Apple.
Servlet-urile Java permit dezvoltatorilor sa adauge continut dynamic unui site folosind Java. Este echivalentul Java al limbajelor PHP, ASP .NET sau CGI. Servlet-urile isi pot mentine stare ape parcursul mai multor transactii cu server-ul folosind cookie-uri si sesiuni. Un servlet este un obiect care primeste o cerere si genereaza un raspuns pe baza acelei cereri. Raspunsul poate fi o pagina HTML sau XML.
Servlet-urile sund generate de catre Java Server Page (JSP). JSP permite ca codul Java si anumite actiuni prestabilite sa fie incluse in documentul HTML. Ele sunt compilate in Servlet-uri care apoi sunt trimise catre utilizator.
WebObjects reprezinta o tehnologie dezvoltata de Apple in limbajul Java care permite dezvoltarea de aplicatii cu o comportare similara cu aceea a aplicatiilor de desktop. Desi este native sistemelor de operare Mac OS, se pot dezvolta aplicatii folosind WebObjects si sub Windows.
Avantajele oferite:
-
Gratuit pentru dezvoltatorii Mac
-
Separarea prezentarii, programarii si datelor
-
Acces optimizat la bazele de date, datorita abstractizarii ridicate si a separarii datelor de program si design
-
Se pot pastra informatiile de stare fara a folosi cookies
-
Este scris in Java pur ceea ce inseamna ca poate rula pe orice calculator cu JVM instalat
-
Scalabilitate – administratorii ruleaza mai multe instante ale aplicatiei simultan pe unul sau mai multe servere. Se pot alege diverse metode de echilibrare a incarcarii server-elor sau se pot define metode noi
AJAX (Asynchronous JavaScript and XML)
AJAX reprezinta o colectie de tehnici de dezvoltare web folosite pentru crearea de aplicatii web sau de Rich Internet Applications (aplicatii web care au functii si functionalitate similara cu aplicatiile de desktop traditionale). Cu AJAX, aplicatiile web pot primi date de la server in mod asincron in background fara ca acest lucru sa se observe in comportarea sau in modul de afisare al paginii.
Termenul AJAX a ajuns sa reprezinte un grup larg de tehnologii folosite in implementarea de aplicatii web care comunica cu un server in background fara sa schimbe starea curenta a paginii. Aceste tehnologii sunt:
-
XHTML si CSS pentru prezentare
-
Document Object Model pentru afisarea dinamica si interactiunea cu datele
-
XML si XSLT pentru schimbarea si manipularea datelor
-
Metoda XMLHttpRequest pentru comunicarea asincrona
-
JavaScript pentru a uni aceste tehnologii
Aceste tehnologii nu sunt insa singurele acceptate, de exemplu, in loc de JavaScript se poate folosi la fel de bine VBScript sau alte limbaje client-side.
Principalele avantaje ale AJAX sunt:
-
In multe cazuri paginile unui site contin continut comun. Cu metode traditionale, acel continut va trebui incarcat de fiecare data. Cu AJAX, paginile cer de la server doar continutul care trebuie actualizat, reducand astfel banda folosita si timpul de incarcare.
-
Datorita cererilor asincrone, paginile interactive raspund mai repede la datele introduce de utilizator si sectiuni din pagina pot fi reincarcate separat.
-
Se reduce numarul conexiunilor la server.
Printre dezavantaje putem enumera:
-
Paginile create dynamic nu sunt incluse in istoria browser-ului, astfel ca daca se face click pe butonu “Back” nu ne vom intoarce la o stare anterioara a paginii create cu AJAX ci la pagina incarcata inaintea acesteia.
-
Din acelasi motiv este dificil de a introduce la pagini favorite astfel de pagini.
-
Datorita faptului ca web crawler-ele nu execut cod JavaScript, trbuie oferite alternative pentru ca aceste pagini sa poata fi indexate.
-
Utilizatorii trebuie sa aiba permita browser-ului sa ruleze cod JavaScript pentru a putea accesa aceste pagini.
JavaScript
JavaScript este un limbaj foarte raspandit de programare web de tip client-side. Are la baza limbajul Java insa a fost gandit sa fie mai accesibil si celor care nu sunt familiari cu limbajul Java. De-a lungul timpului s-a indepartat de limbajul Java si acum nu mai seaman decat foarte putin cu acesta.
Principalele utilizari sunt acelea de a include functii incluse in pagini HTML cum ar fi:
-
Deschidere de ferestre pop-up cu diverse posibilitati de control asupra acestora
-
Validarea datelor introduce de utilizator pentru a fi siguri ca acestea sunt acceptate de catre server
-
Schimbarea imaginilor la trecerea cu mouse-ul peste ele. Folosite pentru a atrage atentia asupra elementelor importante din site
Deoarece codul JavaScript se executa local, acesta raspunde mult mai repede la actiunile utilizatorului, insa acesta trebuie sa permita browser-ului sa ruleze cod JavaScript pentru a putea naviga correct pe aceste site-uri.
De asemenea, JavaScript poate detecta actiunile utilizatorului, cum ar fi apasarea unei taste, ceea ce HTML classic nu poate face. In combinative cu rutine server-side pentru operatiunile delicate, JavaScript poate creste simtitor functionalitatea unui site.
JavaScript prezinta insa si unele vulnerabilitati datorita faptului ca codul este trimis utilizatorului si acesta poate acorda drepturi de scriere de date pe harddisk unui cod rau intentionat. Evident ca astfel de privilegii nu trebuiesc acordate unui cod de pe web, insa un utilizator neexperimentat poate face usor aceasta greseala, astfel, multi utilizatori prefer sa evite JavaScript, setand browser-ul sa nu ruleze astfel de cod.
Microsoft Silverlight
Microsoft Silverlight este un plugin web care permite folosirea de animatii, grafica vectoriala sau redarea continutului audio-video caracteristic aplicatiilor Rich Internet. De asemenea suporta limbajele .NET si este compatibil cu majoritatea browserelor care ruleaza atat pe Windows cat si pe Mac OS X. Comunitatea Linux dezvolta o variant free numita Moonlight care sa aduca aceste compatibilitati si pentru sistemele de operare Linux.
Silverlight integreaza multimedia, grafica, animatii si interactivitatea intr-un singur runtime environment. Functioneaza impreuna cu XAML si este programat cu JavaScript.
Silverlight poate reda fisiere media cum ar fi WMV, WMA si MP3 pentru toate browser-ele fara a fi necesara instalarea controalelor Active X sau a Windows Media Player, precum si video in formatul VC-1 iar in viitor in formatul H.264.
De asemenea, este posibil incarcarea de continut dynamic XML care este manipulate printr-o interfata de tip DOM, tehnica intalnita si in cazul AJAX. De la versiunea 2.0, partea de programare poate fi scrisa in orice limbaj .NET dar si in limbaje precum Ruby sau Python.
In imaginea de mai jos este o aplicatie realizata cu ajutorul Silverlight
Google Web Toolkit
Google Web Toolkit (GWT) este un framework open source de dezvoltare Java care permite dezvoltatorila sa creeze aplicatii AJAX in Java. GWT pune accent pe cod reutilizabil si solutii eficiente la provocarile AJAX cum ar fi management-ul istoriei browser-ului, bookmark-urile si portabilitatea.
Dezvoltatorul realizeaza aplicatia in Java, iar cand este gata, compilatorul transforma codul in JavaScript care est puternic optimizat.
In faza de dezvoltarea a aplicatiei, aceasta este rulata in JVM si abia cand este finalizata este convertita in cod JavaScript pentru a fi disponibila online.
Exista foarte multe extensii si librarii 3rd party care imbunatatesc foarte mult performantele acestei platforme.
In imaginile de mai jos avem cateva exemple realizate cu ajutorul GWT.
ColdFusion
ColdFusion este un limbaj de programare si un server de aplicatii folosit pentru dezvoltarea de aplicatii internet. Este similar su ASP .NET, Java Server Pages (JSP) sau PHP.
Principala caracteristica a sa este limbajul de scripting asociat: ColdFusion Markup Language (CFML) care se compara cu JSP, ASP .NET sau PHP insa are sintaxa similara cu HTML. Totusi, aplicatiile ColdFusion se pot realize si in alte limbaje decat CFML, cum ar fi server-side ActionScript, iar script-urile incluse in site pot fi scrise intr-un limbaj similar cu JavaScript, numit CFScript.
De asemenea, ColdFusion suporta actiuni asincrone cum ar fi mesageria instant printr-o interfata gateway.
Comparatie intre cele mai folosite sisteme de dezvoltare web
|
LAMP
|
ASP .NET
|
JavaEE
|
Cost
|
Gratuit
|
Mare
|
Gratuit
|
Platforme
|
Multe
|
Doar Windows
|
Multe
|
Costuri hardware
|
Nu are cerinte mari
|
Cerinte medii
|
Cerinte mari
|
Pregatire
|
Dificil
|
Usor
|
Usor
|
Gazduire
|
Foarte raspandita si ieftina
|
Foarte raspandita si putin mai scumpa
|
Nu foarte raspandita
|
Siguranta
|
Foarte buna
|
Proasta in trecut, imbunatatita recent
|
Buna
|
Performante
|
Foarte bune
|
Necesita hardware mai scump
|
Necesita imbunatatiri majore ale hardware-ului
|
Scalabilitate
|
Foarte buna
|
Dificila
|
Buna
|
Administrare
|
Dificila
|
Usoara
|
Medie
|
Configurare
|
Dificila
|
Usoara
|
Medie
|
Flexibilitate
|
Foarte flexibil
|
Inflexibil
|
Moderat
|
Frmework-uri
|
Multiple
|
Unul singur
|
Unul singur
|
Componente
|
Multe
|
Multe
|
Multe
|
Din tabelul de mai sus putem observa ca per total LAMP pare sa fie Solutia cea mai avantajoasa pentru majoritatea aplicatiilor. Este gratuita, nu are nevoie de hardware scum psi ofera o siguranta foarte buna. Este totusi dificil de configurat datorita multitudinii de optiuni disponibile si multiplelor variante de limbaj de scripting si de baze de date care se pot alege. Exista totusi variante preconfigurate care rezolva acest neajuns. JavaEE reprezinta o solutie care a crescut semnificativ in preferintele dezvoltatorilor, in special datorita tehnologiilor Websphere a celor de la IBM si mai nou a Google Web Toolkit. Este preferata de obicei in aplicatiile enterprise, unde furnizeaza performante ridicate in aplicatii de dimensiuni mari. ASP .NET pare a fi cea mai dezavantajoasa solutie, insa datorita faptului ca este usor sa gasesti oameni calificati, o face un concurent serios. Marele dezavantajos este compatibilitatea redusa, putand fi dezvoltate numai aplicatii pe platform Windows. In functie de resursele disponibile, atat materiale cat si umane, fiecare dezvoltator isi poate allege cea mai potrivita solutie astfel incat sa obtina rezultate maxime.
What You See Is What You Get (WYSIWYG)
WYSIWYG este un acronim pentru What You See Is What You Get, concept ce descrie faptul ca continutul care este afisat in timpul editarii este foarte similar (daca nu identic) cu rezultatul final.
WYSIWYG implica existent unei interfete cu utilizatorul care permite acestuia sa vada ceva foarte similar cu ce va obtine in varianat finala in timp ce creeaza documentul.
Dintre programele de editare web de tip WYSIWYG ne vom opri asupra celor mai importante doua, si anume Adobe Dreamweaver si Microsoft Expression Web.
Adobe Dreamweaver
Adobe dreamweaver este un program de dezvoltare web atat in mod graphic (WYSIWYG) cat si in mod programator sau combinat. Este disponibil atat pentru Windows cat si pentru Mac OS.
Dreamweaver suporta cele mai importante tehnologii de dezvoltare web, cum ar fi: CSS, JavaScript, ASP .NET, ColdFusion, JSP si PHP.
Ca editor WYSIWYG, Dreamweaver poate sa ascunda codul HTML de utilizator, facand astfel posibil ca si cei care nu cunosc web design sa creeze pagini web si site-uri. Un mare dezavantaj al acestei metode este insa faptul ca se produce cod HTML mult mai mare decat s-ar produce la codarea manuala si astfel se reduc performantele. De asemenea, in trecut, Dreamweaver a fost criticat pentru incompatibilitati cu standardele W3C, dar aceste neajunsuri au fost reparate in ultimele versiuni.
Dreamweaver permite utilizatorilor sa testeze site-urile in mai multe browsere, cu conditia ca acestea sa fie instalate pe calculatorul utilizatorului. De asemenea, are toolbox-uri comportamentale care permit adaugare de JavaScript de baza fara a fi necesare cunostinte de programare.
De asemenea, Dreamweaver suporta extensii care sunt mici programele sau script-uri scrise de alti dezvoltatori si care sunt disponibile ata gratis cat si contra cost.
Ca majoritatea editoarelor HTML, Dreamweaver editeaza toate fisierele local si apoi le uploadeaza pe server-ul web.
Microsoft Expression Web
Microsoft Expression Web este un editor de tip WYSIWYG cat si un editor general HTML dezvoltat de Microsoft ca inlocuitor al Microsoft FrontPage. Este destinat in special designer-ilor profesionisti.
Expression Web suporta pagini ce contin XML, CSS 2.1, ASP .NET 2.0, XHTML, XSLT si JavaScript si are nevoie de .NET Framework 2.0 pentru a functiona.
Pentru redarea site-urilor create foloseste engine-ul propriu de redare care este diferit de cel folosit in browser-ul Internet Explorer dezvoltat tot de catre Microsoft si care in variant curenta prezinta multe incopatibilitati, in special cu CSS.
Ca si Dreamweaver, Expression Web suporta plug-in-uri dezvoltate de alti utilizatori sau companii care ii extend functionalitatea.
Comparatie intre principalele editoare WYSIWYG
|
Adobe Dreamweaver
|
Microsoft Expression Web
|
Cost
|
399 USD
|
299 USD
|
Sisteme de operare suportate
|
Windows, Mac OS X, Linux (Partial)
|
Windows
|
Facilitati
|
Upload FTP, Upload WebDAV, Scripting server-side, Verificarea ortografiei, Template-uri, Preview
|
Upload FTP, Upload WebDAV, Scripting server-side, Verificarea ortografiei, Template-uri, Preview
|
Suport pentru tehnologii
|
CSS 2, Frame-uri, Java, JavaScript, XSLT, XHTML, MathML (Partial), RSS, XPath
|
CSS 2, Frame-uri, Java, JavaScript, XSLT, XHTML, MathML (Partial), RSS, XPath, Atom
|
Suport imagini
|
JPEG, PNG, GIF, TIFF
|
JPEG, PNG, GIF, TIFF
|
Din tabelul anterior se observa ca cele doua editoare au performante similar, insa daca pretul este principalul criteriu, atunci Expression Web este alegerea mai buna. Daca insa se doreste dezvoltarea pe alte sisteme de operare decat Windows, atunci Dreamweaver este solutia deoarece Expression Web nu este compatibil cu alte sisteme de operare.
Exista o multitudine de editoare WYSIWYG mult mai ieftine decat cele prezentate sau chiar gratuite. Cateva exemple sunt CoffeeCup HTML Editor, iWeb de la Apple, etc. insa aceste au functionalitati reduse cand vine vorba de a adauga continut dinamic sau interactiune cu utilizatorul. Acestea pot fi unelte foarte bune pentru site-uri de prezentare, insa daca se doreste un site interactive este nevoie de interventia unui programator.
Web Content Management System (WCMS)
Site-urile din ziua de azi folosesc baze de date pentru stocarea continutului si redarea acestuia. Insa management-ul unei baze de date poate fi dificil pentru cineva neinitiat in domeniul programarii. Administrarea continutului este un element foarte important in dezvoltarea si mai ales in mentinerea functionalitatii unui site. Acest lucru se face cu ajutorul unor soft-uri specializate care se prezinta de obicei sub forma unor aplicatii web.
Functiile unui system WCMS includ:
-
Generarea de template-uri – se creaza template-uri standard (HTML sau XML) care se aplica automat noului continut sau continutului existent.
-
Editarea cu usurinta – deoarece continutul este separate de prezentarea unui site, editarea acestuia devine mult mai usoara, majoritatea sistemelor incluzand editoare WYSIWYG pentru a permite utilizatorilor sa modifice continut
-
Adaugarea de noi module – se permite adaugarea de noi module care respecta un sablon standard.
-
Controlul documentelor – Timpul de viata al unui document poate fi urmarit in toate etapele sale.
-
Virtualizarea continutului – Fiecare utilizator lucreaza cu o copie virtual a unui site web, astfel incat fiecare modificare poate fi mai intai testate inainte sa fie prezentata utilizatorilor finali.
Exista o multitudine de siteme atat contra cost cat si gratuite si vom analiza mai in detaliu pe cele mai importante doua dintre acestea: Joomla! si Drupal.
Joomla!
Joomla! este un sistem de management al continutului gratuit si open source. Printre facilitatile sale enumeram: page caching, feed-uri RSS, variante “printer friendly” ale paginilor, blog-uri, sondaje de opinie, cautare in site, etc. Esta scris folosind PHP si MySQL pentru bazele de date.
Joomla permite ca extensiile sa fie instalate si integrate cu usurinta, existand peste 3500 de extensii disponibile. Pe langa plug-in-uri, Dezvoltatorii mai pot crea backup-uri ale site-urilor, traducerea continutului, si creerea de legaturi care pot fi mai usor indexate de motoarele de cautare. Se pot adauga module precum calendare sau cod Google AdSense in interiorul site-ului. Se pot seta parametric globali de afisare a paginilor dar si parametric individuali pentru fiecare pagina.
Avantajele oferite de Joomla! sunt:
-
Instalare usoara
-
Interfata intuitiva
-
Administrarea continutului se face cu usurinta
-
Multe module care pot fi adaugate usor
-
Exita posibilitatea de creare a versiunilor
-
Comunitate extinsa
Drupal
Drupal este un CMS gratuit si open source scris in PHP. Ca si alte CMS, Drupal permite utilizatorilor sa creeze si organizeze continut, sa particularizeze prezentarea acestuia, executarea de task-uri automate si management-ul vizitatorilor unui site.
Desi Drupal se adreseaza mai mult utilizatorilor initiate in programare web, se poate folosi cu success si de catre cei care nu au cunostinte de programare, folosind functiile de baza ale sale.
Facilitatile de baza oferite de Drupal includ: posibilitatea de creare de conturi multiple de utilizatori, meniuri administrative, feed-uri RSS, modificarea privilegiilor conturilor, blog, forum, si optiuni de creare a unui site de prezentare sau a unei comunitati interactive.
De asemenea continutul poate fi modificat sau creat atat de utilizatori inregistrati cat si de utilizatori anonimi, daca administratorul permite acest lucru, si poate fi prezentat in functie de mai multe criterii.
Avantajele oferite de Drupal sunt:
-
Instalare usoara
-
Posibilitatea de a administra mai multe site-uri cu o singura instalare
-
Foarte flexibil
-
Editarea se poate face direct in pagina web
-
Legaturi inteligibile care sunt usor de indexat de motoarele de cautare
-
Posibilitatea de a crea versiuni
Printre site-urile care folosesc Drupal se numara: MTV UK, BBC, Nasa, Greenpeace UK, etc. ceea ce reprizinta un plus de incredere in functionalitatea acestui sistem.
Din punctual de vedere al compatibilitatii, Drupal poate functiona atat pe Apache cat sip e IIS, in timp ce Joomla! nu functioneaza decat pe Apache. Similar, Drupal poate lucre atat cu MySQL cat si cu PostgreSQL in timp ce Joomla! lucreaza doar cu MySQL.
Pana la urma, ambele sisteme ofera performante bune, Joomla fiind mai usor de folosit si mai intuitive, adresandu-se mai mult utilizatorilor neinitiati in programare, iar Drupal ofera functii avansate pentru programatori.
Bibliografie
-
http://en.wikipedia.org
-
http://www.ibm.com
-
http://www.microsoft.com
-
http://www.java.com
-
http://www.adobe.com
Dostları ilə paylaş: |