I denne kapitel vil vi udforske, hvordan man bygger hybride apps ved at kombinere fordelene ved .NET MAUI og Blazor-komponenter. Efter at have lært at opbygge apps med native kontroller i .NET MAUI og at bruge Blazor-komponenter til at bygge web-applikationer, vil du nu kunne integrere begge teknologier for at opnå den bedste af begge verdener. Dette gør det muligt at bygge apps, der både benytter native funktioner og tilbyder webbaserede komponenter, samtidig med at de fastholder tæt integration med platformens native funktioner som geolokation, sensorer og filsystemadgang.
.NET MAUI giver udviklere mulighed for at bygge tværplatforms-apps, der arbejder med native kontroller på tværs af operativsystemer som iOS, Android, macOS og Windows. Hver platform har sine egne native kontrolbiblioteker, som eksempelvis WinUI 3 for Windows, UIKit for iOS og AndroidX for Android. Dette betyder, at når Apple eller Google opdaterer deres operativsystemer, vil appens udseende og funktionalitet automatisk blive tilpasset, fordi .NET MAUI bruger de native kontroller, der følger med disse opdateringer.
Men når du ønsker at udnytte både de native kontroller og webteknologierne, kommer Blazor til nytte. Blazor giver udviklere mulighed for at bygge brugergrænseflader ved hjælp af HTML, CSS og C#, som kan integreres direkte i en .NET MAUI-app. Dette åbner op for muligheden for at bruge eksisterende Blazor-komponentbiblioteker som f.eks. diagrammer og datagrid-komponenter, samtidig med at man bevarer de stærke, native funktioner, som .NET MAUI tilbyder.
For at komme i gang med en hybridapp skal du først oprette et .NET MAUI Blazor-projekt. I Visual Studio kan du vælge .NET MAUI Blazor App-skabelonen, som giver mulighed for at blande både .NET MAUI-kontroller og Blazor-komponenter i én applikation. Du skal derefter tilføje de nødvendige filer og konfigurationer, herunder ressourcer som billeder og logoer, som bruges i appens navigation.
Det næste skridt er at oprette en Shell og de relevante .NET MAUI-sider. Standardprojektet for .NET MAUI Blazor-apps antager, at Blazor vil blive brugt til at opbygge brugergrænsefladen. Du kan dog tilføje .NET MAUI-sider for at opbygge specifik funktionalitet med native kontroller. For at organisere projektet anbefales det at oprette en mappe kaldet "Views", hvor du opbevarer .NET MAUI-siderne og adskiller dem fra de Razor-sider, som Blazor bruger. Hver side skal have sin egen mappe, hvilket hjælper med at holde projektet organiseret, samtidig med at du kan bruge et fælles namespaces for at gøre referencerne lettere at administrere.
En anden vigtig funktion, som .NET MAUI Blazor hybrid apps tilbyder, er integrationen med native funktioner. Dette inkluderer adgang til sensorer, geolokation, lokale filer og push-notifikationer, som alle kan integreres direkte i appen, selvom du bruger Blazor til at bygge brugergrænsefladen. Dette giver dig mulighed for at bygge mere komplekse og funktionelle apps, der benytter både native og webteknologier på en effektiv måde.
For at opsummere, når du bygger en hybrid app med .NET MAUI og Blazor, får du det bedste fra to verdener. Du kan bruge native kontroller til at sikre, at appen er hurtig og funktionel på hver platform, mens du samtidig udnytter de mange komponentbiblioteker og fordele ved Blazor til at bygge en brugervenlig og visuel grænseflade. Det betyder, at du kan skabe apps, der er både dynamiske og effektive på tværs af flere platforme, hvilket er ideelt for moderne app-udvikling.
Det er vigtigt at forstå, at selvom Blazor giver mange fordele, især når du arbejder med webkomponenter, er det ikke altid den bedste løsning for alle typer applikationer. Der kan være tilfælde, hvor det er nødvendigt at vælge en ren native app for at få den bedste ydeevne eller adgang til specifikke operativsystemfunktioner. Derfor bør beslutningen om at vælge Blazor-komponenter i din app bygges på en grundig vurdering af appens behov og krav.
Hvordan integrerer man .NET MAUI-apps med platforme som Blazor og native funktioner?
I moderne app-udvikling er det ofte nødvendigt at bygge løsninger, der fungerer på tværs af flere platforme. .NET MAUI (Multi-platform App UI) er en teknologi, der tillader udvikling af applikationer, som kan køre på både iOS, Android, Windows, macOS og i fremtiden måske også Linux. En sådan fleksibilitet medfører dog en række udfordringer, når det gælder integration af funktioner og komponenter, der er specifikke for hver platform. Dette afsnit vil dykke ned i, hvordan .NET MAUI-apps kan integreres med både native funktioner og Blazor, samt hvordan man håndterer de teknologier, der bruges i dette arbejde.
For at kunne implementere native kontroller på tværs af de nævnte platforme kræves omfattende arbejde og en dybdegående forståelse af både .NET MAUI og de specifikke platformkrav. Et væsentligt aspekt af .NET MAUI er dets evne til at abstrahere de platform-specifikke funktioner, hvilket gør det muligt at skrive én kodebase, der fungerer på tværs af flere systemer. Dog er ikke alle kontroller tilgængelige for alle platforme, og nogle tredjepartsbiblioteker kan være nødvendige for at få fuld funktionalitet.
En af de eneste store udbydere, der tilbyder en komponentbibliotek til .NET MAUI gratis, er DevExpress. Dette bibliotek understøtter dog kun iOS og Android, hvilket betyder, at det ikke er en løsning, der kan dække alle platforme. Det er heller ikke open-source, hvilket begrænser fleksibiliteten for udviklere, der ønsker at tilpasse koden. Andre komponentbiblioteker som Progress Telerik og Syncfusion tilbyder mere omfattende løsninger, men til gengæld kræver de dyre licenser, der kan være uoverkommelige for enkelte udviklere eller små teams.
En anden væsentlig udfordring i udviklingen af .NET MAUI-apps er at sikre, at applikationen er korrekt konfigureret til at håndtere netværksforbindelser på tværs af platforme. For eksempel kan der opstå problemer med at tillade usikre HTTP-forbindelser, som er nødvendige for visse applikationer. Dette skal konfigureres korrekt i både iOS og Android for at sikre, at applikationen kan kommunikere med servere, der ikke nødvendigvis benytter HTTPS.
Udviklere, der arbejder med .NET MAUI, skal også tage højde for, hvordan deres apps interagerer med platformspecifik funktionalitet, såsom clipboard, filhåndtering og adgang til enhedsinformation. For eksempel kan man i .NET MAUI få adgang til enhedens clipboard og bruge det til at opbevare data som tekststrenge, der senere kan indsættes i andre apps. Desuden er filhåndtering en vigtig funktion, især når man arbejder med fil- og mediepickere, som tillader brugere at vælge filer fra enheder eller netværksplaceringer.
En anden funktion, der bliver mere relevant med .NET MAUI, er muligheden for at bruge platformens desktopfunktioner som menu barer og nye vinduer. Disse funktioner er nødvendige, når man bygger mere komplekse desktop-applikationer, der ikke kun interagerer med en enkelt skærm, men kræver flere niveauer af brugerinteraktion.
.NET MAUI er også tæt forbundet med Blazor, som giver mulighed for at bygge web-baserede brugerflader, der kan køre i native applikationer. Ved at integrere Blazor med .NET MAUI kan udviklere skabe hybride applikationer, der kombinerer det bedste fra begge verdener: den fleksibilitet og hurtige udvikling, som Blazor giver, og den native performance og funktionalitet, som .NET MAUI muliggør. Denne integration åbner op for en lang række muligheder for at bygge applikationer, der kan køre på tværs af web og desktop.
For at udvide funktionaliteten og tilføje notifikationer, filhåndtering, og adgang til systemressourcer, tilbyder .NET MAUI Community Toolkit en række værktøjer. Dette toolkit forenkler implementeringen af funktioner som notifikationer og andre platform-specifikke funktioner, hvilket giver udviklerne mulighed for hurtigt at tilføje essentielle funktioner uden at skulle implementere dem fra bunden.
I takt med at .NET MAUI vokser, vil flere funktioner og komponenter blive tilgængelige, hvilket gør det lettere for udviklere at skabe apps, der fungerer problemfrit på tværs af platforme. Det er dog vigtigt at forstå, at .NET MAUI stadig er under udvikling, og der er områder, hvor det kan mangle funktionalitet sammenlignet med traditionelle native udviklingsplatforme.
Afslutningsvis er det nødvendigt for udviklere at have et godt overblik over de forskellige værktøjer og ressourcer, som er tilgængelige, samt hvordan man bedst integrerer og konfigurerer disse for at bygge robuste, tværplatforms-applikationer. I denne proces er det vigtigt at holde sig ajour med udviklingen af .NET MAUI, da nye funktioner og opdateringer løbende tilføjes.
Endtext

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский