Can ASP NET apps run on mobile devices?

ASP.NET og Mobiludvikling: En Komplet Guide

15/12/2021

Rating: 4.69 (11411 votes)

Udvikling til mobilplatformen er i øjeblikket et af de hotteste emner inden for softwareudvikling – og med god grund! Mange af os er trætte af enten at have en oplevelse, der simpelthen ikke fungerer på vores mobile enhed, eller at skulle zoome ind og scrolle rundt bare for at finde hurtige informationer. Tænk bare på buskøreplaner, der kan være en ren plage. Der er flere måder at udvikle til mobile enheder på: du kan skabe en webapplikation, der fungerer i enhedens browser, en hybridapplikation ved hjælp af HTML og et framework som PhoneGap, eller du kan gå den rene native vej. Som ASP.NET-udviklere vil vi sandsynligvis fokusere på den første mulighed: at skabe en webapp, der kan køre i en mobil enheds browser. Dette er en fremragende vane at have, for selv hvis du har en native applikation, er dine brugere måske ikke klar over det og navigerer stadig til din hjemmeside. Eller du har måske kun en native app til én platform, men ikke alle. Uanset hvad, hvordan griber vi mobiludvikling i ASP.NET an, nu hvor ASP.NET 4.5 og nyere versioner er her? Det er præcis, hvad denne artikel vil dykke ned i!

Indholdsfortegnelse

Tre Forskellige Tilgange til Mobil Webudvikling

Når man skaber enhver form for webapplikation, uanset om det er med almindelig HTML eller med en serverplatform som ASP.NET, kan man sige, at der er tre forskellige tilgange til at skabe applikationer, der passer til mobile enheder. En af disse er at gøre absolut intet (buuh!). Lad os se nærmere på disse tre tilgange:

Den Dovne Tilgang – Gør intet

Denne tilgang, selvom den er let at anvende, da den ikke kræver nogen ændringer i din applikation, er ikke ideel. Den eneste fordel er, at du ikke bruger yderligere udviklingstimer. Sider af denne type, hvis de overhovedet fungerer på mobile enheder, vil kræve, at brugeren panorerer og zoomer overalt for at interagere korrekt med siden. Desuden kan links og knapper være så små, at brugeren hele tiden trykker på noget andet. Ærligt talt har jeg mistet tællingen over, hvor mange gange jeg har oplevet dette på min telefon. Denne tilgang resulterer ofte i en frustrerende brugeroplevelse og bør undgås, hvis målet er at levere et professionelt produkt.

Can mobile apps communicate with ASP NET Core backend services?
Mobile apps can communicate with ASP.NET Core backend services. For instructions on connecting local web services from iOS simulators and Android emulators, see Connect to local web services from Android emulators and iOS simulators. View or download sample backend services code

Progressiv Forbedring – Byg med Legoklodser

Jeg kan godt lide at tænke på progressiv forbedring som at bygge med Legoklodser. Alle har nok brikker til at bygge en grundlæggende bil; det kræver bare et sæt eller to. Men nogle mennesker, der er alt for dybt inde i det (jeg har måske en kiste fuld et sted), har alle mulige skøre brikker. Som et fedt bur til at holde fanger, vinger så den kan flyve, når det er nødvendigt, en slags ubådsagtig ting, og selvfølgelig lasere. Åh mand, de lasere!

Det er på samme måde med nettet. De fleste browsere lader dig bygge en simpel webapplikation, men efterhånden som browserens kapacitet udvides, tilføjer vi flere og flere funktioner. På denne måde får alle bilen, men hvis du bruger den nyeste browser, kan bilen flyve, gå under vand og endda skyde laserstråler – pew pew! Denne tilgang giver dig mulighed for ikke kun at designe til bestemte visningsområder (hvor stor skærmen vil være), men det hele håndteres via CSS og JavaScript – ingen grund til at opsætte logik for enheder på serveren. Det gør også din applikation fremtidssikret, da en browser, når den opdaterer de standarder, den accepterer, vil kunne tilføje den lasergevær.

