luni, 8 decembrie 2008

Interfete Web 101 - CMS

Salut din nou!

Tot din categoria elementelor de baza (101) ce trebuie luate in vedere cand vine vorba de construirea unui site, face parte si termenul de Content Management System, pe scurt CMS.

Ce este un CMS?
Dupa cum ii zice si traducerea mot-a-mot din engleza, un CMS reprezinta un sistem de administrare al continutului unui website. El este format in general din doua componente:
- CMA (Content Management Application): partea ce permite unui manager sau utilizator sa creeze, modifice, sau stearga continutul unui site fara a avea cunostinte specializate (Webmaster, HTML).
- CDA (Content Delivery Application): componenta ce foloseste si compileaza informatiile din CMS pentru a actualiza website-ul nostru.

Functionalitatea unui CMS


sursa photo
Dupa cum se poate observa in figura functiile de baza ale unui CMS sunt:

* Crearea de continut : Un CMS ofera o interfata usoara de adaugare de fisiere text, poze, video, documente unui utilizator care nu are cunostinte de HTML sau Web design. De asemenea are functii de structurare a informatiei, folosind chiar drag-and-drop intre pagini, si de stabilire a legaturilor existente intre ele.

* Managementul continutului : Sunt puse la dispozitie mecanisme ce asigura salvarea tuturor versiunilor unei pagini pe masura ce ea este actualizata, impreuna cu informatii despre cine a facut modificarea si cand. De asemenea se poate asigura accesul userilor doar la anumite parti ale unui website care pot fi editate, si pentru a asigura un control mai bun al continutului fiecare actualizare poate fi notificata unui supervisor pentru a primi o confirmare inainte ca acesta sa fie publicat efectiv de catre CDA.

* Publicarea : Odata ce continutul este gata acesta poate fi publicat foarte usor pe unul sau mai multe site-uri simultan. CMS-ul lasa loc pentru o customizare grafica prin numeroase teme si plug-in-uri, si asigura consistenta paginilor pe website-ul nostru. Aceasta face ca atentia autorului sa fie mai concentrata asupra calitatii continutului, in timp ce partea de look & feel sa revina CMS-ului.

* Prezentare : Un CMS cuprinde numeroase modalitati de imbunatatire a calitatii si flexibilitatii unui site. Asigura o compatibilitate cu numeroase browsere si face ca site-ul sa fie accesibil la un numar cat mai mare de vizitatori. Poate genera automat structura paginilor si meniurile din site si deasemenea il poate face mai interactiv cu vizitatorii si mai dinamic.

In plus fata de cele prezentate mai sus, un CMS mai prezinta si alte avantaje: costuri reduse de mentenanta a site-ului impreuna cu suport pe numeroase forumuri, optiuni de securitate avansate, timp scurt de punere in functiune si un potential mai mare de crestere a site-ului datorita contributiei simultane a mai multor autori la el.

Exemple
Printre cele mai cunoscute CMS-uri se regasesc Joomla!, Drupal, si specializat pe partea de blog-uri, Wordpress. Exista si evaluari ale CMS-urilor anuale iar o lista sumara a premiilor acordate o gasiti aici. Un exemplu de site construit pe Joomla! si cu tutoriale pe partea de interfete web este www.interfete-w3b.com

Va salut si ne reauzim in curand :-)

C# vs. VB - Partea a doua

Revin cu partea a doua a micutei noastre comparatii intre C# si VB, si va voi prezenta in continuare diferentele concrete, la nivel de sintaxa, intre cele doua limbaje.

Structura
Din punct de vedere al organizarii generale, codul C# si cel VB sunt foarte asemanatoare, majoritatea diferentelor fiind pur cosmetice - spre exemplu, C# foloseste acolade pentru a deschide si inchide blocuri, VB - "End ". Ceea ce este, insa, bine de stiut, este faptul ca in timp ce C# permite scrierea mai multor instructiuni pe o singura linie, sau a unei singure instructiuni pe mai multe linii, VB nu permite acest lucru. Cu alte cuvinte, in VB avem "linia si intructiunea", sau putem folosi caracterul "_" (underscore) pentru a continua pe linia urmatoare. Majoritatea tutorialelor de tip "coding style guidelines" chiar recomanda folosirea acestei alternative pentru a face codul cat mai lizibil.

Comentarii
La prima vedere, aceasta sectiune poate parea nu foarte importanta, dar de dragul coding style (din nou) si al documentarii codului (mai ales in cazul lucrului in echipa, sau al unui proiect al carui cod sursa urmeaza a fi inspectat de un superior, client, etc.) - voi discuta si acest aspect. Ce este interesant de observat - si o bila alba pentru C# in defavoarea lui VB - este faptul ca C# ofera o mult mai mare flexibilitate a comentariilor - se pot comenta atat cate o linie intreaga sau o portiune finala de linie ("//"), cat si mai multe linii consecutive ("/*...*/"). In VB, in schimb, nu se pot comenta decat linii intregi sau portiuni finale de linii (prin inserarea unui apostrof), si nu paragrafe. Din fericire, insa, Visual Studio compenseaza acest neajuns prin optiunea de a comenta automat o selectie a cursorului.
O facilitate demna de mentionat (chiar daca nu reprezinta o diferenta, fiind accesibila pentru ambele limbaje) este aceea de adauga un summary oricarei functii sau metode.

