net library framework dotnet awesome asp .net optimization compiler-construction frameworks

library - ¿Hay alguna ventaja compilando para.NET Framework 3.5 en lugar de 2.0?



dotnet core xml (8)

3.5 tiene clases que 2.0 no tiene. Func <...> por ejemplo. Si apunta a 2.0, no puede usarlos.

¿Hay alguna ventaja compilando para .NET Framework 3.5 en lugar de 2.0?

Por ejemplo, menos consumo de memoria, inicio más rápido, mejor rendimiento ...

Personalmente, no lo creo, sin embargo, me puedo haber perdido algo.

Editar: Por supuesto que hay más funciones en el marco 3.5, pero estos no son el foco de esta pregunta.

Edit2: Parece que no hay ventajas.

Edit3: Sí, me refería a orientar el Framework. He instalado el último 3.5 SP1 y VS 2008, entonces, ¿cuál es la diferencia entre compilar y orientar un framework? Puedo orientar el marco en las opciones del proyecto, pero ¿cómo ''compilo'' con una versión de marco específica? No sabía que hay una diferencia.

Edit4: Entonces, por ahora, estamos de acuerdo en que no hay ventajas.

Gracias por tus opiniones


Hay dos cosas para recordar en lo que respecta a .NET 2.0 y .NET 3.5.

  1. .NET Framework 3.5 es solo unas pocas bibliotecas que se ejecutan sobre .NET 2.0.
  2. Al desarrollar en Visual Studio 2008 y apuntar a .NET 2.0, aún puede usar ciertas características del lenguaje C # 3.0, como los Métodos de extensión, ya que son, de hecho, una característica del compilador C # 3.0 (o .NET 3.5). Ver este enlace: http://www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Hay una diferencia entre la compilación y la orientación.

Compilar el código con el compilador (por ejemplo) C # 3.0 probablemente le dará un impulso en el rendimiento (muy poco de todos modos) ya que se han incluido algunas optimizaciones para el código IL generado migh. También le permite usar algunas de las nuevas características como propiedades automáticas o expresiones lambda.

La orientación para un marco determinado garantizará que su conjunto funcione para ese marco (y posteriores) y fallará si se dirige a 2.0 y está utilizando una biblioteca de 3.5. Ninguna mejora en el rendimiento estará directamente relacionada con eso a menos que sustituya una clase de un marco con otra clase "más rápida". Por ejemplo, la orientación de .NET 1.1 no le permitirá usar genéricos y, por lo tanto, deberá usar ArrayList, que es considerablemente más lenta que List (debido al boxeo y al desempaquetado).


No es beneficioso compilar en el marco 3.5 si no está utilizando ninguna clase de esa versión del marco.


No he encontrado ninguno. Una desventaja obvia, si no necesita las características específicas de 3.5, es que la base de código 3.5 es más joven y, por lo tanto, es posible, aunque poco probable, que haya algún error al acecho.


Creo que un compilador diferente viene con cada versión de Visual Studio. Por ejemplo, en el caso de C # el compilador 2.0 incluido con Visual Studio 2005 y el C # 3.0 incluido con Visual Studio 2008. Dependiendo de la versión de Visual Studio que utilice, terminará con un compilador diferente.

La orientación de un marco se refiere específicamente a la versión del marco al que desea dirigirse durante el proceso de compilación; targeting frameworks es una nueva característica de Visual Studio 2008. Por ejemplo, podría tener una solución abierta en Visual Studio 2008 y target v2.0 of .Net. El resultado sería que no tendría ninguna de las funciones .Net 3.0 o 3.5 disponibles durante esa compilación, por ejemplo, WPF.


Si su ensamblado de .NET apunta a .NET 3.5, la aplicación resultante buscará y requerirá las bibliotecas .NET 3.5, y eso es todo. Estas bibliotecas vienen con numerosas clases adicionales que no se encuentran en el framework .NET 2.0, por lo que sería una ventaja apuntar a esas bibliotecas.

Sin embargo, si compila el código C # con el compilador C # 3.0 incluido, por ejemplo, con Visual Studio 2008 y es compatible con .NET 3.5, pero tiene su objetivo de ensamblaje .NET 2.0, solo necesitará las bibliotecas regulares de .NET 2.0, ya pesar de esto realmente use ciertas características del compilador .NET 3.5, ya que varias de esas características solo están usando el código .NET 2.0 al final. Lea más sobre esto aquí: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code. aspx