Dela via


En introduktion till Blazor för ASP.NET webbformulärutvecklare

Dricks

Det här innehållet är ett utdrag ur e-boken, Blazor för ASP NET Web Forms Developers for Azure, tillgängligt på .NET Docs eller som en kostnadsfri nedladdningsbar PDF som kan läsas offline.

Blazor-for-ASP-NET-Web-Forms-Developers eBook cover thumbnail.

Det ASP.NET Web Forms-ramverket har varit en stapelvara i .NET-webbutveckling sedan .NET Framework först levererades 2002. När webben fortfarande till stor del var i sin linda gjorde ASP.NET Web Forms skapandet av webbappar enkla och produktiva genom att använda många av de mönster som användes för skrivbordsutveckling. I ASP.NET webbformulär kan webbsidor snabbt skapas från återanvändbara användargränssnittskontroller. Användarinteraktioner hanteras naturligt som händelser. Det finns ett omfattande ekosystem med webbaserade användargränssnittskontroller från Microsoft och kontrollleverantörer. Kontrollerna underlättar arbetet med att ansluta till datakällor och visa omfattande datavisualiseringar. Webbformulärdesignern har ett enkelt dra och släpp-gränssnitt för att hantera kontroller för den visuellt lutande designen.

Under årens lopp har Microsoft introducerat ny ASP. NET-baserade webbramverk för att hantera webbutvecklingstrender. Vissa sådana webbramverk omfattar ASP.NET MVC, ASP.NET webbsidor och på senare tid ASP.NET Core. Med varje nytt ramverk har vissa förutspått den överhängande nedgången av ASP.NET Webbformulär och kritiserat det som ett inaktuellt, inaktuellt webbramverk. Trots dessa förutsägelser fortsätter många .NET-webbutvecklare att hitta ASP.NET Web Forms ett enkelt, stabilt och produktivt sätt att få sitt arbete gjort.

I skrivande stund använder nästan en halv miljon webbutvecklare ASP.NET webbformulär varje månad. Ramverket ASP.NET Web Forms är stabilt till den grad att dokument, exempel, böcker och blogginlägg från ett decennium sedan fortfarande är användbara och relevanta. För många .NET-webbutvecklare är "ASP.NET" fortfarande synonymt med "ASP.NET Web Forms" som när .NET först skapades. Argument för för- och nackdelar med ASP.NET webbformulär jämfört med andra nya .NET-webbramverk kan rasa. ASP.NET Web Forms är fortfarande ett populärt ramverk för att skapa webbappar.

Trots detta saktar innovationerna inom programvaruutveckling inte ner. Alla programvaruutvecklare måste hålla sig jour med nya tekniker och trender. Två trender i synnerhet är värda att överväga:

  1. Övergången till öppen källkod och plattformsoberoende
  2. Skiftet av applogik till klienten

En .NET med öppen källkod och plattformsoberoende

När .NET och ASP.NET Webbformulär först levererades såg plattformsekosystemet mycket annorlunda ut än i dag. Skrivbords- och servermarknaderna dominerades av Windows. Alternativa plattformar som macOS och Linux kämpade fortfarande för att få dragkraft. ASP.NET Web Forms levereras med .NET Framework som en Windows-komponent, vilket innebär att ASP.NET Web Forms-appar bara kan köras på Windows Server-datorer. Många moderna miljöer använder nu olika typer av plattformar för servrar och utvecklingsdatorer, så att plattformsoberoende stöd för många användare är ett absolut krav.

De flesta moderna webbramverk är nu också öppen källkod, vilket har ett antal fördelar. Användare behålls inte till en enda projektägare för att åtgärda buggar och lägga till funktioner. Projekt med öppen källkod ger bättre insyn i utvecklingsprocessen och kommande ändringar. Projekt med öppen källkod har bidrag från en hel community och de främjar ett stödjande ekosystem med öppen källkod. Trots riskerna med öppen källkod har många konsumenter och deltagare hittat lämpliga åtgärder som gör det möjligt för dem att dra nytta av fördelarna med ett ekosystem med öppen källkod på ett säkert och rimligt sätt. Exempel på sådana åtgärder är licensavtal för deltagare, användarvänliga licenser, stamtavlagenomsökningar och stödgrunder.

