¿Cuál es la diferencia entre los archivos "razor" y "cshtml" en ASP.NET? ¿Deberíamos usar el archivo ".razor" en la aplicación "razor-components" en lugar de ".cshtml"?
Depende de a qué ASP.NET te refieres...
Por ejemplo, en términos de Blazor:
A partir de .NET Core 3.0 Preview 4 SDK (3.0.100-preview4-011223) se observa:
Por lo tanto, si está creando una aplicación web Blazor con .NET Core 3.0 Preview 4 y versiones posteriores, debe usar .razor en lugar de .cshtml.
Fuente: https://devblogs.microsoft.com/aspnet/blazor-now-in-official-preview/
Razor es una sintaxis de marcado que le permite incrustar código basado en servidor en páginas web usando C# y cshtml es la extensión del archivo razor Cshtml = cs (C#) + HTML
Los componentes normalmente se implementan en archivos de componentes de Razor (.razor) mediante una combinación de marcado C# y HTML (los archivos .cshtml se usan en las aplicaciones de Blazor).
.cshtml y .razor es lo mismo que usamos el archivo .cshtml en la aplicación blazor y .razor en los componentes de razor
razor lo ayuda a incrustar código del servidor como código C# en páginas web. cshtml es solo una extensión de archivo. El motor de vista de maquinilla de afeitar se utiliza para convertir páginas de maquinilla de afeitar (.cshtml) a html.
Los archivos .cshtml son páginas de afeitar o vistas MVC, no contienen ningún código del lado del cliente escrito en C#. Si quieres hacerlo, debes usar JavaScript. Sin embargo, un archivo .razor, también conocido como componente Razor, puede tener C# escrito y ejecutarse en el navegador del cliente.
Usado en sus archivos .cshtml estándar e implementado así:
<BlazorSample.Components.MyComponent />Estas nuevas extensiones se utilizan para Razor Components.
https://docs.microsoft.com/en-us/aspnet/core/blazor/components/?view=aspnetcore-3.1
Puede que me equivoque, pero el archivo .cshtml creado al agregar una nueva página de Razor es una nueva página html, y el archivo .razor creado al agregar un nuevo componente de Razor es un componente que encajará en una página de Razor.
Dado que Blazor puede ejecutar C# en el lado del cliente, ahora hay 2 lugares (cliente y servidor) donde se puede ejecutar el código Razor. Entonces , el lado del cliente tiene la extensión ".razor" y el lado del servidor: ".cshtml"
Creé una nueva aplicación WebAssemblyHosted y descubrí que: