2010-04-11 18 views
11

Tengo más de 6 años de experiencia en C/C++. Mañana comienza una tarea universitaria donde tendré que usar C#. Por lo tanto, me gustaría tener una lista de enlaces/recursos que consideres importantes o un extenso tutorial, en resumen, todo lo que consideres digno.Introducción a C# para usuarios de C/C++

Codificación estilo, mejores prácticas, ...

(no sé nada específico sobre el medio ambiente C# que utilizaré (IDE, OS, w/e), la primera reunión es mañana por la noche) .

(nunca he codificado C# antes)

Una cosa más: me gustaría trabajar utilizando Linux (Kubuntu 10.4). IDE/environment/tutorial sugerencias sobre Linux específicamente son bienvenidos.

Gracias por su ayuda!

+7

Honestamente, no me preocuparía demasiado al respecto. Tendrá que olvidarse de la mayor parte de lo que sabe sobre la gestión de la memoria, pero será muy fácil de aprender. C# no es particularmente difícil de aprender, especialmente si ya tienes experiencia en programación. Los genéricos pueden tomar un pase o dos, pero incluso son bastante simples. Las Colecciones genéricas están a punto de ser tu nuevo mejor amigo. –

+0

bueno escuchar. :) gracias –

+0

(nunca he codificado C# antes) -> es realmente una declaración fuerte. Yo mismo tuve el mismo miedo antes de pasar de incrustado a C#. Usé un C# para libros tontos esa vez. Simple como dice el libro. : D – Hanseh

Respuesta

1

No es básicamente un editor de C# que es utilizado por supongo que el 80% de los desarrolladores # C, Visual Studio.

Comience la descarga comprando/descargando. Usted tiene la edición express, que es gratuita y está destinada para uso personal. Es solo un IDE simple sin nada de lujoso. Si tiene dinero para gastar (o puede obtenerlo a través de la universidad), busque una versión más avanzada de VS, como un sistema profesional o de equipo. Ambos incluyen diseñadores de formularios y capacidades mucho más avanzadas.

Mucho para el IDE.

Supongo que si pasa de C++ a C#, el mayor "problema" será utilizar la funcionalidad existente en .NET Framework en lugar de hacerlo usted mismo. Esto es lo que veo a menudo cuando las personas van desde C++ (incluso con impulso) hasta .net. El marco es tan grande y contiene casi todo, por lo que cada vez que te encuentres escribiendo algo aux. clase que no es específica del dominio, busque en el manual si algo como eso no existe. Las probabilidades son que están en el marco.

Y, por último, aprende a usar lambda, ¡vas a disfrutarlos tanto! Esa es la única cosa significativa que C++ no admite en sí misma. Todas las extensiones como boost que agregan lambda son tan complicadas y distan de ser elegantes que por lo general no vale la pena usarlas.

+0

Creo que el 80% es demasiado bajo. ':)' Sigo en segundo lugar la afirmación sobre primero mirando el marco. (Lambdas, por cierto, formará parte de C++ 11). – sbi

1

Me gustaría empezar con dos libros:

  1. "C# en una cáscara de nuez", O'Reilly (última edición cubre C# 4).
  2. "Marco de Directrices de diseño: Convenciones, modismos y Patrones para .NET reutilizables Bibliotecas, Segunda Edición", AW

Un rastro a 30 días de Safari Books Online le dará acceso a ambos hasta que decida si suite usted).

Con todo el foco en el n. ° 1 inicialmente.

Cuando aprendí C# 1 (mientras que .NET 1.0 en unas pocas horas con "C Essentials" Necesité algo para mostrar, ya sea la sintaxis y la semántica, que ya sabía cómo programar.

+0

Eres un pensador de audio como yo eh :) "como ya soy nuevo sobre cómo programar". Gracias por la pista. Lamentablemente, estos libros son bastante caros. Las pistas eran conseguirlas más baratas (excepto la biblioteca). –

+1

@Ronny: "C# Essentials", un compañero de trabajo bien informado, y SO es todo lo que he tenido desde (casi 20 años de) C++ a C#. Eso debería ser suficiente. Consulte aquí: http://books.google.de/books?id=pbzW8VGuqrIC&printsec=frontcover&hl=en&source=gbs_v2_summary_r&cad=0. – sbi

+0

@Ronny: más un caso de tipeo rápido. – Richard

0

Si usted puede escribir C++, C# puede escribir con muy poco esfuerzo. Pero el lenguaje C# es una parte muy pequeña de ser un desarrollador de .NET, es la experiencia con .NET Framework que perderá durante un tiempo. Y la Base Class Library tiene un núcleo común pequeño y varios toolkits casi totalmente distintos (WinForms, ASP.NET, WPF, WSDL + WCF, Workflow Foundation), es posible que un desarrollador con mucha experiencia de C# no sepa casi nada de varias de estas especialidades .

Hasta que descubra cuál es su tarea, no sabremos con cuál de estas áreas necesita familiarizarse y no puede dar muchos consejos.

Probablemente le resulte útil consultar la "API administrada alternativa" en pinvoke.net para todo tipo de funciones nativas de Windows.

+0

¿razón por qué votar a la baja? –

+0

No voté en contra. el párrafo superior es bla total. No sé pinvoke, por lo tanto no tengo ningún comentario al respecto. –

+0

Reescribió el primer párrafo porque no fue del todo sucinto. Gracias por la respuesta. pinvoke.net es más útil cuando conoces las antiguas API, ya sea que estés buscando una forma de usarlas desde dentro de .NET (P/Invoke) o buscando la forma canónica de .NET para hacer cosas que también se enumeran para la mayoría de las funciones. –