c# .net .net-3.5 .net-2.0

c# - Convencerme de moverme a.net 3.5(desde 2.0)



.net-3.5 .net-2.0 (20)

Estoy en el desarrollo de nuevas aplicaciones de escritorio. Me siento como en casa con .NET 2.0 y c #. Supongo que no necesito linq, ni me preocupo por WPF y otras palabras clave de lujo Vista-oid. También me gusta bastante apretado y delgado 2.0 redistribuible, aún más por la razón es Vista y 7 incluidos.

¿Por qué cambiar a 3.5?


¿No debería ser la solicitud realmente "Convencer a mis usuarios / clientes de pasar de .NET 2.0 a 3.5"

No dijiste si estás escribiendo el código para un cliente / usuario o simplemente como un pasatiempo. Si es lo último, entonces sí, se trata de convencerte.

De lo contrario, no puedo ver a su cliente realmente emocionado de que pueda usar Linq en su código, a menos que le permita hacer las cosas sustancialmente más rápido y más confiable que antes.

Por supuesto, si usted es un desarrollador con experiencia en 2.0, lo más probable es que ya sea muy eficiente, incluso sin lambdas, sintaxis de consulta, etc. Sin duda, brindarán algunas mejoras, pero probablemente no lo suficiente como para emocionar a su cliente.

Ahora, si su cliente acude a usted y le dice: Quiero que mi nueva aplicación de escritorio tenga una GUI como una de esas páginas web con animaciones elegantes, etc., entonces es obvio. Debería considerar seriamente ir a .NET 3.0 / 3.5 para Windows Presentation Foundation, etc.

En resumen, si existe una razón real y tangible para usar tecnologías más nuevas, hágalo, de lo contrario, a menudo es costoso ponerse al día con una nueva plataforma / entorno sin un beneficio directo.


¿Qué tan atrás estás dispuesto a estar? .NET 4 llegará pronto. La computación en la nube (a través de Azure o incluso Live Mesh) es la próxima ola, por lo que probablemente querrá estar listo para la conectividad de la red al conocer WCF.

Si no quieres aprender cosas nuevas, aún podrás crear algunas buenas aplicaciones de escritorio con 2.0. Pero parte de ser un desarrollador es entender lo que viene después. Incluso si no elige apuntar a una versión posterior del marco, al menos debería dedicar algo de tiempo a aprender un poco de LINQ, WPF y WCF para que sepa cuál es su poder. Entonces, cuando necesite algo que solo esté disponible en una versión posterior del marco, sabrá por qué lo está utilizando y también podrá justificar la descarga del marco a sus clientes.


C # 3.0 tiene algunas características realmente interesantes, como propiedades automáticas y inicializadores de colección, que limpian realmente su código. Linq también es genial cuando se trata de colecciones, las expresiones Lambda también son geniales.

.NET 3.5 también está incluido en Windows 7.

La pregunta es: ¿por qué no?


Conozco a varias personas que se sienten como en casa con C, ensamblaje 8086, APL, tarjetas perforadas e interruptores de palanca delanteros (no es broma). Te dan las mismas razones que tú.

¿Le aconsejaría a un programador de ensamblaje que pruebe C # 2.0? Si es así, quizás deberías probar C # 3.5 por las mismas razones. De lo contrario, siga disfrutando de C # 2.0 y sepa que la gente lo verá pronto, de la misma manera que vemos a los programadores de ensamblajes hoy. :-)

C # 3.5 es mucho mejor para permitirte construir abstracciones de mayor nivel que C # 2.0, al igual que C # 2.0 es mejor en esto que C y C que ensamblar. Después de todo, ¿no es por eso que programamos en HLL en primer lugar?


Debido al perfil de cliente .NET 3.51, que tiene un tamaño de tiempo de ejecución comparable al de .net 2.0!


Las características que más utilizo son:

  • LINQ
  • Metodos de extension
  • Propiedades automáticas

Si no has usado LINQ y lo intentas, creo que encontrarás que (puede ser) una herramienta muy poderosa.



Me gustaría actualizar sólo para lambdas!

