Skip to content
  • English Deutsch

benjamin-abt.com

Performance is a feature | Cloud - AI - Azure - .NET - Sustainability

  • Home
  • Blog
  • Portfolio
    • Overview
    • Workshops & Training
    • Publications
  • Contact
  • Home
  • Blog

What's new in .NET Core, ASP.NET Core and EF Core 2.1

What's new in .NET Core, ASP.NET Core and EF Core 2.1
February 3, 2018 4 min read BEN ABT
ASP.NET Core .NET Core. Entity Framework

This article was written in 2018. Versions, tools and recommendations may have changed since then. Newer posts are collected under ASP.NET Core.

Yesterday the Microsoft Teams have updated their roadmaps of .NET Core, ASP.NET Core and EF Core in focus of the next version 2.1:

.NET Core 2.1

Error output

Nothing to add to this tweet.

Compare error messages from #AspNetCore running on #dotnetcore 2.0 and #dotnetcore 2.1

You want to upgrade now don't you 😁 pic.twitter.com/4rNcPWusA1

— Ben Adams 🐝 (@ben_a_adams) February 2, 2018

They made the StackTrace great again!

System.IO.Pipelines

Microsoft have worked on this namespace almost two years. It’s based on the idea from GoLang’s Channels and is named as Pipelines in the .NET world.

This is for me the most important update for .NET Core 2.1. IT offers new possibilities in focus of performance for all .NET Core applications.

The dark side is: you can only use this in .NET Core projects. This namespace is not part of the .NET standard.

Windows Compatibility Pack

For easier migration of your code to .NET Core, Microsoft now offers a Windows Compatibility Pack. Even special Windows based namespaces like System.Drawing or the Windows Eventlog are available!

Versioning

With .NET Core 2.1 you will be able to run all minor versions of the same major version.

This means you can run .NET Core 2.0 application on .NET Core 2.1, 2.3 .. and all later runtime versions.

ASP.NET Core 2.1

ASP.NET Core 2.1 really get a lot of great new features!

Microsoft.AspNetCore.App

In the past we got Microsoft.AspNetCore.All, a meta package with all ASP.NET Core related NuGet packages as default dependencies.

Now we have Microsoft.AspNetCore.App which only have the smallest subset of dependencies. All templates will be updated to thse Microsoft.AspNetCore.App instead of Microsoft.AspNetCore.All.

Microsoft.AspNetCore.All will still be the supported for the lifecycle of ASP.NET Core 2.x.

I really like the thinking of the smallest subset and you have to think about of what you add. I tried to avoid the *.All package so far and I am pretty sure the *.App way will be better and easier.

ActionResult

In the past it was like a generic return of APIs.

Before:

C#
 1    [HttpGet("{id}")]
 2    public IActionResult GetPersonById(int id)
 3    {
 4		PersonModel person;
 5        if (!_personService.TryGetPersonById(id, out person))
 6        {
 7            return NotFound();
 8        }
 9
10		// Map always to an API model to not expose all properties
11		PersonApiModel apiModel = _apiModelMapper.MapFrom(person);
12
13        return Ok(apiModel);
14    }

With 2.1:

C#
 1    [HttpGet("{id}")]
 2    public ActionResult<PersonApiModel> GetPersonById(int id)
 3    {
 4		PersonModel person;
 5        if (!_personService.TryGetPersonById(id, out person))
 6        {
 7            return NotFound();
 8        }
 9
10		// Map always to an API model to not expose all properties
11		PersonApiModel apiModel = _apiModelMapper.MapFrom(person);
12
13        return Ok(apiModel);
14    }

SignalR

SignalR is now ported to ASP.NET Core and their is no more dependency to jQuery anymore. Microsoft also have some samples for you here.

General Data Protection Regulation (GDPR)

They made a lot of changes of the cookie middleware to create GDPR-compliant ASP.NET Core applications. For example you now can mark a cookie as essential or as non-essential if the user does not accept your cookies.

Also some changes to the ability to create own encryption providers for ASP.NET Core identity data will help you to be (more) GDPR-compliant. But you still have to implement your own UI-dialogs to ask the user for cookie acceptance.

HTTPS

HTTPS is now on by default to have a more secure web. Also HTTPS is required for GDPR-compliance.

You now will have a developer certificate with the .NET Core SDK and Kestrel will listen to HTTPS by default, too. All project templates will be updated with HTTPS and HTTPS direction.

Kestrel

Kestrel now supports Socket Transport and HTTPS is added. Also Microsoft has abstracted the underlying libuv stuff to offer transport extensibility for future.

WebHooks

Now a lot of WebHook receivers are ported to ASP.NET Core 2.1

EF Core 2.1

GroupBy Statements

