2008-10-27 12 views
5

Estoy tratando de ponerme al día con C#, ya que nunca antes lo había desarrollado. En una pregunta anterior, pregunté acerca de los buenos sitios de revisión de libros y, a través de eso, encontré una crítica muy positiva (orientada a principiantes) para "Essential C#" pero fue para una edición anterior.¿Con qué versión de C# (y .Net) debería comenzar?

Aunque estoy seguro de que seguirá siendo un buen libro, aunque la calidad se redujo entre las versiones, se plantea una cuestión interesante para mí:

Al comenzar un nuevo idioma, es que lo mejor es comenzar con el última versión (por ejemplo, C# 3.0/.Net 3.5) o debería volver una o dos versiones y tratar de saber qué se agregó al idioma después?

El primero parece mejor desde el punto de vista de estar actualizado de inmediato, pero este último parece más pragmático en cuanto a que es más probable que una tienda utilice una versión un poco más antigua del lenguaje.

Respuesta

7

Comience con lo último. Si necesita trabajar con el código creado en una versión anterior, puede conocer las diferencias entre la versión X y la versión Y.

16

Le sugiero que inicie un proyecto con la última versión. No necesariamente necesita aprender todas las mejoras más recientes, pero estarán disponibles para usted cuando esté listo.

3.5 es en realidad el marco 2.0, con 'adiciones'.

Además, si está en el proceso de trabajar realmente con las muestras, debería funcionar en el último. Luego, cuando esté cómodo, puede buscar áreas para mejorar con la última versión. P.EJ. Tal vez un lazo con IF anidados podría mejorarse para usar LINQ.

+0

He tenido problemas al usar LINQ con aplicaciones 2.0. Creo que algunas partes de los ensamblajes LINQ se compilan contra 3.5 (por ejemplo, LINQ2SQL). Por lo tanto, también podría programar en 3.5 PERO dirigirse primero al marco 2.0. – chakrit

+0

chakrit, respetuosamente estoy en desacuerdo con eso. Si un nuevo usuario tropieza con un código LINQ de ejemplo, no funcionará cuando se dirija a 2.0. –

4

.NET Framework 3.0 y 3.5 están basados ​​en 2.0, así que diría que es mejor que se concentre en las características 2.0 y luego agregue cosas 3.0 y 3.5 sobre la marcha.

Solo asegúrate de evitar cualquier cosa antes de 2.0 porque rompieron la compatibilidad con la versión 2.0.

2

Vaya con .NET 3.5 y C# 3.0. Hacer lo contrario solo te inicia más atrás. Además, las instalaciones centrales son las mismas en todas las versiones. Pero, cuando estás listo para LINQ, por ejemplo, ¡está listo para ti!

2

Voy a responder a su pregunta haciéndole una pregunta.

¿Preferiría trabajar en una empresa que utiliza la última versión de C# /. Net o una empresa que utiliza una versión anterior?

3

Comience con lo último.

Hay algunas cosas buenas en las versiones posteriores que no están en 1.0. No desea comenzar hábitos "malos" de utilizar soluciones temporales que se solucionan en la última versión.

1

Para abordar su pregunta de adopción, dado que la transición de la versión 2.0 a la 3.5 no es prohibitivamente dolorosa para muchas tiendas de software, seguiría adelante y comenzaría con 3.5. Implícitamente conocerás 2.0, aunque tal vez algunos de los modismos habrán cambiado.

0

Si trabajas por contrato como autónomo, creo que aprender cosas viejas es mejor. Debe ser antiguo el código que tocará. Si tiene empleo y tiene que usar el idioma para crear una nueva aplicación o si lo hace solo por diversión, entonces elegiría la más reciente y la mejor.

1

Conozca lo último, absolutamente. ¿Por qué, por ejemplo, le gustaría adquirir el hábito de usar contenedores pre-genéricos de C#, y luego tiene que desaprender eso? Lea sobre las cosas más antiguas según lo encuentre en el código anterior.

3

aprender lo último - pero trate de asegurarse de que está roca sólida sobre las características del lenguaje de C# 1 y 2 en lugar de simplemente aprender las cosas interesantes desde C# 3. Aparte de todo lo demás, todavía verá C recto en muchos trabajos de mantenimiento.

Vale la pena conocer cómo se implementan las diferentes características: en C# 2, los tipos anulables y los genéricos requieren cambios CLR, pero el resto (bloques de iteradores, métodos anónimos, tipos parciales, etc.) eran simplemente compiladores mágicos. En C# 3 es todo magia de compilación (con soporte de marco para LINQ, etc.). Realmente debe comprender los fundamentos en términos de CLR (¿qué es una estructura? ¿Qué es una clase?) Y CLR via C# es una excelente forma de aprender esto. Concéntrese en las tecnologías centrales (System. * Types, IO, colecciones, etc.) antes de preocuparse demasiado por ASP.NET, WinForms, WPF, etc. Incluiría LINQ to Objects como una API "core" pero no LINQ to SQL, por ejemplo.

Tengo Essential C# en mi lista de lectura en algún momento (para fines de revisión) - He tenido un rápido vistazo a lo que ofrece, y parece sólido y completo.

Cuestiones relacionadas