Aspnetcore: Hoja de ruta de Blazor para .NET 5

Creado en 5 may. 2020  ·  38Comentarios  ·  Fuente: dotnet/aspnetcore

Este problema enumerará los grandes entregables que el equipo de Blazor está considerando para el lanzamiento de ASP.NET Core 5.0. Si bien esperamos resolver todos estos problemas, todavía quedan muchos desconocidos y las cosas cambiarán a medida que avancemos. Tenga en cuenta que estas son las principales áreas de inversión y, en paralelo, se trabajará en paralelo para incorporar muchas correcciones y mejoras más pequeñas, incluidas las contribuciones de la comunidad.

Vista previa 7

  • [x] [Mover Blazor a .NET 5] (https://github.com/dotnet/aspnetcore/issues/20519)

Vista previa 8

  • [x] [Aislamiento de CSS] (https://github.com/dotnet/aspnetcore/issues/10170)
  • [x] [Admite IAsyncDisposable] (https://github.com/dotnet/aspnetcore/issues/9960)
  • [x] [Carga diferida de áreas de aplicación] (https://github.com/dotnet/aspnetcore/issues/5465)
  • [x] [Agregar soporte de enfoque a BrowserRenderer] (https://github.com/dotnet/aspnetcore/issues/17472)
  • [x] [Almacenamiento protegido del navegador] (https://github.com/dotnet/aspnetcore/issues/18755)

RC1

  • [x] [Optimizaciones de rendimiento de Blazor] (https://github.com/dotnet/aspnetcore/issues/22432)
  • [x] [Virtualización] (https://github.com/dotnet/aspnetcore/issues/23092)
  • [x] [Cómo cargar archivos en la aplicación Blazor] (https://github.com/dotnet/aspnetcore/issues/12205)
  • [x] [Aislamiento de JS y JSObjectReference] (https://github.com/dotnet/aspnetcore/issues/23560)
  • [x] [Procesamiento previo de Blazor WebAssembly] (https://github.com/dotnet/aspnetcore/issues/24098)

    Cortes potenciales

  • [] [Arrastrar y soltar] (https://github.com/dotnet/aspnetcore/issues/18754)

  • [] [Agregar soporte de herramientas para los parámetros de componentes requeridos] (https://github.com/dotnet/aspnetcore/issues/25055)

  • [] [Mejoras en el rendimiento de la compilación para Blazor] (https://github.com/dotnet/aspnetcore/issues/22566)
  • [] [Parámetros obligatorios para los componentes de blazor (verificación del tiempo de ejecución)] (https://github.com/dotnet/aspnetcore/issues/11815)
  • [] [Permitir restricciones de tipo genérico] (https://github.com/dotnet/aspnetcore/issues/8433)
  • [] [Compilación de AoT] (https://github.com/dotnet/aspnetcore/issues/5466)
  • [] [Compatibilidad con SVG en Blazor] (https://github.com/dotnet/aspnetcore/issues/18271)
  • [] [Admite varios controladores de eventos para el mismo evento en el mismo elemento] (https://github.com/dotnet/aspnetcore/issues/14365)
  • [] [Restringir la jerarquía de componentes principales y secundarios en blazor] (https://github.com/dotnet/aspnetcore/issues/12302)
  • [] [Agregar capacidad para pasar @typeparam a componentes secundarios] (https://github.com/dotnet/aspnetcore/issues/7268)
Done area-blazor roadmap

Comentario más útil

@ pjmlp Tus críticas no carecen de mérito, pero vamos ... Blazor (y WebAssembly en general) es el desarrollo más sorprendente, emocionante e impresionante en tecnología web, ¡durante AL MENOS 20 años! Roth, Sanderson y sus amigos merecen nuestro elogio por hacer que el desarrollo web vuelva a ser divertido.

Y para mejorar mágicamente nuestra empleabilidad sin aprender nada nuevo ... ¡piénsalo por un segundo!

Y considere a nuestros colegas de .NET que nunca han hecho SPA (angular / react / vue): la pandilla de aspnet simplemente agitó su varita mágica y los convirtió de "desarrolladores de backend" a "desarrolladores de pila completa". Solo así ... magia.


Por cierto: se planea un aislamiento css muy feliz. Pero por favor (!) Agregue js aislamiento también. Los componentes de la interfaz de usuario que dependen de las bibliotecas js (por ejemplo, Bootstrap) deberían poder declarar / usar css Y js dentro del componente; de ​​lo contrario, el proyecto se vuelve difícil de mantener.

Todos 38 comentarios

El enlace a Required parameters to blazor components apunta a un problema incorrecto. Supongo que debería ser
https://github.com/dotnet/aspnetcore/issues/11815 ?

@JvanderStad ¡ Gracias por señalar eso! Debería arreglarse ahora.

¿Blazor (del lado del servidor) estará disponible en futuras implementaciones de Mono no solo para el tiempo de ejecución de net core? Por ejemplo, sería genial lanzar Blazor (y otras aplicaciones AspNetCore) en otras arquitecturas de CPU donde se admita mono.

¡Vamos equipo! ¡Buen trabajo ya, espero que mejore aún más con el tiempo!

¿Blazor (del lado del servidor) estará disponible en futuras implementaciones de Mono no solo para el tiempo de ejecución de net core?

@EntityFX No tenemos ningún plan para admitir Blazor Server, excepto en .NET Core. Blazor Server se basa en ASP.NET Core, que forma parte de .NET Core. Si hay arquitecturas en las que le gustaría que se admitiera .NET Core, avíseles abriendo un problema en el repositorio https://github.com/dotnet/runtime/issues .

¿Habrá compatibilidad con versiones anteriores para QBasic? 🤪

¡Vamos Blazor 5.0! 🚀

RIPjs

¿Habrá mejoras en la gestión de usuarios? Se siente un poco engorroso tener que crear y redirigir a los usuarios a páginas .cshtml para manejar el inicio / cierre de sesión y la creación de usuarios. Sería genial si todo esto pudiera administrarse en los componentes de Blazor.

@KrazyTako No tenemos planificado ningún trabajo inmediato en torno a la gestión de usuarios, pero hacemos todo lo posible para priorizar el trabajo en función de los comentarios de los usuarios y la comunidad, así que presente un problema por cualquier comentario que tenga en esta área y lo consideraremos.

Soy un gran admirador de Blazor WASM y recientemente implementé una aplicación empresarial con Blazor. Hubo una funcionalidad tremenda en las características basadas en componentes, uso completo del código C # y .Net, ¡una gran experiencia! Sin embargo, después de cargar la aplicación con datos, tengo algunos problemas, principalmente en el rendimiento; que ahora estoy dudando si continuar o esperar hasta un aumento de rendimiento en las próximas versiones:

  1. En entidades complejas, un cambio en una fila actual de la cuadrícula de datos tomará casi 5 segundos para volver a vincular los controles de formulario a la nueva fila. (Usé el patrón INotifyPropertyChanged en mis entidades), pero la Implementación Angular lo está haciendo instantáneamente.
  2. Todos los componentes de la cuadrícula de datos de terceros (al menos los que probé), son de alguna manera inmaduros y lentos en algunas características y muy lentos en la carga de datos y en la edición en la celda, que es una característica destacada en las aplicaciones empresariales; si hace clic en una celda, el cuadro de texto tarda aproximadamente 3-4 segundos en aparecer y prepararse para la entrada del usuario (Telerik, Syncfusion, ...).
  3. En última instancia, hice un punto de referencia, comparando la velocidad de Wasm Blazor y Angular para ejecutar una función simple que tiene una serie de cálculos (principalmente el valor creciente de una variable enlazada al formulario en algunos bucles). ¡Para Blazor Wasm tomó 2000 ms, mientras que para Angular fue solo 25 ms! Y ese fue un resultado trágico. ¡Más de 80 veces más lento! (Todas las pruebas se han vuelto a realizar con la versión oficial reciente de Blazor Webassembly)

Escuché que con la función AoT obtendremos solo una ganancia de rendimiento de 5 veces e incluso eso con la sobrecarga de aumento en el tamaño de la aplicación.

Así que, por favor, ayude y diga si es posible que tengamos buenas noticias en las próximas versiones de .Net 5 o 6 en estos temas.
Gracias

_Sin relación_

¿Habrá compatibilidad con versiones anteriores para QBasic? 🤪

¡Vamos Blazor 5.0! 🚀

RIPjs

Puede enviar una solicitud de extracción para https://github.com/microsoft/GW-BASIC

@Sherweeen Estamos trabajando en varias mejoras de rendimiento en tiempo de ejecución para Blazor WebAssembly en .NET 5. Blazor WebAssembly actualmente se ejecuta en un tiempo de ejecución basado en intérprete, que tiene limitaciones de rendimiento conocidas para las que estamos trabajando. También estamos trabajando con varios proveedores de componentes para ayudar a mejorar la eficiencia de sus implementaciones de componentes.

@ danroth27
Esperamos que se incluya el apoyo a la 5607

En la actualidad, una gran parte de los usuarios que planean adoptar el ensamblaje web blazor son transferidos desde los desarrolladores originales de WinForm, WPF o react, angular, Vue, y muchos de los productos desarrollados son aplicaciones empresariales. Si un conjunto de mecanismos de administración de usuarios de múltiples inquilinos, registro, inicio de sesión y otros mecanismos de administración de seguridad puede estar "listo para usar", se acelerará enormemente la aplicación de blazor webaeembly.

@ 199621616 ¿Te refieres a algo como Azure B2C?

https://docs.microsoft.com/en-us/azure/active-directory-b2c/overview

@stephenstroud

Si bien he podido lograr la autenticación de Azure para mi aplicación wasm, no está incluida en la plantilla de wasm como lo está para el servidor Blazor, tal vez esto es lo que se menciona, para facilitar la configuración de un nuevo proyecto.

@PylotLight La plantilla Blazor WebAssembly tiene soporte para usar Azure AD o Azure AD B2C , pero las opciones solo están disponibles desde la línea de comandos actualmente, no desde VS. VS debería habilitar estas opciones en una actualización futura.

@PylotLight Puede ver información sobre esto en el número 21671. El proceso actual para implementar algo como Azure AD B2C en Blazor Web Assembly es todo un proceso, por lo que es de esperar que las actualizaciones que mencionan mejoren este proceso.

@lzinga , @ danroth27 Gracias por la información pero no me molesta: P
Solo estaba tratando de ayudar a explicar lo que preguntaba el tipo de arriba. Por supuesto, sería genial ver esa funcionalidad incluida en las plantillas estándar =].

@ danroth27 Si bien entiendo el razonamiento detrás de la decisión de la hoja de ruta, tenga en cuenta que después de Silverlight, XNA, UWP (con su propio .NET Flavor), EF6, WCF, .NET Native, C ++ / CX vs C ++ / WinRT, y mucho De otros errores, Microsoft ha quemado mucho el amor de los desarrolladores, y esto influye en las decisiones que asesoramos a nuestros clientes con respecto a la adopción de tecnología.

@ pjmlp Tus críticas no carecen de mérito, pero vamos ... Blazor (y WebAssembly en general) es el desarrollo más sorprendente, emocionante e impresionante en tecnología web, ¡durante AL MENOS 20 años! Roth, Sanderson y sus amigos merecen nuestro elogio por hacer que el desarrollo web vuelva a ser divertido.

Y para mejorar mágicamente nuestra empleabilidad sin aprender nada nuevo ... ¡piénsalo por un segundo!

Y considere a nuestros colegas de .NET que nunca han hecho SPA (angular / react / vue): la pandilla de aspnet simplemente agitó su varita mágica y los convirtió de "desarrolladores de backend" a "desarrolladores de pila completa". Solo así ... magia.


Por cierto: se planea un aislamiento css muy feliz. Pero por favor (!) Agregue js aislamiento también. Los componentes de la interfaz de usuario que dependen de las bibliotecas js (por ejemplo, Bootstrap) deberían poder declarar / usar css Y js dentro del componente; de ​​lo contrario, el proyecto se vuelve difícil de mantener.

@ lonix1 mencioné que entiendo las razones detrás del cambio.

Sin embargo, también quería transmitir el mensaje de que no todos están contentos con los cambios en curso de los últimos 10 años, que soy plenamente consciente de que Roth, Sanderson y sus amigos no tienen la culpa, pero están en condiciones de transmitir el mensaje. up the chaing to Microsoft management.

La forma en que ocurrió la transición de .NET Core 1.0 => .NET Core 2.0, me llevó a un proyecto para un cliente que decidió migrar algunos servicios críticos de .NET a Java e implementarlos en Linux.

Quizás si estuviera más feliz, estaría dispuesto a invertir en .NET Core, ya que ya era bastante capaz para el conjunto deseado de características de servicio.

Así que mata al mensajero si quieres, pero eso no cambiará la percepción en algunos círculos.

el tejo del óxido es muy rápido
https://jetli.github.io/rust-yew-realworld-example-app/#/

¡Blazor es demasiado lento! demasiado lento ! demasiado lento !
Blazor necesita rendimiento !!!

@pjmlp Creo que ayudaría si pudiera aclarar a qué decisión en particular se está refiriendo. (¿Posponiendo AOT, tal vez?)

@chucker Todas las decisiones que han

Para los desarrolladores políglotas, .NET no es la única tecnología que buscamos, solo otra opción entre muchas, por lo que si la gerencia de Microsoft decide impulsar elementos de la hoja de ruta, como la compilación de AOT, a un futuro incierto, entonces debemos reevaluar nuestro negocio. decisiones en consecuencia, en caso de que el soporte de AOT WebAssembly nunca llegue, a pesar del increíble trabajo realizado por Daniel y el equipo.

Parece que WebAssembly AOT se pospone a la versión 6.0 (noviembre de 2021).
https://github.com/dotnet/runtime/issues/38367#issuecomment -651117373

@Sherweeen estamos iniciando una aplicación de tamaño medio, y estoy muy preocupado por el rendimiento que dijiste. ¿Su aplicación es realmente intensiva en datos? ¿O cuáles son los escenarios en los que está presente esta actuación y tal vez cómo evitar entrar en ese lugar? Agradezco cualquier consejo

¿El lado del servidor Blazor es parte de .Net 5 y está actualizado?

¿El lado del servidor Blazor es parte de .Net 5 y está actualizado?

@ mg1357 , sí, es parte de .NET 5 y está recibiendo todas las actualizaciones del modelo de componentes.

En una de las reuniones recientes de la comunidad, un pasante hizo una demostración de algunas capacidades de virtualización que, con suerte, iban a aterrizar en el candidato asp.net core 5.0 RC. ¿Sigue siendo el caso? ¿Existe algún problema que se pueda rastrear para esta funcionalidad?

Hola, vi que # 23560 estaba cerrado, ¿significa esto que estamos obteniendo aislamiento JS o es algo que no se cubrirá?

PD: No lo veo en la hoja de ruta, por eso pregunto

@barahonajm - Creo que es una apuesta segura que se ha completado y está entrando 5.0.0 RC-1, ya que el tema tiene tanto el Done etiqueta y 5.0.0-rc1 hito;)

@barahonajm Sí, el aislamiento de JS a través de los módulos ES6 estará disponible en la próxima versión de .NET 5 RC1: tada :

¿Alguna actualización sobre WASM AOT?

¿Existe una hoja de ruta para .NET 6? Si lo hay, por favor proporcione un enlace.

@ ivanivanyuk1993 Todavía no. Todavía estamos terminando .NET 5 y comenzando con la planificación de .NET 6.

¿Dónde puedo ver documentos hoy para:

  • Aislamiento CSS
  • Almacenamiento protegido del navegador

Los documentos oficiales de @VictorioBerra todavía son un trabajo en progreso, pero puede leer sobre estas nuevas características aquí: https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview- 8 /

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Pixel-Lord picture Pixel-Lord  ·  3Comentarios

aurokk picture aurokk  ·  3Comentarios

Kevenvz picture Kevenvz  ·  3Comentarios

FourLeafClover picture FourLeafClover  ·  3Comentarios

ipinak picture ipinak  ·  3Comentarios