Last week I decided to start migrating one of my existing ASP.NET application that uses NancyFX over to ASP.NET Core. The process is actually pretty straight forward if you are familiar with OWIN.
Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.
OWIN defines a standard interface between .NET web servers and web applications. The goal of the OWIN interface is to decouple server and application, encourage the development of simple modules for .NET web development, and, by being an open standard, stimulate the open source ecosystem of .NET web development tools.To clarify and reword slightly, OWIN is a open source specification that is not defined by Microsoft and is not an actual implementation. ASP.NET Core supports OWIN and defines middleware to be used in a request pipeline with the Microsoft.AspNet.Owin package.
ASP.NET Core NancyFX Demo
All of the source code for this demo is available on GitHub.The first thing we are going to do for this demo is add the appropriate nuget packages. Note: At the time of this post, ASP.NET Core is curently at RC1, which is still a pre-release and therfore you will need to include the “-Pre” option when installing any pre-release packages.
PM> Install-Package Microsoft.AspNet.Owin -Pre PM> Install-Package Nancy PM> Install-Package Nancy.OwinNow in our Configuration method of our Startup class, there is a new extension method of UseOwin provided by the Microsoft.Asp.Net.Owin package, which allows us to include additional OWIN compatible middleware to our ASP.NET Core pipeline. The Nancy.Owin package also provides an extension method UseNancy that we can use inside our UseOwn method. For the demo, I’ve created a simple Nancy Module. Since Nancy will find it automatically (which is really nice) there is no registration needed.
Nancy does not support targeting .NET Core however does support Mono. You will have to remove the “dnxcore50” from frameworks section of the project.jsonAt this point, you are ready to run the demo. Your application should be hosted on port 5000. Calling http://localhost:5000/nancy/demo using Postman produces the expected output.
10 thoughts to “ASP.NET Core Series: NancyFX”
Nancy will begin work on dnxcore50 support from Feb 1st 2016
Awesome. Is that included in working towards 2.0 or the existing 1.x?
V2 hopefully in Jan. Then CoreCLR changes may become a v3
This is great news. Don’t ever want to leave Nancy
I came across some Nancy blogpost last week and got curious about it and so looked on internet for more information. I wanted to know why should someone use Nancy and why plain asp.net core is not sufficient. So far every place I look I see the same introduction, you know that one with ‘…super-duper-happy-path…’. But to be honest it’s still not clear ‘why’? What is it that someone can not do in ASP.NET Core which is ‘super-duper’ in Nancy? What is hard or missing in ASP.NET Core which is easy or available in Nancy? The need of such a framework on top of ASP.NET Core is very vage to me.
This is a great question. I’m going to create post around this and publish it this week. I’ll link to it once done.
That would be great or rather ‘super-duper’ 😉
I really look forward to it.
Here’s the post itself: http://codeopinion.com/why-use-nancy/