Selvfølgelig løber du også ind i nogle problemer. Visse skærme, lad os sige en kæmpe formular, der skal udfyldes, vil stadig være virkelig akavet på en mobil enhed, da du kun har tilføjet funktioner og ikke nødvendigvis tænkt på et redesign for mobile enheder. Desuden betyder det faktum, at du gør alt dette på klienten, at al koden for funktionerne, selvom de aldrig bliver brugt, sendes over netværket, uanset om de bliver brugt eller ej. Dette kan føre til en langsommere indlæsningstid for brugere med ældre browsere eller langsomme forbindelser.

Mobil-specifikke Sider – Dobbelt op

Den tredje tilgang er at oprette sider, der er specifikt designet til mobile enheder. Jo, rækken af visningsområdestørrelser kan stadig variere, men du kan sige "dette er, hvad mobilbrugere har brug for at se" og holde dig til det. Ofte skal designet for mobile enheder være helt anderledes end desktopversionen, især når brugeroplevelsen tages i betragtning. Du ønsker ikke den samme interaktion for desktop- og mobile enheder – det er to helt forskellige målgrupper.

Dette er fantastisk, fordi siderne nu er specifikt designet til mobile enheder. Dette giver dig også den mindste markup og styling, der skal sendes over netværket; du bekymrer dig ikke om ressourcerne til andre versioner af appen, kun dem, du har brug for i øjeblikket. Du kan også tilpasse server-side logikken for hver implementering, hvilket tillader mobil-specifikke elementer at blive håndteret på serveren, når informationen sendes tilbage. Dette giver en optimeret ydeevne og en skræddersyet brugeroplevelse.

Dette betyder også, at du skal fordoble (eller nogle gange mere) den UI, du har, da du for hver enhed, du vil målrette, måske ønsker en separat visning (f.eks. tablet vs. telefon). Dette betyder, at der er mere arbejde at gøre på UI'en. Derudover skal du opdatere koden for nye enheder, hvis der opstår ændringer, der bryder funktionaliteten. Selvom der kan være flere fordele og ulemper her, er dette nogle af de punkter, der skiller sig ud, når man tager disse tre tilgange. Ærligt talt burde den første mulighed dog fjernes. Så lad os bare sige, at der er to reelle tilgange.

Sammenligning af Tilgange til Mobil Webudvikling
TilgangFordeleUlemperBedst til
Den Dovne Tilgang (Gør intet)Ingen udviklingstid.Dårlig brugeroplevelse, kræver zoom/panorering, små elementer, uprofessionelt.Aldrig.
Progressiv ForbedringÉn kodebase, CSS/JS-baseret, fremtidssikret, forbedrer sig med browseren.Kan være akavet med komplekse layouts, sender al kode til klienten, selvom den ikke bruges.Indholdstunge websites, blogs, apps der kan fungere simpelt og gradvist forbedres.
Mobil-specifikke SiderOptimeret brugeroplevelse, minimal markup, tilpasset serverlogik, skræddersyet design.Mere UI-arbejde (flere versioner), kræver vedligeholdelse for nye enheder.Komplekse applikationer med specifikke mobilbehov, webshops, interaktive tjenester.

ASP.NET Specifikke Løsninger til Mobile Webapps

Der er et par måder, du kan bruge ASP.NET til at forbedre dine ASP.NET Ajax-applikationer, når det kommer til mobil. Vi vil fokusere mest på den tredje mulighed, at skabe mobil-specifikke sider, da det er her, ASP.NET virkelig skinner.

Den Nemme Måde: Skift Master-side

En sådan metode er faktisk latterligt nem, og selvom den måske ikke er fuldstændig optimeret til mobil, kan den hjælpe enormt i dette scenarie. I bund og grund tjekker du, om den nuværende enhed, der forbinder til din applikation, er en mobil enhed, og hvis det er tilfældet, skifter du master-sidefiler til en, der indeholder en mere mobilvenlig CSS-fil. Selvom dette måske er en generalisering om, at alle mobile enheder er ens, kan du stadig levere noget CSS, der kan hjælpe med at lindre nogle af de problemer, der opstår, når du bruger mobile enheder med din applikation.