SaveButton.Click += new EventHandler((sender, e) => this.Save());


No lo convenceré de pasar a la versión 3.5, si está creando aplicaciones de escritorio para una audiencia a la que le resultará engorroso actualizar (por ejemplo, los usuarios de pre-Vista en conexiones de ancho de banda lento). Después de todo el cliente es lo primero.

Como lo mencionaron varios otros, puede usar muchas características nuevas del compilador de C #, incluso si se dirige a 2.0 (por ejemplo, inicializadores de objetos, propiedades automáticas), verifique esto para obtener más detalles. Además, también puede usar LINQ en 2.0, usando la biblioteca LinqBridge , que es muy pequeña y se puede distribuir con su aplicación (esto es Linq to Objects, no Linq to SQL)


Para ser honesto, al leer la mayoría de las respuestas, las razones que dan están relacionadas principalmente con las mejoras del lenguaje. Pero si no tiene necesidad de eso, estaría tentado a seguir con 2.0 por la razón que usted indica, es decir. Amplia accesibilidad, y evitar la pesadilla de compatibilidad de plataforma que hemos tenido aquí ...


Parece que cada aplicación necesita comunicarse con otras aplicaciones ahora. Asi que,

  • WCF

Habiendo escrito una biblioteca de comunicación TCP en el pasado, me hubiera emocionado, me hubiera encantado, me hubiera encantado y me hubiera encantado que hubiera podido ahorrar esos meses al pasar 1 día con WCF.


Pasar de .NET 2.0 a .NET 3.5 ni siquiera debería ser una consideración. Aquí hay algunas razones de por qué.

  • .NET 3.5 es totalmente compatible con .NET 2.0, ya que está construido en el mismo núcleo. 3.0 y 3.5 son simplemente extensiones a 2.0.
  • LINQ - Puedes usar Linq incluso sin usar bases de datos. Cambia cada cosa. Esta característica por sí sola bien vale la pena.
  • Expresiones Lambda: potentes capacidades de búsqueda dentro de la colección. Relacionado con LINQ.
  • Métodos anónimos: creó mthods sin definirlos completamente.
  • Tipos anónimos
  • Windows Workflow Foundation - Crea flujos de trabajo.
  • Windows Presentation Foundation: reemplaza los formularios Windows heredados, aunque todavía puede usarse con WinForms existentes.
  • Silverlight: versión reducida de WPF para aplicaciones web. Analagous a flash.
  • Windows Communication Foundation: reemplaza las piezas tradicionales de servicios remotos y web con una infraestructura mucho más robusta
  • Para Desarrollo Web - ASP.NET MVC Framework - BEST !!!!

Sin .NET 3.5, te estás perdiendo mucho. Seriamente. Haz el salto. Estaras contento de haberlo hecho.


Si a menudo usa repetidores en Asp.Net como controles, el control ListView es mucho más limpio y más fácil de trabajar con una alternativa disponible para asp.net 3.5.

También uso el módulo de enrutamiento de MVC de vez en cuando y lo encuentro mucho mejor para sitios pequeños que algo como la reescritura de URL.


Si está creando o consumiendo servicios web, debe tener en cuenta que Microsoft ahora considera que los servicios web de ASMX son "tecnología heredada". Todo el desarrollo de un nuevo servicio web se debe hacer usando WCF, que no está disponible hasta .NET 3.0, y se vuelve bastante maduro y estable en .NET 3.5.


Si no necesita LINQ, no quiere WPF (o WCF) y no le gusta el uso prolongado de genéricos, la respuesta simple es: ¡no lo haga!

Sin embargo, una vez que haya usado solo una de las características anteriores de 3.5, se preguntará cómo alguna vez lo hizo sin él. La verdadera razón para pasar a la versión 3.5 es obtener el beneficio de estas características.

Entonces, si estás completamente satisfecho con 2.0, y nunca has dicho "Me gustaría poder solo ... xyz", te sugiero que te quedes donde estás.


