asp.net nancy

Nancy是用于构建基于HTTP的服务的轻量级框架。 Nancy更喜欢约定而不是配置,并提供对GET,HEAD,POST,PUT,DELETE和PATCH操作的支持。 Nancy在MIT许可下也是开源的。 本文讨论了如何将Nancy与ASP.Net Core应用程序一起使用。

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项目,请执行以下步骤。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.Net Core Web应用程序”。
  4. 点击下一步。
  5. 在“配置新项目”窗口中,指定新项目的名称和位置。
  6. 单击创建。
  7. 在“创建新的ASP.Net Core Web应用程序”窗口中,从顶部的下拉列表中选择.Net Core作为运行时,并选择ASP.Net Core 2.2(或更高版本)。
  8. 选择“ Web应用程序”作为项目模板。
  9. 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不使用这些功能。
  10. 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
  11. 单击创建。

现在,您应该已经准备好在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上的文档 。

翻译自: https://www.infoworld.com/article/3393455/how-to-use-nancy-in-aspnet-core.html

asp.net nancy

asp.net nancy_如何在ASP.Net Core中使用Nancy相关推荐

  1. 如何在ASP.Net Core中使用Nancy

    Nancy是用于构建基于HTTP的服务的轻量级框架. Nancy更喜欢约定而不是配置,并提供对GET,HEAD,POST,PUT,DELETE和PATCH操作的支持. Nancy在MIT许可下也是开源 ...

  2. asp隐藏邮箱部分字符_asp.net core 中使用 signalR(二)

    asp.net core 使用 signalR(二) Intro 上次介绍了 asp.net core 中使用 signalR 服务端的开发,这次总结一下web前端如何接入和使用 signalR,本文 ...

  3. asp 连接mysql_如何在ASP中连接MySQL数据库

    ASP和MySQL连接目前有两种办法:一个是使用组件,比较有名是MySQLX,可惜要99美元.二就是使用MyODBC 来连接,下面我们就来看看第二种方式. 试验的平台: MySQL 4.0 For R ...

  4. ASP.NET Core开发-使用Nancy框架

    Nancy简介 Nancy是一个轻量级的独立的框架,下面是官网的一些介绍: Nancy 是一个轻量级用于构建基于 HTTP 的 Web 服务,基于 .NET 和 Mono 平台,框架的目标是保持尽可能 ...

  5. [第二篇]如何在ASP.Net Core的生产环境中使用OAuth保护swagger ui

    在我上篇文章如何在ASP.Net Core的生产环境中保护swagger ui中,我们讨论了如何使用基本身份验证来保护 swagger ui. 使用 OAuth 2.0 和 OpenIdConnect ...

  6. NET问答: 如何在 ASP.NET Core 的 .json 文件中读取 AppSettings ?

    咨询区 Oluwafemi: 在 appsettings.json 中我有如下的 AppSettings 实体数据,如下代码所示: {"AppSettings": {"t ...

  7. 如何在 ASP.NET Core 中使用 HttpClientFactory ?

    ASP.Net Core 是一个开源的,跨平台的,轻量级模块化框架,可用它来构建高性能的Web程序,这篇文章我们将会讨论如何在 ASP.Net Core 中使用 HttpClientFactory. ...

  8. 如何在 ASP.Net Core 中使用 Autofac

    依赖注入可以有效的实现对象之间的 松耦合 并能够实现代码的可测试和可维护性,ASP.Net Core 提供了一个极简版的容器实现对 依赖注入 的原生支持,然而内置的依赖注入容器相比成熟的 依赖注入容器 ...

  9. 如何在 ASP.NET Core 中使用 LazyCache

    微软的 ASP.NET Core 已经是一个非常流行的用于构建 高性能, 模块化 并能运行在 Windows, Linux, MacOS 上的 WEB 框架,通常能够让程序保持高性能的一个有效途径就是 ...

最新文章

  1. Tokyo Tyrant基本规范(4)--协议
  2. Nmap源码分析(操作系统扫描)
  3. linux系统密码自动丢失,通过单用户模式找回linux系统丢失的密码
  4. 【Android 安装包优化】WebP 图片格式性能测试 ( 测试 WebP 图片解码速度 | 测试 WebP 图片编码速度 )
  5. html文档主体的根标签,2 HTML简介标签嵌套和并列关系文档声明
  6. 配置Windows Server2008故障转移集群
  7. 网络爬虫--21.Scrapy知识点总结
  8. Java导出Highcharts需要的3个外部jar包
  9. 10 倍高清不花!大麦端选座 SVG 渲染
  10. PHP学习 - Composer的安装及配置
  11. 解决 Manjaro 中 Linuxqq扫码登陆闪退问题
  12. iOS 屏幕适配 X XR XS XSMax 尺寸
  13. web前端开发期末大作业 ——个人主页(可自取源码)
  14. Google Guava简介
  15. 【板栗糖GIS】DOS—如何在当前文件夹内部批量建子文件夹
  16. mysql查询工龄在20年以上_数据库查询练习
  17. 武魂优化游戏引擎 视觉效果全新进化
  18. Unity3D魔方游戏如何完成魔方的旋转
  19. 第七章:项目成本管理 - (7.4 控制成本)
  20. PX4飞控之PWM输出控制

热门文章

  1. 基于JAVA的校园二手交易平台(附:源码 论文 数据库文件)
  2. QGIS之十三矢量化电子地图并矩形化
  3. 自己拥有一台服务器可以做哪些很酷的事情?
  4. java后端实现集成支付宝APP支付(沙箱环境)
  5. 记录微博图床403解决方法
  6. Spark中--jars与spark.driver.extraClassPath、spark.executor.extraClassPath区别与联系
  7. 2022年机修钳工(中级)考试题库及模拟考试
  8. java实现excel导出功能
  9. vue 如何获取图片的原图尺寸_js获取图片信息(一)-----获取图片的原始尺寸
  10. 【有限位移旋量理论】罗德里格旋转公式(Rodrigues Rotation Formula)