Hvordan gøres dette? Det er slet ikke så svært. I PreInit-eventet for enhver af dine sider kan du simpelthen kontrollere, om browseren er en mobil enhed. Hvis den er, tildeler du stien til din mobilvenlige master-side (f.eks. "~/Mobile.Master") til sidens MasterPageFile-egenskab. Du kan bruge Request.Browser.IsMobileDevice til at foretage denne kontrol.

Læg mærke til, hvordan vi nævner Request.Browser? Der er faktisk en masse nyttigt indhold derinde, med IsMobileDevice som en af de vigtigste. Du kunne for eksempel også bruge Request.Browser.ScreenPixelsWidth og ScreenPixelsHeight til at få skærmopløsningen. Eller hvis du er interesseret i selve enheden, har du MobileDeviceManufacturer (returnerer navnet på enhedens producent) og MobileDeviceModel (returnerer navnet på enhedens model). Der er meget, du kan bruge til potentielt at hjælpe med oprettelsen af en mobil-specifik version af din applikation uden for mange ændringer i din kode. Denne fleksibilitet er en stor fordel.

En ulempe ved dette er dog, at du kontrollerer på hver side, om browseren, der forbinder til den, er en mobil browser eller ej. Det er lidt irriterende at skulle indsætte dette på flere sider, og hvis du vil placere det på et højere niveau, anmoder du stadig om denne ændring hver gang. Derudover, hvad nu hvis du vil vise desktopversionen til dine brugere? Jeg har mistet tællingen over, hvor mange gange visse sider ikke tilbyder fuld funktionalitet på deres mobile webside, noget manglede, eller en funktion var simpelthen brudt, og jeg var nødt til at skifte til desktopvisningen og gå i "manuel tilstand" (zoome og scrolle) for at ordne tingene.

En Lidt Mere Avanceret Tilgang: Session-baseret omdirigering

Hvordan håndterer vi dette? Jo, vi bliver nødt til at arbejde på en session-for-session basis for at sikre, at dette kun håndteres én gang per instans, en bruger forbinder til vores applikation. Dette håndteres alt sammen i vores Global.ascx-fil. Du kan tilføje en handler til Session_Start-eventet i Global.ascx.cs-filen. Her kan du hente den nuværende anmodning (HttpContext.Current.Request), kontrollere om den er fra en mobil enhed ved hjælp af IsMobileDevice, og derefter omdirigere brugeren til en specifik mobilmappe (f.eks. "~/Mobile/") ved hjælp af HttpContext.Current.Response.Redirect. Dette sikrer, at uanset hvilken URL brugeren forsøger at tilgå, vil de altid blive omdirigeret til din mobile version af sitet, forudsat at mobilmappen indeholder dit mobile site. Det er en effektiv metode til at sikre den korrekte mobilvisning.

Hvis du vil tage det hele endnu længere, kan du sagtens. Du kan altid tjekke, om den nuværende side har en mobil ækvivalent og derefter omdirigere til den specifikke side – alt du skal gøre er at se på den nuværende side og bruge den ovenstående omdirigeringserklæring til en specifik side efter eget valg. En vigtig note her er, at ovenstående altid vil gå til roden af det mobile site. Hvis du ikke ønsker at sende folk tilbage til starten, når de har været flinke og bogmærket en side på dit mobile site, skal du blot kontrollere, om URL-stien starter med "/Mobile/" og kun omdirigere, hvis den ikke gør det.

Can ASP NET apps run on mobile devices?
As ASP.NET developers most likely we’ll want take a look in to the first option, creating a web app that can run in a mobile devices browser. This is a great habit to have because even if you have a native application your users might not be aware and still navigate to your website. Or you might just have a native app for one platform, but not all.

Test med Mobilsimulatorer

Nu hvor vi implementerer kode til mobile enheder, hvordan tester vi det? Selvfølgelig kan du teste det ved at have en VPN-forbundet enhed (hvis du gør dette internt) eller udgive din app til en offentlig staging-server og derefter navigere til den specifikke URL og teste det personligt. Men hvor mange af os har iOS-, WP7-, Android-, WebOS- og Blackberry-enheder på én gang? For ikke at nævne telefon- og tablet-variationerne af hver! Heldigvis er WP7 latterligt nemt for os .NET-udviklere – bare download Windows Phone Developer Tools! For andre platforme kan vi i visse tilfælde ikke rigtig emulere enheden på Windows (f.eks. iPhone og iPad), men der er mange muligheder derude. Microsoft har endda en side, der taler om de forskellige enhedssimulatorer derude, så tjek den ud og installer dem, du måtte have brug for. Brug af simulatorer er afgørende for robust testning.

