programacion - Asp.Net Webforms contra Asp.Net WebSite(Razor) contra Asp.Net MVC
web forms c# (6)
- No hay "códigos subyacentes" en MVC, punto. Lo que tienes son controladores, que existen tanto para Razor como para otros.
- Son solo dos tipos diferentes de marcado. (Ver la siguiente respuesta)
- No está reemplazando a MVC, es solo otra opción. El marcado tradicional es muy detallado. La sintaxis Razor es sucinta.
Creo que Microsoft debe tener una razón para mejorar ASP.Net con la sintaxis de RAZOR.
En el diálogo Crear nuevo proyecto de sitio web de Visual Studio, hay otra opción para crear ASP.Net (Razor). La primera vez que me encontré con el término Razor fue cuando leí un libro sobre Asp.Net MVC, no sabía que existía para ASP.Net
Sé para qué sirve la sintaxis de Razor, presentada en MVC 3. Antes de hacer esta pregunta, decidí crear un proyecto de prueba para ASP.Net (Razor) y ver cómo es diferente de los formularios web ASP.Net normales y ASP.Net MVC. No descubrí carpetas Model / View / Controllers como las que tenemos en MVC.
Descubrí que la página maestra se especifica de manera diferente y que la página maestra es más limpia, no más <asp:ContentPlaceHolder />
Pero mis preguntas son:
-
.cshtml
que usa.cshtml
, ¿no hay más códigos detrás? - similitudes y diferencias entre ASP.Net (Razor) y ASP.Net MVC
- ¿Se puede extender para que funcione como ASP.Net MVC, por ejemplo, agregando Controlador? Ver / Modelo, Enrutamiento personalizado, supongo?
- ¿Por qué existe esto cuando tenemos ASP.Net MVC? ¿Esto no alentaría la renuencia a pasar a ASP.Net MVC?
- y ¿por qué elegir ASP.Net + Razor sobre ASP.Net MVC?
ACTUALIZACIÓN: Las páginas web ASP.NET en particular fueron diseñadas para facilitar que las personas que ya conocen HTML agreguen el procesamiento del servidor a sus páginas. Es una buena opción para estudiantes, aficionados, personas en general que son nuevos en la programación. También puede ser una buena opción para desarrolladores que tengan experiencia con tecnologías web que no sean de ASP.NET.
Actualización de páginas web ASP.NET Las páginas web ASP.NET se dirigen a desarrolladores que desean una historia simple de desarrollo web, en la línea de PHP. En el modelo de páginas web, crea páginas HTML y luego agrega código basado en el servidor a la página para controlar dinámicamente cómo se representa esa marca. Las páginas web están diseñadas específicamente para ser un marco ligero, y es el punto de entrada más fácil en ASP.NET para las personas que conocen HTML pero que quizás no tengan una amplia experiencia en programación, por ejemplo, estudiantes o aficionados. También es una buena manera para que los desarrolladores web que conocen PHP o marcos similares comiencen a usar ASP.NET.
Por favor, necesito tu opinión técnica. Gracias.
Bueno, tienes dos opciones:
Use WebForms: use los controles listos para usar del lado del servidor (marcado mixto y códigos comerciales) y use páginas maestras y máscaras, ¡pero se enfrenta a cierta complejidad relacionada con estas comodidades! :)
Use MVC: o use un modelo de diseño separado que le proporcione una base de código más organizada. primero puede hacer un prototipo de diseño, o primero hacer un código comercial, y luego desarrollar el otro aspecto, bastante fácil. incluso puede darle al diseñador más control sobre su trabajo, dándole la capacidad de hacer todo lo que quiera. -> esta es mi elección preferida porque me da más control sobre mi código, hace que mi código sea más conciso y limpio.
Si seleccionó el patrón MVC, entonces se enfrenta a otras opciones ... Ver Motores
- Old MVC View Engine: no está mal, pero es un poco detallado
- Razor Engine: hace lo mismo que el # 1, ¿por qué alguna vez no quieres usarlo? no reemplaza nada del patrón MVC. también es más conciso y fácil, tienes tanto el poder de MVC como la simplicidad del Razor Engine. Razor es una sintaxis de marcado inteligente, que te ayuda a mantenerte enfocado en tu negocio, en lugar de escribir "<%". utilizando la sintaxis de la afeitadora se le proporciona solo un beneficio, ¡la potencia de MVC está al alcance de su mano!
También puede escribir páginas web simples de asp.net con la sintaxis de afeitar (C # o VB). (al igual que php)
- Mi elección personal sería MVC + Razor, ¡la mejor combinación!
En el patrón MVC, M es el Modelo, C es el Controlador y V es la Vista. Entonces, naturalmente, en el modelo ASP.NET MVC, existe el concepto de un motor de visualización . Razor es simplemente uno de los motores de visión proporcionados. El otro, provisto de inmediato, es el "viejo" WebForms one (también puede escribir su propio motor de visualización). Así que Razor no tiene la noción de código subyacente que se mantiene dentro de los límites del motor de visualización de WebForms.
Entonces esto lo dice todo. Razor maneja la parte Vista de MVC (si elige usarla en lugar de la de WebForms). No tiene nada que ver con M o C.
Personalmente, definitivamente elegiría Razor View Engine si elige el patrón ASP.NET MVC, o uso WebForms sin MVC, ya que Razor ha sido diseñado para ser menos detallado, más simple de usar que Webforms. También es simplemente más reciente, así que intenta ser ... simplemente mejor :-)
Como nota al margen, el Razor Parser también se puede usar fuera de ASP.NET MVC. Está implementado en un ensamble que no depende de MVC ni de ensambles Web en absoluto. Consulte aquí para obtener más información al respecto: http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications
Esta es una gran pregunta. Primero, vamos a caracterizar a Razor.
Razor es un motor que analiza el código del lado del servidor y emite Html, al igual que los formularios web ASP.NET solo con una sintaxis diferente y posiblemente más racionalizada y concisa.
Razor v. Barra lateral de formularios web: en los formularios web ASP.NET debe identificar cuándo quiere comenzar a escribir el código del servidor con ''<%'' y luego, cuando haya terminado de escribir el código del servidor, necesita identificarlo con ''%>''. Me encantan los formularios web de ASP.NET, pero eso es torpe. Con Razor identifica cuándo quiere comenzar a escribir el código del servidor con ''@'' y luego la próxima vez que comienza a escribir una etiqueta de servidor (comenzando con ''<'') se da cuenta de que ya ha terminado con el código del servidor. Es una forma más concisa de escribir html entremezclada con algún código de servidor.
Las páginas web ASP.NET son un marco para crear aplicaciones web simples. ASP.NET MVC es un marco de trabajo para crear aplicaciones web con Web Forms o Razor engine utilizando el patrón Model-View-Controller (MVC). ASP.NET Web Forms es un marco para crear aplicaciones web utilizando el motor de renderizado Web Forms.
En última instancia, el objetivo es proporcionar opciones basadas en la sofisticación de la aplicación que se está creando. Comprender cada uno de ellos lo ayudará a tomar la decisión correcta para su aplicación.
Enlaces Adicionales:
No hay códigos subyacentes por defecto, pero puede hacer fácilmente que su archivo de afeitar herede de su clase personalizada:
@inherits Index
y entonces
public class Index : WebViewPage { }
(Más información aquí: http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html )
Esto es más como una forma anticuada de hacer web, más como un estilo de MP3. La diferencia con mvc es que mvc proporciona un marco enorme que admite aplicaciones del mundo real (usando enrutamiento, controlador y acciones, y no solo "código allí en el marcado").
Creo que existe para hacer cosas que son realmente simples, pero en realidad no sé ...
Finalmente, siempre elegiría asp.net mvc con navaja.
Espero eso ayude
Para salir de toda la confusión por webform, MVC, Razor, WebPages y mucho más por venir de Microsoft, prefiero html -> javascript -> webapi.