Specialisering på Blazor

Blazor-utveckling för affärsapplikationer

ProCoding är en .NET-studio i Split, Kroatien (EU). Vår Blazor-kod hjälper till att bygga världens snabbaste elbilar, styr batterilager och solcellsparker och hanterar semesteruthyrning längs Adriatiska havet.

Vlado Pandžić

Vlado Pandžić · Grundare · Senior .NET-arkitekt
14 år inom .NET. Lead backend engineer på Bugatti Rimac från 2020 till 2024. Du pratar direkt med honom.

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
år inom .NET
2020
Blazor i produktion sedan
1 300+
komponenter i en enda Blazor-portal
2013
samarbetar vi med vår äldsta kund sedan

Blazor i produktion

Inga demos. System som fabriker, kraftverk och reseföretag kör på varje dag.

Bugatti Rimac

Fordonsindustri

Kalibrerings- och diagnostikprogramvara som används för att bygga världens snabbaste serietillverkade elbilar. En Blazor-webbapplikation som arbetar tillsammans med skrivbordsverktyg vid produktionslinjen.

  • Kalibrering
  • Diagnostik
  • Webb + desktop

Ionian Energy Systems

Energi

Programvara som styr batterilager och solcellsparker: när de ska laddas, när de ska laddas ur och vad det ger. Byggd på .NET 9 med ett Blazor-gränssnitt.

  • .NET 9
  • PostgreSQL
  • Batterilager

Adriagate

Resor

Backofficet som driver en plattform för semesteruthyrning vid Adriatiska havet: boenden, priser och bokningar, hanterade i Blazor ovanpå ett befintligt .NET-system.

  • Administration
  • Befintligt system
  • Semesteruthyrning
— — —

Europeiskt forskningsinstitut

Provning och certifiering

En kundportal med mer än 1 300 Blazor-komponenter, där tillverkare följer provningar och certifikat för sina produkter.

  • .NET 8
  • Blazor Web App
  • Kundportal

Tre sätt att börja

Vart och ett har ett definierat resultat, så att du vet vad du betalar för innan vi sätter igång.

01

Blazor health check

FörTeam med en Blazor-app som är långsam, instabil eller svår att ändra.

Vad vi tittar på
  • /Omrenderingar och komponentstruktur
  • /Grids, virtualisering och paginering
  • /Prerendering och datainläsning
  • /Serverminne och SignalR-circuits
  • /Nedladdningsstorlek för WebAssembly
  • /Autentisering, hemligheter och beroenden
Du får

En prioriterad lista med åtgärder, säkerhetsfynd och ett genomgångsmöte med ditt team.

Tidsåtgång
5 till 10 arbetsdagar
Pris
Fast pris, bestäms efter ett samtal på 30 minuter
02

Analys av Web Forms-migrering

FörFöretag som kör ASP.NET Web Forms och behöver en väg framåt utan att stoppa verksamheten.

Vad vi tittar på
  • /Inventering av skärmar och kontroller
  • /ViewState, Session och autentisering
  • /Kontroller och rapporter från tredje part
  • /Renderingsläge för varje skärm
  • /Plan för övergången medan den gamla appen fortsätter att köras
Du får

En migreringsplan med ett spann för insatsen, milstolpar och risker.

Tidsåtgång
1 till 2 veckor
Pris
Fast pris, bestäms efter ett samtal på 30 minuter
03

Block för utveckling och granskning

FörTeam som bygger i Blazor och vill ha en senior utvecklare till hands.

Vad vi tittar på
  • /Utveckling av funktioner
  • /Granskning av kod och arkitektur
  • /Parprogrammering och mentorskap
  • /Uppgraderingar till aktuell .NET-version
Du får

Ett månatligt block av timmar, som läggs på det som är viktigast just den månaden.

Tidsåtgång
Månadsvis, kan sägas upp när som helst
Pris
Timpris, fakturering varje månad

Problem vi åtgärdar i Blazor-appar

