Blazor specialisation

Blazor development for business applications

ProCoding is a .NET studio in Split, Croatia (EU). Our Blazor code helps build the world's fastest electric cars, runs battery storage and solar plants, and manages holiday rentals across the Adriatic.

Vlado Pandžić

Vlado Pandžić · Founder · Senior .NET architect
14 years in .NET. Lead backend engineer at Bugatti Rimac from 2020 to 2024. You talk to him directly.

Pages/Orders.razor
@page "/orders"@rendermode InteractiveServer@inject IOrderService Orders <QuickGrid Items="orders" Virtualize="true">    <PropertyColumn Property="o => o.Number" Title="Order" Sortable="true" />    <PropertyColumn Property="o => o.Customer" />    <PropertyColumn Property="o => o.Total" Format="N2" /></QuickGrid> @code {    IQueryable<Order>? orders;     protected override async Task OnInitializedAsync()        => orders = (await Orders.GetOpenAsync()).AsQueryable();}
14
years in .NET
2020
shipping Blazor to production since
1,300+
components in a single Blazor portal
2013
working with our longest client since

Blazor in production

Not demos. Systems that factories, power plants and travel companies run on every day.

Bugatti Rimac

Automotive

Calibration and diagnostics software used to build the world's fastest production electric cars. A Blazor web application working alongside desktop tools on the production line.

  • Calibration
  • Diagnostics
  • Web + desktop

Ionian Energy Systems

Energy

Software that runs battery storage and solar plants: when to charge, when to discharge, and what it earns. Built on .NET 9 with a Blazor interface.

  • .NET 9
  • PostgreSQL
  • Battery storage

Adriagate

Travel

The back office that runs a holiday-rental platform on the Adriatic: properties, prices and bookings, managed in Blazor on top of an existing .NET system.

  • Admin
  • Existing system
  • Vacation rentals
— — —

European research institute

Testing and certification

A customer portal with more than 1,300 Blazor components, through which manufacturers follow their product tests and certificates.

  • .NET 8
  • Blazor Web App
  • Customer portal

Three ways to start

Each one has a defined result, so you know what you are paying for before we start.

01

Blazor health check

ForTeams with a Blazor app that is slow, unstable or hard to change.

What we look at
  • /Re-renders and component structure
  • /Grids, virtualization and paging
  • /Prerendering and data loading
  • /Server memory and SignalR circuits
  • /WebAssembly download size
  • /Authentication, secrets and dependencies
You get

A prioritised list of fixes, security findings and a walkthrough call with your team.

Duration
5 to 10 working days
Price
Fixed, agreed after a 30-minute call
02

Web Forms migration assessment

ForCompanies running ASP.NET Web Forms that need a way forward without stopping the business.

What we look at
  • /Inventory of screens and controls
  • /ViewState, Session and authentication
  • /Third-party controls and reports
  • /Target render mode for each screen
  • /Cut-over plan with the old app still running
You get

A migration roadmap with an effort range, milestones and risks.

Duration
1 to 2 weeks
Price
Fixed, agreed after a 30-minute call
03

Development and review block

ForTeams building in Blazor who want a senior engineer on call.

What we look at
  • /Feature development
  • /Code and architecture review
  • /Pairing and mentoring
  • /Upgrades to current .NET
You get

A monthly block of hours, used for whatever matters most that month.

Duration
Monthly, cancel any time
Price
Hourly rate, billed monthly

Problems we fix in Blazor apps

Slow Blazor apps are rarely Blazor's fault. It is almost always one of these five.

01

Everything re-renders on every click

Oversized components, a missing @key in lists and StateHasChanged called too often. Fixed by splitting components and controlling ShouldRender.

02

Grids that freeze with real data

Tens of thousands of rows rendered at once. Virtualize and server-side paging bring them back to instant.

03

Data loaded twice on first visit

Prerendering runs OnInitializedAsync twice. Persisted component state removes the second call.

04

Server memory that only grows

Event handlers and timers that are never disposed keep circuits alive. IDisposable and proper service lifetimes stop the leak.

05

Users who keep getting disconnected

Dropped SignalR circuits on unreliable networks. Reconnection handling and the right render mode for each page.

The Blazor health check finds which of these you have →

Web Forms to Blazor, without stopping the business

