Relación entre C #, .NET, ASP, ASP.NET, etc. [cerrado]

140

Realmente no tengo claro la diferencia entre C #, C # .NET y la misma para ASP y otros lenguajes '.NET'.

Por lo que entiendo, .NET es una biblioteca / marco de ... cosas. Creo que esencialmente son acceso a datos de Windows como elementos de formulario, etc., pero eso no parece aplicarse a ASP.NET.

Además, veo a personas que se llaman a sí mismas desarrolladores '.NET'. ¿Esto significa que dominan C #, ASP y otros idiomas?

Finalmente, nunca veo C # sin .NET adjunto. ¿Está C # ligado tan estrechamente a .NET como para ser inutilizable sin él?

En resumen: ¿qué proporciona exactamente .NET? ¿Cómo se relaciona con C # y ASP, etc? ¿Qué significa 'un desarrollador de .NET'? Y finalmente, ¿por qué nunca ves C # sin .NET?

[Dejando de lado, me doy cuenta de que estas son preguntas múltiples, pero creo que están muy interrelacionadas (o al menos esa es la impresión que me ha dado buscar Programadores / SO, etc.)].

    
pregunta Megan Walker 06.02.2011 - 23:27
fuente

7 respuestas

170

Entiendo tu confusión, créeme, ¡tengo la misma perspectiva cuando se trata del mundo Java! De todos modos, intentaré desglosar sus preguntas y abordarlas una por una ... además de agregar algunos otros puntos que, con suerte, ayudarán a aclarar lo que está sucediendo:

  1. C # y C # .NET son lo mismo ... C #
  2. .NET es, como usted dice, una biblioteca de código con la que pueden hablar los lenguajes .NET.
  3. Los lenguajes .NET vienen en diferentes sabores, tales como: C # .NET, VB.NET, Managed C ++, F #.
  4. Los lenguajes .NET se compilan en CIL ( Common Intermediate Language ) lo que significa que todos comienzan a "hablar" el mismo idioma y por lo tanto puede interoperar.
  5. ASP.NET es la parte de la biblioteca .NET utilizada para crear sitios web. Hay otras subsecciones de ASP.NET como WebForms (la antigua forma de crear páginas web) o la biblioteca MVC que está madurando rápidamente y que también vale la pena ver.
  6. Los formularios (tecnología antigua) o el nuevo WPF (Windows Presentation Foundation) son las tecnologías que normalmente usaría en .NET para crear lo que conoce como aplicaciones de escritorio tradicionales.

Una última cosa que me gustaría terminar es la diferencia entre la biblioteca y el marco. En los últimos años, estos dos términos se han utilizado como sinónimos, sin embargo, este no es el caso. La forma más fácil en que puedo pensar para diferenciar los dos es:

  • Una biblioteca contiene muchas piezas de funcionalidad que puede elegir, es decir, usar una pieza de tecnología no significa que esté bloqueado en el resto. Esto significa libertad, sin embargo, tendrás más trabajo por delante.
  • Sin embargo, un marco establece en gran medida cómo trabajará. Proporciona un flujo de trabajo que, para bien o para mal, es difícil de cambiar. Esto significa un rápido desarrollo / creación de prototipos, pero si se realizan cambios significativos en el futuro, puede ser imposible (o llevar mucho tiempo) implementarlos.

El proyecto en el que estés trabajando dependerá de la elección que hagas.

    
respondido por el PaulCarroll 06.02.2011 - 23:58
fuente
23

.NET es un marco de desarrollo de aplicaciones, contiene numerosas bibliotecas que contienen una gama de funciones.

C # es un lenguaje creado para usar con .NET. No es el único lenguaje compatible con .NET; otras opciones incluyen VB.NET, F #, Managed C ++, IronRuby y IronPython. Usted escribe el código en el idioma de su elección para usar la funcionalidad en el marco .NET.

ASP.NET es una extensión de .NET que le ayuda a escribir aplicaciones y sitios web basados en web. Gran parte del marco general está disponible (o es útil, en el caso de, por ejemplo, WinForms) en este contexto.

