dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.49k stars 10.04k forks source link

ASP.NET Core Web App template should not have 2 short names defined #33067

Open vlada-shubina opened 3 years ago

vlada-shubina commented 3 years ago

dotnet new CLI and template engine core is going to deprecate the support of having multiple short names for the template. We are cutting off from template.json schema shortly, but the template engine/dotnet new will still support it for a while (at least in .NET 6).

The main reason of this change is that short name is supposed to be unique, but names pool is limited and we don't want to encourage authors taking multiple names. @KathleenDollard can provide more details on it. We made a discovery and identified that only ASP.NET Core Web App is using this feature (https://github.com/dotnet/aspnetcore/blob/028470e31304cde30aebacd44be2abc34ee99f62/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json#L15-L18).

Please consider removing multiple names from ASP.NET Core Web App template.

Note that in case the multiple short names won't be removed since next .NET preview the template will be shown in the dotnet new list as following: https://github.com/dotnet/templating/pull/3191#issuecomment-845869363 as it has multiple short names defined. Previously only first name was shown in the list, which led to confusion as the user can instantiate the template with any of short names (i.e. dotnet new webapp and dotnet new razor are same commands), but due to razor was not listed it led to confusion why the template was instantiated successfully (see https://github.com/dotnet/templating/issues/3038 for more details).

I can make PR making the actual change, in case you confirm which one of short names you prefer to keep.

javiercn commented 3 years ago

@vlada-shubina thanks for bringing this up.

@vlada-shubina do we have any data on what percentage of users is using webapp vs razor to create templates?

@DamianEdwards @LadyNaggaga do you have any thoughts on this?

@DamianEdwards I believe you suggested the change in the template name, are you ok if we deprecate the old one at this point?

@danroth27 in case you have context.

We would retain webapp as the template over razor

vlada-shubina commented 3 years ago

@javiercn unfortunately we don't have such stats available, we don't capture short name usage. Worth to mention that razor is also mentioned in the list of templates here: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new-sdk-templates.

ghost commented 3 years ago

Thanks for contacting us.

We're moving this issue to the Next sprint planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

mkArtakMSFT commented 3 years ago

@vlada-shubina is this 6.0 change only or should we also worry about 3.1, 5.0 and 2.1 releases too?

danroth27 commented 3 years ago

I'm fine with this change. We use dotnet new webapp in the ASP.NET Core getting started template, so that's the one we need to keep.

DamianEdwards commented 3 years ago

The lack of data is unfortunate. Along with our own docs perhaps we should do some web searching to see if the older name shows up in other places we could notify.

vlada-shubina commented 3 years ago

@vlada-shubina is this 6.0 change only or should we also worry about 3.1, 5.0 and 2.1 releases too?

the change will be done in template engine / dotnet new CLI with .NET 6. We won't backport it to earlier releases. afaik, this template is released in several packages (package per tfm). If you still service previous tfm versions, please consider updating it there, otherwise it will be shown as here in .NET 6 dotnet new.

mkArtakMSFT commented 3 years ago

@vlada-shubina is this still the plan?

vlada-shubina commented 3 years ago

@vlada-shubina is this still the plan?

The change to show all short names was already introduced in Preview 6. So the web app template has 2 names shown.

danroth27 commented 3 years ago

Since having multiple short names will continue to be supported in .NET 6 let's hold off on removing the "razor" short name until vNext.

ghost commented 3 years ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

ghost commented 2 years ago

Thanks for contacting us.

We're moving this issue to the .NET 8 Planning milestone for future evaluation / consideration. We would like to keep this around to collect more feedback, which can help us with prioritizing this work. We will re-evaluate this issue, during our next planning meeting(s). If we later determine, that the issue has no community involvement, or it's very rare and low-impact issue, we will close it - so that the team can focus on more important and high impact issues. To learn more about what to expect next and how this issue will be handled you can read more about our triage process here.

vanusquarm commented 11 months ago

We should also allow multiple short names for custom templates to intuitively allow for template creation and flexibility and also auto failovers. For instance, having short names like ["webapi-rest", "rest", "rest-webapi"] all pointing to the same template allow one to guess template names quickly for projects.