MartinOttosen
Dec 17, 2019
  16985
(19 votes)

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

Comments

Jacob Pretorius
Jacob Pretorius Dec 17, 2019 01:04 PM

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

James Wilkinson
James Wilkinson Dec 17, 2019 01:31 PM

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

Thomas Schmidt
Thomas Schmidt Dec 20, 2019 10:57 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!

James Wilkinson
James Wilkinson Dec 20, 2019 12:34 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
Erik Henningson Dec 20, 2019 06:05 PM

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

Darren Stahlhut
Darren Stahlhut Dec 23, 2019 12:03 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
Thach Jan 20, 2020 08:35 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
Thach Jan 20, 2020 08:38 AM

MartinOttosen
MartinOttosen Feb 10, 2020 03:15 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
Johan Viklund Feb 12, 2020 12:15 PM

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

Mikael G
Mikael G Jun 1, 2020 06:04 AM

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

MartinOttosen
MartinOttosen Jun 2, 2020 11:54 AM

Hi Mikael,

I think we will open the gates for the next wave end of June / start July.

Eric
Eric Jun 15, 2020 02:14 PM

From what I undertsand for the LiveStream from June 15, 2020. No date for a production release and a client DEV release in July 2020?

MartinOttosen
MartinOttosen Jun 16, 2020 07:04 AM

The first dev release is out now, shared with the EMVP group. We will add another wave in July based on people that signed up for the beta here. Production release will be after the summer. On a related note, we are continuously releasing improvements to REST APIs and other existing pieces being done as part of the ASP.NET Core undertaking, e.g. Content Delivery API 2.11 will include URL-based projection, more expand controls and some other refinements. Evolution FTW :)

Jacob Pretorius
Jacob Pretorius Jun 16, 2020 08:00 AM

First time I've seen that sign-up link, thanks for sharing.

Eric
Eric Nov 11, 2020 08:30 PM

Any updates on a release date?

MartinOttosen
MartinOttosen Nov 12, 2020 11:47 AM

HI Eric,

Please join the closed beta for more details and timelines. FYI you are more likely to be included if your world email is from a known partner / customer domain.

Eric
Eric Feb 3, 2021 06:40 PM

We tried joining the beta but never heard back. We are an EPiServer customer.

MartinOttosen
MartinOttosen Feb 4, 2021 08:17 AM

Hi Eric,
Please see separate email.

Eric
Eric Jun 17, 2021 07:00 PM

Any update on the Core release for production?

MartinOttosen
MartinOttosen Jul 2, 2021 07:48 AM

Hi folks,
In case you missed it, we've now terminated the closed beta and moved .Net 5 support (AKA .Net Core) to public preview. Check out the post here or head straight to the preview repo here.

Please login to comment.
Latest blogs
Recraft's image generation with AI-Assistant for Optimizely

Recraft V3 model is outperforming all other models in the image generation space and we are happy to share: Recraft's new model is now available fo...

Luc Gosso (MVP) | Nov 8, 2024 | Syndicated blog

ExcludeDeleted(): Prevent Trashed Content from Appearing in Search Results

Introduction In Optimizely CMS, content that is moved to the trash can still appear in search results if it’s not explicitly excluded using the...

Ashish Rasal | Nov 7, 2024

CMS + CMP + Graph integration

We have just released a new package https://nuget.optimizely.com/package/?id=EPiServer.Cms.WelcomeIntegration.Graph which changes the way CMS fetch...

Bartosz Sekula | Nov 5, 2024

Block type selection doesn't work

Imagine you're trying to create a new block in a specific content area. You click the "Create" link, expecting to see a CMS modal with a list of...

Damian Smutek | Nov 4, 2024 | Syndicated blog