Ich bin kürzlich einem neuen Entwicklungsteam beigetreten, in dem die Spracheinstellungen auf der .net-Plattform gemischt sind.
Dev 1: Kennt VB.net, weiß nicht, c #
Dev 2: Kennt VB.net, weiß nicht, c #
Entwickler 3: Kennt C # und VB.net, bevorzugt C #
Entwickler 4: Kennt C # und VB6 (VB.net sollte ziemlich einfach zu erlernen sein), bevorzugt C #
Es scheint mir, dass die Vordenker im .net-Raum fast universell sind. Ich dachte auch, dass einige Tools von Drittanbietern VB.net nicht unterstützen, aber als ich mich damit befasste, fand ich keine guten Beispiele.
Ich würde es vorziehen, das gesamte Team auf c # zu bekommen, aber wenn es keinen guten Grund gibt, das Problem außer den Vorlieben zu erzwingen, dann halte ich das nicht für die richtige Wahl.
Gibt es Gründe, warum ich Leute von VB.net wegführen sollte?
Antworten:
Es gibt keinen wirklich zwingenden Grund, jemanden zum Wechseln der Sprache zu zwingen, es sei denn, eine Funktion wird für Ihr (e) Projekt (e) besonders nützlich oder zeitsparend sein. Sie werden beide bis zu IL kompiliert und führen eine gleichwertige Leistung aus (vorausgesetzt, dies
Option Strict
ist in VB.NET aktiviert ... andernfalls können Sie Strafen für die späte Bindung erheben). Alles andere ist wirklich bevorzugt (das überhaupt nicht abzulehnen, aber es ist keine objektive Metrik).Ich würde vorschlagen, sich Stellenangebote in Ihrer Nähe anzusehen und herauszufinden, welche Sprache sowohl im Arbeitsangebot als auch im Arbeitskräftepool für beide Sprachen am häufigsten vorkommt. Zu sehen, welcher Ihnen einen größeren oder besseren Arbeitskräftepool bietet, wird wahrscheinlich Ihre überzeugendste Messgröße sein.
quelle
Zum Glück ist die Antwort einfach: Es gibt keine "beste" Sprache. Alle .NET-Sprachen verwenden im Stammverzeichnis Funktionen aus den von .NET Framework bereitgestellten Klassen. Daher können Sie alles, was Sie in VB.NET tun können, in C # tun und umgekehrt. Der einzige Unterschied zwischen den Sprachen ist lediglich ein syntaktischer.
C ++ -, Java- und J ++ - Programmierer bevorzugen die unsinnige, knappe Syntax von C #. Visual Basic (VB) -Programmierer halten sich möglicherweise lieber an den Teufel, den sie kennen - Visual Basic .NETs case-insensitiver, pseudo-natürlicher Sprachansatz. Wenn Sie VB-Programmierer haben und diese echte Programmierer sind (siehe Option Strict ON), erhalten Sie die gleichen Ergebnisse. VB ist ausführlicher .... C # ist ein Ballbuster mit Groß- und Kleinschreibung.
quelle
On Error Resume Next
Allein würde mich in Richtung C # laufen lassen. DasModule
Konzept ist auch sehr gefährlich. Es ist ähnlich wiestatic class
in C #, aber ... alles darin ist global zugänglich, ohne Bezug auf die übergeordnete Klasse und automatisch statisch ohne jede andere Angabe ... außer dass die übergeordnete Klasse ein Modul ist ...!Ehrlich gesagt sollte ein Team von Entwicklern dieselbe Sprache sprechen oder zumindest dieselben Sprachen beherrschen.
Dies hilft beim Cross-Training und beim Support für verschiedene Anwendungen, die ein Entwicklerteam erstellt.
Am Ende ist VB vs C # alles ein Kampf der Vorlieben, aber das Team sollte auf der gleichen Seite sein, welche sie verwenden oder unterstützen werden.
quelle
Der Entwickler sollte die .NET-Sprache verwenden, die der Standard für das Team ist. IMO sollte es eine Sprache geben, die verwendet wird (es sei denn, es kann ein äußerst überzeugender Fall gemacht werden).
Ich denke, die meisten Leute hier bevorzugen C #, aber dies ist weniger eine technische Frage als eine politische oder geschäftliche Entscheidung. Entscheiden Sie, welche .NET-Sprache verwendet werden soll, und verwenden Sie sie dann. Nun gibt es offensichtlich eine Reihe von Faktoren zu berücksichtigen:
quelle
Tatsächlich verfügt VB.NET über einige Funktionen, die C # derzeit nicht bietet: XML-Literale und Abfragesyntax für die Verwendung der Aggregatmethode in LINQ.
quelle
Sie können diese drei Artikel lesen, in denen C # und VB.NET verglichen werden:
Sie alle scheinen sehr logische Argumente und Vergleiche zwischen den beiden zu liefern. Persönlich stimme ich für C # (meine Firma hat C # für unsere ASP.NET-Projekte gewählt, als wir von klassischem ASP gewechselt sind).
quelle
Ich war 2003 in einer sehr ähnlichen Situation, in der Sie sich gerade befinden. Ich leitete ein Team, das von ASP Classic zu ASP.NET wechselte. Der Großteil unseres Teams hatte Erfahrung mit VBScript als Defacto-Sprache für ASP, aber etwa die Hälfte des Teams favorisierte C # trotz eines etwas komplexeren Migrationspfads von ASP / VBScript. Letztendlich habe ich mich für VB.NET entschieden, aber im Nachhinein wünschte ich mir wirklich, ich wäre die C # -Route gegangen.
Am 5-jährigen Jubiläum dieser Entscheidung schrieb ich einen Blog-Artikel über meine Entscheidungsgründe und versuchte, anderen Entwicklungsmanagern, die versuchten, den gleichen Anruf zu tätigen, meine Rücksicht zu gewähren. Hier ist ein Link zum Artikel:
"Eine Manager-Retrospektive zur Entscheidung zwischen C # und VB.NET"
Kurz gesagt, für diejenigen, die nicht den ganzen Artikel lesen möchten: Ich glaube nicht, dass das Projekt bei der Auswahl von VB.NET gegenüber C # schlechter gelaufen ist, und es hat uns auf kurze Sicht wahrscheinlich viel Zeit gespart. Das größte Problem war wirklich die Rekrutierung. Ich würde gerne einen C # - oder VB.NET-Programmierer einstellen, der in beiden Sprachen arbeitet. Sie sind wirklich nicht so wesentlich anders. Unabhängig davon, ob verdient oder nicht, hat VB.NET ein Stigma, das eine große Anzahl von Entwicklern veranlasst, Jobs zu meiden, bei denen sie wissen, dass sie damit als Primärsprache arbeiten werden.
quelle
Ich würde mich eher an C # orientieren, weil es weniger ausführlich ist und meiner Erfahrung nach im Internet weit verbreitet ist. Ich würde auch argumentieren, dass C # oder VB.NET einfach und schnell zu erlernen sind, bis zu einem Punkt, an dem es vernachlässigbar und unbedeutend ist. Das .NET Framework hingegen ist riesig und eine sich ständig weiterentwickelnde Kreatur. Das Beherrschen von .NET dauert viele Jahre, das Beherrschen von C # oder VB.NET kann jedoch einige Monate oder weniger dauern.
quelle
Ich denke, @Anna Karin hat einen guten Punkt, also sollten Sie sich keine Sorgen um Bibliotheken machen müssen. Zumindest kann ich mich an niemanden erinnern, der nur mit c # und nicht mit vb.net funktioniert.
Ein weiterer wichtiger Punkt ist, dass Code-Checks zwischen Mitgliedern desselben Teams schwieriger werden, wenn sie mit verschiedenen Sprachen arbeiten. Ich denke, es ist die beste Idee, eine gewöhnliche Sprache zu verwenden, um die Reibung in der Kommunikation zu verringern.
quelle
Obwohl ich der vorherigen Antwort zustimme, dass .NET in Bezug auf die Funktionen identisch sein sollte, ist dies nicht immer der Fall, aber nahe genug, dass es keine Rolle spielen sollte, wenn Sie ein einfaches Projekt haben.
Der Hauptgrund für den Wechsel zu C # im gesamten Team ist, dass dies die Sprache ist, in der sich die meisten Beispiele befinden und die meisten Open-Source-Projekte Quellcode in C # veröffentlichen. Wenn Ihr Team nicht in der Lage ist, eine solche Ressource zu nutzen, können Sie sich unnötig einschränken.
quelle
C # und VB.NET basieren auf der .NET-Plattform. Für Entwickler, die in .NET arbeiten, ist es wichtig, .NET, Prinzipien, Techniken und Muster zu kennen. In diesem Fall ist das Wechseln zwischen Sprachen kein Problem - es geht hauptsächlich um die Syntax. In einem gemischten Team sollten vielleicht alle versuchen, beide Sprachen zu lernen (das ist keine große Sache), aber es kann für die zukünftige Zusammenarbeit zwischen Mitgliedern des Teams wichtig sein.
quelle
Ich würde sagen, der einzige Vorteil, dass jeder dieselbe Sprache verwendet, ist, dass jeder Entwickler an jedem Teil des Codes arbeiten kann.
Darüber hinaus unterscheiden sich VB.NET und C # nur durch die Syntax unter .NET. Und Code, der in beiden Sprachen geschrieben wurde, kann problemlos im selben Projekt koexistieren.
quelle
Ich würde mit C # gehen, weil:
quelle
Meiner Meinung nach sollte die vertragsbasierte Entwicklung mit der Schnittstelle möglich sein, und der Entwickler sollte in der Lage sein, eine Klasse in jeder gewünschten Sprache zu codieren und wahrscheinlich Klassen auf niedriger / hoher Ebene in verschiedenen Assemblys zu trennen. Solange die Klassen die angeforderte Schnittstelle respektieren und die Anforderung implementieren, sollte es kein Problem geben.
quelle
Ich stimme vielen anderen Antworten hier zu. Ich war Teil von zwei Teams, die diese Entscheidung treffen mussten. Bei beiden entschieden sie sich zunächst dafür, dass die Entwickler wählen könnten, da die beiden Sprachen zusammenarbeiten. Innerhalb des ersten Jahres wünschten sie sich jedoch beide, sie hätten sich gerade für C # entschieden und stellten eine neue Anforderung, dass alle neuen Projekte in C # sein sollten.
quelle
Gründe für die Verwendung von C #:
Gründe für die Verwendung von VB.NET:
quelle