webapiconfig tutorial route mvc example ejemplo attribute c# scala asp.net-mvc-3 lift

tutorial - web api rest c#



Scala(2.8)/Lift(2.2) vs. C#(4.0)/ASP.NET-MVC 3 (4)

Recientemente he estado aprendiendo Scala en mi tiempo personal. En el trabajo, he estado aprendiendo C#/.NET (4.0). No estoy lo suficientemente familiarizado con ninguno de los dos para poder evaluar más que mínimamente Lift o ASP-MVC 3 . Estoy en una encrucijada. Y dado mi tiempo muy limitado, debo elegir entre uno u otro para aprender y crear una aplicación en los próximos 3 a 6 meses.

Encontré este artículo de Lift hoy e inmediatamente me intrigó. He intentado la mayoría de las cosas descritas en el artículo que me causaron interminables horas de frustración y dolores de cabeza. Y algunos de los cuales eventualmente abandoné e implementé versiones simples poco seguras e inseguras solo para completar los proyectos. Por lo tanto, este artículo hizo a Scala / Lift muy atractivo.

Y luego, durante el almuerzo, mi miembro del equipo (y un amigo) discutieron su trabajo en ASP-MVC 3 utilizando C # en .NET 4.0. Y parece que sería muy agradable aprender y usar. Y habló de suficientes cosas que parecían superponerse con el artículo de Lift que había leído en la mañana.

Mi pregunta es la siguiente : dado mi tiempo limitado, ¿cuáles son las ventajas y / o desventajas de elegir Scala / Lift sobre C # / ASP-MVC 3? ¿Y qué tipo de ventajas tiene C # / ASP-MVC 3 sobre Scala / Lift?

Para reducir la complejidad de mi evaluación: asuma la última versión actual de cada una de estas tecnologías; Scala 2.8.1 (2010 / diciembre), Lift 2.2 (2011 / enero), C # / .NET 4.0 (2010 / abril) y ASP-MVC 3 (2011 / enero).

Gracias por ayudarme en este punto de decisión crítico de la arquitectura.

ACTUALIZACIÓN 2011 / Mar / 19 12:25 CDT:
Desde entonces me he topado con un par de recursos que parecen ser muy útiles en el lado de Scala / Lift:
1. Libro electrónico gratuito (PDF y HTML) titulado "Explorando Lift (marco web basado en Scala)"
2. Artículo de Wiki por el creador de Lift titulado "Ver primero".

El primer capítulo del libro electrónico ha sido muy útil. Realmente me gusta cómo se enfocaron los principios de diseño y la implementación de Lift en la "separación de preocupaciones" (manteniendo el código fuera de los fragmentos de pantalla) y en la "convención sobre configuración".

Y por lo que he visto hasta ahora, si bien ASP-MVC 3 usa las mismas "directrices sólidas", aún depende de una capa donde el código y la presentación están "hibridados". Es donde ni los diseñadores del sitio ni los ingenieros de software se atreven a pisar DESPUÉS de la creación. IOW, después de la originación, habrá dragones de mantenimiento. Me encantaría que alguien me dijera que estoy equivocado aquí.


Acabo de leer wikipedia y c # parece cubrir la mayoría de las cosas que proporciona scala.

Desde wikipedia ... Scala también proporciona un sistema de tipo unificado (como en C #, pero a diferencia de Java), donde todos los tipos, incluidos los tipos primitivos como los enteros y los booleanos, son objetos que son subclases del tipo Cualquiera. Scala también contiene una serie de otras características (o no características) presentes en C # pero no en Java, incluida la sobrecarga del operador, los parámetros opcionales, los parámetros con nombre, las cadenas en bruto (que pueden ser multilínea en Scala) y no hay excepciones comprobadas.

Hay solo algunas cosas adicionales que proporciona Scala y, como tiene experiencia con .net, me quedaría con c #


Por favor mire en http://circumflex.ru/ (idioma inglés). Nuevo marco web atractivo de Scala.

No es MVC, pero es muy bueno para aplicaciones de escritorio: http://vaadin.com/ - Server side RIA. Puedes usar Scala, Java o cualquier otro lenguaje JVM. Sólo un jarro. No requiere plugin en el cliente.


Scala pro:

  • Programación funcional de soporte
  • Mejor soporte de linux si usa jvm (para que C # use mono que no es compatible con microsoft)

C # pro:

  • Herramientas / IDE más maduras / robustas
  • Más puestos de trabajo abiertos en el mercado en este momento.

Scala / Lift pros:

  • Puede utilizar enormes bibliotecas / soluciones de código abierto para la web y la empresa.
  • mas innovar
  • reducción de costo
  • (subjetivo: prefiero sintaxis Scala y modelo de datos)

C # / ASP pros:

  • Lo estás aprendiendo en el trabajo, por lo que estás más familiarizado con las tecnologías .NET.
  • Pase menos tiempo para aprender (desde el primer punto) y obtenga apoyo en el trabajo.

Para mí, Scala / Lift es una solución más efectiva, pero estoy más familiarizado con java / jvm y no estoy vinculado con .NET