DevExpress ASP.NET Kontroller og Mobilunderstøttelse

Mobile hjemmesider kræver berøringsvenlige UI-elementer og et layout, der arrangerer indhold, så det passer inden for et mobilt browservindue. DevExpress ASP.NET-kontroller giver funktioner, der ændrer en standardkontrolls UI til en mobiloptimeret version efter behov. Disse funktioner giver dig mulighed for at oprette et sidelayout, der er målrettet både desktop- og mobile enheder. Du kan med fordel bruge DevExpress ASP.NET-kontroller til at udvikle mobile hjemmesider, hvilket forenkler processen markant.

Fælles Koncepter for Mobil Webapplikationer

Når du bygger en mobil webapplikation, bør du overveje følgende grundlæggende koncepter:

Mobilvenlige Layouts: Responsivt og Adaptivt Design

Et mobilvenligt layout skal tilpasse sig en browsers bredde – uanset størrelse eller orientering. Layouts skal være fleksible, så indhold kan vises korrekt på forskellige enheder. Du kan bruge følgende generelle tilgange til at skabe disse tilpasningsdygtige layouts:

  • Responsivt webdesign: Et fælles layout, der ændrer størrelse eller omarrangerer visse elementer, så de passer til den aktuelle vinduesstørrelse.
  • Adaptivt webdesign: Forskellige sidelayouts vises baseret på den aktuelle vinduesstørrelse.

DevExpress ASP.NET-kontroller kan bruges til at skabe et adaptivt layout, et responsivt layout eller en kombination af begge layouttyper, hvilket giver dig maksimal kontrol over designet.

Viewport-indstillinger

En viewport er en websides synlige del inden for en browser. Nogle websider passer ikke inden for et mobilt browservindue, så hele siden skaleres ned og vises inden for viewporten – hvilket tvinger slutbrugerne til at zoome ind på en del af siden. Mobilvenlige layouts er dog designet til at vise alt indhold uden skalering, så du skal angive viewport-indstillinger for at forhindre dette. Du kan bruge meta-tagget (inden for HTML-dokumentets head-sektion) til at konfigurere viewporten. For at forhindre skalering anbefales specifikke viewport-indstillinger, der strækker sideindholdet til viewport-bredden og deaktiverer automatisk og brugerdefineret skalering. Dette sikrer en optimal visning.

CSS 3 Medieforespørgsler

Medieforespørgsler giver dig mulighed for at anvende CSS-stilarter baseret på viewport-størrelsen. Brug medieforespørgsler til at omarrangere eller vise/skjule elementer, når viewportens bredde (eller højde) er mere eller mindre end en angivet værdi. For eksempel kan en simpel medieforespørgsel anvendes på en CSS-klasse for at skjule et element, når viewportens bredde er mindre end 1024 pixels. Du kan anvende denne klasse på en DevExpress-kontrol (eller et kontrolelement) via dens CssClass-egenskab. Denne teknik er essentiel for dynamisk layoutjustering.

Mobilvenlige Kontroller med Indbygget Adaptivitet

