Evoluția ludoprogramming.com – de la Web Forms la arhitectură modernă

  • Doru Bulubasa
  • 09 January 2026

Orice proiect tehnic care trăiește suficient de mult ajunge, inevitabil, să reflecte evoluția tehnologiilor, a experienței dezvoltatorului și a obiectivelor inițiale. ludoprogramming.com nu este doar un blog tehnic, ci și un jurnal real al deciziilor arhitecturale, al experimentelor reușite (și mai puțin reușite) și al adaptării continue.

Acest articol urmărește cronologic transformările prin care a trecut site‑ul, de la primele linii de cod scrise în Web Forms până la discuția despre un posibil viitor bazat pe Azure Functions și o arhitectură orientată pe servicii.


1. Începuturile: ASP.NET Web Forms + .NET Framework + SQL Server

Prima versiune a site‑ului a fost construită folosind:

  • ASP.NET Web Forms

  • .NET Framework

  • SQL Server ca bază de date

La momentul respectiv, Web Forms oferea un mod rapid de a construi aplicații web dinamice, cu o curbă de învățare relativ mică. Modelul event‑based și controalele server‑side au fost potrivite pentru început, însă au venit la pachet cu:

  • logică puternic legată de UI

  • dificultăți de testare

  • control limitat asupra HTML‑ului generat

Această etapă a fost esențială pentru formarea bazei, dar și pentru a înțelege ce limitări apar în proiectele care cresc în timp.


2. Trecerea la .NET Core și Azure Web App

Următorul pas natural a fost migrarea către:

  • ASP.NET Core

  • Azure Web App pentru hosting

Această mutare a adus beneficii clare:

  • performanță mai bună

  • configurare modernă (dependency injection nativ)

  • separare mai clară a responsabilităților

  • integrare facilă cu ecosistemul Azure

Site‑ul a devenit mai stabil, mai ușor de întreținut și pregătit pentru extindere.


3. Bootstrap, MySQL și mutarea pe Ubuntu VM în Azure

Odată cu maturizarea proiectului, au apărut și alte schimbări importante:

UI & Design

  • aplicarea unei teme Bootstrap pentru un aspect modern și responsive

Backend & infrastructură

  • migrarea de la SQL Server la MySQL

  • deploy pe Ubuntu VM în Azure

  • configurare Nginx ca server principal

  • Apache păstrat ca entry point, cu redirect către Nginx

Această etapă a fost una profund tehnică, axată pe:

  • înțelegerea administrării unui server Linux

  • configurarea corectă a reverse proxy‑ului

  • control total asupra mediului de rulare

A fost un pas important de la „platform as a service” către „infrastructure as a service”.


4. Experiment: Blazor WebAssembly

Din dorința de a învăța și experimenta tehnologii moderne din ecosistemul .NET, site‑ul a fost refactorizat într‑o versiune bazată pe:

  • Blazor WebAssembly

  • o nouă temă Bootstrap

Obiectivul acestei etape nu a fost neapărat producția, ci:

  • înțelegerea modelului SPA în .NET

  • analiza experienței de dezvoltare cu Blazor

  • testarea performanței și a flexibilității

Concluzia rapidă

Pentru un blog orientat pe conținut, problema majoră a fost SEO:

  • randare client‑side

  • indexare slabă în motoarele de căutare

  • timp mai mare până la afișarea conținutului

Deși Blazor este o tehnologie excelentă în anumite contexte, pentru acest caz de utilizare nu a fost alegerea optimă.


5. Revenirea la MVC + API (cu lecțiile învățate)

După experimentul Blazor, decizia a fost una pragmatică:

  • revenire la ASP.NET MVC pentru UI

  • API separat pentru logică și date

  • păstrarea aceleiași teme Bootstrap

Această arhitectură a oferit:

  • SEO excelent

  • separare clară între prezentare și backend

  • posibilitatea de a extinde API‑ul pentru alte clienți (mobile, MAUI, SPA)

Practic, site‑ul a devenit mai matur și mai aproape de un produs real, nu doar de un experiment.


6. Care ar putea fi următorul pas?

Web App pentru UI + Azure Functions pentru backend

Un pas firesc în evoluția proiectului ar putea fi:

  • Web App (MVC sau chiar Razor Pages) strict pentru UI

  • înlocuirea API‑ului clasic cu Azure Functions

Beneficii

  • arhitectură serverless

  • scalare automată

  • costuri optimizate

  • funcții mici, bine delimitate (articole, comentarii, search, admin)

Practic

  • UI → Azure Web App

  • Backend → Azure Functions (HTTP triggered)

  • posibilă tranziție către o arhitectură microservicii light

Această abordare ar transforma ludoprogramming.com într‑un exemplu real de arhitectură modernă, perfect aliniată cu temele discutate pe blog.


Concluzie

Evoluția ludoprogramming.com nu este despre „rescrierea codului”, ci despre:

  • învățare continuă

  • adaptare la context

  • luarea deciziilor potrivite pentru scopul aplicației

Fiecare etapă a avut rolul ei și a contribuit la nivelul actual de maturitate. Următorul pas nu este neapărat o schimbare radicală, ci o rafinare a arhitecturii — exact așa cum ar trebui să evolueze orice proiect tehnic sănătos.

Scrie un comentariu

Adresa de mail nu va fi publicata. Campurile obligatorii sunt marcate cu *