Next week I hope to continue our series on the NancyFX framework for building web applications. For our next post I hope to cover Routing as well as passing arguments via query string, body and how that all works within Nancy
.
As a quick break, this week I’ve decided to put together a compilation of .NET Core resources that may help anyone at any .NET skill level jump in and find the information they are looking for. I’ll try to cover and include all types of projects, scenarios as well as include a few full-fledged production .NET Core applications that are currently out in the wild and open-source.
That said, there was big news on the Nancy
front this week, with the announcement coming out that they’ve joined the .NET Foundation. This is HUGE and important as it will help push more adoption of the NancyFX library as it provides a level of “official”-ness with being supported by the foundation. Otherwise, the .NET Foundation does help projects out some with organization as well as cloud resources, so hopefully this is great news all the way around.
This week also brought us .NET Core 1.1
, announced on the blog.
Lots of updates and further support added for the runtime, along with some more announcements of groups like Google Cloud joining the .NET Foundation.
All that said, on to the resources:
First and foremost: this list borrowed heavily from the awesome-dotnet-core repository available on github right now.
That curated list is maintained by Thang Chung and since I have found many tools and links from that list which is constantly updated, I wanted to provide proper credit.
Here, I will only include some services, resources & frameworks I am extremely familiar with only, rather than every package possible.
General
- Microsoft .NET Core Website
- .NET Core Documentation
- ASP.NET Core Documentation
- .NET Standard Repository
People to follow
- Steve Smith
- Scott Hanselman
- Damian Edwards
- David Fowler
- Rick Strahl
- Jonathan Channon
- Along with many, many more I’ve missed, this is just a cursory list off the top of my head.
Application Frameworks
- ASP.NET MVC / WebAPI - ASP.NET Core MVC is a rich framework for building web apps and APIs using the Model-View-Controller design pattern.
- NancyFX - Nancy is a lightweight, low-ceremony, framework for building HTTP based services on .NET Framework/Core and Mono.
- ServiceStack - Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all https://servicestack.net
- Orchard vNext - Orchard 2, a re-implementation of Orchard CMS in ASP.NET Core.
- Building an (awesome) API with NancyFX 2.0 + Dapper - Plus, dependency injection explained and everything you need to get up and running.
- Exploring ServiceStack’s simple and fast web services on .NET Core
- Exploring a Minimal WebAPI with .NET Core and NancyFX
Authentication & Authorization
- ASP.NET Identity - ASP.NET Core Identity is the membership system for building ASP.NET Core web applications, including membership, login, and user data. ASP.NET Core Identity allows you to add login features to your application and makes it easy to customize data about the logged in user.
- Identity Server 4 - IdentityServer4 is an OpenID Connect and OAuth 2.0 framework for ASP.NET Core.
- OpenIdDict - Easy-to-use OpenID Connect server for ASP.NET Core
- OpenIdDict Samples - Sample projects using OpenIdDict
ORM & Database Access Utilities
- Dapper Dot Net - Dapper - a simple object mapper for .Net
- Entity Framework - Entity Framework (EF) Core is a lightweight, extensible, and cross-platform version of the popular Entity Framework data access technology.
- Simple.Data Core - Simple.Data, the next generation
- Using Dapper ORM With ASP.NET Core - Blog post detailing how to create API with ASP.NET/Dapper
- Cross platform database walk-through using ASP.NET MVC and EF Core - This post is a walk-through of how to set up a simple ASP.NET MVC Core project using three available options with Entity Framework Core: Sqlite, MySql and Postgres.
- .NET Core Data Access - Blog post from .NET team, very thoroughly covers all types of data access.
Logging
- Built-in Logging Provider - ASP.NET Core has built-in support for logging, and allows developers to easily leverage their preferred logging framework’s functionality as well. Implementing logging in your application requires a minimal amount of setup code. Once this is in place, logging can be added wherever it is desired.
- Serilog - like many other libraries for .NET, Serilog provides diagnostic logging to files, the console, and elsewhere. It is easy to set up, has a clean API, and is portable between recent .NET platforms.
- NLog - NLog is a free logging platform for .NET (works with Core)
- Sample Code using Built-In Provider
- Step by Step: Serilog with ASP.NET Core
Testing
- As far as I know, at this point Microsoft officially adopted xUnit. I do know they are still working on MSTest and there may be others, but I’m only really familiar with xUnit.
- xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework
- Getting Started with xUnit and ASP.NET Core
- Unit Testing with Dotnet test
Dependency Injection
- Here is another case, where MS has provided a built in Inversion of Control container, but you are free to use what you prefer.
- Built-In Provider - ASP.NET Core is designed from the ground up to support and leverage dependency injection. ASP.NET Core applications can leverage built-in framework services by having them injected into methods in the Startup class, and application services can be configured for injection as well. The default services container provided by ASP.NET Core provides a minimal feature set and is not intended to replace other containers.
- Autofac
- DryIoc - DryIoc is fast, small, full-featured IoC Container for .NET
- StructureMap - The package contains a single, public extension method, Populate. It’s used to populate a StructureMap container using a set of ServiceDescriptors or an
IServiceCollection
. - TinyIoC - IoC container built-in to NancyFX, not sure about standard .NET Core support.
- Sample Project using Built-In DI Provider
- Getting Started with Autofac and MVC6 + ASP.NET Core - May have slightly outdated bits
- Building an (awesome) API with NancyFX 2.0 + Dapper - Plus, dependency injection explained and everything you need to get up and running.
Miscellaneous Links
- .NET Blog - Your authoritative place for all .NET news and information
- .NET Foundation
- Awesome-Dot-Net - Comprehensive listing of .NET Core libraries
- Shawn Wildermuth’s Blog
- Julie Lerman’s Blog
Sample .NET Core Projects (Production Web Apps)
That’s all I got for now folks.
Tried to provide a relatively short list of very useful utilities that I have personally used and/or come across in my short time dealing with ASP.NET Core, Nancy and other related frameworks. Also, given the fact that the more comprehensive listing of resources isn’t going anywhere–this works well as a nice, curated list of libraries to use.
Eventually, there may be a part 2 and/or an update to this post where we add a ton of categories & links that we’ve come across since this time. There are several categories I left off just for the sake of brevity and also not wanting to provide descriptions for another 100 libraries.
Nonetheless, I hope this serves as a helpful resource! Please comment below if you wish or reach out to us directly if you have any questions or concerns.
Happy Coding!