Du kan aktivere indbyggede adaptive tilstande for de fleste DevExpress ASP.NET-kontroller, hvilket omdanner dem til mobilvenlige kontroller. Disse tilstande gør kontrolens UI (eller en del af UI'en, såsom en værktøjslinje eller menu) berøringsvenlig og opdaterer kontrolens layout, så det passer inden for et mobilt browservindue. For eksempel ændrer Grid View-kontrollen sin UI, når et browservindue bliver for smalt til at vise indhold i standardtilstand. Du kan få adgang til en kontrolelements mobilvenlige tilstand via dens tilsvarende SettingsAdaptivity-egenskab (f.eks. ASPxGridView.SettingsAdaptivity for ASP.NET Web Forms Grid View). Visse kontroller har strukturelle elementer med deres egne mobilvenlige indstillinger. Kontrolens overordnede kontrol eksponerer en adskilt SettingsAdaptivity-egenskab. Denne funktionalitet er afgørende for en flydende brugergrænseflade på tværs af enheder.

Bootstrap-understøttelse

Hvis du inkluderer Bootstrap-biblioteket i dit projekt, kan DevExpress ASP.NET Web Forms-kontroller kombineres med Bootstraps foruddefinerede klasser. DevExpress ASP.NET Subscription inkluderer ASP.NET Web Forms Bootstrap-kontroller og ASP.NET Core Bootstrap-kontroller, der understøtter mobilvenlige Bootstrap-temaer og adaptivt design. Dette gør det nemt at integrere DevExpress med populære responsive frameworks, hvilket yderligere forbedrer designfleksibiliteten.

Andre Nyttige Funktioner

DevExpress ASP.NET Subscription inkluderer yderligere værktøjer og ressourcer, der kan hjælpe dig med at udvikle en mobilvenlig webapplikation. Skabelongalleriet i DevExpress ASP.NET tilbyder en 'Responsive Web Application'-projekt-skabelon, som du kan bruge til at oprette responsive webapplikationer. Hvis du ønsker at bruge DevExpress ASP.NET Web Forms Bootstrap-kontroller, kan du vælge 'Bootstrap Web Application'-projekt-skabelonen. DevExpress-temaer indeholder desuden mobilvenlige temaer, der inkluderer UI-elementer optimeret til gennemsnitlig fingerspidsstørrelse. Eksempler inkluderer iOS, Material, MaterialCompact, Moderno, Mulberry og Office 365. Du kan også ændre DevExpress-temaer for at tilpasse dem yderligere.

ASP.NET Core som Backend til Native Mobilapps

Mobile apps kan kommunikere med ASP.NET Core backend-tjenester. Dette er en utrolig kraftfuld kombination, der gør det muligt for udviklere at udnytte ASP.NET Core's robusthed og skalerbarhed til at drive native mobilapplikationer. For instruktioner om tilslutning af lokale webtjenester fra iOS-simulatorer og Android-emulatorer er der specifikke retningslinjer, der sikrer en problemfri udviklingsproces. Dette aspekt af ASP.NET Core giver en solid grundlag for enhver mobilapplikation, der kræver dataudveksling med en server.

Eksempel: TodoREST Applikationen

Denne artikel demonstrerer, hvordan man opretter backend-tjenester ved hjælp af ASP.NET Core til at understøtte native mobilapps. Den bruger en .NET MAUI-app som sin native klient. Eksemplet inkluderer et ASP.NET Core Web API services-projekt, som denne artikel viser, hvordan man bygger. TodoREST-appen understøtter listning, tilføjelse, sletning og opdatering af to-do-elementer. Hvert element har et ID, et navn, noter og en egenskab, der angiver, om det er udført endnu. Hovedvisningen af elementerne viser hvert elements navn og angiver, om det er udført med et flueben. Ved at trykke på '+' ikonet navigeres der til siden for tilføjelse af elementer, og ved at trykke på et element på hovedsiden navigeres der til en redigeringsside, hvor elementets navn, noter og færdige indstillinger kan ændres, eller elementet kan slettes. For at teste appen mod ASP.NET Core-appen, der er oprettet i næste afsnit, skal du opdatere appens RestUrl-konstant, hvis du hoster den online. Ellers vil appen kommunikere med ASP.NET Core-appen, der er hostet lokalt på din maskine. Android-emulatorer kører ikke på den lokale maskine og bruger en loopback-IP (10.0.2.2) til at kommunikere med den lokale maskine. Du kan bruge .NET MAUI's DeviceInfo-klasse til at detektere operativsystemet, appen kører på, for at bruge den korrekte URL. Dette viser ASP.NET Core's alsidighed i at håndtere forskellige klienter.

Oprettelse af ASP.NET Core Projektet

Du kan oprette et nyt ASP.NET Core Web Application i Visual Studio og vælge Web API-skabelonen. Appen bør svare på alle anmodninger foretaget over HTTPS til port 5001. Det er vigtigt at køre appen direkte, snarere end bag IIS Express, da IIS Express ignorerer ikke-lokale anmodninger som standard. Tilføj en modelklasse til at repræsentere to-do-elementer, f.eks. TodoItem, og marker påkrævede felter med [Required]-attributten. API-metoder kræver definition for at arbejde med data. Brug et interface som ITodoRepository til at definere dataadgangsmetoder (f.eks. DoesItemExist, All, Find, Insert, Update, Delete). For dette eksempel kan repository-implementeringen blot bruge en privat samling af elementer i hukommelsen. Konfigurer implementeringen i Program.cs ved at tilføje en singleton-tjeneste for dit repository, som frameworkets dependency injection-system derefter kan levere til dine controllere. Denne struktur fremmer modulopbygning og testbarhed.

Oprettelse af Controlleren (TodoItemsController)

Tilføj en ny controller til projektet, f.eks. TodoItemsController. Den skal arve fra ControllerBase. Tilføj en Route-attribut for at angive, at controlleren håndterer anmodninger foretaget til stier, der starter med api/todoitems. Tokenet [controller] i ruten erstattes af navnet på controlleren (udelader Controller-suffikset) og er især nyttigt for globale ruter. Controlleren kræver en ITodoRepository for at fungere; anmod om en instans af denne type gennem controllerens konstruktør. Ved kørsel leveres denne instans ved hjælp af frameworkets understøttelse af dependency injection. Dette designmønster bidrager til løs kobling og lettere vedligeholdelse.

Can you use DevExpress ASP NET controls to develop mobile websites?
You can use DevExpress ASP.NET controls to develop mobile websites. When you build a mobile web application, you should consider the following fundamental concepts: A mobile-friendly layout should adjust to a browser’s width - regardless of size or orientation. Layouts need to be flexible so that content can display properly on different devices.

CRUD Operationer og API Test

Denne API understøtter fire forskellige HTTP-verber til at udføre CRUD (Create, Read, Update, Delete) operationer på datakilden. Du kan teste API-metoderne ved hjælp af forskellige værktøjer som curl og jq, der er open source kommandolinjeværktøjer til henholdsvis dataoverførsel og JSON-behandling.

Læsning af elementer (GET)

Anmodning om en liste af elementer sker med en GET-anmodning til en metode, der er markeret med [HttpGet]-attributten, f.eks. en List-metode. Ruten for denne handling er den rute, der er specificeret på controlleren. Handlingen vil typisk returnere en 200 OK-svarkode og alle to-do-elementerne, serialiseret som JSON. Dette er den mest grundlæggende datahentningsoperation.

Oprettelse af elementer (POST)

Ifølge konventionen er oprettelse af nye dataelementer knyttet til HTTP POST-verbet. En Create-metode vil have en [HttpPost]-attribut og acceptere en instans af TodoItem. Da item-argumentet sendes i POST-kroppen, specificerer denne parameter [FromBody]-attributten. Inde i metoden kontrolleres elementet for gyldighed og tidligere eksistens i datalageret, og hvis der ikke opstår problemer, tilføjes det ved hjælp af repository. Kontrol af ModelState.IsValid udfører modelvalidering og bør gøres i enhver API-metode, der accepterer brugerinput. Metoden vil returnere det nyoprettede element i svaret, eller en fejl som BadRequest eller Status409Conflict, hvis der er problemer. Dette sikrer dataintegritet.

Opdatering af elementer (PUT)

Ændring af poster opnås ved hjælp af HTTP PUT-anmodninger. Udover denne ændring er en Edit-metode næsten identisk med Create. Hvis posten ikke findes, returnerer Edit-handlingen en NotFound (404) respons. Ellers vil den opdatere elementet via repository og returnere en NoContent (204) respons, hvilket indikerer succes uden yderligere indhold. Denne metode understøtter dataændring.

Sletning af elementer (DELETE)

Sletning af poster udføres ved at sende DELETE-anmodninger til tjenesten og sende ID'et på det element, der skal slettes. Som med opdateringer modtager anmodninger om elementer, der ikke eksisterer, NotFound-svar. Ellers returnerer en vellykket anmodning en NoContent (204) respons. Dette er afgørende for databehandling.

Forhindring af Over-posting med DTO'er

I øjeblikket eksponerer eksempel-appen hele TodoItem-objektet. Produktionsapps begrænser typisk de data, der inputtes og returneres, ved hjælp af en undergruppe af modellen. Der er flere grunde til dette, og sikkerhed er en af de vigtigste. Undergruppen af en model kaldes normalt et Data Transfer Object (DTO), inputmodel eller visningsmodel. Et DTO kan bruges til at forhindre over-posting, skjule egenskaber, som klienter ikke skal se, udelade nogle egenskaber for at reducere payload-størrelsen, eller udflade objektgrafer, der indeholder indlejrede objekter. Udfladede objektgrafer kan være mere bekvemme for klienter. Brugen af DTO'er er en bedste praksis for API-design.

Fælles Web API Konventioner

Når du udvikler backend-tjenesterne til din app, vil du gerne komme frem til et konsistent sæt konventioner eller politikker for håndtering af tværgående bekymringer. For eksempel, i den tidligere viste tjeneste, modtog anmodninger om specifikke poster, der ikke blev fundet, en NotFound-respons, snarere end en BadRequest-respons. Tilsvarende kontrollerede kommandoer, der blev sendt til denne tjeneste, og som inkluderede modelbundne typer, altid ModelState.IsValid og returnerede en BadRequest for ugyldige modeltyper. Når du har identificeret en fælles politik for dine API'er, kan du normalt indkapsle den i et filter, hvilket fremmer konsistens og genbrugelighed i din kode.

Ofte Stillede Spørgsmål (FAQ)

Kan jeg bruge mine eksisterende ASP.NET (ikke Core) applikationer direkte på mobile enheder?

Ja, det kan du, men med forbehold. Som beskrevet under "Den Dovne Tilgang" vil applikationen sandsynligvis ikke give en god brugeroplevelse uden tilpasninger. For at opnå et acceptabelt resultat bør du implementere enten responsivt design (Progressiv Forbedring) ved hjælp af CSS og JavaScript, eller oprette dedikerede mobil-specifikke sider (Mobil-specifikke Sider) ved hjælp af ASP.NET's master-side-funktionalitet eller omdirigering baseret på browsergenkendelse. Det kræver udviklingsarbejde at optimere dem til mobil.

Er ASP.NET Core et godt valg til backend-tjenester for native mobilapps?

Absolut! ASP.NET Core er et fremragende valg til at bygge backend-tjenester for native mobilapps. Det er en cross-platform ramme, der er yderst performant, skalerbar og understøtter moderne webstandarder som RESTful API'er. Med funktioner som dependency injection, indbygget validering og muligheden for at definere Data Transfer Objects (DTO'er) er det et robust og effektivt fundament for enhver mobilapplikations datalag.

