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.21k stars 9.95k forks source link

Modernize the Blazor Web template #53142

Open mkArtakMSFT opened 8 months ago

mkArtakMSFT commented 8 months ago

Includes accessibility testing (plus some feedback here: https://github.com/dotnet/AspNetCore-ManualTests/issues/2474)

ghost commented 8 months ago

Thanks for contacting us.

We're moving this issue to the .NET 9 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 8 months ago

As part of this, we will consider feedback provided https://github.com/dotnet/aspnetcore/issues/50927 and https://github.com/dotnet/aspnetcore/issues/51326

KennethHoff commented 8 months ago

I want one of two things personally:

  1. A template with no third party dependency whatsoever ( no jQuery, no bootstrap, no SCSS, no Tailwind, no nothing). Maybe some default styling - in actual CSS - but no library.

  2. A template that allows for selecting from a list. "I want a Blazor Template with TypeScript and Tailwind", "I want a Blazor template with TypeScript but no CSS build step", "I want a Blazor Template with no JS or CSS build step", and so on. Ideally it sets it up such that all modes have the same styling such that you can very easily compare the solutions.

The former is much easier for you guys, while the latter is a potentially better UX (assuming it automatically uses the latest versions of things and sets up the build step).

glen-84 commented 8 months ago

I prefer option 1.

Option 2 will always:

sultan commented 8 months ago

The project from template better not include copy pasted dependencies but instead a Libman nugget dependency + references to js deps within. I have my young students do projects from templates and have them replace links with bootstrap buttons and replace copy pasted libs with either datatables.js or tailwind.

sultan commented 8 months ago

As stated in issue #50121 : css classes are not well placed within the multiple css of the project. The behaviour is not consistent between desktop and mobile and this was easily corrected with the code I provided. I hope you can take all contributors code to the live templates.

EdCharbeneau commented 8 months ago

As stated in issue #50121 : css classes are not well placed within the multiple css of the project. The behaviour is not consistent between desktop and mobile and this was easily corrected with the code I provided. I hope you can take all contributors code to the live templates.

I fixed a lot of those issues in this PR: https://github.com/dotnet/aspnetcore/pull/51030

wolfgangschneider commented 7 months ago

I‘ll love option 1.

It took me hours to remove Bootstrap from the project.

update:

Content e.g Counter /Weather forecasts , optional Login should still be there.

webprofusion-chrisc commented 7 months ago

While a completely stripped down template may be desirable for new apps (realistically established app devs probably have a UI toolkit in mind) it's not the best for those exploring the framework and kicking the tires.

Perhaps the template could have default content (or even a small dynamic feed demonstrating an http get) that links to some useful stuff, e.g. MudBlazor is a phenomenal OSS toolkit, Microsofts own FluentUI etc. You could argue that creates favoritism but the point of a template is to get people started and set them up for success, and there are some things more likely to do that than others.

begerard commented 7 months ago

Having a demonstrative template with example for several use case (more than a simple Counter please!) will greatly help the adoption of the technology. And having it compatible with the different modes (SSR, Interactive, WASM) would help a lot to understand their differences.

Of course, no matter which toolkit you use for this you will be criticized. You have to live with it and not stop you from doing it.

Also, Microsoft have doing its dogfooding with some success for a long time so using FluentUI -even if it's probably not the best toolkit- would make sense (and may also help them).