Thanks to visit codestin.com
Credit goes to github.com

Skip to content

confusing: Users of the application have to separately install the .NET runtime. #41489

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโ€™ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Rick-Anderson opened this issue Jun 20, 2024 · 14 comments
Assignees
Labels
discussion Indicates issues that are being discussed dotnet-fundamentals/svc ๐Ÿ“Œ seQUESTered Identifies that an issue has been imported into Quest.

Comments

@Rick-Anderson
Copy link
Contributor

Rick-Anderson commented Jun 20, 2024

Type of issue

Other (describe below)

Description

Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. Users of the application have to separately install the .NET runtime.

Most of our customers are publishing to Azure (or another cloud) that contains the .NET runtime. We need better wording and should mention when you pub Azur App Svc framework-dependent, Azure has the runtime installed.

@adegeo @IEvangelist please suggest better wording

After we agree on the wording I'll do a "you" ectomy. It reads much better to say

Publishing the app as self-contained
than
Publishing your app as self-contained

The doc is shorter and more accurate. The zillions of consultants that read this don't need to roll their eyes by all the "your"'s.

Page URL

https://learn.microsoft.com/en-us/dotnet/core/deploying/#framework-dependent-deployments-fdd

Content source URL

https://github.com/dotnet/docs/blob/main/docs/core/deploying/index.md

Document Version Independent Id

89967250-8c3b-1999-078f-94ad7518ed49

Article author

@adegeo

Metadata

  • ID: 85eba478-0374-bb9b-8fa7-d5cf7d520603
  • Service: dotnet-fundamentals

Associated WorkItem - 340827

@adegeo
Copy link
Contributor

adegeo commented Jun 20, 2024

@Rick-Anderson So are you thinking something like

Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. Users of the application have to separately install the .NET runtime. If you plan to run the app in the cloud, make sure that the target framework is already available on the host.

Internal CoPilot suggest this tweak which I don't like:

Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. If you plan to run the app in Azure app services or similar environments and are using a released version of .NET, the .NET runtime is typically pre-installed.

That's false for AWS, I don't know about other clouds.

@Rick-Anderson
Copy link
Contributor Author

@Rick-Anderson So are you thinking something like

Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. Users of the application have to separately install the .NET runtime. If you plan to run the app in the cloud, make sure that the target framework is already available on the host.

That's too nebulous.
Publishing your app as framework-dependent produces an application that includes only your application itself and its dependencies. Users of the application have to separately install the .NET runtime. The bold might be technically right but it reads like on Azure with a released version of .NET, you have to separately install the .NET runtime.

We should feature Azure first as that's where are customers are going and where we want to encourage them to go. I wouldn't start out telling them you have to separately install the .NET runtime. I'd start out saying something like

Publishing your app as framework-dependent produces an application that includes only your application and its dependencies, excluding the .NET runtime. If you plan to run the app on Azure App Services and are using a released version of .NET, the .NET runtime is already installed on the service, so you don't need to install it separately.

AWS has eons of latency and they don't bundle the runtime for doggie years after the release. I'm not too worried about explaining AWS and other clouds.

@Rick-Anderson Rick-Anderson self-assigned this Jun 26, 2024
@adegeo
Copy link
Contributor

adegeo commented Jun 26, 2024

@Rick-Anderson I don't agree with that direction (but I'll welcome feedback from the product group). We have tons of customers doing desktop and console apps. This documentation is speaking to .NET in a generic sense from the product's point-of-view. If we want to improve the content with some sections talking about cloud stuff, I think that's fine, but I don't think re-tuning the entire doc to be cloud-first is the appropriate direction.

I would expect the user to actually research their cloud service and what it has prior to deploying something to.

Adding @richlander @KathleenDollard who helped drive this article.

@dotnet-bot dotnet-bot removed the โŒš Not Triaged Not triaged label Jun 26, 2024
@adegeo adegeo added the discussion Indicates issues that are being discussed label Jun 26, 2024
@Rick-Anderson
Copy link
Contributor Author

Rick-Anderson commented Jun 26, 2024

@Rick-Anderson but I don't think re-tuning the entire doc to be cloud-first is the appropriate direction.

I don't want to re-tune the entire doc, just this section, just the following minor change

Publishing your app as framework-dependent produces an application that includes only your application and its dependencies, excluding the .NET runtime. If you plan to run the app on Azure App Service and are using a released version of .NET, the .NET runtime is already installed on the service, so you don't need to install it separately.

I would expect the user to actually research their cloud service and what it has prior to deploying something to.

Why should they have to research and hunt around to find out you don't typically need to install .NET?

When you publish an ASP.NET Core app to Azure, a message is displayed "publishing framework-dependent" When the user googles "framework-dependent", this is what they get, the problematic text:

image

Publish framework-dependent

Apps published as framework-dependent are cross-platform and don't include the .NET runtime. The user of your app is required to install the .NET runtime.

The user of your app is required to install the .NET runtime.

That's so confusing to new users. Jane publishes a web app but the users of her app have to install the .NET runtime?