The old application keeps earning while screens move one by one. No big-bang release, no frozen roadmap.

  1. 01

    Inventory

    Every screen, control, report and dependency, with the risky parts marked.

  2. 02

    Put a proxy in front

    A reverse proxy (YARP) routes each URL to the old or the new app. System.Web adapters share login and session between them.

  3. 03

    Move screen by screen

    Each screen is rebuilt in Blazor, usually as Interactive Server, and switched over when it is ready.

  4. 04

    Switch the old app off

    When the last screen has moved, the Web Forms application is retired.

Start with a Web Forms migration assessment →

Web Forms

Orders.aspx
<asp:GridView ID="OrdersGrid" runat="server"    AutoGenerateColumns="false"    OnRowCommand="OrdersGrid_RowCommand">  <Columns>    <asp:BoundField DataField="Number" HeaderText="Order" />    <asp:BoundField DataField="Total" HeaderText="Total"        DataFormatString="{0:N2}" />    <asp:ButtonField CommandName="Approve" Text="Approve" />  </Columns></asp:GridView>

Blazor

Orders.razor
<QuickGrid Items="orders">    <PropertyColumn Property="o => o.Number" Title="Order" />    <PropertyColumn Property="o => o.Total" Format="N2" />    <TemplateColumn>        <button @onclick="() => Approve(context)">Approve</button>    </TemplateColumn></QuickGrid>

How we choose render modes

In .NET 10 every page can use a different render mode. This is our default for business applications.

Render modeUse it forAvoid it when
Static server renderingRead-mostly pages, reports, anything that should load instantly and be indexable.The page needs rich interaction without full reloads.
Interactive ServerOur defaultInternal business screens on a reliable network. Our default for line-of-business apps.Users are on unreliable connections, or there are many thousands at once.
Interactive WebAssemblyOffline use, high-latency users, or heavy client-side work.A fast first load matters, or the code must stay on the server.
Interactive AutoPublic apps that need a fast first load and later run in the browser.You do not want to maintain code that runs in both places.

Good fit, bad fit

Blazor is a good fit when

  • +Your team already works in C# and .NET
  • +You are building forms, grids, dashboards and workflows
  • +The app lives behind a login
  • +You are replacing Web Forms, Silverlight or WPF screens

Blazor is a bad fit when

  • −The site is mostly marketing content that must rank in search
  • −Your team is all in on React and happy there
  • −You need the smallest possible download on slow mobile networks

That is why this website is not built in Blazor: it is a marketing site, so static HTML is the better tool. Your order system is a different story.

Tools

Questions

Yes. Blazor is part of ASP.NET Core and ships with every .NET release, and .NET 10 is a long-term support release, supported until November 2028. Microsoft keeps investing in it, with render modes in .NET 8 and further improvements since. The risks in real projects are architectural choices, not the framework disappearing.

For internal business applications, Interactive Server on most screens and static rendering for read-only pages. WebAssembly when users are offline or far away, Auto when a public app needs a fast first load. See the table above.

Yes. Web Forms only runs on .NET Framework 4.8, which gets security fixes but no new features. The migration goes screen by screen behind a reverse proxy, so the old app keeps working until the last screen moves.

For business applications built by .NET teams, often yes: one language, shared models and no separate frontend stack. For public, content-heavy or consumer apps, React has the larger ecosystem. We will tell you which fits.

WPF if the app must stay a Windows desktop application. Blazor if users should reach it from a browser. Blazor Hybrid can also run the same components inside a desktop app.

Usually one of five causes: unnecessary re-renders, grids without virtualization, data loaded twice during prerendering, server memory that keeps growing, or SignalR falling back from WebSockets. The health check finds which ones apply to you.

The health check and the migration assessment are fixed price, agreed after a 30-minute call. Development is billed hourly or as a monthly block of hours.

Yes. Often the most useful thing is joining an existing team for a few weeks, reviewing the architecture and helping set conventions.

Have a Blazor app that needs attention, or a Web Forms app that needs to move?

A 30-minute call is enough to tell whether we can help and what the first step should be.

Book a 30-minute call →
  • EU company in Split, Croatia
  • Central European working hours
  • NDA on request
  • You talk to the engineer who writes the code

Useful to send with your message

  • /.NET version and hosting
  • /Render mode, if it is already Blazor
  • /Number of users
  • /What hurts right now
[email protected]
[email protected]
© 2026 ProCoding — All rights reserved.Split, Croatia