Views: 6192
Number of votes: 17
Average rating:

ASP.NET Core beta program

TL;DR

By popular demand we are working hard to bring ASP.NET Core support to Episerver in 2020. The first official beta drop is planned for the beginning of the year, if you want to see how things are shaping up and help us build a stack that works for you, sign-up for the closed beta here.

Upgrade path

If you’ve been following the evolution of .NET Core you probably saw the announcement earlier in the year that Microsoft are consolidating all the different critters in the .NET zoo with .NET 5 which is really just the next version of .Net Core.

core-timeline.gif

It has been a confusing few years in the .Net world, but it seems clear now that .Net Core is the future of .NET which begs the question if / how / when to transition to .Net Core. If you already have a significant investment in ASP.NET 4 it probably makes sense to stay there, we will continue to support you, and add new features for the foreseeable future. If you are managing multiple sites, you can choose to host some on ASP.NET Core and some on ASP.NET 4 or move all your sites to ASP.NET Core.

In two minds

Instead of porting the entire platform to ASP.NET Core, we are building a small, fast delivery platform powered by a REST layer. The delivery platform is built to serve site visitors and depends on content from the current platform which serves editors (and ASP.NET 4 sites).

core-split-brain.gif

This style of decoupled architecture is old news, but until now this separation of concern only existed at the infrastructure level, with the Delivery Core we are making the cut deeper, and giving you a platform that is optimized for delivery from the ground up. We have to rethink a couple of things to make this work really well, but for current Episerver developers everything will feel very familiar; if you define your models in .Net classes, you still get nice strongly typed views, but also tag helpers, razor pages, blazor etc. etc. etc. For editors everything still works as normal, we are including support for previews, on-page-editing etc. across the two stacks.

Platform agnostic

Historically we have thought of .Net as the principal API layer for developers building sites on Episerver. With ASP.NET Core we are taking a more platform agnostic stance, by building out our existing REST APIs, effectively putting the new delivery platform on level with java, js python and other stacks.

core-rest-layer.gif

Mi casa es su casa

The “Delivery core” wants to be part of your preferred .Net stack, so we will be moving most of the “Delivery core” to github and invite you to contribute more directly in shaping that part of the platform. We still expect to distribute everything as semantically versioned nuget packages. If you want to get a foot in the door early, and help us shape the initial release you can sign-up for the closed beta here.

Dec 17, 2019

Jacob Pretorius
( By Jacob Pretorius, 12/17/2019 1:04:17 PM)

This is fantastic news! Excited to see where the communitry will take the "delivery core".

Jay Wilkinson
( By Jay Wilkinson, 12/17/2019 1:31:39 PM)

Exicting times, looking forward to having a play with this :) 

Thomas Schmidt
( By Thomas Schmidt, 12/20/2019 10:57:38 AM)

I have so many questions around this, maybe some of the is answered in the beta program, so I signed up!

You mention that the asp.net core part is powered by a "rest" like layer, that doesn't sound very performant to me. Making one or more http calls is way way slower than hitting a database, of course we have caching (and hopefully the distributed is used for the .net core part) that can help a bit, but still I have some concerns there with regards to performance. 

Having a delivery layer and an edit layer also sounds like we need to do the views twice, one for the actual site in .net core views and one for the edit site in classic mvc views so editors can do on-page-editing? what are the plans here?

If I was to choose a way to do this I would say that from version xx Episerver is pure asp.net core, but of course I don't have to worry about upgrade paths and all that boring stuff :)

Would love to see the output from .Net Portability Analyzer on the Episerver codebase!

Jay Wilkinson
( By Jay Wilkinson, 12/20/2019 12:34:56 PM)

I had similar thoughts to this too - Episerver's APIs are pretty well written and certainly follow .Net best practices to the full degree - DRY, SOLID, awesome MVC/codefirst integration and whatnot.

I guess duplicate views can be avoided if the content is delivered in a 'headless' manner from the application layer - however I agree that it would certainly raise question marks over performance, if for example endpoints need to be called when editing things in OnPageEdit mode in realtime. 

Erik Henningson
( By Erik Henningson, 12/20/2019 6:05:06 PM)

Although I haven't yet tested it myself, I have seen it in action. And duplicate views are not needed.

( 12/23/2019 12:03:45 PM)

I'm so excited by this announcement. I immediately signed up for the beta.

I'm going to hold back on most of my questions until I've had the opportunity to see this in action. But one immediate question is around Licensing and DXC.

Can you please confirm my assumption that this will require additional Web App to host the .Net Core App. Eg. One Web App for Episerver CMS and Delivery API + a new one to host the .Net Core Web App. Are there impacts licensing or DXC hosting?

.Net Core for Christmas everyone!!!

Thach
( By Thach, 1/20/2020 8:35:09 AM)

Hi Martin, I imagine the big picture is like this. All speak REST.

Isn't it?

I'm looking forward to the BETA.

Thach
( By Thach, 1/20/2020 8:38:17 AM)

MartinOttosen
( By MartinOttosen, 2/10/2020 3:15:41 PM)

Github repo is up, now we just need some legalese before we can start inviting people in :D

As has been remarked, there is no need for redundant model or view definitions.

@Thomas, look forward to discussing performance in more detail after we kick-off the beta.

Johan Viklund
( By Johan Viklund, 2/12/2020 12:15:40 PM)

@MartinOttosen Great news! Keep up the good work! :D

Mikael G
( By Mikael G, 6/1/2020 6:04:11 AM)

Any news on when the beta program might be launched? I'm itching to get my feet wet! :)

Please login to comment.