Blazor i .NET

Stara WinForms ili WPF aplikacija: kako je prebaciti u web bez velikog prepisivanja

Desktop aplikacija radi, ali instalacije, rad od kuće i lozinke za bazu na svakom računalu postaju problem. Kako je postupno prebaciti u web uz Blazor.

Vlado Pandžić

Vlado Pandžić · Osnivač · Senior .NET arhitekt
Objavljeno · 4 min čitanja

U puno firmi, osobito u proizvodnji, logistici i veleprodaji, najvažniji program nije web aplikacija. To je desktop aplikacija u WinFormsu ili WPF-u, napravljena prije deset ili petnaest godina, i na njoj se vrti cijeli posao.

I radi. To je i problem, jer nitko ne želi dirati nešto što radi. Ali oko nje se nakupljaju stvari koje sve više koštaju.

Prvo poštena istina: WinForms i WPF nisu mrtvi

WinForms i WPF podržani su i na .NET-u 10. Ako aplikaciju prebacite s .NET Frameworka na novi .NET, ona može mirno raditi još godinama.

Problem, dakle, nije u tome što će prestati raditi. Problem je u svemu oko nje.

Gdje desktop aplikacija počinje koštati

  • Instalacija na svako računalo. Nova verzija znači obilazak računala ili skriptu koja na pola njih ne prođe. I onda pet ljudi radi na pet različitih verzija.
  • Rad od kuće i s terena. Za pristup izvana treba Citrix ili udaljena radna površina, s licencama i serverima koji se plaćaju.
  • Tablet u skladištu i mobitel na terenu. Desktop aplikacija se na njima ne pokreće.
  • Lozinka za bazu na svakom računalu. Većina starih desktop aplikacija spaja se izravno na bazu, pa se korisničko ime i lozinka za bazu nalaze u konfiguraciji na svakom računalu. Tko ima računalo, ima i pristup bazi. To je sigurnosna rupa za koju većina šefova ne zna.
  • Sve teže je naći ljude. Novi developeri rade web, a desktop aplikaciju održava sve manje ljudi.

Tri puta

Put Što znači Rizik Kad ima smisla
Ostati na desktopu Prelazak na .NET 10, sve ostalo isto Mali Kad aplikaciju koristi nekoliko ljudi u uredu i nitko je ne treba izvana
Sve prepisati odjednom Nova web aplikacija, stara se ugasi na dan prelaska Velik Rijetko: kad je stara aplikacija mala i jednostavna
Postupno Nova tehnologija ekran po ekran, uz staru aplikaciju Mali Gotovo uvijek kad je aplikacija velika i važna

Prepisivanje odjednom zvuči čisto, ali u praksi znači godinu ili dvije u kojima se razvija nova aplikacija, a stara stoji. Kad nova konačno stigne, pola stvari radi drukčije nego što su ljudi navikli, i sve se lomi odjednom.

Postupni put koji malo tko zna

Microsoft ima komponentu koja se zove BlazorWebView. Njome se Blazor ekrani ugrađuju izravno u postojeću WinForms ili WPF aplikaciju.

To znači da se novi ekrani pišu u Blazoru, ali se prikazuju unutar stare aplikacije. Korisnici ne primjećuju nikakav prelazak, samo da je jedan ekran novi. Kad su svi ekrani prebačeni, iste Blazor komponente idu u web aplikaciju, bez ponovnog pisanja.

Ovako izgleda novi Blazor ekran unutar postojeće WinForms aplikacije:

var services = new ServiceCollection();
services.AddWindowsFormsBlazorWebView();

var ordersView = new BlazorWebView
{
    Dock = DockStyle.Fill,
    HostPage = @"wwwroot\index.html",
    Services = services.BuildServiceProvider(),
};
ordersView.RootComponents.Add<OrderList>("#app");

ordersTab.Controls.Add(ordersView);

A kasnije ista komponenta u web aplikaciji:

@page "/orders"

<OrderList />

Za WPF je isto, samo s AddWpfBlazorWebView. Komponente žive u zajedničkoj biblioteci koju koriste i desktop i web aplikacija.

Kako to izgleda korak po korak

  1. LogikaPoslovna pravila iza API-ja
  2. Novi ekraniBlazor unutar stare aplikacije
  3. WebIste komponente u pregledniku
  4. KrajDesktop se gasi kad nitko ne treba
  1. Poslovna logika iza API-ja. Pravila i pristup bazi izvlače se iz ekrana u zajednički dio iza API-ja. Usput nestaje lozinka za bazu s računala korisnika, jer sad samo API razgovara s bazom.
  2. Novi ekrani u Blazoru. Svaki novi ili prepravljeni ekran piše se u Blazoru i prikazuje unutar stare aplikacije.
  3. Web verzija. Kad je dovoljno ekrana prebačeno, isti se otvaraju u pregledniku, na računalu kod kuće, tabletu u skladištu ili mobitelu na terenu.
  4. Gašenje desktopa. Stara aplikacija nestaje tek kad je više nitko ne treba, a ne na neki riskantni datum.

U svakom trenutku imate aplikaciju koja radi. Nema godine u kojoj se samo čeka.

Ako je aplikacija još na .NET Frameworku, prvi korak je obično prelazak na .NET 10, jer BlazorWebView radi na novom .NET-u.

Što možete provjeriti već ovaj tjedan

Otvorite konfiguracijsku datoteku desktop aplikacije na jednom računalu i potražite connection string. Ako u njemu piše korisničko ime i lozinka za bazu, ta lozinka je na svakom računalu u firmi.

Zatim izbrojite: koliko ljudi bi aplikaciju trebalo koristiti izvan ureda, na tabletu ili na terenu, a danas ne može?

Kako mi radimo

Upravo to radimo: postupno prebacujemo stare .NET aplikacije u web s Blazorom, ekran po ekran, bez prekida rada i bez godine čekanja. Krećemo od pregleda aplikacije i odluke koji je prvi ekran, a prvi novi Blazor ekran unutar vaše postojeće aplikacije obično vidite već nakon nekoliko tjedana. Prvi korak je besplatni razgovor od 30 minuta.

Ovaj članak služi općem informiranju i nije pravni, porezni, financijski ni drugi stručni savjet. Scenariji, primjeri i izračuni su ilustrativni. Uvjeti korištenja i odricanje od odgovornosti.

Povezani članci

© 2026 ProCoding — Sva prava pridržana.Impresum i privatnostUvjeti korištenjaSplit, Hrvatska