Långsamma Blazor-appar är sällan Blazors fel. Nästan alltid handlar det om något av de här fem.

01

Allt renderas om vid varje klick

För stora komponenter, en saknad @key i listor och StateHasChanged som anropas för ofta. Åtgärdas genom att dela upp komponenter och styra ShouldRender.

02

Grids som fryser med riktiga data

Tiotusentals rader som renderas på en gång. Virtualize och paginering på servern gör dem omedelbara igen.

03

Data som laddas två gånger vid första besöket

Prerendering kör OnInitializedAsync två gånger. Sparat komponenttillstånd tar bort det andra anropet.

04

Serverminne som bara växer

Händelsehanterare och timrar som aldrig frigörs håller circuits vid liv. IDisposable och rätt livslängd för tjänster stoppar läckan.

05

Användare som hela tiden kopplas bort

Tappade SignalR-circuits på opålitliga nätverk. Hantering av återanslutning och rätt renderingsläge för varje sida.

En Blazor health check visar vilka av dem du har →

Från Web Forms till Blazor, utan att stoppa verksamheten

Den gamla applikationen fortsätter att dra in pengar medan skärmarna flyttas en i taget. Ingen big bang-release, ingen frusen roadmap.

  1. 01

    Inventering

    Varje skärm, kontroll, rapport och beroende, med de riskfyllda delarna markerade.

  2. 02

    Sätt en proxy framför

    En reverse proxy (YARP) skickar varje URL till den gamla eller den nya appen. System.Web-adaptrar delar inloggning och session mellan dem.

  3. 03

    Flytta skärm för skärm

    Varje skärm byggs om i Blazor, oftast som Interactive Server, och kopplas över när den är klar.

  4. 04

    Stäng av den gamla appen

    När den sista skärmen har flyttats pensioneras Web Forms-applikationen.

Börja med en analys av din Web Forms-migrering →

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>

Så väljer vi renderingsläge

I .NET 10 kan varje sida använda ett eget renderingsläge. Det här är vårt standardval för affärsapplikationer.

RenderingslägeAnvänd det förUndvik det när
Statisk serverrenderingSidor som mest läses, rapporter, allt som ska laddas direkt och kunna indexeras.Sidan behöver rik interaktion utan att laddas om helt.
Interactive ServerVårt standardvalInterna affärsskärmar på ett stabilt nätverk. Vårt standardval för verksamhetssystem.Användarna har instabila anslutningar, eller det är många tusen samtidigt.
Interactive WebAssemblyOfflineanvändning, användare med hög latens eller tungt arbete på klientsidan.En snabb första laddning är viktig, eller koden måste stanna på servern.
Interactive AutoPublika appar som behöver en snabb första laddning och sedan körs i webbläsaren.Du vill inte underhålla kod som körs på båda ställena.

Passar bra, passar inte

Blazor passar bra när

  • +Ditt team redan arbetar i C# och .NET
  • +Du bygger formulär, grids, dashboards och arbetsflöden
  • +Appen ligger bakom en inloggning
  • +Du ersätter skärmar i Web Forms, Silverlight eller WPF

Blazor passar inte när

  • −Webbplatsen mest består av marknadsföringsinnehåll som ska ranka i sökmotorer
  • −Ditt team har satsat helt på React och trivs med det
  • −Du behöver minsta möjliga nedladdning över långsamma mobilnät

Därför är den här webbplatsen inte byggd i Blazor: det är en marknadsföringssajt, så statisk HTML är det bättre verktyget. Ditt ordersystem är en annan historia.

Verktyg

Från bloggen

Blazor och .NET