@richlander
Copy link
Member

I would avoid mentioning cloud or Azure at all in this little section. Application publishing is very generic.

How about this:

Publishing an application project as a framework-dependent application produces a set of binaries that includes app code and dependencies but not the .NET runtime. The app can be run in any environment or machine where the correct version of the .NET runtime has been installed.

@adegeo
Copy link
Contributor

adegeo commented Jun 26, 2024

I think that users would be better served with technology-specific publishing articles. This would help SEO much more than putting blurbs in the content that doesn't get picked up. For example things like:

  • How to publish an ASP.NET Core app
  • How to deploy an ASP.NET Core service on Azure
  • Publish a Windows Forms app
  • .NET Aspire deployments
  • Tutorial: Publish a .NET console application using Visual Studio Code

@richlander
Copy link
Member

richlander commented Jun 27, 2024

Now that I look at the article, not just the text here, I think the page needs to be re-written. It was written for a different time, back with .NET Core 1.0 and before we had a good cloud story.

You can see that in this image. The TOC says "deployment models" and the articles says "publishing overview". Those are not the same thing and are the crux of this discussion.

image

Ideally, the article would lead with a discussion of common deployment targets and how it is straightforward to produce apps and other artifacts (like containers) for them. And then the rest would be links to other content, along the lines of what @adegeo suggested. This approach would also enable us to talk about cloud services sooner, per what @Rick-Anderson suggested. We'd then move all of the framework-dependent and friends content to a different topic.

I've always found this topic to be an abrupt intro into the general topic of deployment. I've never found a good way of describing that.

I'm happy to help on this if you want to share a branch.

@baronfel

@adegeo
Copy link
Contributor

adegeo commented Jun 27, 2024

Great points everyone. Each article in this area has kind of evolved independently and there hasn't been an overall story. Perhaps we should start with planning a high level overview of what we want the area to describe.

@adegeo
Copy link
Contributor

adegeo commented Jun 27, 2024

Tagging @IEvangelist who has done some work on this article recently.

@IEvangelist
Copy link
Member

Tagging @IEvangelist who has done some work on this article recently.

Just read through all of the issue comments, I agree that this seems a bit dated, and each area has evolved independently. It makes sense to refocus on this area all up and plan on updates.

@richlander
Copy link
Member

I think to start, we can just move the current content to its own topic and write a new intro. That should help us determine what's actually needed. I can start that if folks want.

@adegeo adegeo assigned adegeo and unassigned Rick-Anderson Nov 6, 2024
@adegeo adegeo added the ๐Ÿ—บ๏ธ reQUEST Triggers an issue to be imported into Quest. label Nov 6, 2024
@adegeo
Copy link
Contributor

adegeo commented Nov 6, 2024

I'll take a look at redesigning and rewriting this content in Dec. Thanks everyone!

@sequestor sequestor bot added ๐Ÿ“Œ seQUESTered Identifies that an issue has been imported into Quest. and removed ๐Ÿ—บ๏ธ reQUEST Triggers an issue to be imported into Quest. labels Nov 7, 2024
@adegeo adegeo moved this from ๐Ÿ”– Ready to Slipped in dotnet/docs December 2024 Sprint Jan 6, 2025
@adegeo
Copy link
Contributor

adegeo commented Jan 6, 2025

Pushed to Jan due to priority.

@adegeo adegeo moved this from ๐Ÿ”– Ready to ๐Ÿ— In progress in dotnet/docs January 2025 sprint project Jan 27, 2025
@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Jan 27, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Jan 27, 2025
@adegeo adegeo moved this from ๐Ÿ— In progress to ๐Ÿ”– Ready in dotnet/docs January 2025 sprint project Jan 27, 2025
@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Jan 27, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Jan 27, 2025
@adegeo adegeo moved this from ๐Ÿ”– Ready to Slipped in dotnet/docs January 2025 sprint project Feb 3, 2025
@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Feb 3, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Feb 3, 2025
@adegeo adegeo moved this from ๐Ÿ”– Ready to Slipped in dotnet/docs February 2025 sprint project Mar 5, 2025
@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Mar 5, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Mar 5, 2025
@adegeo
Copy link
Contributor

adegeo commented Mar 5, 2025

Due to quite a few high priority items, I'm moving this out to April and increasing priority.

@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Mar 5, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Mar 5, 2025
@adegeo adegeo added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Apr 5, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label Apr 5, 2025
@adegeo adegeo moved this from ๐Ÿ”– Ready to Slipped in dotnet/docs April 2025 sprint project May 5, 2025
@dotnetrepoman dotnetrepoman bot added the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label May 5, 2025
@dotnet-policy-service dotnet-policy-service bot removed the ๐Ÿ—บ๏ธ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. label May 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion Indicates issues that are being discussed dotnet-fundamentals/svc ๐Ÿ“Œ seQUESTered Identifies that an issue has been imported into Quest.
Projects
Status: ๐Ÿ”– Ready
Development

No branches or pull requests

6 participants