7
votes

Pourquoi devrais-je passer à C # 4.0?

Je sais qu'il y a de bonnes nouvelles fonctionnalités en C # 4.0 mais je ne peux pas, pour la vie de moi, pensez à une raison convaincante de la modernisation des projets existants ou de passer à de nouveaux projets.

J'ai vu des postes où les gens ont dit que si leur service d'hébergement n'a pas fourni .net 4 qu'ils trouvaient un autre fournisseur comme .net 4 était Pinicle à leur direction .

Maintenant, mon patron essaie de me faire accepter d'activer tous nos environnements de production au C # 4 et de le faire maintenant.

La question est donc que quelqu'un a commencé à utiliser ou converti un projet en C # 4 pour une raison convaincante? Y a-t-il eu une caractéristique que vous venez d'avoir qui rendrait votre vie tellement plus facile?


10 commentaires

Si vous n'avez pas besoin de l'une des fonctionnalités 4.0 a à offrir, il n'y a aucune bonne raison de mettre à niveau. Il n'y a pas non plus que "le faire maintenant". Il n'y a que "commencer maintenant" jusqu'à ce que vous ayez défini ce que signifie "fait". Faites-lui de justifier ce qu'il veut accomplir avec cette conversion.


@Chris, c'est nouveau et c'est brillant si clairement qu'il doit être meilleur. au moins c'est comme ça qu'il le voit


Avez-vous vérifié les nouvelles fonctionnalités disponibles dans .NET 4.0 et C # 4.0? La liste est assez impressionnante et vous trouverez des améliorations pour presque tous les types de projet: MSDN .microsoft.com / fr-US / US / Bibliothèque / MS171868.aspx et msdn.microsoft.com/en-us/library/bb383815.aspx . Que cela justifie que le coût d'une migration est à votre patron, je suppose.


-1, vous devriez au moins avoir donné une description de vos applications. Comme il se tient, c'est bien de large, à peine une vraie question.


Je serais assez heureux si mes employeurs nous poussent à utiliser les dernières technologies. La plupart du temps, ils préfèrent les développeurs pour le garder simple. La technologie émerge qui vous permettra de faire votre travail plus efficacement et que cela ne peut être qu'une bonne chose pour la productivité et les coûts. Si vous avez aussi vos mains sur certaines nouvelles fonctions funky ... alors qu'est-ce qu'il y a à se plaindre?


Mon problème est que nous avons des systèmes de production qui fonctionnent. Nous ne savons pas vraiment ce que la mise à niveau leur fera de la mise à niveau et que nous sommes trop occupés à enquêter. il désinstalle maintenant 2008 sur son ordinateur portable alors je suppose que la question est un peu muet


@griegs - Je suppose que vous vouliez dire Mott ?


Un peu mais je suis également dit de me taire et de le faire! C'est un peu frappé!


@griegs - Je devais juste rire un peu! Ils veulent que leur forum technique soit fermée et ne pas analyser les avantages et les inconvénients de passer à une technologie particulière?


Ça cherche ainsi ouais. Je ne comprends pas la raison derrière la vitesse


12 Réponses :


0
votes

Si vous pouvez obtenir votre patron de faire apparaître 10 000 $ + Visual Studio Edition ultime, IntelliTrace est une raison impérieuse de mettre à jour votre environnement et votre justification suffisamment d'investissement.


6 commentaires

Il convient de noter que nous sommes une petite start-up et "l'argent est trop serré pour mentionner".


... alors votre patron pourrait ne pas vouloir ne pas gaspiller de l'argent sur de nouveaux logiciels lorsque l'ancien fonctionne très bien! :)


C'est exactement ma pensée aussi mais les gens l'ont fait et ils doivent avoir une raison autre que l'adoption précoce


J'aimerais souligner que IntelliTrace peut être utilisé sans moderniser les projets au C # 4. La décision de mettre à niveau Visual Studio est différente de la mise à niveau de tous les attirés au C # 4.


