This article has been localized into Romanian by the community.
ASP.NET MVC vs. Web Forms
Prima versiune de ASP.NET a fost lansată în 2002, având motorul de afișare WebForms, acesta fiind singura alegere disponibilă. Mai târziu, pentru a fi compatibil cu structura MVC, Microsoft a extins ASP.NET să suporte mai multe motoare de afișare, dar pentru mulți ani dacă foloseai ASP.NET, automat, foloseai WebForms.
Microsoft avea un scop lăudabil când a creat WebForms: vroiau să abstractizeze cât se poate de mult detaliile greoaie ale protocolului HTTP și caracterul lipsit de stare pentru a face dezvoltarea web să se simtă precum dezvoltarea unei aplicații Windows, care era deja o experiență destul de plăcută la acea vreme.
Au reușit prin introducerea ViewState-ului, care asigură starea curentă a oricărui form să fie păstrată în timpul salvărilor pe server și au reușit asta cu ajutorul controalelor server, acestea încapsulează afișarea HTML și CSS într-un control arbitrar pe care îl poți customiza folosind proprietăți logice, în loc să fi forțat să amesteci direct HTML și CSS.
Au introdus de asemenea modelul acționat de evenimente, cunoscut deja de dezvoltatorii Windows la acea vreme, pentru a permite dezvoltarea răspunsului la evenimente, cum ar fi apăsarea unui buton sau schimbarea stării unui checkbox, în loc să faci verificări manuale de fiecare dată când se încărca o pagină. Asta înseamnă că marcarea (en: markup) și codul erau separate, ce în teorie este un lucru extraordinar.
Unde au eșuat WebForms
WebForms era ca o gură de aer proaspăt pentru mulți dezvoltatori și a ajutat mulți noi dezvoltatori, sau dezvoltatori puțin familiarizați cu dezvoltarea aplicațiilor Windows, pentru a învăța crearea aplicațiilor web. Din păcate Microsoft nu a reușit să creeze o abstractizare perfectă, fără greșeli, pentru că au apărut probleme foarte rapid. Unele au fost rezolvate în versiunile ulterioare, în timp ce altele, fundametale modului de funcționare WebForms, au fost mai mai greu de schimbat. Tehnologia WebForms a fost criticată pentru următoarele lucruri:
ViewState face paginile masive
Prin reținerea informațiilor despre fiecare server control de pe pagină într-un string ViewState, care este transmis înainte și înapoi între server pentru fiecare cerere, paginile WebForms au devenit masive. Daca creați o pagina de complexitate medie, string-ul ViewState rezultat putea duce la o marime de câteva sute de kilobiți. Aceasta ducea la timp mai lung de încărcare, în special pentru o conexiune mobilă și cu creșterea traficului pe smartphone-uri în toată lumea, a devin o problemă reală.
Controalele server limitau controlul pe ieșirea HTML
Controalele server facilitează crearea rapidă a ceva util, dar nu veți avea control complet al HTML-ului afișat. Aceasta devine o problemă cănd trebuie să vă reglați activitatea precum și dacă întâmpinați probleme de compatibilitate a browserului.
WebForms nu sunt bune pentru testarea automată
Modelul WebForms a fost introdus înainte ca testarea automată/unit să devină mare și atunci când a devenit, a fost ușor de văzut că WebForms sunt grele, dacă nu imposibile, pentru a face unit test.
Unde este ASP.NET MVC o îmbunătățire față de WebForms
ASP.NET MVC elimină o mulțime de abstractizări implementate de WebForms. De exemplu, în mod normal generezi tot HTML-ul singur, în loc să te bazezi pe controale server. Nu mai există un ViewState menținut de tine, efectiv se elimină această problemă (de asemenea afișarea anumitor controale server, cum ar fi GridView și Repeater, nefolositore în același timp).
Structura MVC este perfectă pentru testarea automată/unit, datorită cuplajului liber între diferite straturi.
Ce tehnologie să alegeți?
Este important de menționat că deși WebForms pare ca o tehnologie depășită, atunci când citiți cele de mai sus, în realitate nu este - WebForms este încă dezvoltat activ de Microsoft și este încă o soluție posibilă atunci când intrați în lumea dezvoltării web cu ASP.NET. WebForms este foarte bun în situații în care vrei să creezi ceva rapid, în grabă - marea majoritate a controalelor server avansate facilitează crearea a ceva util în grabă, în schimbul flexibilității oferite pentru a scrie toate marcările manual.
Dacă deja știți cum să folosiți WebForms, cu siguranță trebuie să încercați ASP.NET MVC, mai ales dacă anumite probleme menționate mai sus vă deranjau. Dacă sunteți nou în dezvoltarea web și vreți să decideți între cele două tehnologii, încă îți recomand să încercați ASP.NET MVC. Structura MVC poate părea restrictivă prentru anumite persoane, pentru că trebuie să urmăriți un model este mai greu la început, decât să nu folosești nici un model, dar odată ce vă obișnuiți devine placut de lucrat cu el și judecând după mărimea atenției pe care o primește MVC în general, nu este probabil să dispară curând.
În concluzie
Deși pare mai ușor de a începe cu ASP.NET WebForms, probabil ar trebui să încercați cu ASP.NET MVC la început, dacă sunteți nou în lumea dezvoltării web. Nu vă îngrijorați, acest tutorial vă va ghida în procesul de dezvoltare a primei dvs. aplicații ASP.NET MVC.