7
votes

ASP.NET - C # vs vb.net - Les différences indirectes et des choses que vous pourriez ne pas envisager d'être initialement

Je ne suis pas intéressé à commencer une autre "qui a le plus grand membre" vb vs c # débat ( https://stackoverflow.com/questions/158229/what-are-the-pros-fvb-net semble couvrir cela déjà) bien que je suis intéressé par des différences indirectes qui peuvent influencer se développer en un vs l'autre. Tout mon développement commercial .NET était des applications de bureau dans VB jusqu'au 3 derniers mois où j'avais un projet Web et j'ai décidé que c'était une bonne occasion de me forcer à apprendre C #. Au cours de cela, j'ai remarqué quelques différences non techniques:

  • beaucoup plus mature des applications open source et des exemples approfondis sont disponibles en C # que pour VB.

  • Les fournisseurs tiers des add-ins pour des choses comme le refactoring et la documentation ont tendance à prendre en charge C # mieux que VB (le tout), avec le support VB pour des caractéristiques similaires à partir de versions C # comparables souvent à la traîne ou à l'absence.

  • Les emplois ASP.NET ciblant C # semblent payer environ 15 à 20% de plus en moyenne que des emplois autrement identiques à VB (au moins en Australie, à la recherche sur Ceeck.com.au et CareerOne.com.au pour référence ).

    Le saut à ASP.NET, MVC et C # ont présenté beaucoup de bosses de vitesse à la fois, mais je pense que ça vaut la peine. La décision que je dois faire est maintenant de savoir s'il faut mettre davantage d'énergie dans la poursuite de C # pour le futur développement .NET ou si je pouvais aussi bien rester à VB. Y a-t-il d'autres points de différence entre la langue (autre que les comparaisons de caractéristiques de langue directe déjà couvertes) que l'on devrait examiner dans ce cas?


3 commentaires

Par "plus grand membre" fais-vous référence à la méthode, à la propriété, à l'événement, au champ ou à une autre?


Quelle est la question ici, encore une fois?


La question est "Je crois que c # est une bonne compétence à apprendre pour des raisons de carrière, pour les raisons non techniques que j'ai énoncées dans la question. J'ai-je raison, étant donné mon expérience indiquée?" C'est une belle question.


6 Réponses :


1
votes

Je suis d'accord avec vos points, en particulier le premier. J'ajouterais que cela semble qu'il y ait plus de développeurs C # que vb.net. Si vous souhaitez embaucher un autre développeur, vous pouvez obtenir plus (quantité ou qualité) à partir du pool C #. Et les employeurs, percevoir que c # est plus populaire, ira dans cette direction, et il y aura plus de demande de programmeurs C # (d'où les salaires / tarifs plus élevés que vous avez remarqués)



4
votes

Je trouve que vs fait plus d'achèvement automatique de code pour vb que c #.

Il est très utile de connaître à la fois les langues et je suis personnellement à mieux familiariser avec C # afin que je suis à l'aise de postuler à des emplois C # qui doivent tripler mes options.


4 commentaires

Bon point. L'une des choses les plus frustrantes sur le passage à C # est le nombre de choses vb prise en charge pendant que vous codez, ce que c # ne présente pas un cycle "Code-Compile-Compile-FindError-Fix-Repeect".


L'utilisation d'un outil comme Restomer peut fournir une assistance de type AS-You-You-You, tout en apprenant C #.


Après de nombreuses tentatives infructueuses d'intégration de programmes tels que Codérush dans mon flux de travail, Resharper m'a enfin gagné. Belle recommandation.


J'aime la caractéristique de la compilation du sol de VB. Quelque chose qui manquait de c #. Vs 2008 SP1 l'a introduit pour C #. Mais manque toujours par rapport à la caractéristique de la compilation au sol de VB



2
votes

Une chose qui a été largement énoncée lorsque j'ai participé à l'embauche (à la fois en tant que responsable de l'embauche, ainsi qu'un candidat), c'est que C # et Java sont suffisamment proches que la conversion d'un candidat de l'une à l'autre est assez facile, et que ce n'est pas vrai pour un candidat VB.NET à C # ou Java. Cette déclaration a même été étendue à C ++, en disant une formation d'un développeur C # ou Java (au code de C ++) est plus facile qu'un développeur VB.NET.

Bien que j'ai tendance à être en désaccord (je pense que c'est plus sur la façon dont la personne voit la programmation en général) Je sais que plusieurs entreprises grandes et réputées accepteront les candidats aux emplois C # ou Java qui répertorient l'expérience C ++, C # ou Java. Ces mêmes entreprises ne rechercheront généralement pas les candidats qui n'écoutent que VB.NET ou List VB.net comme langue principale.


2 commentaires

Pouvez-vous énumérer ces entreprises afin que nous puissions les éviter? On dirait que leurs réputations ne sont pas desservées.


Son une raison pour laquelle j'encourage les gens à énumérer leurs langues dans une section (C, C ++, Java, VB.NET) sans expérience d'expérience et énumérer leur expérience dans une autre section (projets, etc.). De nombreuses entreprises utilisent des ressources humaines pour traiter les curriculum vitae avant que les recruteurs ne les obtiennent et que le «filtre» est à la recherche de choses spécifiques (c'est-à-dire une expérience C, etc.). Un recruteur peut connaître l'expérience est transférable mais la personne de filtrage (HR, la société externalisée, etc.).



4
votes

2 commentaires

+1 C'est une contrepartie, bien que Microsoft ait revendiqué (à nouveau) que vb.net recevra un statut égal avec C # à l'avenir.


VB en profondeur serait environ deux fois plus grand. VB, à partir d'une syntaxe et d'un point de vue du compilateur, est une langue beaucoup plus sophistiquée.



2
votes

Spécifiquement pour le développement Web, de devenir maîtrise en C # rédigé JavaScript (et de faire des choses complexes à l'aide de jQuery) beaucoup plus facile car la syntaxe est si similaire.


3 commentaires

Outre == et l'utilisation d'accolades, C # et JavaScript ne ressemblent à rien.


Je n'ai pas dit qu'ils étaient identiques ou même proches ... Juste que la syntaxe est similaire. Par exemple, des accolades, des semi-couches, une logique de l'opérateur, si des instructions, des cas de commutation, etc. Il est beaucoup plus facile de passer d'avant en arrière entre JS / C # vs JS / VB.


Dire C # et JS ne sont rien de même ignorant, pédant et les deux. Je pense que c'est une réponse parfaitement valide.



-1
votes

Je sais que c'est un ancien poste, mais j'aimerais ajouter un autre facteur: toutes les nouvelles choses sont effectuées en C # en premier. Cela vient de mes expériences avec le développement rapide du WPF. tous les les exemples où en C # et que nous travaillions dans vb.net. Il a juste pris du temps supplémentaire pour traduire. Un autre exemple est Lambdas, initialement, vous pouvez utiliser des expressions (ligne unique) ou des instructions (multiligne) dans C #, mais uniquement des expressions dans vb.net.
Lorsque .NET a été lancé pour la première fois, je pense qu'il y avait beaucoup de gens de VB6 qui n'ont pas vraiment obtenir net et que c'était un animal tout entier différent. Je pense que ces personnes étaient partiellement responsables des perceptions négatives de VB.NET. Mais c'était il y a 10 ans maintenant et plus un facteur.


0 commentaires