MVC, WCF, EF, LINQ - ¿Soy solo yo? [cerrado]

17

... o las cosas se están volviendo más complicadas?

Me parece que necesita saber muchas cosas para desarrollar 'adecuadamente' una aplicación web de MS en estos días. En los viejos tiempos, cuando no sabíamos nada mejor, teníamos tablas de bases de datos, ASP.NET, ADO.NET y usted construía una aplicación web usando conceptos relativamente simples.

En estos días parece haber mucho marco para "ayudarlo" a hacerlo "bien", pero no estoy convencido de que esto lo haga todo más fácil y mejor. Tengo la sensación de que estaré en una minoría bastante pequeña con este sentimiento, pero ¿hay alguien más por ahí que piense que las cosas se han vuelto un poco locas?

Oficial
fuente
MVC = ASP.Net, WCF = Servicios web + .Net Remoting, EF = ADO.Net, Linq es el reemplazo de algunos bucles foreach. Ahora hay tantos marcos como antes.
vortexwolf
John, tengo que estar "parcialmente" de acuerdo contigo. Actualmente estoy mejorando mis habilidades .Net, ciertamente mucho más que hace 5 años.
TeaDrinkingGeek
Si bien puede haber muchas tecnologías de base de datos en el ámbito de la EM, esta pregunta es realmente fuera de tema en este sitio. Realmente no hace una pregunta y cae directamente en "... apesta, ¿estoy en lo cierto?" categoría de despotricar en la lista de preguntas frecuentes
Walter

Respuestas:

17

Todas esas cosas son opcionales, úselas si son útiles, no si no lo son. Es tan simple como eso. Ciertamente, puede escribir aplicaciones web buenas / adecuadas sin ninguno de esos acrónimos en su solución.

Personalmente, tiendo a encontrar que MVC es un marco bastante ligero y fácil de usar (mucho más fácil de comenzar que los formularios web, en mi opinión). Del mismo modo, LINQ proporciona una forma común de consultar cualquier cosa; también bueno. EF y WCF y yo hemos tenido nuestros desacuerdos, pero cuando ese es el caso, no los uso.

Pablo
fuente
2
+1 en 'úsalos si son útiles'. Intento usar la regla, intento hacer 1 'cosa' nueva en cada proyecto. Después de un tiempo, tendrás experiencia con muchas cosas y verás que las cosas se vuelven más fáciles a medida que las usas más.
Jan_V
+1 a ti también por el "intento de hacer 1 cosa nueva en cada proyecto". Me gusta aprender y crecer también.
Paul
1
Trato de hacer 1 cosa nueva en cada proyecto, pero eso es por lo general debido a que la nueva cosa que aprendí último proyecto ya está obsoleta :)
gbjbaanb
9

No en realidad no. LINQ es lo mejor desde el pan rebanado al interactuar con una base de datos.

Lo que debe recordar es que estas cosas se basan en otras cosas. LINQ no está agregando a la cantidad de cosas que necesita saber para desarrollar un sitio web ASP.NET, porque ahora no necesita saber SQL. Y LINQ es OO, que está mucho más en línea con el desarrollo regular de aplicaciones, lo que hace que sea completamente más fácil de hacer que SQL y mucho más fácil de integrar con C #.

Si no cree que LINQ es más fácil que SQL, quizás debería publicar algunos ejemplos de algo que es más difícil en los nuevos paradigmas.

Más importante aún, anteriormente los sitios web tenían mucha menos funcionalidad. ¿Cómo va a crear nuevos sitios web que funcionen mejor, escalen mejor y ofrezcan nuevas funciones en el mismo código?

DeadMG
fuente
44
Una unión izquierda en LINQ es más difícil que en SQL. Además, si está tratando de solucionar problemas de la base de datos, terminará teniendo que mirar SQL de todos modos. Además, conocer SQL lo ayudará si alguna vez desea pasar a una plataforma de desarrollo que no sea de Microsoft.
btilly
10
Ningún marco ORM es tan poderoso como SQL. Hay consultas que tengo que realizar que son casi imposibles de hacer en un marco ORM.
bit-twiddler
1
@ bit-twiddler> sí, y es por eso que la mayoría de los marcos ORM le permiten ejecutar SQL sin formato (o sprocs) también. Puede hacer que un buen tipo de C # escriba la mayoría de las consultas de peatones, y los expertos de DB como usted pueden empaquetar las cosas difíciles para ellos en una vista o proceso.
Paul
1
Si bien diseño bases de datos a gran escala y escribo un montón de SQL del lado del cliente y del lado del servidor, no soy un DBA. Soy un ingeniero de software. Nunca he trabajado en ningún lugar donde los desarrolladores de software no sean expertos. En cualquier día, puedo escribir código en lenguaje de ensamblaje C, C ++, Java, Object Pascal, PL / SQL o Intel (no cuento HMTL, XML y CSS como lenguajes de programación porque no son Turing Complete). Mantengo mis propios conjuntos de herramientas y un entorno de prueba basado en Tomcat también (todos en mi equipo tienen su propio servidor Tomcat).
bit-twiddler
1
¿Escribir LINQ para interactuar con una base de datos (LINQ-to-SQL, LINQ-to-Entities) sin conocer SQL ...? Receta para el desastre.
Kirk Broadhurst
3

Si los viejos conceptos que mencionó ya no funcionan, estaría de acuerdo en que sería una locura, pero los marcos más nuevos son alternativas. La aceptación ciega sería una locura. Necesitas justificar. Personalmente, SQL en sí mismo no es un problema para mí. Intentando agregar algunas de las funcionalidades de los sitios web modernos, los formularios web ya no son suficientes.

Estoy seguro de que algunas personas clásicas de ASP sintieron lo mismo con respecto a .NET, pero pocos pueden continuar haciendo ese argumento. Construyo un par de sitios en ASP clásico y no volvería.

JeffO
fuente
2

"Se volvió un poco loco". Así es exactamente como describiría una DataSetsolución ADO.NET, ASP.NET. :)

Estoy de acuerdo en que hay mucho más que aprender, pero cada uno de los marcos que menciona ha mejorado el desarrollo de .NET.


fuente
0

Diría que este es un problema global que puede afectar a casi todos los frameworks o plataformas (de desarrolladores). Cuando se lanza un nuevo marco, generalmente parece pequeño y compacto, pero a medida que pasa el tiempo y se incluyen nuevas características / funcionalidades / API (ya sea por hoja de ruta / solicitud, nuevos conceptos / tendencias / tecnologías o simplemente por evolución) se "hincha". Comenzaste con "una forma de hacer las cosas" y ahora hay más posibilidades entre las que puedes elegir (y, no sabes / no estás seguro, cuál elegir). Aprender cosas nuevas puede llevar mucho tiempo, sin embargo, pueden ofrecerle soluciones mucho más flexibles / más rápidas / mejores a los mismos problemas que anteriormente se resolvían mediante un conjunto limitado de opciones.

Una vez me topé con una cita graciosa: "todo el código se convierte en algo s #! T dado el tiempo y las manos suficientes", que en mi humilde opinión resume por qué deberían surgir cosas nuevas dentro de los marcos existentes para llevar nuevas ideas a la acción y hacer la evolución.

yojimbo87
fuente