如何在ASP.Net Core中使用Nancy
Nancy是用于构建基于HTTP的服务的轻量级框架。 Nancy更喜欢约定而不是配置,并提供对GET,HEAD,POST,PUT,DELETE和PATCH操作的支持。 Nancy在MIT许可下也是开源的。 本文讨论了如何在ASP.Net Core应用程序中使用Nancy。
Nancy是一个Web框架,不依赖System.Web或其他.Net库。 最重要的是,如果您使用的是Nancy,则不必遵守MVC模式或任何其他模式。 Nancy只是可以响应HTTP动词的服务端点。 这使Nancy成为构建网站,API和Web服务的理想选择。
[Git要点: Git版本控制入门 。 • Git和GitHub的20个基本指针 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]
南希与宿主无关。 您可以将其作为Windows服务在IIS中,在WCF中作为Windows服务运行,嵌入在.exe文件中或在自托管应用程序中运行。 南希非常容易设置和自定义。 Nancy的另一个优点是其对依赖项注入的内置支持。 Nancy还提供了一个可轻松用于测试请求-响应周期的库。 我将在以后的文章中讨论Nancy的这一功能。
在Visual Studio中创建一个ASP.Net Core项目
首先,让我们在Visual Studio中创建一个ASP.Net Core项目。 如果您的系统中未安装Visual Studio 2019,则可以在此处下载它 。
若要在Visual Studio 2019中创建一个新的ASP.Net Core项目,请按照以下步骤操作。
- 启动Visual Studio IDE。
- 点击“创建新项目”。
- 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.Net Core Web应用程序”。
- 点击下一步。
- 在“配置新项目”窗口中,指定新项目的名称和位置。
- 单击创建。
- 在“创建新的ASP.Net Core Web应用程序”窗口中,从顶部的下拉列表中选择.Net Core作为运行时,并选择ASP.Net Core 2.2(或更高版本)。
- 选择“ Web应用程序”作为项目模板。
- 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不再使用这些功能。
- 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
- 单击创建。
现在,您应该已经准备好在Visual Studio中使用一个新的ASP.Net Core项目。 我们将在以下各节中使用该项目来构建我们的自定义托管服务。
在ASP.Net Core中安装和配置Nancy
要安装Nancy,请在“解决方案资源管理器”窗口中右键单击您的项目,然后选择“管理NuGet软件包…”。 然后,在NuGet软件包管理器窗口中,搜索Nancy并安装它。 或者,您可以使用以下命令从NuGet软件包管理器控制台安装Nancy。
Install-Package Nancy
一旦安装了Nancy,接下来要做的就是配置Nancy。 为此,您应该在Startup类的Configure方法中调用UseNancy方法,如下所示。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { app.UseMvc(); app.UseOwin(x => x.UseNancy()); }
在ASP.Net Core中创建您的第一个Nancy模块
到目前为止,一切都很好。 现在让我们创建一个Nancy模块并为其编写一些代码。 Nancy模块是标准的C#类,它扩展了Nancy框架的NancyModule类。
public class HomeModule : NancyModule{}
应该注意的是,您必须将Nancy模块声明为public。 Nancy框架无法发现未标记为公共的模块。
在ASP.Net Core中的Nancy模块中创建路由
Nancy模块在其构造函数中定义路由。 要在Nancy中定义路由,应指定HTTP动词,模式,操作和(可选)条件。 这是说明Nancy路由定义的示例。
public class HomeModule : NancyModule{ public HomeModule() { Get("/", args => GetAllAuthors()); Get("/{id:int}", args => GetAuthorById(args.id)); }}
本质上,Nancy模块是定义HTTP端点的地方。 以下代码段说明了可以处理三个不同GET请求的Nancy模块。
public class HomeModule : NancyModule { public HomeModule() { Get("/", args => "Welcome to Nancy."); Get("/Test", args => "Test Message."); Get("/Hello", args => $"Hello {this.Request.Query["name"]}"); } }
Nancy不仅轻巧,模块化且快速,而且安装和配置非常简单。 您可以使用Nancy轻松地提供基本的HTTP服务。 要了解有关Nancy框架的更多信息,可以参考GitHub上的文档 。
From: https://www.infoworld.com/article/3393455/how-to-use-nancy-in-aspnet-core.html
如何在ASP.Net Core中使用Nancy相关推荐
- asp.net nancy_如何在ASP.Net Core中使用Nancy
asp.net nancy Nancy是用于构建基于HTTP的服务的轻量级框架. Nancy更喜欢约定而不是配置,并提供对GET,HEAD,POST,PUT,DELETE和PATCH操作的支持. Na ...
- 如何在 ASP.NET Core 中使用 HttpClientFactory ?
ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,这篇文章我们将会讨论如何在 ASP.Net Core 中使用 HttpClientFactory. ...
- 如何在 ASP.Net Core 中使用 Autofac
依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性,ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持,然而内置的依赖注入容器相比成熟的 依赖注入容器 ...
- 如何在 ASP.Net Core 中使用 Lamar
ASP.Net Core 自带了一个极简的 开箱即用 的依赖注入容器,实际上,你还可以使用第三方的 依赖注入容器 来替代它,依赖注入是一种设计模式,它能够有效的实现对象之间的解耦并有利于提高单元测试和 ...
- 如何在 ASP.Net Core 中使用 MediatR
MediatR 是一个 中介者模式 的.NET开源实现, 中介者模式 管控了一组对象之间的相互通讯并有效的减少了对象之间错综复杂的相互依赖,在 中介者模式 中,一个对象不需要直接和另一个对象进行通讯, ...
- 如何在 ASP.Net Core 中对接 WCF
在 REST API 出现之前,SOAP (Simple Object Access Protocol) 一直都是基于 web 的标准协议,虽然现在 REST 大行其道,但在平时开发中总会遇到对接第三 ...
- 如何在 ASP.Net Core 中使用 NCache
虽然 ASP.Net Core 中缺少 Cache 对象,但它引入了三种不同的cache方式. 内存缓存 分布式缓存 Response缓存 Alachisoft 公司提供了一个开源项目 NCache, ...
- 如何在 ASP.Net Core 中使用 Configuration Provider
ASP.NET Core 是一个开源的,跨平台的,精简的模块化框架,可用于构建高性能,可扩展的web应用程序, ASP.NET Core 中的数据配置常用 k-v 的形式存储,值得注意的是,新的数据配 ...
- 如何在 ASP.Net Core 中使用 Serilog
记录日志的一个作用就是方便对应用程序进行跟踪和排错调查,在实际应用上都是引入 日志框架,但如果你的 日志文件 包含非结构化的数据,那么查询起来将是一个噩梦,所以需要在记录日志的时候采用结构化方式. 将 ...
最新文章
- ‘Link‘ is not exported from ‘react-router‘
- 学会python之后-python学会基础语法之后,如何提高?
- tp5.0 根据经纬度 获取附近信息_php根据前端传递的经纬度获取区域地址信息
- linux swap分区与内存,虚拟内存和swap分区的关系
- ajax和php没反应,PHP和AJAX没有更新发生
- SQL Tuning 基础概述05 - Oracle 索引类型及介绍
- Android study week1
- 在写csdn博客时,如何实现用超链接进行页面内跳转?
- hadoop学习一-hadoop简介
- 联想打印机 android,小新联想打印机
- MAXDOS网刻教程~~(虚拟机与物理机 / 两台或者多台电脑之间)
- 基于同义词词林扩展版的词语相似度计算
- C51单片机实验——7段数码管实验
- python代码错误有哪些_Python常见十六个错误集合,你知道那些?
- 日本华人IT派遣那点事儿(2)
- 港中文旷视提出PanopticFCN:用于全景分割的全卷积网络
- go语言实现发送邮件带附件
- 科学松鼠会--压缩感知
- 绕过tp路由器管理密码_怎么用手机设置路由器?TPlink无线路由器安装设置方法...
- 数字化为何具有颠覆性?