Aspnetcore.docs: More information/guidance on how to pick a hosting model

Created on 5 Mar 2019  Â·  3Comments  Â·  Source: dotnet/AspNetCore.Docs

It's great that ASP.NET Core supports so many hosting models. However, after reading through the various docs I'm not finding the guidance I would expect around how to choose the right model for your situation.

For context, my team is looking to convert a large set of apps from legacy ASP.NET to ASP.NET Core. This is a huge shift, so to take it one step at a time we're going to keep targeting .NET Framework for the first part of the transition.

Here are some of the questions I still have after reading through the various models:

  • Which options work on Windows with an app targeting .NET framework? This is called out as not working for in-process IIS but otherwise it's largely ignored. As an example, HTTP.Sys doesn't mention this but I couldn't get the sample code to compile against .NET Framework.
  • What are the performance implications? The IIS hosting page has one vague line that makes me think out-of-process IIS hosting will be slow compared to in-process, but how does that compare to Windows Services or raw Kestrel or legacy ASP.NET?
  • Which options support MSDeploy / dotnet publish? For those that don't what is the recommended means of packaging/deploying code?
  • Which options support "hot" deployments (deploying new code without dropping existing requests)? This is something we're used to having from legacy ASP.NET. For those that don't, are there other workarounds?
  • What does the local dev experience look like with various options? We have a microservices architecture where devs frequently want to run a few different services locally, so using IIS Express and having to debug everything at once is not a compelling option (we use local IIS today).
  • There are a few different places that talk about the security benefits of using a web service in front of Kestrel, but then the Kestrel page seems to refute this by talking about how using it as an internet-facing server is supported. Is the real reason to use a reverse proxy just so that you can have port sharing and process management?

Overall, it would be nice if each one of these pages consistently started with the same set of information: supported OS's/platforms, pros, cons, deployment model, etc. before diving into the weeds of setup (or alternatively this info could be grouped together on one comparison page that the other pages link to).


Document Details

⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

P2 PU Source - Docs.ms doc-enhancement doc-idea

Most helpful comment

I don't think this should have been closed so abruptly. I don't think it is a general .Net question at all. Having just read through the articles op is referring to, there is zero guidance on what which of the many hosting and publishing scenarios are recommended for various situations. There must have been a large number of use cases and scenarios that the hosting models were developed against, and some of those really should be shared with the community; without that we're shooting blind, wasting time and perhaps making critical errors in deployment.

I have a specific, simple scenario and right now having read through the documentation I have no clue which model is appropriate. It's extremely frustrating.

All 3 comments

Hello! Thanks for contacting us. This sounds like a general question about using ASP.NET Core. While we try to look at and respond to all issues, for questions like this we recommend posting to a community support group like Stack Overflow with the asp.net-core tag.

I don't think this should have been closed so abruptly. I don't think it is a general .Net question at all. Having just read through the articles op is referring to, there is zero guidance on what which of the many hosting and publishing scenarios are recommended for various situations. There must have been a large number of use cases and scenarios that the hosting models were developed against, and some of those really should be shared with the community; without that we're shooting blind, wasting time and perhaps making critical errors in deployment.

I have a specific, simple scenario and right now having read through the documentation I have no clue which model is appropriate. It's extremely frustrating.

@Paperalien I agree. @Rick-Anderson I know there's a lot of content here but I really did try to keep this focused on the documentation and what I couldn't figure out from reading it.

I think it's really cool that MSFT now allows for filing issues against docs pages, but if anything non-trivial just gets closed then I'm not sure I see the point.

Was this page helpful?
0 / 5 - 0 ratings