Nancy in .Net Core學習筆記

來源:互聯網
上載者:User
前言

去年11月份參加了青島MVP線下活動,會上老MVP衣明志介紹了Nancy, 一直沒有系統的學習一下,最近正好有空,就結合.NET Core學習總結了一下。

註: 本文中大部分內容都是對官網文檔的翻譯和總結。

簡介

Nancy是一個的輕量級Http的服務架構, 全名NancyFx, Nancy架構的靈感來自於Ruby
的Sinatra架構,其作者名字叫Frank Sinatra, NancyFx這個名字中的Nancy是Frank Sinatra女兒的名字, Fx的意思是Framework, 即架構。

Nancy的優點
  • 易於測試(Easier Testing), Nancy提供了相應的測試庫,可以很方便實現請求響應的測試
  • 自動依賴注入(Automatic Dependency Resolution), Nancy使用了TinyIOC作為依賴注入架構
  • 內容協商機制(Content Negotiation), Nancy既可以用來建立Api應用,可以來建立網站應用程式,甚至可以混合使用。
  • 文法簡潔(Terse Syntax & Less Ceremony),文法上比MVC簡單的多
  • 無配置化(No Config),Nancy的啟動和運行不需要任何配置
  • 可以在任何地方運行(Runs Anywhere),Nancy可以寄宿在IIS, WCF, 可執行EXE檔案, Windows Service中或自寄宿應用中(Self Hosted Application)
  • 管道鉤子(Pipeline Hooks), Nancy允許使用者修改管道,可以在請求處理之前和發送響應之後自訂一些邏輯
編寫第一個Nancy應用程式

首先我們建立一個空的.Net Core App, 命名為HelloNancy

項目建立成功之後,使用Nuget引入Nancy庫, 選擇(2.0.0-barneyrubble)版本

Nancy 2.0.0-barneyrubble是基於.NET Stardard的項目,所以可以在.NET Core中使用

注意:寫這個執行個體代碼的時候,我使用的是.Net Core 2.1.4, Microsoft.AspNetCore.All中預設已經包含了Microsoft.AspNetCore.Owin, 如果你的.Net Core版本較低,用Nuget手動添加Microsoft.AspNetCore.Owin庫

引用添加完成之後,下一步我們來修改Startup.cs, 這裡我們可以使用app.UseOwin方法將Nancy註冊到NET Core MVC的管線中

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)    {        if (env.IsDevelopment())        {            app.UseDeveloperExceptionPage();        }            app.UseOwin(x => x.UseNancy());    }

接下來我們添加一個新類HelloModule, HelloModule繼承自NancyModule

    public class HelloModule : NancyModule    {        public HelloModule()        {            Get("/", p => "Hello World");        }    }

這裡Get方法中有2個參數,第一個參數是類似於NET Core MVC Route的路由模板,第二個參數是當使用者請求的Url符合該路由模板的時候,做出的響應, 相當於NET Core MVC中的action。

至此一個最簡單的Nancy應用就完成了,下面我們啟動項目, 網站中正確顯示了"Hello World"

怎麼樣,看起來是不是很簡潔。

附原始碼


Lamond Lu
出處:www.cnblogs.com/lwqlun/p/9532803.html
本站使用「署名 4.0 國際」創作共用協議,請在文章明顯位置註明作者及出處。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.