Débuter avec nancy

Créer une simple application Nancy auto-hébergée

  1. Utilisez Nuget pour installer les packages Nancy et Nancy.Hosting.Self dans le projet.

  2. Instanciez un nouvel objet NancyHost et transmettez l’URL correspondante <pré> using( var host = new NancyHost( hostConfiguration, new Uri( “http://localhost:1234” ) ) ) { host.Start(); Console.WriteLine( “Running on http://localhost:1234” ); Console.ReadLine(); }</pré> Placez ce code dans votre projet au moment où vous souhaitez commencer à écouter le trafic http.

  3. Ajoutez une classe à votre projet qui hérite de NancyModule et ajoutez une méthode constructeur.

    public class FooModule : NancyModule { public FooModule() { } }

  4. Définissez les routes dans le constructeur :

    … public FooModule() { Get[“Bar”] = parameters => { return “You have reached the /bar route”; } }

Configurer Nancyfx avec Dotnet core v1.1, Kestrel et Visual Studio Code sur les systèmes *nix

## Étapes préalables :

  1. Obtenir le noyau dotnet pour votre plate-forme :

    Dotnet Core

  2. Suivez les instructions et assurez-vous que le noyau dotnet fonctionne
  3. Obtenez le code Visual Studio pour votre plate-forme :

    Code VS

  4. Lancez Visual Studio Code (code VS) et installez l'extension C# puis rechargez

Créez un projet NancyFx auto-hébergé :

  1. Configurez un projet avec une structure de répertoire de projet correcte.

    Ouvrez le terminal bash et tapez :

    <pré> mkdir nancydotnetcore cd nancydotnetcore mkdir src test mkdir toucher global.json

  2. Ouvrez global.json et saisissez le code suivant :

    <pré> { “projects”:[“src”, “test”] }

  3. Dans le terminal Bash :

    <pré> CD src mkdir NancyProjet1 dotnet nouveau

    Ouvrir le dossier NancyProject1 dans le code VS

    Vous recevrez un avertissement : “Les actifs requis pour la construction et le débogage sont manquants dans ’nancyproject1’.”

    Cliquez sur “Oui”

    Vous verrez également : Il existe des dépendances non résolues de ‘project.json’. Veuillez exécuter la commande de restauration pour continuer.

    Cliquez sur “Fermer”, nous y reviendrons bientôt.

  4. Ajoutez les dépendances, ouvrez "project.json" et remplacez-le par ce qui suit :

    <pré> { “version”: “1.0.0-*”, “buildOptions”: { “debugType”: “portable”, “emitEntryPoint”: true },

    "frameworks": {
        "netcoreapp1.1": {
            "dependencies": {
                "Microsoft.AspNetCore.Hosting": "1.1.0",
                "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
                "Microsoft.AspNetCore.Owin": "1.1.0",
                "Nancy": "2.0.0-barneyrubble",
                "Microsoft.NETCore.App": {
                    "type": "platform",
                    "version": "1.1.0"
                }
            }
        }
    }
    

    }

    Le code VS vous demandera de restaurer cliquez sur “Restaurer”

  5. Créer un dossier "Modules" dans le projet VSCode

    Dans le dossier Modules ajoutez un fichier nommé “IndexModule.cs” puis copiez et enregistrez ce qui suit :

    <pré> espace de noms NancyProject1 { using Nancy; public class IndexModule : NancyModule { public IndexModule() { Get("/", _ => “Hello dotnet core world!”); } } }

  6. Dans le répertoire racine du projet, créez un fichier appelé "Startup.cs" et copiez-collez ce qui suit :

    <pré> espace de noms NancyProject1 { using Microsoft.AspNetCore.Builder; using Nancy.Owin;

    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            app.UseOwin(x => x.UseNancy());
        }
    }
    

    }

  7. Ouvrez le fichier “Program.cs” et remplacez le contenu par ce qui suit et enregistrez :

    namespace NancyProject1
    {
        using System.IO;
        using Microsoft.AspNetCore.Builder;
        using Microsoft.AspNetCore.Hosting;
    
        public class Program
        {
            public static void Main(string[] args)
            {
                var host = new WebHostBuilder()
                    .UseContentRoot(Directory.GetCurrentDirectory())
                    .UseKestrel()
                    .UseStartup<Startup>()
                    .Build();
    
                host.Run();
            }
        }
    }
    
  8. Fait! Maintenant, exécutons ceci et voyons la sortie.

    Cliquez sur le symbole de débogage dans VS Code, puis cliquez sur le bouton Exécuter. Il doit compiler et démarrer le projet.

    Ouvrez le navigateur @ http://localhost:5000

  9. Tapez-vous dans le dos et profitez-en!