Si no necesita usar ninguna de las funciones 3.5, no se preocupe, es solo una adición de las nuevas bibliotecas de marcos, el CLR y la CLI no han cambiado, por lo tanto, todo lo que escriba, ya sea utilizando bibliotecas de marcos de La versión 2.0, 3.0 o 3.5 termina como el mismo código IL. Sabiendo esto, si en algún momento en el futuro decide que desea agregar alguna funcionalidad 3.5 a su aplicación, puede hacerlo con el conocimiento de que no habrá problemas de migración (como la actualización de 1.1 a 2.0) como todo lo que necesita. Lo que realmente estamos haciendo es decirle a Visual Studio que "le permita agregar las dlls 3.0 / 3.5" a su proyecto. Por supuesto, tendrá que asegurarse de que sus usuarios tengan instalado .net 3.0 / 3.5.


Supuesto: Estás trabajando con Visual Studio 2005 y .NET 2.0.

Razón # 1 : Vista incluye .NET 3.0 como parte de la instalación del sistema operativo; Windows 7 incluye .NET 3.5

Razón # 2 : hay formas de apuntar a .NET 2.0 usando Visual Studio 2008 (y VS 2010) para que pueda aprovechar los "beneficios" de la productividad de esas herramientas sin abandonar .NET 2.0, y luego pasar a .NET 2+ cuando '' re listo (Visual Studio puede ayudarlo a evitar ensamblados que no sean .NET 2.0 mientras usted codifica)

Razón # 3 : Métodos de extensión, particularmente la clase estática Enumerable . Técnicamente, es una parte de Linq, pero es una buena manera de escribir código de manera clara, clara y de una manera más fácil de mantener.

Razón # 4 : Corrección de errores en el framework .NET 2.0. Recuerde que .NET 3.0 y .NET 3.5 siguen usando el mismo tiempo de ejecución de .NET 2.0 bajo el capó: solo agregan nuevos frameworks / bibliotecas y algunos trucos de compilación. Ha habido un montón de correcciones de errores en el tiempo de ejecución que te estás perdiendo.


Una palabra:

Linq

Una vez que haya realizado una única consulta sobre sus objetos utilizando Linq, nunca volverá. Linq no es solo bases de datos, puede tener cualquier tipo de colección, y si puede expresarse funcionalmente, puede cambiar

foreach (obj in myCollection) { if (obj.property == match) { foundObj = obj; break; } }

a

myCollection.Single(obj => obj.property == match);

EDITOR

var foundobj = (from obj in myCollection where obj.property == match) .Single()

¿Cuál tiene más sentido? ¿Qué pasa cuando desea expresar consultas mucho más complejas como dónde y qué y qué? De eso seleccione las que coincidan con alguna otra propiedad. Puedes hacerlo en dos llamadas a función.

Lo siento por la perorata, pero realmente me gusta Linq.


Una razón para no usar 3.5 es Mono.

La API de Mono hoy está en algún lugar entre .NET 2.0 y .NET 3.5, vea nuestra Hoja de ruta para obtener detalles sobre lo que se implementa.

Tomado de here .

Otra razón es que Winforms no ha avanzado apenas, por lo que puede esperar hasta que salga lo que sea antes de saltar.

Tengo entendido que algunas cosas, como LINQ, se pueden usar bien con .Net 2.0, ya que es solo una biblioteca.


Utilizo 3.5 para mi proyecto principal en este momento, y hay muchas ventajas. LINQ, Entity Framework, WPF (especialmente para enlace de datos), LINQ, métodos de extensión, propiedades automáticas, LINQ, oh y Lambda Expressions (¡son increíbles)! ¿Y mencioné LINQ?

Dicho esto, todavía utilizo .NET 2.0 para proyectos más pequeños donde no hay mucho código ni nada sofisticado, como las utilidades de conversión de archivos o alguna pequeña herramienta que se encuentra en la bandeja para unas pocas tareas.

Siempre uso la versión de marco más baja que pueda, siempre que cumpla todos mis requisitos. Entonces, si es solo una pequeña herramienta, podría ir con 2.0, si quiero una buena interfaz de usuario, uso 3.0, y si tengo muchas cosas de base de datos que hacer, uso 3.5 SP1 con Entity Framework.