.NET-communityn har omfattat både plattformsoberoende stöd och öppen källkod. .NET Core är en implementering med öppen källkod och plattformsoberoende implementering av .NET som körs på en mängd olika plattformar, inklusive Windows, macOS och olika Linux-distributioner. Xamarin tillhandahåller Mono, en version med öppen källkod av .NET. Mono körs på Android, iOS och en mängd andra formfaktorer, inklusive klockor och smarta TV-apparater. År 2020 släppte Microsoft .NET 5 som avstämde .NET Core och Mono till "ett enda .NET-körnings- och ramverk som kan användas överallt och som har enhetliga körningsbeteenden och utvecklarupplevelser".

Kommer ASP.NET Web Forms att dra nytta av övergången till stöd för öppen källkod och plattformsoberoende? Svaret är tyvärr nej, eller åtminstone inte i samma utsträckning som resten av plattformen. .NET-teamet klargjorde att ASP.NET Web Forms inte kommer att portas till .NET Core eller .NET 8. Varför är det?

Det gjordes ansträngningar i början av .NET Core för att porta ASP.NET Web Forms. Antalet icke-bakåtkompatibla ändringar som krävdes visade sig vara för drastiskt. Det finns också en antagning här att även för Microsoft finns det en gräns för antalet webbramverk som det kan stödja samtidigt. Kanske kan någon i communityn ta upp orsaken till att skapa en plattformsoberoende version av ASP.NET Web Forms med öppen källkod och plattformsoberoende version. Källkoden för ASP.NET webbformulär har gjorts tillgänglig offentligt i referensformulär. Men för närvarande verkar det ASP.NET webbformulär förblir endast Windows och utan en bidragsmodell med öppen källkod. Om plattformsoberoende stöd eller öppen källkod blir viktigt för dina scenarier måste du leta efter något nytt.

Betyder det att ASP.NET webbformulär är döda och inte längre ska användas? Naturligtvis inte! Så länge .NET Framework levereras som en del av Windows är ASP.NET webbformulär ett ramverk som stöds. För många webbformulärsutvecklare är bristen på plattformsoberoende och öppen källkod inte ett problem. Om du inte har något krav på plattformsoberoende stöd, öppen källkod eller någon av de andra nya funktionerna i .NET Core eller .NET 8 är det bra att hålla sig till ASP.NET webbformulär i Windows. ASP.NET Webbformulär fortsätter att vara ett produktivt sätt att skriva webbappar under många år framöver.

Men det finns en annan trend som är värd att överväga, och det är övergången till klienten.

Webbutveckling på klientsidan

Alla . NET-baserade webbramverk, inklusive ASP.NET Webbformulär, har historiskt sett haft en sak gemensamt: de är serveråtergivna. I serverrenderade webbappar skickar webbläsaren en begäran till servern, som kör kod (.NET-kod i ASP.NET appar) för att skapa ett svar. Det svaret skickas tillbaka till webbläsaren för att hantera. I den här modellen används webbläsaren som en tunn återgivningsmotor. Det hårda arbetet med att skapa användargränssnittet, köra affärslogik och hantera tillstånd sker på servern.

Webbläsare har dock blivit mångsidiga plattformar. De implementerar ett ständigt ökande antal öppna webbstandarder som ger åtkomst till funktionerna i användarens dator. Varför inte dra nytta av klientenhetens beräkningskraft, lagring, minne och andra resurser? I synnerhet gränssnittsinteraktioner kan dra nytta av en rikare och mer interaktiv känsla när de hanteras åtminstone delvis eller helt på klientsidan. Logik och data som ska hanteras på servern kan fortfarande hanteras på serversidan. Webb-API-anrop eller till och med realtidsprotokoll, till exempel WebSockets, kan användas. Dessa fördelar är tillgängliga för webbutvecklare utan kostnad om de är villiga att skriva JavaScript. Användargränssnittsramverk på klientsidan, till exempel Angular, React och Vue, förenklar webbutvecklingen på klientsidan och har ökat i popularitet. ASP.NET Web Forms-utvecklare kan också dra nytta av att utnyttja klienten och även ha lite out-of-the-box-stöd med integrerade JavaScript-ramverk som ASP.NET AJAX.

