NancyFx/Nancy es un framework de código abierto de bajo perfil para construir servicios basados en HTTP en .NET y Mono.
Ofrece una alternativa liviana y fácil de usar a otros frameworks como ASP.NET MVC o Web API, más pesados y complejos.
Nancy se enfoca en la simplicidad y la flexibilidad, lo que permite a los desarrolladores crear aplicaciones rápidas y eficientes sin la necesidad de una gran cantidad de configuración y código.
Características de NancyFX,
- Ligero y rápido: Diseñado para ser fácil de usar y configurar sin sacrificar el rendimiento.
- Modular: Soporte para múltiples módulos, facilitando la organización del código.
- Sin dependencias: Puede ejecutarse en cualquier host sin necesidad de dependencias externas.
- Sintaxis clara y fluida: Enfocado en la simplicidad y legibilidad del código.
- Multiplataforma: Compatible con Windows, macOS y Linux.
- Soporte integrado para pruebas: Facilita la creación de tests unitarios y de integración.
NancyFX es Open Source y todo su código y documentación están disponibles en el repositorio del proyecto en GitHub - NancyFx/Nancy.
Actualización: Nancy está marcado como archivado desde Enero de 2021. Podéis seguir usándolo, o usar una alternativa como EmbedIO, librería en C# para crear un servidor HTTP en .NET
Instalación de NancyFX
Para comenzar a utilizar NancyFX en tu proyecto de .NET, primero debes instalar la biblioteca a través de NuGet. Puedes hacerlo mediante el Administrador de paquetes NuGet en Visual Studio o utilizando la consola de NuGet.
Install-Package Nancy
Además, deberemos instalar un servicio de hoster, por ejemplo OWIN (Open Web Interface for .NET).
Install-Package Nancy.Owin
Install-Package Microsoft.Owin.Selfhost
Install-Package Microsoft.Owin.Host.HttpListener
Cómo usar NancyFX
Nancy es un framework de servidor web que utiliza una estructura de enrutamiento basada en módulos. Los módulos son clases que manejan solicitudes HTTP específicas y devuelven respuestas.
Cada módulo se asigna a una ruta de URL específica, lo que permite al framework enrutar las solicitudes al módulo correspondiente.
using Nancy;
public class HelloModule : NancyModule
{
public HelloModule()
{
Get("/", _ => "Hello, World!");
}
}
Ejemplo básico: Hello World
Este ejemplo muestra cómo crear una aplicación web básica que responde con “Hello, World!” a cualquier solicitud GET.
using Microsoft.Owin.Hosting;
using Owin;
using Nancy.Owin;
internal class Program
{
static void Main(string[] args)
{
var url = "http://localhost:8888/";
// start OWIN host
using (WebApp.Start<Startup>(url))
{
Console.WriteLine("NancyFX server running on http://localhost:8888");
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseNancy();
}
}
public class HelloModule : NancyModule
{
public HelloModule()
{
Get("/", _ => "Hello, World!");
}
}