Programmering

Hvordan bruke Nancy i ASP.Net Core

Nancy er et lett rammeverk for å bygge HTTP-baserte tjenester. Nancy foretrekker konvensjoner fremfor konfigurasjon og gir støtte for GET-, HEAD-, POST-, PUT-, DELETE- og PATCH-operasjoner. Nancy er også åpen kildekode under MIT-lisensen. Denne artikkelen presenterer en diskusjon om hvordan vi kan bruke Nancy med en ASP.Net Core-applikasjon.

Nancy er et nettrammeverk og har ingen avhengigheter av System.Web eller andre .Net-biblioteker. Viktigst, du er ikke begrenset til å følge MVC-mønsteret eller noe annet mønster hvis du bruker Nancy. Nancy er bare et tjenesteslutpunkt som kan svare på HTTP-verb. Dette gjør Nancy til et godt valg for å bygge nettsteder, APIer og webtjenester.

Nancy er vert-agnostiker. Du kan kjøre den i IIS, i WCF, som en Windows-tjeneste, innebygd i en .exe-fil, eller i et selv-vert program. Nancy er ganske enkelt å sette opp og tilpasse. En annen fordel med Nancy er den innebygde støtten for avhengighetsinjeksjon. Nancy tilbyr også et bibliotek som enkelt kan brukes til å teste forespørselsresponsen. Jeg vil diskutere denne funksjonen til Nancy i et senere innlegg.

Opprett et ASP.Net Core-prosjekt i Visual Studio

Først og fremst, la oss lage et ASP.Net Core-prosjekt i Visual Studio. Hvis du ikke har Visual Studio 2019 installert på systemet ditt, kan du laste det ned her.

For å opprette et nytt ASP.Net Core-prosjekt i Visual Studio 2019, følg trinnene nedenfor.

  1. Start Visual Studio IDE.
  2. Klikk på "Opprett nytt prosjekt."
  3. I vinduet "Opprett nytt prosjekt" velger du "ASP.Net Core Web Application" fra listen over maler som vises.
  4. Klikk på Neste.
  5. I vinduet "Konfigurer ditt nye prosjekt" angir du navnet og stedet for det nye prosjektet.
  6. Klikk på Opprett.
  7. I vinduet "Create New ASP.Net Core Web Application" velger du .Net Core som kjøretid og ASP.Net Core 2.2 (eller nyere) fra rullegardinlisten øverst.
  8. Velg “Web Application” som prosjektmal.
  9. Forsikre deg om at avmerkingsboksene "Aktiver Docker-støtte" og "Konfigurer for HTTPS" ikke er merket av da vi ikke bruker disse funksjonene her.
  10. Forsikre deg om at autentisering er satt til "ingen godkjenning", da vi heller ikke bruker autentisering.
  11. Klikk på Opprett.

Du bør nå ha et nytt ASP.Net Core-prosjekt klart til bruk i Visual Studio. Vi bruker dette prosjektet i avsnittene nedenfor for å bygge vår tilpassede vertstjeneste.

Installer og konfigurer Nancy i ASP.Net Core

For å installere Nancy, høyreklikker du på prosjektet ditt i Solution Explorer-vinduet og velger “Manage NuGet packages…”. I NuGet Package Manager-vinduet, søk etter Nancy og installer den. Alternativt kan du installere Nancy fra NuGet Package Manager-konsollen ved hjelp av følgende kommando.

Installasjonspakke Nancy

Når Nancy er installert, er det neste du bør gjøre å konfigurere Nancy. For å gjøre dette, bør du ringe UseNancy-metoden i Konfigurer-metoden i oppstartsklassen som vist nedenfor.

public void Configure (IApplicationBuilder app, IHostingEnvironment env)

 {

app.UseMvc ();

app.UseOwin (x => x.UseNancy ());

 }

Lag din første Nancy-modul i ASP.Net Core

Så langt så bra. La oss nå lage en Nancy-modul og skrive litt kode for den. En Nancy-modul er en standard C #-klasse som utvider NancyModule-klassen til Nancy-rammeverket.

offentlig klasse HomeModule: NancyModule

{

}

Det bør bemerkes at du må erklære din Nancy-modul som offentlig. Nancy-rammeverket kan ikke oppdage en modul som ikke er merket som offentlig.

Lag ruter i en Nancy-modul i ASP.Net Core

En Nancy-modul definerer rutene i sin konstruktør. For å definere en rute i Nancy, bør du spesifisere HTTP-verbet, mønsteret, handlingen og (valgfritt) tilstanden. Her er et eksempel som illustrerer en definisjon av Nancy-ruten.

offentlig klasse HomeModule: NancyModule

{

offentlig HomeModule ()

    {

Get ("/", args => GetAllAuthors ());

Get ("/ {id: int}", args => GetAuthorById (args.id));

    }

}

I hovedsak er en Nancy-modul et sted for å definere HTTP-sluttpunkter. Følgende kodebit illustrerer en Nancy-modul som kan håndtere tre forskjellige GET-forespørsler.

offentlig klasse HomeModule: NancyModule

    {

offentlig HomeModule ()

        {

Få ("/", args => "Velkommen til Nancy.");

Get ("/ Test", args => "Test Message.");

Get ("/ Hello", args => $ "Hello {this.Request.Query [" name "]}");

        }

    }

Nancy er ikke bare lett, modulær og rask, men det er ganske enkelt å installere og konfigurere det. Du kan bruke Nancy til å tilby viktige HTTP-tjenester med minimal innsats. For å lære mer om Nancy-rammeverket, kan du se dokumentasjonen på GitHub.