visual usos studio que net historia funciona como caracteristicas c# .net visual-studio

usos - visual studio c#



C#.NET 3.0/3.5 características en 2.0 utilizando Visual Studio 2008 (7)

¡Prácticamente todo! Daniel Moth cubre esto aquí y aquí . Eso solo deja compatibilidad con el tiempo de ejecución: LINQ-to-Objects es proporcionado por LINQBridge , lo que deja APIs más grandes como el soporte Expression y herramientas como LINQ-to-SQL. Estos son demasiado grandes para ser razonablemente transferidos a .NET 2.0, así que usaría .NET 3.5 para estos.

¿Cuáles son algunas de las nuevas características que se pueden usar en .NET 2.0 que son específicas de C # 3.0 / 3.5 después de actualizar a Visual Studio 2008? Además, ¿cuáles son algunas de las características que no están disponibles?

Disponible

  • Lambdas
  • Métodos de extensión (al declarar un System.Runtime.CompilerServices.ExtensionAttribute vacío)
  • Propiedades automáticas
  • Iniciales de objetos
  • Inicializadores de colecciones
  • LINQ to Objects (implementando métodos de extensión IEnumerable, ver LinqBridge )

No disponible

  • Árboles de expresión
  • Bibliotecas WPF / Silverlight

Lo cubro en un artículo en mi sitio .

Casi todas las características de C # 3.0 están disponibles cuando se apunta a .NET 2.0. Para los métodos de extensión, necesita definir un atributo adicional. Los árboles de expresión no están disponibles en absoluto. El soporte de las expresiones de consulta se basa en una traducción seguida de las reglas "normales" de C #, por lo que necesitará algo para proporcionar los métodos Select, Where etc. LINQBridge es la implementación estándar de facto "LINQ to Objects in .NET 2.0". Es posible que desee declarar a los delegados en Func y Action delegar familias para facilitar el trabajo con expresiones lambda y luego eliminarlas si / cuando se mueva a .NET 3.5


Los métodos Lambdas y Extension se manejan exclusivamente por el compilador y se pueden usar con el framework .Net 2.0.


Para definir los métodos de extensión, deberá proporcionar la siguiente clase si está orientando .NET 2.0:

namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class | AttributeTargets.Assembly)] sealed class ExtensionAttribute : Attribute { } }


Puede usar la versión de Mono del System.Core que es totalmente compatible con LINQ & Expression Trees. Recopilé su fuente en .net 2.0, y ahora puedo usarlo en mis proyectos .net2.0. Esto es ideal para proyectos que se deben implementar en win2k, donde .net3.5 no está disponible.


Puede usar cualquier característica nueva de C # 3.0 manejada por el compilador emitiendo IL compatible con 2.0 y no hace referencia a ninguno de los nuevos ensamblados de 3.5:

  • Lambdas (utilizado como Func<..> , no Expression<Func<..>> )
  • Métodos de extensión (al declarar un System.Runtime.CompilerServices.ExtensionAttribute vacío)
  • Propiedades automáticas
  • Inicializadores de objetos
  • Inicializadores de colecciones
  • LINQ to Objects (implementando los métodos de extensión IEnumerable <T>, vea LinqBridge )