Alla artiklar →
4 min läsning”Den fungerar och kostar ingenting”: vad din gamla applikation egentligen kostar att behållaI budgeten kostar den gamla applikationen ingenting, men den kostar pengar varje månad. De dolda kostnaderna, när modernisering lönar sig och när du bör avstå.4 min läsningFlytta en WinForms- eller WPF-applikation till webben utan en stor omskrivningSkrivbordsappen fungerar, men installationer, distansarbete och databaslösenord på varje dator skapar problem. Så flyttar du den stegvis till webben med Blazor.4 min läsningÄr din Blazor-app långsam? 7 orsaker och hur du åtgärdar demLaggar Blazor-appen vid varje klick, fryser en tabell eller växer serverns minne hela tiden? De sju vanligaste orsakerna, med kod före och efter, för .NET 10.5 min läsningSupporten för .NET 8 och .NET 9 upphör den 10 november 2026: så uppgraderar du till .NET 10Microsoft slutar ge säkerhetsuppdateringar för .NET 8 och .NET 9 den 10 november 2026. Vad det innebär, vad som går sönder och hur du byter till .NET 10 LTS.4 min läsningÄr EF Core långsamt? 8 vanliga orsaker och hur du åtgärdar demBlir din EF Core-applikation långsammare när den växer? De åtta vanligaste orsakerna, från N+1-frågor till paginering, med kod före och efter.4 min läsningÄr applikationen långsam och användarna klagar? Läs det här innan du köper en större serverAnvändarna klagar på en långsam applikation och lösningen är en större server? Oftast fel. Var tiden går, hur du mäter den och när en server faktiskt hjälper.

Frågor

Ja. Blazor är en del av ASP.NET Core och följer med varje .NET-release, och .NET 10 är en LTS-version med support till november 2028. Microsoft fortsätter att investera i det, med renderingslägen i .NET 8 och fler förbättringar sedan dess. Riskerna i verkliga projekt är arkitekturval, inte att ramverket försvinner.

För interna affärsapplikationer Interactive Server på de flesta skärmar och statisk rendering för sidor som bara läses. WebAssembly när användarna är offline eller långt bort, Auto när en publik app behöver en snabb första laddning. Se tabellen ovan.

Ja. Web Forms körs bara på .NET Framework 4.8, som får säkerhetsuppdateringar men inga nya funktioner. Migreringen sker skärm för skärm bakom en reverse proxy, så den gamla appen fortsätter att fungera tills den sista skärmen har flyttats.

För affärsapplikationer som byggs av .NET-team ofta ja: ett språk, delade modeller och ingen separat frontend-stack. För publika, innehållstunga appar eller konsumentappar har React det större ekosystemet. Vi berättar vad som passar dig.

WPF om appen måste förbli en Windows-skrivbordsapplikation. Blazor om användarna ska nå den från en webbläsare. Blazor Hybrid kan också köra samma komponenter i en skrivbordsapp.

Oftast av en av fem orsaker: onödiga omrenderingar, grids utan virtualisering, data som laddas två gånger vid prerendering, serverminne som bara fortsätter att växa, eller SignalR som faller tillbaka från WebSockets. En health check visar vilka av dem som gäller för dig.

Health check och migreringsanalys har fast pris, som bestäms efter ett samtal på 30 minuter. Utveckling faktureras per timme eller som ett månatligt block av timmar.

Ja. Ofta är det mest värdefulla att ansluta till ett befintligt team under några veckor, granska arkitekturen och hjälpa till att sätta konventioner.

Har du en Blazor-app som behöver ses över, eller en Web Forms-app som behöver flyttas?

Ett samtal på 30 minuter räcker för att avgöra om vi kan hjälpa till och vad första steget bör vara.

Samtal och samarbete sker på engelska.

Boka ett samtal på 30 minuter →
  • EU-företag i Split, Kroatien
  • Centraleuropeiska arbetstider
  • NDA på begäran
  • Du pratar med utvecklaren som skriver koden

Bra att skicka med i ditt meddelande

  • /.NET-version och hosting
  • /Renderingsläge, om det redan är Blazor
  • /Antal användare
  • /Vad som krånglar just nu
[email protected]
[email protected]
© 2026 ProCoding — Alla rättigheter förbehållna.Företagsinformation och integritetAnvändarvillkorSplit, Kroatien