Skip to content
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

Rename the "ASP.NET Core Web App" template to "ASP.NET Core Razor Pages App" #50999

Closed
danroth27 opened this issue Sep 28, 2023 · 14 comments
Closed
Assignees
Labels
area-ui-rendering Includes: MVC Views/Pages, Razor Views/Pages feature-templates task
Milestone

Comments

@danroth27
Copy link
Member

In .NET 8 we are positioning Blazor as our recommended way to get started with building web UI with .NET and ASP.NET Core. Previously we would direct new users to use Razor Pages. To make it clear that the Razor Pages template was the preferred starting point, we game the Razor Pages template a very generic name: "ASP.NET Core Web App". Now that Razor Pages is no longer the preferred starting point, we should rename the template to be more specific: "ASP.NET Core Razor Pages App"

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-mvc Includes: MVC, Actions and Controllers, Localization, CORS, most templates label Sep 28, 2023
@danroth27
Copy link
Member Author

@DamianEdwards

@DamianEdwards
Copy link
Member

Perhaps better to keep with the naming scheme we used for MVC when we added Razor Pages, do we'd end up with:

  • ASP.NET Core Web App
    This uses Blazor
  • ASP.NET Core Web App (Razor Pages)
    This uses Razor Pages
  • ASP.NET Core Web App (Model-View-Controller)
    This uses controllers and views

Of course the challenge then is where does "Blazor App" fit in. Perhaps it's duplicated so that folks can just get to it either way.

@danroth27
Copy link
Member Author

Yeah, this raises an interesting set of issues:

  • We want to make it clear that the recommended way to build an ASP.NET Core Web App is with Blazor
  • We want to make it clear that Blazor app is an ASP.NET Core app
  • We don't want the template name to be long and cumbersome

I don't love just taking over the ASP.NET Core Web App name with Blazor because then it's not clear that the template uses Blazor. And having two entries for the same template feels weird 😆

@DamianEdwards
Copy link
Member

Options:

  • ASP.NET Core Web App (Blazor)
  • ASP.NET Core Blazor Web App
  • Blazor Web App (ASP.NET Core)
  • Blazor App (ASP.NET Core)

@Alerinos
Copy link

How about something like this?

  • ASP.NET Blazor Web App
  • ASP.NET Blazor WASM App
  • ASP.NET Blazor SSR App (In theory, the SSR has been replaced by the Web)
  • ASP.NET Razor App
  • ASP.NET MVC App

Everyone knows what Razor, Blazor and MVC are, I think that's the easiest way to call templates.
Server side has been replaced by Web but WASM will still be used separately even though it is already Web.

@danroth27
Copy link
Member Author

@Alerinos Thanks for the suggestions!

We need to keep the "Core" in "ASP.NET Core" because we want to avoid confusion with ASP.NET for .NET Framework.

We also don't need a separate Blazor SSR template, because the new Blazor Web App template already has an option for that: dotnet new blazor -int None.

We also don't want to assume that everyone knows what these technologies are because we want to be approachable by new users who've potentially never used .NET before.

Lastly, we typically also prefer WebAssembly to WASM in our naming because that's the name from the spec.

I'm currently leaning towards this:

  • Blazor Web App
  • ASP.NET Core Web App (Razor Pages)
  • ASP.NET Core Web App (Model-View-Controller)

I know "Blazor Web App" doesn't make it clear that it's also an ASP.NET Core app, but I prefer the shorter name and we can clarify the ASP.NET Core relationship in the description. Thoughts?

@gragra33
Copy link

gragra33 commented Sep 28, 2023

It makes sense to stick with

  • ASP.NET Core Web App (Razor Pages)
  • ASP.NET Core Web App (Model-View-Controller)
    You also currently have, which I believe will still be supported:
  • Blazor Server App
  • Blazor WebAssembly App
  • Blazor Server App Empty
  • Blazor WebAssembly App Empty

The new "Blazor Web App" is a merge of both ASP.NET Core Web App (Razor) and multiple flavours of Blazor. So would it not make sense to use: ASP.NET Core Web App (Blazor)?

The other option is for just a single ASP.NET Core Web App and has a selector for:

  • Blazor
  • Razor
  • Model-View-Controller
  • Web API
    Then each has its own fine-tuning of options for creating the solution.

Lastly, there is one more type overlooked - ASP.NET Web App (Minimal API)...

The last combined template will help reduce the total number of template types that we have to choose from, currently, 9+ template types with .Net 7.0 down to a single one. 11 template types if you include React & Angular.

@DamianEdwards
Copy link
Member

@gragra33 we've been hesitant to restructure the templates the way you suggest with options that ask the user to choose what stack they want, as it can also impact the CLI experience (CLI and VS share templates).