For me the most existing No-Go of EF Core 2.1: all GroupBy statements were executed in memory. ¯_(ãƒ")_/¯ This made EF Core 2.0 for almost every real world application absolutely useless….

This is fixed in EF Core 2.1 and now the most cases are translated to SQL GROUP BY clauses.

Lazy Loading

I was never a fan (and maybe never will be) of lazy loading because it often was like a black box. But now it is also implemented in EF Core with 2.1. For a lot of devs very important. No idea why ;-)

Transactions

EF Core 2.1 now has the ability to work with System.Transactions. This makes it easier to develop same database implementations for .NET Framework and .NET Core projects.

Release dates

Microsoft announced all releases of 2.1 for the first half of 2018.

Microsoft Announcements:

I cherry-picked the most important new features in my eyes in this blog post. You still should take a look into all roadmap articles of Microsoft with all new features!

  • Microsoft .NET Blog: .NET Core 2.1 Roadmap
  • Microsoft WebDev Blog: ASP.NET Core 2.1 Roadmap
  • Microsoft .NET Blog: EF Core Roadmap 2.1

Related articles

Problem Details in ASP.NET Core and .NET 11

Oct 5, 2026 - 12 min read

Problem Details in ASP.NET Core and .NET 11

builder.Services.AddProblemDetails() registers infrastructure. It does not create an error contract. An ASP.NET Core request can fail during …

Resilience in .NET with Microsoft.Extensions.Resilience

Sep 21, 2026 - 11 min read

Resilience in .NET with Microsoft.Extensions.Resilience

Retries are the most visible resilience strategy and the easiest one to misuse. Repeating a failing call can recover from a short network …

What Matters in ASP.NET Core 11

Sep 14, 2026 - 10 min read

What Matters in ASP.NET Core 11

ASP.NET Core 11 has no single feature that fundamentally changes how web applications are built. That is not a criticism. Mature frameworks …


BEN ABT

BEN ABT

Ben is Chief Engineering Officer and Principal Software Engineer at Medialesson.de, with a strong focus on .NET and Microsoft Azure. In his professional role, he designs and builds highly scalable platforms for hybrid and cloud-based scenarios. He also advises companies and C-levels on migrating to the sovereign cloud.

He runs myCSharp.de, the largest and most active German-speaking C# community forum, actively contributes to both his own and external open-source projects and regularly shares his knowledge through his blog, at community events, conferences and as a writer for technical magazines.

Let's Work Together

Looking for an experienced Platform Architect or Engineer for your next project? Whether it's cloud migration, platform modernization or building new solutions from scratch - I'm here to help you succeed.

New Platforms

Modernization

Training & Consulting

Contact Me
X Facebook LinkedIn WhatsApp
Back Next Blog Post

Open for work!

Contact Me
BEN ABT BEN ABT Software Engineer · Microsoft MVP Passionate about .NET, Azure, performance optimization and sustainable software engineering.

Medialesson GmbH Logo

Microsoft MVP Logo

Recent posts

View all
Stop Using nginx as Your Default Static File Server in Docker

Stop Using nginx as Your Default Static File Server in …

Oct 24, 2026
Containerizing .NET in 2026 Without a Dockerfile

Containerizing .NET in 2026 Without a Dockerfile

Oct 20, 2026
Problem Details in ASP.NET Core and .NET 11

Problem Details in ASP.NET Core and .NET 11

Oct 5, 2026
Resilience in .NET with Microsoft.Extensions.Resilience

Resilience in .NET with Microsoft.Extensions.Resilience

Sep 21, 2026
What Matters in ASP.NET Core 11

What Matters in ASP.NET Core 11

Sep 14, 2026

Tags

.NET (192) Csharp (96) ASP.NET Core (48) Azure (41) DevOps (17) Docker (14) Microsoft (14) EF Core (11) Microsoft MVP (11) AI (10) GitHub (10) GitHub Copilot (10) ASP.NET (9) Security (9) Synology (9) Architecture (8) Raspberry (8) Azure Functions (7) Cloudflare (7) Bicep (6)
benjamin-abt.com

About BEN

Benjamin Abt is a Software Engineer, Platform Architect and Microsoft MVP specializing in .NET, Azure, cloud architecture, performance optimization and sustainable software development.

Connect

  • Follow me on GitHub
  • Follow me on LinkedIn
  • Follow me on Mastodon
  • Microsoft MVP profile
  • Follow SchwabenCode on GitHub
  • Follow me on X

Quick Links

  • Portfolio
  • Blog
  • Workshops & Training
  • Publications
  • Get in Touch
  • Sitemap
Open for Work

© Copyright Benjamin Abt & SchwabenCode | 2011 - 2026

Content licensed under CC BY 4.0 unless otherwise noted.

  • Impressum
  • Privacy
  • Contact