Men att överbrygga två olika plattformar och ekosystem (.NET och JavaScript) medför en kostnad. Expertis krävs i två parallella världar med olika språk, ramverk och verktyg. Kod och logik kan inte enkelt delas mellan klient och server, vilket resulterar i duplicering och tekniska kostnader. Det kan också vara svårt att hålla jämna steg med JavaScript-ekosystemet, som har en historia av att utvecklas i rasande hastighet. Klientdelens ramverks- och byggverktygsinställningar ändras snabbt. Branschen har observerat utvecklingen från Grunt till Gulp till Webpack och så vidare. Samma rastlösa omsättning har inträffat med frontend-ramverk som jQuery, Knockout, Angular, React och Vue. Men med tanke på JavaScripts webbläsarmonopol fanns det inget val i frågan. Det vill: tills webbcommunityn samlades och orsakade ett mirakel !

WebAssembly uppfyller ett behov

År 2015 gick de stora webbläsarleverantörerna samman i en W3C Community-grupp för att skapa en ny öppen webbstandard med namnet WebAssembly. WebAssembly är en bytekod för webben. Om du kan kompilera koden till WebAssemblykan den sedan köras på valfri webbläsare på valfri plattform med nästan inbyggd hastighet. Inledande insatser som fokuserar på C/C++. Resultatet blev en dramatisk demonstration av att köra inbyggda 3D-grafikmotorer direkt i webbläsaren utan plugin-program. WebAssembly har sedan dess standardiserats och implementerats av alla större webbläsare.

Arbetet med att köra .NET på WebAssembly tillkännagavs i slutet av 2017 och släpptes 2020, inklusive support i .NET 5 och senare. Möjligheten att köra .NET-kod direkt i webbläsaren möjliggör webbutveckling med full stack med .NET.

Blazor: webbutveckling med full stack med .NET

På egen hand ger möjligheten att köra .NET-kod i en webbläsare inte en upplevelse från slutpunkt till slutpunkt för att skapa webbappar på klientsidan. Det är där Blazor som kommer in. Blazor är ett webbgränssnittsramverk på klientsidan baserat på C# i stället för JavaScript. Blazor kan köras direkt i webbläsaren via WebAssembly. Inga webbläsar-plugin-program krävs. Alternativt Blazor kan appar köra serversidan på .NET och hantera alla användarinteraktioner via en realtidsanslutning till webbläsaren.

Blazor har bra verktygsstöd i Visual Studio och Visual Studio Code. Ramverket innehåller också en fullständig komponentmodell för användargränssnittet och har inbyggda faciliteter för:

  • Formulär och validering
  • Beroendeinmatning
  • Routning på klientsidan
  • Layouter
  • Felsökning i webbläsaren
  • JavaScript-interop

Blazor har mycket gemensamt med ASP.NET webbformulär. Båda ramverken erbjuder komponentbaserade, händelsedrivna, tillståndskänsliga UI-programmeringsmodeller. Den största arkitektoniska skillnaden är att ASP.NET webbformulär endast körs på servern. Blazor kan köras på klienten i webbläsaren. Men om du kommer från en ASP.NET webbformulärbakgrund finns det mycket i Blazor som kommer att kännas bekant. Blazor är en naturlig lösning för ASP.NET Web Forms-utvecklare som letar efter ett sätt att dra nytta av utveckling på klientsidan och framtiden för .NET med öppen källkod och plattformsoberoende.

Den här boken ger en introduktion till Blazor som är särskilt inriktad på ASP.NET Webbformulär utvecklare. Varje Blazor koncept presenteras i samband med liknande funktioner och metoder för webbformulär i ASP.NET. I slutet av den här boken har du en förståelse för:

  • Så här skapar Blazor du appar.
  • Hur Blazor fungerar.
  • Hur Blazor relaterar till .NET.
  • Rimliga strategier för att migrera befintliga ASP.NET Web Forms-appar till Blazor när det är lämpligt.

Kom igång med Blazor

Det är enkelt att komma igång med Blazor . Gå till https://blazor.net och följ länkarna för att installera lämpliga .NET SDK- och Blazor projektmallar. Du hittar också instruktioner för hur du konfigurerar verktygen Blazor i Visual Studio eller Visual Studio Code.