2008-10-27 8 views
5

J'essaie de me mettre à jour sur C#, n'ayant jamais développé pour ça auparavant. Dans une question précédente, j'ai posé des questions sur les bons sites de critiques de livres, et à travers cela, j'ai trouvé une critique très positive (orientée débutant) pour "Essential C#" mais c'était pour une édition précédente.Quelle version de C# (et .Net) devrais-je commencer?

Même si je suis sûr que ce sera encore un bon livre, même si la qualité est tombé entre les versions, il soulève une question intéressante pour moi:

Lorsque vous commencez une nouvelle langue, est-il préférable de commencer par la dernière version (par exemple C# 3.0/.Net 3.5) ou devrais-je revenir en arrière une version ou deux et essayer d'apprendre ce qui a été ajouté à la langue par la suite? Le premier semble meilleur du point de vue d'être à jour immédiatement, mais le dernier semble plus pragmatique en ce sens qu'il est probablement plus probable qu'un magasin utilisera une version légèrement plus ancienne de la langue.

Répondre

7

Commencez avec la dernière. Si vous devez travailler avec le code construit sur une version antérieure, vous pouvez apprendre les différences entre la version X et Y. Version

16

Je vous suggère de commencer un projet avec la dernière. Vous n'avez pas nécessairement besoin d'apprendre toutes les améliorations les plus récentes, mais elles seront facilement disponibles lorsque vous serez prêt.

3.5 est en fait le framework 2.0, avec 'ajouts'.

Si vous êtes en train de travailler sur les échantillons, devrait fonctionner au plus tard. Ensuite, comme vous êtes à l'aise, vous pouvez rechercher des zones à améliorer en utilisant la dernière version. PAR EXEMPLE. Peut-être qu'une boucle avec des IF imbriqués pourrait être améliorée pour utiliser LINQ.

+0

J'ai rencontré des problèmes lors de l'utilisation de LINQ avec des applications 2.0 Je crois que certaines parties des assemblages LINQ sont compilées par rapport à 3.5 (par exemple LINQ2SQL). Donc, vous pourriez aussi bien programmer en 3.5 MAIS cibler le framework 2.0 en premier. – chakrit

+0

chakrit, je suis respectueusement en désaccord avec cela. Si un nouvel utilisateur tombe par hasard sur un exemple de code LINQ, il ne fonctionnera pas lors du ciblage de la version 2.0. –

4

.NET Framework 3.0 et 3.5 sont basées sur 2,0, donc je dirais que vous êtes mieux de se concentrer sur 2.0 fonctionnalités et puis ajoutez 3.0 et 3.5 des choses que vous allez.

Assurez-vous d'éviter quoi que ce soit avant 2.0 parce qu'ils ont cassé en arrière avec la version 2.0 compatibilité.

2

Optez pour .NET 3.5 et C# 3.0. Faire autrement vous commence juste plus loin derrière. De plus, les fonctionnalités de base sont les mêmes d'une version à l'autre. Mais, quand vous êtes prêt pour LINQ, par exemple, il est là prêt pour vous!

2

Je vais répondre à votre question en vous posant une question.

Préférez-vous travailler dans une entreprise qui utilise la dernière version de C# /. Net ou une entreprise qui utilise une version plus ancienne?

3

Commencez avec la dernière.

Il existe des goodies dans les versions ultérieures qui ne sont pas dans la version 1.0. Vous ne voulez pas commencer à "mauvaises" habitudes d'utilisation de solutions de contournement qui sont corrigés dans la dernière version.

1

Pour répondre à votre question d'adoption, étant donné que le passage de la version 2.0 à la version 3.5 n'est pas prohibitif pour de nombreux magasins de logiciels, je commencerais par le 3.5. Vous connaîtrez implicitement 2.0, bien que peut-être certains des idiomes auront changé.

0

Si vous faites un travail de contrat indépendant, je pense que l'apprentissage de la vieilleries est mieux. Le must du code que vous allez toucher sera vieux. Si vous êtes employé et que vous devez utiliser la langue pour créer une nouvelle application ou que vous le faites juste pour le plaisir, alors je choisirais le dernier et le meilleur.

1

Apprenez la dernière, absolument. Pourquoi, par exemple, voudriez-vous prendre l'habitude d'utiliser des conteneurs C# pré-génériques, et ensuite désapprendre cela? Lire sur les anciennes choses que vous rencontrez dans l'ancien code.

3

En savoir plus tard - mais essayez de vous assurer que vous êtes le roc solide sur les caractéristiques linguistiques de C# 1 et 2 plutôt que d'apprendre les trucs cool de C# 3. En dehors de toute autre chose, vous allez toujours voir C# 1 droit dans de nombreux emplois de maintenance. Il est intéressant de savoir comment les différentes fonctionnalités sont implémentées - en C# 2, les types NULL et les génériques requis sont les changements CLR, mais le reste (les blocs d'itérateur, les méthodes anonymes, les types partiels etc.) ne sont que du compilateur magique. En C# 3 c'est tout la magie du compilateur (avec le support de framework pour LINQ etc). Vous devriez vraiment comprendre les fondamentaux en termes CLR (qu'est-ce qu'un struct? Qu'est-ce qu'une classe?) Et CLR via C# est une excellente façon d'apprendre cela. Concentrez-vous sur les technologies de base (types System. *, IO, collections, etc.) avant de vous soucier de ASP.NET, WinForms, WPF, etc. J'inclurais LINQ to Objects comme une API "core" mais pas LINQ to SQL, par exemple. J'ai un numéro Essential C# sur ma liste de lecture à un moment donné (à des fins d'examen) - J'ai fait un rapide coup d'œil à ce qu'il offre, et il semble solide et minutieux.

Questions connexes