2011-11-17 5 views
10

Ok. No es una batalla Tengo curiosidad sobre el concepto de framework, trabajé con algunos frameworks como django, zend, rails y cakephp en varios niveles.Por qué .NET es un Framework y Java es un lenguaje

Hoy, un amigo mío me envió una presentación en la que enumeró .NET como marco, no es una gran sorpresa que haya discutido sobre .NET framework y conozco el concepto básico detrás de él, y desde mi punto de vista límite en la tecnología .NET parece justo decir que es un marco.

Pero luego me di cuenta? ¿Por qué Java es Language y .NET es un Framework? Cuanto más leo, más me confundo. Tanto Java como .NET tienen SDK, ¿es porque java se ejecuta en una VM? ¿Es porque .NET es compatible con múltiples lenguajes de programación? ¿Cuál es la gran diferencia que me falta aquí?

+0

Es cierto que Java es un lenguaje. Entonces es C#. VB también. Entre muchos, muchos otros. – delnan

+0

Esta es realmente una pregunta realmente intrigante en la que no había pensado antes. ¿Dónde trazas la línea entre lo que es un marco y qué es un lenguaje? –

Respuesta

22

Java es a la vez un lenguaje y un marco, ambos unidos y con un solo nombre.

.NET es una plataforma que tiene muchos idiomas que lo usan: C#, VB.NET, F # y muchos más.

La diferencia radica en la nomenclatura y la semántica, nada más.

+7

Puede utilizar las bibliotecas marco/clase Java con lenguajes distintos de Java. (hay muchos idiomas escritos para la JVM) –

+0

@KirkWoll - punto justo. – Oded

+1

+1 Java es un framework y lenguaje. Gracias, no sabía esto. (Pensó que Java es solo como un lenguaje de programación) Entonces, ¿cómo puedo diferenciar entre framework y plataforma (en términos de Ingeniería S/W) ¿Hay algún enlace que pueda compartir conmigo? – Praveen

2

C#, VB, J #, etc. son los idiomas en Visual Studio. .NET es un marco de código que proporciona un amplio conjunto de funcionalidades para que puedas aprovechar al instante.

4

Java es para la JVM como C# para .NET. Es desafortunado que Sun haya llamado a su máquina virtual 'Java Virtual Machine', ya que cada vez se utiliza menos en los programas reales de Java. Es la JVM y el enorme conjunto de bibliotecas de clases estándar que constituyen la plataforma. Java es simplemente un lenguaje de programación; tiene competidores como Groovy, Scala, JRuby, Clojure etc, como .NET tiene F #, el más nuevo VB, etc.

+4

No, Java es para la JVM como C# es para la CLR. El CLR no es lo mismo que ".NET". –

+0

De acuerdo en que la máquina virtual es CLR, y no .NET. El problema es ese ".NET "es explícitamente el nombre tanto para la VM como para toda la plataforma (y todo el cambio de filosofía en todo el espacio de desarrollo de Windows que la acompañó), mientras que" Java "era y es principalmente el nombre de un lenguaje de programación, por lo que realmente no hay un equivalente exacto del término ".NET". –

+0

Entonces twitter se ejecuta en "a" JVM usando scala? – Jonathan

4
  • NET es un marco, ya que proporciona la funcionalidad alrededor de su código: por ejemplo, cuando hacer formularios web no tiene que codificar todo, desde la recepción de la solicitud http hasta la escritura del html, es lo mismo para los servicios web y los formularios web, está alrededor de su código.

  • En java (java solo) no tiene nada más que un lenguaje, puede compilar ejecutar su programa, pero tendrá que manejar todo en la vida del software (desktop o c/s), si usa Java EE o Swing, entonces tendrás un marco.

La confusión es el hecho de que ambos imponen su marco (MS más de Sol), por lo que el lenguaje-marco pareja es muy fuerte (incluso si las puede dividir y usar otra cosa). Pero promueven una parte diferente de la pareja, el marco para MS, el lenguaje para Sun.