2012-07-08 34 views
22

Creo que Microsoft debe tener una razón para mejorar ASP.Net con la sintaxis de RAZOR.Webforms de Asp.Net V Asp.Net WebSite (Razor) Vs. Asp.Net MVC

En el Create New Website Project cuadro de diálogo de Visual Studio, existe 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, que no sabía que existe para ASP.Net

enter image description here

sé lo que es la sintaxis Razor for, introducido 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 normales de ASP.Net y ASP.Net MVC. No descubrí carpetas Model/View/Controllers como las que tenemos en MVC.

descubrí que la página principal se especifica de otra manera y la página Master es más limpio, no más <asp:ContentPlaceHolder />

Pero mis preguntas son:

  • noto que utiliza .cshtml, ¿no hay más codebehinds?
  • similitudes y diferencias entre ASP.Net (Razor) y ASP.Net MVC
  • Se puede ampliar para que funcione como ASP.Net MVC, p. agregando Controlador? Vista/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:ASP.NET Web Pages in particular was designed para hacer más fácil para personas que ya conocen HTML para agregar el procesamiento de servidor para sus páginas. Es una buena opción para estudiantes, aficionados, personas en general que son nuevos para la programación. También puede ser una buena opción para los desarrolladores que tiene experiencia con las tecnologías web no ASP.NET

actualizaciónASP.NET Web Pages páginas Web ASP.NET objetivos desarrolladores que desean una historia de desarrollo web sencilla, a lo largo de las líneas de PHP. En el modelo de páginas web, crea páginas HTML y luego agrega código basado en servidor a la página en orden para controlar dinámicamente cómo se representa esa marca. Páginas web es específicamente diseñado 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 no tiene amplia experiencia en programación, por ejemplo, estudiantes o aficionados. También es una buena forma para los desarrolladores web que conocen PHP o marcos similares para comenzar a usar ASP.NET.

Asp.Net Web Pages

Por favor, necesito su opinión técnica. Gracias.

Respuesta

16

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 ASP.NET Web Forms solo con una sintaxis diferente y posiblemente más racionalizada y concisa.

Razor v. Web Forms Barra lateral: en ASP.NET Web Forms debe identificar cuándo quería 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 quieres comenzar a escribir el código del servidor con '@' y luego, la próxima vez que comienzas a escribir una etiqueta de servidor (comenzando por '<'), se da cuenta de que has 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 de trabajo 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:

+1

Tu explicación fue buena. Hiciste tu punto, pero no es suficiente. ¿Qué hay de _utilizando Server Controls/UserControls en ASP.Net (Razor) _? Los proyectos ASP.Net (Razor) casi se ven como un proyecto ASP.Net MVC vacío. ¿Qué tan rápido puede convertirlo a ASP.Net MVC? - Técnico – codingbiz

+2

Hay vistas parciales para controles de usuario paralelos en MVC. Usted no convertiría/transición de uno a otro en mi opinión. Solo reconstruir Aunque podría compartir vistas. Hay dos partes en la programación web, que determinan lo que se mostrará en la página (C#) y en realidad lo muestran en la página. No puedo enseñarte todo acerca de los 3 en una sola publicación. Perdon por decir. Más información en http://asp.net/mvc/mvc3 –

+0

¿Por qué querríamos mezclar el código del lado del servidor con el marcado, eso tiene que ser una pesadilla de mantenimiento? – IrishChieftain

3

no hay código-culos por defecto, pero se puede hacer fácilmente su archivo de afeitar hereda de la clase personalizada:

@inherits Index 

y luego

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 antigua de hacer web, más como un estilo similar ap3. 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 las cosas que son realmente simple, pero en realidad no saben ...

Por último, me gustaría siempre eligió asp.net mvc con la maquinilla de afeitar.

creo que sirve

+0

He elegido algunos conocimientos de su respuesta (+1) para contenido útil – codingbiz

+1

¿Por qué votar abajo? – ivowiblo

0
  1. no hay "código-traseros" en MVC, y punto. Lo que tienes son controladores, que existen tanto para Razor como para otros.
  2. Son solo dos tipos diferentes de marcado. (Consulte la respuesta siguiente)
  3. No reemplaza a MVC, es solo otra opción. El marcado tradicional es muy detallado. La sintaxis Razor es sucinta.
+1

puede tener código subyacente siguiendo la misma estrategia que tiene WebForms. "Período" – ivowiblo

+0

También dijo que no proporciona controladores, por lo que no está hablando de los proyectos Asp.Net MVC (Razor). – ivowiblo

+0

http://www.compiledthoughts.com/2011/01/aspnet-mvc3-creating-razor-view-engine.html –

16

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 vista . 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.

Así que 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 optaría por el motor Razor View si elige el patrón ASP.NET MVC, o use WebForms sin MVC, ya que Razor ha sido diseñado para ser menos detallado, más simple de usar que Webforms uno. También es simplemente más reciente, por lo que intenta ser ... simplemente mejor :-)

Como nota al margen, el analizador Razor también se puede utilizar fuera de de ASP.NET MVC. Está implementado en un ensamble que no depende de MVC ni de ensambles Web en absoluto. Vea aquí para más información sobre esto: http://www.west-wind.com/weblog/posts/2010/Dec/27/Hosting-the-Razor-Engine-for-Templating-in-NonWeb-Applications

1

Bueno, usted tiene dos opciones:

  1. Use Web Forms: utilizar fuera de la caja, listo para usar controles del lado del servidor (marcado mixto y los códigos empresariales) y usa páginas maestras y máscaras, pero se enfrentan a cierta complejidad involucrada en estas comodidades. :)

  2. Utilice MVC: o utilice 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 ha seleccionado el patrón MVC, a continuación, se enfrenta con otro opciones ... Ver Motores

  1. Antiguo MVC Vista del motor: No es malo, pero es un poco prolijo
  2. 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 más inteligente, que le ayuda a mantenerse enfocado en su negocio, en lugar de escribir "<%" s. mediante el uso de la sintaxis de la afeitadora se le proporciona solo un beneficio, ¡la máxima potencia de MVC está a su alcance!

También puede escribir páginas web simples asp.net solo con la sintaxis razor (C# o VB).(al igual que php)

  • Mi elección personal sería MVC + Razor, La mejor combinación!
0

Para salir de toda la confusión por webform, MVC, Razor, páginas web y mucho más por venir de microsoft, prefiero html -> javascript -> webapi.