Hvilken tilgang til mobil webudvikling med ASP.NET er den bedste?

Der er ikke én "bedste" tilgang, da valget afhænger af dit projekts specifikke behov og kompleksitet. For enkle indholdssider kan progressiv forbedring være tilstrækkelig, da den genbruger meget af den eksisterende kodebase. For komplekse applikationer med meget specifikke mobilbrugeroplevelseskrav, vil mobil-specifikke sider sandsynligvis give det bedste resultat, selvom det kræver mere initial udvikling. Overvej din målgruppe, dine ressourcer og de ønskede funktioner, når du træffer din beslutning.

Konklusion

Mobiludvikling er ikke længere en mulighed, men en nødvendighed. Som vi har set, er der flere veje at gå, når det kommer til at understøtte mobile enheder med ASP.NET-applikationer. Fra simple master-side-skift til avancerede backend-tjenester med ASP.NET Core, er mulighederne mange. Det vigtigste er ikke at vælge "den dovne tilgang" og gøre intet. Selv små tilpasninger kan forbedre brugeroplevelsen markant. Begynd med at tænke over, hvad mobile brugere ville være mest interesserede i, og server disse sider; du kan altid tilbyde desktopversionen til mere obskure sider (foreløbig). At mobilisere dine ASP.NET-applikationer er et vigtigt skridt mod en mere tilgængelig og brugervenlig digital fremtid.

Hvis du vil læse andre artikler, der ligner ASP.NET og Mobiludvikling: En Komplet Guide, kan du besøge kategorien Mobiludvikling.

Go up