Tipuri de date
Tipurile primitive de date sunt aceleasi atat in C#, cat si in VB, singurele diferente fiind de scriere a denumirilor acestora. Ca regula, in VB denumirile sunt scrise cu litera mare, iar in C# cu litera mica, singura exceptie fiind DateTime din C#. Tipurile principale de date la care apar si alte diferente sunt (VB/C#): Boolean/bool, Integer/int, UInteger/uint, Single/float, Date/DateTime.
Ce ar mai fi de mentionat aici este conversia intre tipuri. In VB, cea generala se face prin functia CType(obiect, tip), cu forme particulare, cum ar fi CInt, CStr, etc. Iar in C#, conversia se face prin cast, de forma (tip_nou)obiect.

Constante si enumerari
Nu se pot spune prea multe la acest capitol - declararea si folosirea constantelor si a enumerarilor sunt aproape identice intre cele doua limbaje, iar cuvintele cheie (const, respectiv enum), sunt si ele aceleasi (mai putin capitalizarea).

Operatori
Principalele diferente intre operatorii C# si cei VB sunt faptul ca C#, spre deosebire de VB, foloseste doi operatori diferiti pentru atribuire si comparatie de egalitate (=, respectiv ==), si apropierea de limbajul natural a operatorilor logici in VB, fata de C# - spre exemplu AndAlso/And, fata de &&/&, OrElse/Or, fata de ||/|, etc.

Voi continua in posturile urmatoare cu restul diferentelor. Intre timp, puteti arunca un ochi aici, pentru exemple de cod si pentru detalii suplimentare pe marginea a ceea ce am mentionat de mai sus, dar nu uitati sa va intoarceti pentru explicatii :).

Catalina

luni, 1 decembrie 2008

C# vs. VB - The Series

Salutare din nou!

Intamplator m-am intalnit zilele trecute cu amic "fellow .NET monkey". Evident, cand conversatia a ajuns la capitolul "cu ce te ocupi?", prima intrebare a fost "VB sau C#?". Cum aceasta pare intrebarea zilei (de cam multe zile), m-am gandit sa incerc sa formulez si propriul meu raspuns.

Prima parte a acestui raspuns va trata aspectul istoric, sa spunem asa, al diferentelor intre cele doua limbaje - mai exact, contextul in care a aparut fiecare si publicul caruia ii era fiecare destinat.

1. Visual Basic

Scopul limbajului Visual Basic a fost de a crea o piata mai larga pentru uneltele de software development. Inainte de aparitia sa, in martie 1991, limbajele de programare erau percepute ca fiind complexe si accesibile numai programatorilor cu multa pregatire si experienta. VB, in schimb, este simplu din punct de vedere sintactic, apropiat de limbajul natural, si permite practic oricui sa creeze aplicatii de baza, dupa numai cateva ore de exercitiu. In contextul in care la momentul aparitiei VB, programarea era vazuta ca un soi de arta elitista, posibilitatea de a se alatura acestei "elite" a generat o adevarata miscare de masa in randurile "calculatoristilor" cu experienta in "butonare", dar nu in programare.

Faptul ca Visual Basic (cel de la vremea aceea, cel putin), nu dispunea de uneltele de baza ale programarii orientate pe obiecte nu a contat foarte mult pe moment. Aplicatiile pentru care exista cerere erau inca suficient de simple - client-server in cel mai fericit caz, iar aplicatiile web nu depaseau stadiul de experimente si improvizatii. Fapt ce a reprezentat o lama cu doua taisuri.

Varful "modei" VB a coincis cu varful fenomenului numit "Internet boom". Armate de programatori cu lacune grave in pregatire si in gandire erau platiti cu sume fabuloase pentru a incropi orice semana cat de cat cu o aplicatie software. Iar limbajul VB, cu lipsa sa de formalitate si de constrangeri, a constituit mediul perfect.

Schimbarea a intervenit in 2000, cand Microsoft a anuntat lansarea .NET, iar tot ceea ce a insemnat pana atunci VB a fost inlocuit cu un model cu totul nou. Engine-ul din spate a fost rescris de la zero, si toate uneltele third party mai mult sau mai putin functionale, elegante, etc. au fost inlocuite cu un framework nou, organizat, si consistent. Cu aceste schimbari, functionalitatea VB a fost adusa la nivelul unui C# si Java.

Cu toate acestea, mentalitatea VB a ramas pana astazi cam aceeasi, si exista o explicatie pentru care, statistic vorbind, programatorul mediu C# da dovada de ceva mai multa disciplina decat cel VB. Evident, cu exceptiile de rigoare.

2. C#

Prin comparatie, C# a pastrat formalitatea si constrangerile specifice C, apoi Java. Efectul indirect a fost perpetuarea mentalitatii oarecum elitiste ce domina aria programarii pana la aparitia VB. Multi programatori C# inca ii privesc cu un anume aer de superioritate pe cei VB. O posibila explicatie a mentalitatii C# ar fi sintaxa putin mai abstracta, fata de cea VB, foarte apropiata de limbajul natural. O alta, dupa cum am precizat mai sus, numarul mult mai mare de programatori VB.

Adevarul este, in proprie experienta, cel putin, ca din punct de vedere functional, cele doua limbaje ofera aceleasi unelte si se pot realiza aceleasi lucruri la fel de bine. Dovada sta faptul ca orice sursa poate fi tradusa dintr-un limbaj in celalalt. Diferenta este ca unele "bucatele" de functionalitate pot fi implementate mai usor/mai repede/in mai putine linii, in C# fata de VB, sau invers.

Iar exact aceste diferente concrete in sintaxa, evaluare, organizare a memoriei, vor constitui subiectul urmatoarelor articole din aceasta mini-serie.

Pe data viitoare,
Catalina

Articolele noastre