Votre entreprise est-elle éligible au programme BizSpark de Microsoft? Si tel est le cas, vous pouvez obtenir gratuitement MSDN (et donc vs). Sinon, il y a toujours les éditions express (bien sûr, n'ont pas besoin de rien comme des tests d'unité / l'intégration de la commande source, etc.).


Nous nous sommes qualifiés pour webstiespark qui est génial, donc maintenant nous avons vs 2010 Prof.



0
votes

Com est beaucoup plus facile avec le dynamique DataType et en option paramètres.


0 commentaires

-1
votes

Il n'y a pas de raisonnement stabilité ou de sécurité de basculer. Ne devrait-il pas être la préoccupation de votre patron?


1 commentaires

Peut-être que le patron est un peu plus en pensant que le compteur de haricot moyen.



5
votes

1 commentaires

collections.concurrent et les mises à niveau sur L2SQL et (surtout) L2EF sont mes principales raisons



1
votes

Si vous commencez un nouveau projet aujourd'hui, il est probablement préférable de la démarrer sur 4,0, car dans la route, vous devrez la migrer à un moment donné (en supposant qu'il reste assez longtemps, des versions plus anciennes de .NET arrêtez-vous simplement d'être pris en charge).

c # 4 implique d'autres choses .. Selon votre projet ... WCF 4, WPF 4, ASP.NET 4, MVC 2, Cadre d'entité 2, etc. Donc, ne vient pas simplement regarder C # comme la raison de Changer, vous devez également regarder toute la pile. S'il n'y a toujours rien de convaincant, alors restez là où vous êtes probablement un choix judicieux.


1 commentaires

MEF hors de la boîte n'est pas mauvaise, non plus :)



12
votes

Il y a un certain cool Nouvelles fonctionnalités en C # 4.0 :

  • Recherche de membre dynamique
  • Paramètres de type générique Covariant et Contravariant
  • Mot-clé facultatif Réf. En utilisant Com
  • Paramètres facultatifs et arguments nommés
  • Propriétés indexées

    dans son blog de libération post Scott Guthrie passe en détail sur le Caractéristiques de .NET 4 en général . Une autre excellente ressource est un livre blanc à http://www.asp.net/learn/witepapers/ aspnet4 . Cependant, je doute que vous alliez Besoin One / Toute de ces nouvelles fonctionnalités tout de suite. Comme Scott Hanselman blogué :

    Il y a beaucoup de choses qui sont nouvelles et ajouté à .NET 4, mais pas dans ce "SUPPROSIMENT-I-I-BESOIN-BESOIN-TO-REMEARN-TOUT" manière.

    Si vous devriez ou non la mise à niveau est donc dépendante de divers autres facteurs. Quelques raisons qui vont à l'esprit:

    • Normaliser votre environnement de développement sur une plate-forme unique VS2010 sur VS2008.
    • La taille de la framework .NET est sensiblement réduite
    • Améliorations de la vitesse Si vous êtes un outil de studio visuel pour le développeur de bureau

      Un dialogue ouvert avec votre responsable semble approprié de comprendre son raisonnement pour la mise à niveau. Je dirais que parce que c'est brillant n'est pas une raison impérieuse.

      comme référence cette question de dépassement de la pile datée " Pourquoi ne pas mettre à niveau vers Le dernier .NET Framework "fournit l'inverse à votre question.


2 commentaires

Je crois que les articles 2-3 peuvent être atteints ciblant 3,5 avec le compilateur 4.0 également (VS2010).


Après avoir lu «propriétés indexées» ci-dessus, je me suis précipité à mon VS2010 pour essayer cette nouvelle fonctionnalité. Cependant, bien que les propriétés indexées puissent être consommées (il est possible d'accéder à une propriété indexée à l'aide de la syntaxe du support), la langue n'offre pas la possibilité de créer des propriétés indexées. Cette fonctionnalité n'a donc été ajoutée que pour améliorer la syntaxe de Com Interop.



3
votes

Votre question est-elle spécifique à C # 4.0 ou .NET 4.0?

en C # 4.0 Il n'y a que quelques nouvelles fonctionnalités de très bonnes fonctionnalités. Covariance / Contravariance n'est pas utile tout le temps, mais lorsque vous avez besoin de la nécessité, cela peut vraiment économiser beaucoup de douleur. Les paramètres de la méthode facultative peuvent réduire beaucoup de remplacement de la méthode laid de la méthode et de rendre certains appels de méthode beaucoup plus propre. Si vous utilisez COM ou IRACYPYTHON ou n'importe lequel de quelques-uns cadres similaires, le mot clé dynamique peut également être un véritable vie de sauvetage.

.NET 4.0 en général a une tonne de caractéristiques vraiment intéressantes sur une variété de cadres. Un soutien essentiel étranger à Linq aux entités, par exemple, rend la vie beaucoup plus facile pour nous. Beaucoup de gens sont vraiment excités par le soutien de POCO. Ils ont également ajouté une prise en charge de certaines des méthodes LINQ (par exemple distinctes ) qui ont déjà été manquées dans la structure de l'entité.

Cela va donc vraiment à ébullition à quels cadres que vous utilisez et comment vous les utilisez, et à quel point il sera cher pour vous de faire le commutateur.


0 commentaires

1
votes

Si vous faites du WPF / Silverlight, je recommanderais certainement une mise à niveau vers Visual Studio 2010 (je sais, vous pouvez écrire .NET 4.0 Code sans IDE, mais c'est un cas de bord si jamais il y en avait un).

Le support multi-moniteur est nifté mais buggy. Je passe beaucoup de temps à essayer d'obtenir Windows à rafraîchir.

En termes de langage, le com Interop (comme @gvs mentionné) est également considérablement amélioré avec le type de données dynamique et les paramètres facultatifs.

Mise à jour: Prise en charge de plusieurs moniteurs multiples est jolie roche solide avec VS 2010 SP1 .


0 commentaires

2
votes

Premier, qu'est-ce qui est convaincant pour moi ne veut rien dire pour vous. Cela dit, je mettrais à jour Visual Studio si le budget le permet. En fait, personnellement, je pense qu'il y a un risque de carrière énorme pour rester avec une entreprise qui ne conserve pas vos outils à jour. Vous tomberez dans votre connaissance du terrain sans accès aux derniers outils.

Quant à la conversion de tous vos projets, pour les convertir, il semble que la folie me ressemble. Mettez de côté toute la distribution de travail supplémentaire (et la mise à niveau des machines pour avoir .NET 4), vous devez considérer la chance que vous ayez quelque chose qui va mal. (Et si vous êtes comme moi, certaines choses doivent être appelées à partir de programmes tiers à l'aide de .NET 3.5, ce qui les permet de convertir.)

Ma première règle serait que rien n'est converti, sauf si vous y travailliez de toute façon. Mais je chercherais sérieusement à convertir tout ce qui pourrait être utilisé d'une amélioration du code parallèle ou de com.

J'ai un projet convaincant qui a été converti. J'ai eu une longue méthode Web en cours d'exécution appelée. Dans la version qui existe maintenant, je reviens de la méthode sans connaître les résultats. Au lieu de cela, j'ai donné à l'utilisateur une façon de vérifier plus tard. En passant à une boucle parallèle à la boucle, cela fonctionne beaucoup mieux et je peux laisser l'utilisateur savoir s'il y avait des erreurs.

Le même projet est également converti pour utiliser les services RIA qui ont grandement amélioré et réduisant le montant de mon propre code.


0 commentaires

2
votes

J'ai mis à niveau pour la même raison que tout le monde a fait.

... pour que je puisse le mettre sur mon CV:)


0 commentaires

5
votes

0 commentaires

0
votes

Pour moi, il y a deux choses:

  1. Arguments optionnels - parce que je suis malade de classes polluantes avec des versions x de la même méthode (surcharge)
  2. Mot-clé dynamique - parce que l'expressivité des génériques en C # est une blague, de cette façon, je peux au moins "écrire ce que je veux dire" sans cerceaux, bien sûr avec une pénalité de vitesse d'exécution

    Plus le code est compact (c.-à-d. Si vous exprimez l'idée sans addition "OH, comment éviter la limitation y de la langue"), mieux c'est, car le code est beaucoup plus facile à maintenir et il est plus difficile de faire un stupide (ou pire) erreur.


0 commentaires