Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/07/2015, 14:47
agleiva
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: * A la fecha, ¿cuáles Herramientas WEB en .NET me recomiendan aprender ?

A ver, aclaremos un poquito el panorama:

Cita:
Iniciado por ghidalgoram Ver Mensaje
Tengo experiencia como Desarrollador Web, tanto Front End como Back End pero ha sido con tecnologías "Open Source" como PHP
En primer lugar, vamos dejando de lado esa distinción vacía entre "tecnologías de Microsoft" y "open source", ya que el 100% del stack Web de Microsoft es (ya hace años) completamente open source.

En segundo lugar, cuáles son "otras más"? Solo tenés experiencia en PHP?

Te comento que PHP en particular es, en mi opinión, una tecnología HORRENDA con la cuál NO SE PUEDEN HACER BIEN LAS COSAS, por motivos que no vienen a cuento, con lo cuál si vas a trabajar en una plataforma profesional como .Net, te conviene olvidarte de todo lo que aprendiste en PHP porque desde el vamos está mal.

Ahora bien, tu pregunta con respecto al Stack no tiene una respuesta específica posible. Existen muchas formas de hacer las cosas y el conjunto específico de tecnologías que necesitás manejar depende mucho del lugar donde vayas a trabajar.

Lo que puedo hacer es orientarte para que entiendas qué es cada cosa y así puedas buscar más información y finalmente decidir por tu propia cuenta en qué conjunto de tecnologías especializarte:

.NET Framework: es una plataforma de desarrollo de software moderna, robusta, rápida y escalable. Cuenta con un entorno de ejecución propio conocido como CLR, el cuál ejecuta el código de manera controlada, y proporciona servicios de base tales como el Compilador JIT y el GC. El código que se ejecuta en un entorno de .NET se conoce como "Código Administrado", o "Managed Code" en inglés.

Adicionalmente, el CLR provee un sistema de base llamado Common Type System, que es un sistema de tipos compartido por todos los lenguajes compatibles con .Net, permitiéndo que la interoperabilidad sea prácticamente transparente entre los mismos.

El .NET Framework también cuenta con un gran número de librerías que proporcionan acceso a las funcionalidades del sistema desde simples manejos de texto hasta servicios de Red. Esta librería es conocida como BCL, o Base Class Library.

Equivalencia con PHP: PHP no tiene un equivalente al .NET Framework. El runtime de PHP es infinitamente más limitado que el .NET Framework y no tiene casi ninguna de las optimizaciones que existen en .NET. Por ejemplo, PHP no tiene JIT, no tiene un common type system, porque no interopera con ningun otro lenguaje, y de hecho ni siquiera tiene un type system propio, que se pueda considerar decente.

El equivalente en PHP de la BCL es la SPL. La diferencia es que en PHP tenés un montón de funciones sueltas, con nombres horribles, totalmente inconsistentes, todas desparramadas por cualquier lado sin ningún respeto por el orden, mientras que la BCL de .NET es un conjunto de librerías desarrolladas por profesionales, que mantienen un alto nivel de consistencia tanto en nombres de funciones, argumentos, como en sus valores de retorno y comportamiento ante errores.

C#: Es un lenguaje de programación moderno, multi propósito, multi paradigma. El código C# se ejecuta dentro del entorno de .NET. C# posee características que lo hacen un lenguaje tremendamente productivo para todo tipo de software, desde pequeños utilitarios o aplicaciones de consola, hasta grandes sistemas distribuidos, pasando por juegos y aplicaciones de negocios de todo tipo.

A diferencia de PHP, C# es un lenguaje de programación profesional, serio, y que no está limitado a su uso en aplicaciones web.

ASP.NET es la plataforma base de .NET para ejecución de aplicaciones y servicios Web. Provee una serie de abstracciones que permiten crear programas que ejecutan intercambios HTTP.

ASPX es la extensión de las páginas web generadas utilizando ASP.NET WebForms. Es un framework viejo para creación de aplicaciones web que trata de enmascarar de alguna forma la naturaleza "stateless" de la web y hacer pensar al desarrollador que los controles visuales en HTML de alguna forma pueden ser afectados por código del lado del servidor, en runtime. Tuvo su auge hace más de 10 años ya que era una forma para que los desarrolladores que no conocían el paradigma web pudieran escribir aplicaciones de este tipo. Su uso en la actualidad fue supercedido por ASP.NET MVC.

ASP.NET MVC: es un framework MVC implementado sobre ASP.NET. Es el método recomendado actualmente para crear aplicaciones web sobre .NET. Provee un modelo con separaciones adecuadas entre las distintas capas o componentes del sistema. (A diferencia de PHP que es muy poco profesional y estimula el uso de practicas terriblemente malas como poner el SQL junto con el HTML)

LINQ: Es un conjunto de extensiones de los lenguajes C# y VB.NET, que proveen una forma consistente de ejecutar operaciones diferidas contra collecciones de datos.

LINQ no tiene nada que ver con bases de datos, ni con connection strings, ni nada de eso. Es una característica del lenguaje.

LINQ provee una API con la cuál se puede hacer introspección del código de usuario y manipular o convertir el AST. En esto se basa por ejemplo, LINQ To Entities, que es una implementación de LINQ sobre el ORM Entity Framework, que traduce las consultas de LINQ a instrucciones de SQL para ser ejecutadas en motores de bases de datos.

Cita:
Iniciado por ghidalgoram Ver Mensaje
¿Capas o MVC?
Tu pregunta muestra una enorme falta de fundamentos y conceptos de programación básicos, es decir, una condición típica de alguien que trabaja en PHP.

MVC significa Model, View, Controller. Estas son capas. También hay otras capas como la capa de acceso a datos, que en el contexto de una aplicación web generalmente se engloba en el Model, o la capa de comunicaciones, si estás hablando de una aplicación distribuida.

En fin, mi recomendación más allá de la tecnología en particular es que te pongas a leer sobre patrones de arquitectura y de diseño, todas cosas que están completamente ausentes en la programación PHP, pero que sí están presentes en la programación profesional.

Bienvenido al lado feliz del Desarrollo de Software.