2012-05-08 32 views
17

Soy nuevo en MVC ... Tengo bastante conocimiento con Silver-light y WPF y MVVM, pero tengo pocos conocimientos sobre MVC. Estoy siguiendo el tutorial principal en el sitio de Microsoft http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/cs/adding-a-view. Creo que estoy en el artículo 3 de 9. Originalmente, me dijo que creara mi sitio MVC como el "Motor de visualización" de "Razor". Elegí usar "ASPX" en lugar de "Razor" porque pensé que tendría menos dependencias de terceros.MVC ASP.NET o Razor

Al iniciar una nueva aplicación web MVC, es mejor usar "Razor" en lugar de "ASPX". Para ser sincero, no tengo idea de la diferencia. Como dije, elegí ASPX para evitar dlls o códigos de terceros adicionales. Si es mejor elegir ASPX, estoy un poco confundido sobre por qué los tutoriales en el sitio de MS me dicen que empiece con Razor.

¿Alguien puede arrojar algo de luz sobre cuándo debo usar el motor de visión "ASPX" en comparación con el motor de visión "Razor"?

+2

TL; DR; Razor es mejor. – Joe

+0

Sí, necesito un poco más de por qué vs 1 contra el otro. ¿Qué proporciona uno que el otro no proporciona?¿Me estoy limitando a una implementación de código abierto de terceros que puede no existir en unos pocos años si utilizo Razor, etc.? –

+0

Ver [thread SO relacionado] (http://stackoverflow.com/q/4702231/304683) – EdSF

Respuesta

20

No hay diferencia con respecto a las dependencias de terceros. ASPX está bien, pero Razor es mejor, principalmente porque se mantiene fuera de tu camino.

Deberías leer la publicación del blog de Scott Guthrie Introducing "Razor".

Es, básicamente, reemplace las etiquetas de apertura y cierre <% y %> con un símbolo @, por lo menos pulsaciones que hacer la misma cosa, es decir,

<%: Model.UserName %>

convierte

@Model.UserName

y

<% foreach (string name in nameList) { .. } %>

convierte

@foreach (string name in nameList) { .. }

Hay un poco más que eso, pero no mucho.

+1

Aquí hay otro buen recurso que debería darle comodidad con respecto a si Razor va a alguna parte: http: //www.dotnetrocks. com/default.aspx? showNum = 606 (episodio de .NET Rocks con Phil Haack en Razor y MVC) –

+0

Así que, en esencia, Razor shorhands el <%= blah %> con @blah? Si este es el caso, edite su respuesta y lo aceptaré ya que todo lo que veo con esta publicación es lo que hace. –

+0

Lo tienes. Editar en camino ... –

1

El "código dlls o código de terceros extra" en el que confiaría está bien establecido y no tiene cerebro para incluir. Lo copias una vez y te olvidas de él. Tampoco es como si tuvieras que perseguirlos. Es muy fácil la implementación de Xcopy.

Como ha visto, el sitio de MS MVC usa Razor. La mayoría (¿todos?) De los sitios y libros que leí están usando Razor.

Use Razor, y encontrará mucha más ayuda que con aspx en MVC.

+0

Mi temor es que Razor sea la última y más genial tecnología que será reemplazada en el próximo VS. Me quemaron antes Si voy a adaptar la tecnología, necesito saber que va a estar disponible y que no será reemplazada por una "MS Razor 2". ¿Qué en particular ofrece Razor sobre el MVC de MS? –

+0

Razor * IS * Tecnología de Microsoft. Además, Razor V2 ya está programado para salir con ASP.NET MVC4, pero no debería haber problemas de compatibilidad con versiones anteriores: es una extensión de la base existente, no una nueva sintaxis de lenguaje. – Chris

+1

Dan P, sé completamente de dónde vienes. He pasado los primeros 7 años de mi vida en .Net básicamente tratando de evitar cualquier cosa "incorporada" debido a cuántas veces me quemé por la última y más grande iteración de datagrids, paradigmas web, clases base, etc. de MS. Pero en estos días, realmente parecen estar enganchándolo con MVC. Tiendo a alejarme del Entity Framework o Castle o cualquier otra cosa que tenga que ver con la abstracción de DB. Pero lo de MVC parece estar muerto. –

4

Razor es una extensión interna de Microsoft para ASP.NET MVC. Parece que tiene la impresión de que Razor es proporcionado por la comunidad o es un complemento de los componentes básicos de MVC, lo cual es completamente falso. Razor también proporciona un código sintácticamente más limpio que ASPX.

+0

Entonces, ¿estás en línea de pensamiento si "Razor" es una implementación de MS de MVC? Lo más probable es que tenga éxito en la próxima versión de VS? –

+0

Razor no es algo de Visual Studio. Es una pieza central del marco ASP.NET MVC. Microsoft lanzará Razor V2 con ASP.NET MVC4, así que no, no va a ninguna parte. – Chris

+0

Razor es la respuesta de Microsoft a su primo feo, Spark (?). Los formularios web tampoco desaparecen, pero ¿qué prueba eso? Aún no he visto un solo argumento convincente para usar Razor más allá del hecho de que es la última "tendencia". Abre la puerta a los mismos espaguetis con los que ejecutábamos ASP 1.0 – IrishChieftain

-6

Razor es lo más descuidado posible que podría hacer con su marcado. El código y el marcado no pertenecen al mismo archivo, punto. Está totalmente fuera de mi alcance cómo alguien podría recomendar tal locura.

+5

Razor no fomenta la combinación de código con marcado más que cualquier otro motor de vista. Si tiene esa impresión, probablemente esté mal informado. El concepto central en ASP.NET MVC es que si desea ampliar la vista con lógica basada en código, escriba una extensión HtmlHelper en un archivo de clase separado. – Chris

+0

Cada muestra que he visto de ella incorpora código en la vista - gran no-no. Nunca debería haber sido permitido. Este es un tema tan polémico que estamos seguros de tener un debate animado ;-) – IrishChieftain

+1

@IrishCieftain Tengo muy buen conocimiento de MVVM Silverlight y WPF. Al cambiar a la web, asumí que MVC era la correlación más cercana. Si no sugiere MVC ASP.NET MVC o Razor, ¿qué sugiere? –