Een inleiding tot Blazor ASP.NET Web Forms-ontwikkelaars
Tip
Deze inhoud is een fragment uit het eBook, Blazor voor ASP NET-webformulierontwikkelaars voor Azure, beschikbaar op .NET Docs of als een gratis downloadbare PDF die offline kan worden gelezen.
Het ASP.NET Web Forms-framework is een koppel van .NET-webontwikkeling sinds het .NET Framework in 2002 voor het eerst werd verzonden. Toen het web nog grotendeels in de kinderschoenen stond, maakte ASP.NET Web Forms het bouwen van web-apps eenvoudig en productief door veel van de patronen te gebruiken die werden gebruikt voor desktopontwikkeling. In ASP.NET Web Forms kunnen webpagina's snel worden samengesteld uit herbruikbare besturingselementen voor de gebruikersinterface. Gebruikersinteracties worden op natuurlijke wijze verwerkt als gebeurtenissen. Er is een uitgebreid ecosysteem van webformulierinterfacebesturingselementen van Microsoft en leveranciers beheren. De besturingselementen vereenvoudigen de inspanningen om verbinding te maken met gegevensbronnen en rijke gegevensvisualisaties weer te geven. Voor de visueel schuine rand biedt de webformulierontwerper een eenvoudige interface voor slepen en neerzetten voor het beheren van besturingselementen.
In de loop der jaren heeft Microsoft nieuwe ASP geïntroduceerd. Webframeworks op basis van NET om trends in webontwikkeling aan te pakken. Sommige van dergelijke webframeworks omvatten ASP.NET MVC, ASP.NET webpagina's en recenter ASP.NET Core. Met elk nieuw framework hebben sommigen de aanstaande daling van ASP.NET Web Forms voorspeld en bekritiseerd als een verouderd, verouderd webframework. Ondanks deze voorspellingen blijven veel .NET-webontwikkelaars ASP.NET Web Forms een eenvoudige, stabiele en productieve manier vinden om hun werk gedaan te krijgen.
Op het moment van schrijven gebruiken bijna een half miljoen webontwikkelaars elke maand ASP.NET Web Forms. Het ASP.NET Web Forms-framework is stabiel op het punt dat documenten, voorbeelden, boeken en blogberichten van een decennium geleden nuttig en relevant blijven. Voor veel .NET-webontwikkelaars is 'ASP.NET' nog steeds synoniem met 'ASP.NET Web Forms' zoals het was toen .NET voor het eerst werd bedacht. Argumenten voor de voor- en nadelen van ASP.NET Web Forms vergeleken met de andere nieuwe .NET-webframeworks kunnen woedend zijn. ASP.NET Web Forms blijft een populair framework voor het maken van web-apps.
Bovendien vertragen innovaties in softwareontwikkeling niet. Alle softwareontwikkelaars moeten op de hoogte blijven van nieuwe technologieën en trends. Twee trends in het bijzonder zijn de moeite waard om rekening te houden met:
- De verschuiving naar opensource en platformoverschrijdend
- De verschuiving van app-logica naar de client
Een opensource en platformoverschrijdend .NET
Toen .NET en ASP.NET Web Forms voor het eerst werden verzonden, zag het platformecosysteem er veel anders uit dan vandaag. De bureaublad- en servermarkten werden gedomineerd door Windows. Alternatieve platforms zoals macOS en Linux hebben nog steeds moeite gehad om grip te krijgen. ASP.NET Web Forms wordt geleverd met .NET Framework als een windows-onderdeel. Dit betekent dat ASP.NET Web Forms-apps alleen kunnen worden uitgevoerd op Windows Server-computers. Veel moderne omgevingen gebruiken nu verschillende soorten platforms voor servers en ontwikkelmachines, zodat platformoverschrijdende ondersteuning voor veel gebruikers een absolute vereiste is.
De meeste moderne webframeworks zijn nu ook opensource, wat een aantal voordelen heeft. Gebruikers worden niet vastgehouden aan één projecteigenaar om bugs op te lossen en functies toe te voegen. Opensource-projecten bieden verbeterde transparantie over de voortgang van de ontwikkeling en toekomstige wijzigingen. Opensource-projecten genieten van bijdragen van een hele community en ze bevorderen een ondersteunend opensource-ecosysteem. Ondanks de risico's van opensource hebben veel consumenten en inzenders geschikte oplossingen gevonden waarmee ze op een veilige en redelijke manier kunnen profiteren van de voordelen van een opensource-ecosysteem. Voorbeelden van dergelijke oplossingen zijn licentieovereenkomsten voor inzenders, beschrijvende licenties, pedigree-scans en ondersteunende fundamenten.
De .NET-community heeft zowel platformoverschrijdende ondersteuning als opensource-ondersteuning omarmd. .NET Core is een opensource- en platformoverschrijdende implementatie van .NET die wordt uitgevoerd op talloze platforms, waaronder Windows, macOS en verschillende Linux-distributies. Xamarin biedt Mono, een opensource-versie van .NET. Mono wordt uitgevoerd op Android, iOS en een verscheidenheid aan andere vormfactoren, waaronder horloges en slimme tv's. In 2020 heeft Microsoft .NET 5 uitgebracht waarmee .NET Core en Mono zijn afgestemd op 'één .NET-runtime en -framework dat overal kan worden gebruikt en die uniform runtimegedrag en ontwikkelaarservaringen heeft'.
Profiteren ASP.NET webformulieren van de overstap naar opensource- en platformoverschrijdende ondersteuning? Het antwoord is helaas nee, of in ieder geval niet in dezelfde mate als de rest van het platform. Het .NET-team heeft duidelijk gemaakt dat ASP.NET Web Forms niet wordt overgezet naar .NET Core of .NET 8. Waarom is dat?
In de vroege dagen van .NET Core zijn er inspanningen geleverd om ASP.NET Web Forms over te zetten. Het aantal belangrijke wijzigingen dat nodig was, bleek te drastisch te zijn. Er is hier ook een toelating dat zelfs voor Microsoft een limiet geldt voor het aantal webframeworks dat tegelijkertijd kan worden ondersteund. Misschien neemt iemand in de community de oorzaak aan van het maken van een opensource- en platformoverschrijdende versie van ASP.NET Web Forms. De broncode voor ASP.NET Webformulieren is openbaar beschikbaar gemaakt in referentieformulier. Maar voorlopig lijkt het erop dat webformulieren ASP.NET alleen Windows blijven en zonder een opensource-bijdragemodel. Als platformoverschrijdende ondersteuning of opensource belangrijk wordt voor uw scenario's, moet u iets nieuws zoeken.
Betekent dit dat ASP.NET webformulieren dood zijn en niet meer mogen worden gebruikt? Natuurlijk niet! Zolang .NET Framework als onderdeel van Windows wordt geleverd, wordt ASP.NET Web Forms een ondersteund framework. Voor veel webformulierontwikkelaars is het ontbreken van platformoverschrijdende en opensource-ondersteuning een niet-probleem. Als u geen vereiste hebt voor platformoverschrijdende ondersteuning, opensource of een van de andere nieuwe functies in .NET Core of .NET 8, is het prima om te blijven werken met ASP.NET Web Forms in Windows. ASP.NET Web Forms is nog vele jaren een productieve manier om web-apps te schrijven.
Maar er is nog een trend die het overwegen waard is, en dat is de verschuiving naar de klant.
Webontwikkeling aan clientzijde
Alle . Webframeworks op basis van NET, waaronder ASP.NET Web Forms, hebben historisch gezien één ding gemeen: ze worden door de server gerenderd. In door de server gerenderde web-apps doet de browser een aanvraag naar de server, waarmee bepaalde code (.NET-code in ASP.NET-apps) wordt uitgevoerd om een antwoord te produceren. Dit antwoord wordt teruggestuurd naar de browser die moet worden verwerkt. In dit model wordt de browser gebruikt als een thin rendering-engine. Het harde werk van het produceren van de gebruikersinterface, het uitvoeren van de bedrijfslogica en het beheren van de status vindt plaats op de server.
Browsers zijn echter veelzijdig geworden. Ze implementeren een steeds groter aantal open webstandaarden die toegang verlenen tot de mogelijkheden van de computer van de gebruiker. Waarom profiteert u niet van de rekenkracht, opslag, geheugen en andere resources van het clientapparaat? Met name ui-interacties kunnen profiteren van een rijkere en interactievere uitstraling wanneer deze ten minste gedeeltelijk of volledig aan de clientzijde wordt verwerkt. Logica en gegevens die op de server moeten worden verwerkt, kunnen nog steeds aan de serverzijde worden verwerkt. Web-API-aanroepen of zelfs realtime protocollen, zoals WebSockets, kunnen worden gebruikt. Deze voordelen zijn gratis beschikbaar voor webontwikkelaars als ze JavaScript willen schrijven. Ui-frameworks aan de clientzijde, zoals Angular, React en Vue, vereenvoudigen webontwikkeling aan de clientzijde en zijn populair geworden. ASP.NET Web Forms-ontwikkelaars kunnen ook profiteren van het gebruik van de client en hebben zelfs een out-of-the-box-ondersteuning met geïntegreerde JavaScript-frameworks zoals ASP.NET AJAX.
Maar het overbruggen van twee verschillende platforms en ecosystemen (.NET en JavaScript) heeft een kosten. Expertise is vereist in twee parallelle werelden met verschillende talen, frameworks en hulpprogramma's. Code en logica kunnen niet eenvoudig worden gedeeld tussen client en server, wat resulteert in duplicatie en technische overhead. Het kan ook moeilijk zijn om bij te blijven met het JavaScript-ecosysteem, dat een geschiedenis heeft van het ontwikkelen op breakneck-snelheid. Front-endframework- en buildhulpprogrammavoorkeuren veranderen snel. De industrie heeft de voortgang waargenomen van Grunt naar Gulp naar Webpack, enzovoort. Hetzelfde restloze verloop heeft plaatsgevonden met front-endframeworks zoals jQuery, Knockout, Angular, React en Vue. Maar gezien het browsermonopolie van JavaScript was er weinig keuze. Dat wil gezegd, totdat de webcommunity samenkwam en een wonder veroorzaakte.
WebAssembly voldoet aan een behoefte
In 2015 hebben de belangrijkste browserleveranciers zich in een W3C Community Group aangesloten om een nieuwe open webstandaard te maken met de naam WebAssembly. WebAssembly is een bytecode voor het web. Als u uw code kunt compileren, WebAssemblykan deze vervolgens worden uitgevoerd op elke browser op elk platform met vrijwel systeemeigen snelheid. Initiële inspanningen gericht op C/C++. Het resultaat was een dramatische demonstratie van het rechtstreeks uitvoeren van systeemeigen 3D-grafische engines in de browser zonder invoegtoepassingen. WebAssembly is sindsdien gestandaardiseerd en geïmplementeerd door alle belangrijke browsers.
Eind 2017 werd werk voor het uitvoeren van .NET WebAssembly aangekondigd en uitgebracht in 2020, waaronder ondersteuning in .NET 5 en hoger. De mogelijkheid om .NET-code rechtstreeks in de browser uit te voeren, maakt volledige stack-webontwikkeling mogelijk met .NET.
Blazor: volledige stack-webontwikkeling met .NET
Zelf biedt de mogelijkheid om .NET-code uit te voeren in een browser geen end-to-end-ervaring voor het maken van web-apps aan de clientzijde. Dat is waar Blazor binnenkomt. Blazor is een web-UI-framework aan de clientzijde op basis van C# in plaats van JavaScript. Blazor kan rechtstreeks in de browser worden uitgevoerd via WebAssembly. Er zijn geen browserinvoegtoepassingen vereist. Apps kunnen ook Blazor serverzijde op .NET uitvoeren en alle gebruikersinteracties via een realtime-verbinding met de browser afhandelen.
Blazor biedt uitstekende ondersteuning voor hulpprogramma's in Visual Studio en Visual Studio Code. Het framework bevat ook een volledig UI-onderdeelmodel en heeft ingebouwde faciliteiten voor:
- Formulieren en validatie
- Afhankelijkheidsinjectie
- Routering aan clientzijde
- Indelingen
- Foutopsporing in browser
- JavaScript-interoperabiliteit
Blazor heeft veel gemeen met ASP.NET Web Forms. Beide frameworks bieden op onderdelen gebaseerde, gebeurtenisgestuurde, stateful UI-programmeermodellen. Het belangrijkste architectuurverschil is dat ASP.NET webformulieren alleen op de server worden uitgevoerd. Blazor kan worden uitgevoerd op de client in de browser. Maar als u afkomstig bent van een ASP.NET Web Forms-achtergrond, is er veel dat Blazor u vertrouwd zult voelen. Blazor is een natuurlijke oplossing voor ASP.NET Web Forms-ontwikkelaars die op zoek zijn naar een manier om te profiteren van ontwikkeling aan de clientzijde en de opensource-, platformoverschrijdende toekomst van .NET.
Dit boek biedt een inleiding tot Blazor die specifiek geschikt is voor ASP.NET Web Forms-ontwikkelaars. Elk Blazor concept wordt gepresenteerd in de context van analoge ASP.NET webformulierfuncties en -procedures. Aan het einde van dit boek hebt u inzicht in:
- Apps bouwen Blazor .
- Hoe Blazor werkt het.
- Hoe Blazor verhoudt zich tot .NET.
- Redelijke strategieën voor het migreren van bestaande ASP.NET Web Forms-apps naar Blazor waar van toepassing.
Aan de slag met Blazor
Aan de slag met Blazor is eenvoudig. Ga naar https://blazor.net en volg de koppelingen om de juiste .NET SDK en Blazor projectsjablonen te installeren. U vindt ook instructies voor het instellen van de Blazor hulpprogramma's in Visual Studio of Visual Studio Code.