[Classic] ASP es un marco web más antiguo, también de Microsoft. A pesar de los nombres similares, ASP y ASP.NET son bastante diferentes bajo el capó. Una diferencia notable es que sus únicas opciones de idioma para ASP son VBScript y JScript. ASP es una tecnología más antigua y obsoleta, no te preocupes por ella.

    
respondido por el Grant Palin 07.02.2011 - 00:47
fuente
11

En primer lugar, .Net es un marco de bytecode, similar a Java bytecode. .Net sin embargo es solo BYTECODE. No hay un lenguaje oficial ".Net". Los dos idiomas principales dirigidos a .Net son C # y VB.Net. ASP.Net es una extensión de la biblioteca .Net provista para permitir que las aplicaciones escritas en C # o VB.Net (u otros idiomas específicos de .Net) funcionen como un sitio web.

Los desarrolladores que dicen que saben .Net generalmente quieren decir que conocen C # o VB.Net, o ambos, y pueden aprender fácilmente lo que no saben (C # y VB.Net son lenguajes extremadamente similares, aparte de la sintaxis general)

Por último, ASP no es lo mismo que ASP.Net. Tienen enormes diferencias

    
respondido por el Earlz 06.02.2011 - 23:32
fuente
7

Ya que solo una respuesta menciona a Mono sin entrar en detalles:

Aunque C # como lenguaje se desarrolló originalmente en Microsoft como parte de .NET Framework, luego fue estandarizado por ECMA , lo que significa que se pueden desarrollar implementaciones independientes del lenguaje que cumplen con los estándares, y de hecho lo fueron. El más destacado de estos es Mono .

Mono es una implementación de código abierto de un conjunto de herramientas compatible con el estándar ECMA compatible con .NET Framework, que incluye un compilador C # y una implementación de CLI (Mono Runtime, el equivalente de CLR de Microsoft, la máquina virtual de .NET Framework). Su objetivo es ejecutar aplicaciones .NET multiplataforma. A partir de hoy, admite C # 4.0 y parte sustancial de las características de .NET Framework . Además de reflejar la implementación de Microsoft, el equipo Mono también está haciendo sus propias innovaciones.

Entonces, sí, es posible y factible trabajar en C # sin .NET. Sin embargo, es poco probable que Mono pueda competir con la participación de mercado de Microsoft y la posición de .NET Framework, no ahora, y no en el futuro inmediato.

    
respondido por el scrwtp 12.06.2012 - 23:21
fuente
6

El libro de Jon Skeet, C # In Depth rompe .NET de manera bastante sucinta. Se utiliza a menudo en relación con

  1. lenguajes de programación (C #, VB)
  2. El tiempo de ejecución (CLR) que ejecuta el código de bytes para el que se compilan esos idiomas.
  3. Bibliotecas de marco (Windows Forms / ASP.NET)
respondido por el mootinator 07.02.2011 - 07:39
fuente
2

las otras respuestas explican cada tecnología, pero creo que se pierden una de las razones principales de la confusión. C # y C # .NET son esencialmente sinónimos, sin embargo, VB.NET y VB son diferentes y ASP y ASP.NET también son diferentes. VB generalmente se refiere a VB6 y versiones anteriores, y ASP se refiere a ASP clásico. Estas tecnologías se rediseñaron radicalmente con el lanzamiento de .NET framework y, en lugar de crear nuevos nombres para los productos, Microsoft agregó .NET a casi todo, pero C # también era nuevo, por lo que ambos nombres realmente se refieren a lo mismo.

    
respondido por el Ryathal 12.06.2012 - 22:45
fuente
0

Tienes que diferenciar entre lenguajes, marcos, CLR, patrones y métodos de programación.

ASP.Net utiliza un patrón de programación completamente diferente al desarrollo de Winforms, aunque comparten la misma base. Puede programar aplicaciones ASP.net y .Net en una variedad de idiomas.

Luego está el lenguaje Mono y C # usado en el contexto Mono, probablemente vale la pena investigar.

Lea estos enlaces:
enlace
enlace
enlace

    
respondido por el Jeremy 06.02.2011 - 23:35
fuente

Lea otras preguntas en las etiquetas