That said, .NET 9 would be a reasonable time to revisit this and see if some template consolidation could result in a reasonable experience that satisfies most scenarios (new users, existing users, VS, CLI, etc.).

@DamianEdwards
Copy link
Member

@danroth27

I know "Blazor Web App" doesn't make it clear that it's also an ASP.NET Core app, but I prefer the shorter name and we can clarify the ASP.NET Core relationship in the description. Thoughts?

The concern I have with this suggestion is that existing users will be more likely to just select "ASP.NET Core App (Razor Pages)" rather than gravitating towards our intended "new default" of Blazor.

@gragra33
Copy link

gragra33 commented Sep 29, 2023

@DamianEdwards I hear what you are saying however there is [already] a large number of templates to choose from and feel that consolidation of some is overdue.

If not consolidation, then suggest keeping the same naming convention to lessen the overload of everything new. ASP.NET Core Web App (Blazor) fits but I also understand from a marketing perspective that there is a need to set the new default.

You still have the question of how React and Angular fit into this...

@filipoff2
Copy link

ASP.NET 2024 is maximum business can understand.
Although 2025 look more cool, pushing names as Silverlight, XAMARIN, Windows Phone/mobile confuzed, MAUI, even Blazor was hard and too abstract thing.

@csharpfritz
Copy link
Contributor

I have a concern with changing the framework used in the "Web App" template breaks all documentation and tutorials that have been built on previous versions of ASP.NET Core. That content expects Razor Pages and would be somewhat forward-compatible without this change

@jamesmontemagno
Copy link
Member

So many choices! Less is more, it should be really clear.

I like what Damian had, but if you want could tweak it to add (Blazor) to the first so it is clear. And while it would break how docs expect it, it would still be more obvious.

ASP.NET Core Web App (Blazor)
ASP.NET Core Web App (Razor Pages)
ASP.NET Core Web App (Model-View-Controller)

They should be organized and numbered correct as well.

Although if I am a new developer I still may be confused. With Xamarin.Forms and now .NET MAUI it is pretty simple with 1 template and just does it. With Xamarin.Forms you had different setup styles with or without shell, but just 1 template that asked you want you wanted. I don't think this is possible based on how the templates exist today.

@Aquaritek
Copy link

Aquaritek commented Sep 29, 2023

A community perspective:

Largely outside this repository Microsoft is regarded as subpar at naming conventions and choices. You will find this idea ubiquitous across almost all forms of media when a name change occurs or is proposed. That being said the larger community rarely pays close enough attention to get involved - where they could have had input.

Since Blazor is now just that "Blazor" but existing legacy web application templates are adorned with ASP.NET Core X - I would argue the convention already exists and should be followed. So, what @jamesmontemagno mentioned is clearly the logical preference and what I believe should be considered here overall.

I would argue that "Model-View-Controller" could for conciseness be changed to "Razor MVC" though.

With peace, Aqua.

@mkArtakMSFT mkArtakMSFT added area-ui-rendering Includes: MVC Views/Pages, Razor Views/Pages feature-templates and removed area-mvc Includes: MVC, Actions and Controllers, Localization, CORS, most templates labels Oct 4, 2023
@mkArtakMSFT mkArtakMSFT added bug This issue describes a behavior which is not expected - a bug. task and removed bug This issue describes a behavior which is not expected - a bug. labels Oct 4, 2023
@mkArtakMSFT mkArtakMSFT added this to the 8.0.0 milestone Oct 4, 2023
mkArtakMSFT pushed a commit that referenced this issue Oct 6, 2023
…#51157)

# Rename "ASP.NET Core Web App" to "ASP.NET Core Web App (Razor Pages)"


![web-app-razor-pages](https://github.com/dotnet/aspnetcore/assets/114938397/3700cd64-cc7d-4817-87b3-17e38a83eb5e)
 

## Description

Renamed "ASP.NET Core Web App" template to "ASP.NET Core Web App (Razor Pages)"

Fixes #50999

## Customer Impact

The name for this template would be "ASP.NET Core Web App (Razor Pages)" in Visual Studio instead of "ASP.NET Core Web App".

## Regression?

- [ ] Yes
- [x] No

[If yes, specify the version the behavior has regressed from]

## Risk

- [ ] High
- [ ] Medium
- [x] Low

[Justify the selection above]

## Verification

- [x] Manual (required)
- [ ] Automated

## Packaging changes reviewed?

- [ ] Yes
- [ ] No
- [x] N/A

----

## When servicing release/2.1

- [ ] Make necessary changes in eng/PatchConfig.props
@dotnet dotnet locked as resolved and limited conversation to collaborators Nov 8, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-ui-rendering Includes: MVC Views/Pages, Razor Views/Pages feature-templates task
Projects
None yet
Development

No branches or pull requests

10 participants