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.18k stars 9.93k forks source link

Rename Blazor project templates #10348

Closed mkArtakMSFT closed 5 years ago

mkArtakMSFT commented 5 years ago

In-box is called "Blazor Server App" / blazorserver OOB is called "Blazor WebAssembly App" / blazorwasm With an option to add a hosting ASP.NET Core project

Mike-E-angelo commented 5 years ago

I would like to recommend having "WebSockets" prominently displayed somewhere for server-side mode, if not in the name itself, then in the description (if it's not already). Having this in the name would certainly help alleviate confusion with the different modes and provide a clearer description of how the state is updated in the application. At least, it would for me. 😁

It would also be great to see this used in general terminology and documentation as well, as personally, I think it's one of the coolest features to hit the .NET space in quite a while. Yes, cooler than WebAssembly as it allows you to take a more traditional (and safer?) route for those who are more risk-averse in their development strategies.

isaacrlevin commented 5 years ago

@danroth27 @DamianEdwards @mkArtakMSFT Is this official? I will take this one but want to confirm these are the names. Should we update the description in VS as well?

danroth27 commented 5 years ago

@isaac2004 Yes, these are the final template names. If you'd like to help out with the updates, that would be great, although it's a bit more work than just changing the names.

ASP.NET Core hosted parameter

We need to decide on the parameter name for the Blazor WebAssembly App template to indicate that it should be ASP.NET Core hosted. I propose we go with --hosted. It should be false by default.

Blazor Server App description

I'm also in favor of updating the description of the Blazor Server App template. Here's the current description:

A project template for creating a Blazor application that runs server-side inside an ASP.NET Core application. This template can be used for web applications with rich dynamic user interfaces (UIs).

Proposed new description:

A project template for creating a Blazor server app that runs server-side inside an ASP.NET Core app and handles user interactions over a SignalR connection. This template can be used for web apps with rich dynamic user interfaces (UIs).

Blazor WebAssembly App desription

We also need a new description for the Blazor WebAssembly App template that combines the descriptions of the existing templates. Here are the current template descriptions

Current blazor description:

A project template for creating a Blazor application that runs on WebAssembly and is hosted on an ASP.NET Core server.

Current blazorhosted description:

A project template for creating a Blazor application that runs on WebAssembly and is hosted on an ASP.NET Core server.

Proposed new blazorwasm description;

A project template for creating a Blazor app that runs on WebAssembly. This template can be used for web apps with rich dynamic user interfaces (UIs).

Updated template and group identities

We need to decide what the group identity of the Blazor WebAssembly App template should be. We might as well also cleanup the identities for the Blazor Server App as well while we're at it:

blazorserver group id: Microsoft.Web.RazorComponents -> Microsoft.Web.BlazorServer blazorserver id: Microsoft.Web.RazorComponents.CSharp.3.0 -> Microsoft.Web.BlazorServer.CSharp.3.0 blazorwasm group id: Microsoft.Web.Blazor.Wasm blazorwasm id: Microsoft.Web.Blazor.Wasm.CSharp

Cleanup "RazorComponents" source

We should probably also do the work to clean up the source to no longer refer to the old RazorComponents name.

Move RazorComponentsWeb-CSharp source to -> BlazorServerWeb blazor server sourceName: RazorComponentsWeb-CSharp -> BlazorServerWeb-CSharp Do a pass to make sure RazorComponents doesn't appear anywhere else that it shouldn't. @phenning

isaacrlevin commented 5 years ago

@danroth27 I assumed it was more work :). I can still start on it.

phenning commented 5 years ago

@danroth27 I'll work on getting the resource strings updated in the WebTools resx so we can get updated localization to push back into the aspnet repo. I also just noticed that we never had the resources for the Blazor WebAssembly template, so the name and description were never localized.

danroth27 commented 5 years ago

I also just noticed that we never had the resources for the Blazor WebAssembly template, so the name and description were never localized.

@phenning That's probably because the Blazor WebAssembly templates don't ship in VS yet - they ship out of band in a VSIX.

phenning commented 5 years ago

@danroth27 It did have resource ids in it that were unused though, so we could have added the resources in VS earlier. In any event, I'll add it now so we can get some seed localization for it.

phenning commented 5 years ago

@danroth27 regarding the Blazor Web Assembly template, did you want to expose the hosted option in Visual Studio via the new options panel features we are adding in 16.3? I can give guidance on the required authoring to the vs-2017.3.host.json file if you want to do that.

danroth27 commented 5 years ago

@phenning Yes! Your guidance would be much appreciated.

isaacrlevin commented 5 years ago

@phenning I am working on this issue now. When I am at the point to bring in the VS stuff, I will reach out.

isaacrlevin commented 5 years ago

@danroth27, this is blocked because of a defect in templating.

https://github.com/dotnet/templating/issues/1942

According to that defect and prelim research, you cannot exclude folders that are tied to the project/folder rename process. In order to complete the template work, I need for that exclude to hide project and folders based on a new option --hosted.

danroth27 commented 5 years ago

@isaac2004 I discussed this with @seancpeters and for now, let's rename the folders for the ASP.NET Core Hosted template to always be "Client", "Server", and "Shared" without any other prefix.

/cc @vijayrkn

isaacrlevin commented 5 years ago

Do you need an ETA of when this needs to be done? I assume you want it in 3.0 RC?

danroth27 commented 5 years ago

We need to get this done in the next few weeks for 3.0 Preview 8.

isaacrlevin commented 5 years ago

@danroth27 I should have it done early this week

isaacrlevin commented 5 years ago

@ryanbrandenburg this can be closed right?