07/07/2023
I en verden, hvor mobilteknologi konstant udvikler sig, står udviklere over for nye udfordringer og muligheder. Med udgivelsen af Visual Studio 2017 skete der et markant skift i landskabet for mobilapp-udvikling, især når det kommer til understøttelse af ældre platforme og introduktionen af kraftfulde krydsplatformsløsninger. Denne artikel vil udforske, hvad Visual Studio 2017 tilbyder mobiludviklere, med et særligt fokus på kompatibilitet med Windows Phone-applikationer og de spændende nye veje, der åbnes for udvikling af Android-, iOS- og Universal Windows Platform (UWP)-apps ved hjælp af Xamarin og Visual Basic.

Historisk set har Microsofts økosystem tilbudt dyb integration for udvikling til deres egne platforme. Men i takt med at Windows Phone mistede terræn, flyttede fokus mod at understøtte de dominerende mobilplatforme: Android og iOS. Dette skifte har haft direkte konsekvenser for, hvordan eksisterende og nye mobilprojekter håndteres i Visual Studio 2017.
- Farvel til Windows Phone-apps i Visual Studio 2017
- Velkommen til Krydsplatformsudvikling: Xamarin i Visual Studio 2017
- Xamarin.Forms: En Kodebase for Android, iOS og UWP
- Trin-for-Trin: Oprettelse af en Xamarin.Forms App i Visual Basic
- Implementering og Test af Din App
- Ofte Stillede Spørgsmål (FAQ)
- Kan jeg udvikle Windows Phone 8.1-apps i Visual Studio 2017?
- Hvad med Windows 10 Mobile-apps?
- Hvad er fordelen ved .NET Standard?
- Hvad er .NET Core?
- Kan jeg bruge Visual Basic til at lave krydsplatform-mobilapps?
- Hvilke begrænsninger er der for Visual Basic i Xamarin.Forms?
- Er Xamarin.Forms det samme som native app-udvikling?
Farvel til Windows Phone-apps i Visual Studio 2017
En af de mest presserende spørgsmål for udviklere, der har arbejdet med Microsofts mobilplatforme, er kompatibiliteten med ældre Windows Phone-applikationer. Desværre er svaret ret ligetil og potentielt skuffende for nogle: Visual Studio 2017 understøtter ikke indlæsning af Windows Phone 8.1- eller Windows 10 Mobile-applikationer, der er oprettet i Visual Studio 2015. Hvis du forsøger at åbne et sådant projekt i Solution Explorer, vil du sandsynligvis se teksten "(incompatible)" (inkompatibel). Denne adfærd gælder også for Windows 8.1-applikationer, hvilket indikerer et bredere skift væk fra disse ældre projekt- og platformstyper til fordel for Universal Windows Platform (UWP) og krydsplatformsløsninger.
Dette betyder, at hvis du har eksisterende kodebaser til Windows Phone 8.1, skal du overveje en migrering eller genudvikling til en nyere platform, hvis du ønsker at vedligeholde eller udvide funktionaliteten. Den moderne vej for Windows-applikationer er UWP, og for krydsplatformsløsninger er Xamarin den foretrukne metode, som vi vil dykke ned i nu.
Velkommen til Krydsplatformsudvikling: Xamarin i Visual Studio 2017
Med Visual Studio 2017, og især fra Update 3 og fremefter, er fokus skiftet markant mod krydsplatformsudvikling. Dette åbner døren for at skabe applikationer, der kan køre på tværs af Android, iOS og UWP fra en enkelt kodebase. Og den gode nyhed for Visual Basic-udviklere er, at denne verden nu også er tilgængelig for dem – takket være .NET Standard og .NET Core.
Forestil dig at kunne skrive en konsolapp i Visual Basic og køre den på Linux? Eller at bruge den samme Xamarin.Forms-app, skrevet i Visual Basic, på en iPhone, en Android-telefon og en Windows Tablet? Dette er essensen af krydsplatformsudvikling, og det er blevet en realitet med Visual Studio 2017 Update 3, som bringer Visual Basic .NET Core- og .NET Standard-skabeloner. Det er vigtigt at bemærke, at der er visse begrænsninger i denne første version for Visual Basic sammenlignet med C#: Der er endnu ingen ASP.NET-skabelon for .NET Core, og Xamarin-understøttelse ved brug af .NET Standard er også begrænset, især med hensyn til XAML-baseret UI-definition i VB.
Hvad er .NET Core og .NET Standard?
For at forstå den nye krydsplatformskraft er det essentielt at have en grundlæggende forståelse af .NET Core og .NET Standard. Kort fortalt:
- .NET Core: Dette er Microsofts nye open source og krydsplatformsimplementering af .NET. Det understøtter kommandolinjeværktøjer og webapps. Det er designet til at være letvægts, modulopbygget og kan køre på Windows, Linux og macOS.
- .NET Standard: Dette er en formel specifikation af .NET API'er, der er tilgængelige på tværs af .NET-implementeringer. Tænk på det som et "kontrakt" eller en "standardbibliotek", der sikrer, at kode, der er skrevet mod .NET Standard, kan genbruges på enhver .NET-platform, der understøtter den pågældende version af standarden. Dette er nøglen til at opnå kode-genbrug på tværs af platforme.
Disse teknologier er fundamentet for den nye æra af krydsplatformsudvikling i Visual Studio, herunder for Visual Basic.
Xamarin.Forms: En Kodebase for Android, iOS og UWP
Siden Visual Studio 2015 har Xamarin gjort det muligt at udvikle krydsplatformsløsninger til Android, iOS, Universal Windows Platform og Mac i C#. Xamarin-værktøjerne tilbyder principielt to veje til at skabe apps til andre platforme end Windows:
- Native apps for hver platform: Disse apps bruger de native API'er for hvert respektive operativsystem. Dette kan dog kun gøres i C#, da Xamarin ikke understøtter Visual Basic i dette scenarie. Fordelen er, at du virkelig kan udnytte alle aspekter af målplatformen uden kompromiser. Ulempen er, at ingen af front-end-koden kan genbruges på andre platforme.
- Xamarin.Forms-projekter: Dette er den foretrukne metode for krydsplatformsudvikling, da den maksimerer kode-genbrug.
I Xamarin.Forms er der "Bootstrap-projekter" for hver platform (iOS, Android, UWP). Disse bootloader-apps, som Visual Studio opretter for dig i C#, initialiserer derefter Xamarin.Forms-frameworket og udnytter et fælles krydsplatform DLL. Dette DLL indeholder mindst én såkaldt ContentPage med den indledende brugergrænseflade. Denne ContentPage bliver hovedaktiviteten i Android, hovedsiden i Windows UWP og hoved-ViewController i iOS. Så dette delte bibliotek indeholder brugergrænsefladen i en generisk UI-definition, og Xamarin.Forms oversætter disse generiske UI-elementer til de platform-native ækvivalenter af hver platforms-specifikke app ved runtime. Dette er det vigtige punkt for Visual Basic-udviklere: Et sådant Xamarin.Forms-bibliotek er som standard et Portable Class Library-projekt (PCL), men det kan også være et .NET Standard-klassebiblioteksprojekt. Og da Visual Basic understøtter .NET Standard fra Visual Studio 2017 Update 3, kan størstedelen af en Xamarin.Forms-app også skrives i Visual Basic!
Der er dog en ulempe sammenlignet med C#: Mens et Xamarin.Forms .NET Standard DLL i C# kan definere brugergrænsefladen for alle apps via markupsproget XAML, er dette scenarie indtil videre ikke understøttet i Visual Basic. I VB kan Xamarin.Forms-biblioteker kun definere deres brugergrænseflade via kode.
Trin-for-Trin: Oprettelse af en Xamarin.Forms App i Visual Basic
Lad os nu gennemgå processen med at oprette en krydsplatform Xamarin.Forms-app, hvor den delte forretningslogik og brugergrænseflade (UI) er skrevet i Visual Basic.
Forudsætninger
- Visual Studio 2017 Update 3 Preview: Tidligere versioner af Visual Studio 2017 vil ikke fungere. Installer en dedikeret Beta-instans; den vil sameksistere med dine eksisterende installationer.
- Opdateringer: Når installationen er færdig, start Visual Studio Preview og udfør en opdatering via "Udvidelser og opdateringer" i "Værktøjer"-menuen.
Trin 1: Opret et Nyt Xamarin.Forms Projekt (C#)
Start med at oprette et nyt projekt. I dialogboksen "Nyt Projekt" skal du under "Installerede skabeloner" klikke på "Krydsplatform" i C#-grenen. Vælg derefter skabelonen "Krydsplatformsapp (Xamarin.Forms eller Native, Visual C#)". Navngiv løsningen, f.eks. "VbAndXamarinForms", og sørg for, at afkrydsningsfeltet "Opret mappe til løsning" er markeret.
I den næste dialogboks, der vises, skal du vælge "Tom app" og sikre, at indstillingerne "Xamarin.Forms" og "Portable Class Library (PCL)" er valgt. Visual Studio opretter nu en ny løsning, som inkluderer et iOS-projekt, et Android-projekt og et Universal Windows App-projekt. For sidstnævnte skal Visual Studio vide den mindste og den foretrukne Windows 10-version, appen skal køre mod. Du kan lade standardindstillingerne stå.
Trin 2: Erstat C# PCL med et Visual Basic .NET Standard Bibliotek
Som standard hostes den faktiske front-end-kode i et C# Portable Class Library. Vi skal erstatte dette med et Visual Basic .NET Standard-bibliotek. Dette er et afgørende skridt for at få Visual Basic til at fungere med Xamarin.Forms.
- Slet det eksisterende PCL-projekt: Find det i Solution Explorer, åbn kontekstmenuen for projektet (f.eks. "VbAndXamarinForms"), og klik på "Fjern".
- Slet projektet fysisk: Det er ikke nok at fjerne det fra løsningen; du skal også slette projektmappen fysisk fra disken, så du kan oprette et nyt projekt med præcis samme navn i samme placering.
- Opret et nyt .NET Standard Bibliotek i Visual Basic: Skift tilbage til Visual Studio. Gå til "Filer" > "Ny" > "Projekt". I dialogboksen skal du fra sektionen "Visual Basic" > ".NET Standard" vælge skabelonen "Klassebibliotek (.NET Standard)". Indtast projektets navn (det samme som det slettede, f.eks. "VbAndXamarinForms"), vælg den korrekte sti, og klik "OK".
- Modificer projektfilen (.vbproj): Åbn kontekstmenuen for det netop oprettede biblioteksprojekt, og klik på "Rediger VbAndXamarinForms.vbproj". Dette er en ny funktion i Visual Studio 2017, der tillader direkte redigering af projektfiler. Kopier det nødvendige indhold til projektfilen (som beskrevet i den oprindelige kilde, der sikrer Standard V1.4 og bagudkompatibilitet for NuGet-pakker). Gem ændringerne og luk dokumentet.
Trin 3: Tilføj Xamarin.Forms NuGet-pakken
Nu skal vi tilføje Xamarin.Forms NuGet-pakken til biblioteket for at udnytte Xamarin.Forms-funktionaliteten. Dette giver klasser til UI-elementer som Button, Entry (tekstfelter) og Label (etiketter), som oversættes til de native kontroller på hver platform.

Åbn kontekstmenuen for dit VB .NET Standard-projekt, og klik på "Administrer NuGet-pakker". I søgefeltet skal du skrive "Xamarin", finde pakken "Xamarin.Forms" på listen og klikke på "Installer". Luk fanen.
Trin 4: Implementer Appens Kode
Selve koden til din Xamarin.Forms-app består typisk af tre dele:
App-klasse: Repræsenterer den generiske ramme og startpunktet for din applikation. OmdøbClass1.vbtilApp.vbog indsæt den nødvendige kode, der vil instantiere dinMainView(UI'en).MainView-klasse: Indeholder koden til brugergrænsefladen. Tilføj en ny kodefil kaldetMainView.vbtil projektet og indsæt UI-definitionskoden. Husk, at i Visual Basic defineres UI'en via kode, ikke XAML.- Forretningslogik (f.eks.
RomanNumerals-klasse): Indeholder appens kernologik, som f.eks. en algoritme til at konvertere et decimaltal til et romertal. Denne placeres i en dedikeret kodefil, f.eks.RomanNumerals.vb.
Trin 5: Genopret Referencer til VB .NET Standard Projektet
Da vi slettede det originale Xamarin.Forms-projekt (som var i C#) og erstattede det med vores Visual Basic-version, gik referencerne fra de tre platformsspecifikke hovedprojekter (iOS, Android, UWP) tabt. Du skal manuelt tilføje referencen tilbage til dit nye VB Xamarin.Forms .NET Standard-projekt for hvert af de platformsspecifikke bootstrap-projekter.
For hvert projekt (iOS, Android, UWP):
- Udvid "Referencer"-knuden i Solution Explorer.
- Højreklik på "Referencer" og vælg "Tilføj Reference".
- I dialogboksen "Reference Manager" skal du åbne grenen "Projekter" og markere dit Xamarin.Forms-.NET Standard-projekt (f.eks. "VbAndXamarinForms").
- Klik "OK" for at tilføje referencen og lukke dialogboksen.
Implementering og Test af Din App
Når alle trin er gennemført, er du klar til at køre din app. Vi ser på test på UWP og Android.
Test på Universal Windows Platform (UWP)
Den nemmeste måde at teste appen på er direkte på din Windows-maskine som en UWP-app. Find UWP-projektet i Solution Explorer, åbn kontekstmenuen på projektroden, og klik på "Angiv som Startprojekt". Start derefter appen (ved at trykke på F5 eller "Start"-knappen).
Test på Android-enhed
At implementere appen på en fysisk Android-enhed er også ligetil, men kræver et par forberedelser:
- Aktiver udviklertilstand: På din Android-enhed skal du gå til "Indstillinger" og finde "Om telefonen" eller "Om enheden". Tryk syv gange på "Build-nummer". Du vil se en meddelelse om, at udviklertilstand er aktiveret.
- Tilslut enheden: Tilslut din Android-telefon eller -tablet til din udviklingsmaskine via USB. Sørg for at gøre dette efter du har aktiveret udviklertilstand.
- Vælg Android-projektet som startprojekt: I Visual Studio skal du gøre Android-projektet af løsningen til startprojekt.
- Vælg din enhed: Åbn "Kør" (Start app)-kombinationsboksen i Visual Studio-værktøjslinjen, find posten med din enheds navn, og vælg den.
- Kør appen: Klik på "Afspil"-knappen for at kompilere, implementere og starte appen på din enhed.
Du kan nu nyde krydsplatformsudvikling i Visual Basic!
Ofte Stillede Spørgsmål (FAQ)
Her er svar på nogle almindelige spørgsmål vedrørende mobiludvikling i Visual Studio 2017:
Kan jeg udvikle Windows Phone 8.1-apps i Visual Studio 2017?
Nej. Visual Studio 2017 understøtter ikke indlæsning af Windows Phone 8.1-applikationer, der er oprettet i Visual Studio 2015. De vil blive vist som "inkompatible".
Hvad med Windows 10 Mobile-apps?
Ligeledes vil ældre Windows 10 Mobile-applikationer (ikke UWP) oprettet i VS2015 også være inkompatible. Fokus er flyttet til Universal Windows Platform (UWP) for Windows-apps og Xamarin for krydsplatformsløsninger.
Hvad er fordelen ved .NET Standard?
.NET Standard sikrer, at kode, du skriver, kan genbruges på tværs af forskellige .NET-platforme (som .NET Framework, .NET Core, Xamarin), hvilket maksimerer kode-genbrug og reducerer udviklingstid.
Hvad er .NET Core?
.NET Core er en open source og krydsplatformsimplementering af .NET, der er designet til at bygge moderne, højtydende applikationer, der kan køre på Windows, Linux og macOS.
Kan jeg bruge Visual Basic til at lave krydsplatform-mobilapps?
Ja, fra Visual Studio 2017 Update 3 kan du bruge Visual Basic med Xamarin.Forms til at skabe apps til Android, iOS og UWP. Dog er der begrænsninger, især med hensyn til XAML-baseret UI-definition, som ikke understøttes i VB Xamarin.Forms-projekter.
Hvilke begrænsninger er der for Visual Basic i Xamarin.Forms?
Den primære begrænsning er, at Xamarin.Forms-biblioteker i Visual Basic kun kan definere deres brugergrænseflade via kode. Du kan ikke bruge XAML til UI-definition, som det er muligt med C#.
Er Xamarin.Forms det samme som native app-udvikling?
Nej. Xamarin.Forms giver dig mulighed for at skrive en enkelt kodebase, hvorfra UI-elementer oversættes til platform-native kontroller ved runtime. Native app-udvikling (uden Forms) giver dig fuld kontrol over hver platforms native API'er, men kræver separate kodebaser for UI og ofte for forretningslogikken også.
Ved at omfavne de nye muligheder i Visual Studio 2017 og Xamarin, kan du som udvikler effektivt navigere i det moderne mobilapp-landskab og levere løsninger til et bredt publikum på tværs af forskellige enheder og operativsystemer.
Hvis du vil læse andre artikler, der ligner Mobiludvikling i Visual Studio 2017: Farvel & Goddag, kan du besøge kategorien Mobiludvikling.
