2010-02-18 13 views
10

Meine Firma wirft die Idee, das Entity Framework zu verwenden, wenn es mit .NET 4 herauskommt. Wir sind derzeit ein VB.NET-Shop, haben aber Interesse daran, zu C# zu wechseln.Entity Framework - C# oder VB.Net

Gibt es irgendwelche wichtigen Argumente für oder gegen einen solchen Schritt?
Hält EF mit C# irgendwelche Vorteile in Leistung, Kodierungleichtheit, usw. über VB.NET?

Vielen Dank für Ihre Meinung!

+0

Halten Sie mit dem Marketing-Jargon, es ist nicht .0 mehr es ist nur 4;) – Nate

+0

Ich entschuldige mich für eine solche offensive Aufsicht! ; D – Airn5475

+0

Vielleicht möchten Sie eine Antwort akzeptieren, mit der Sie sich wohl fühlen. Es hilft den Leuten zu erkennen, dass Ihr Problem gelöst ist. – JonH

Antwort

7

Ich sage immer, bleib bei dem, wo du gut bist. Wenn es eine große Lernkurve von vb.net zu C# gibt, kann es riskant sein. Ich war ein Programmierer von vb.net, bin aber nach C# umgezogen. Ich fand das gar nicht so schwer. Aber wenn Sie an einer robusten Software arbeiten, die tägliche Änderungen/Fixes benötigt, können Sie das, was Sie gut können (in diesem Fall VB.net), beibehalten.

Here is a nice comparison between both languages.

Wenn Sie beide Sprachen für das Entity Framework vergleichen Sie nicht viel Unterschied finden. Wenn Sie öffentliche Subs mit passenden End-Subs bevorzugen (mehr wortreich und wortreich), dann verwenden Sie vb.net. Wenn du {} und weniger Wordiness magst, dann bevorzuge C#.

Ich hasse es, Leute zu sagen, nicht zu lernen C#, weil ich ganz ehrlich sein werde, ich wünschte, ich würde vor langer Zeit von VB.net zu C# geändert werden. Ich mag die kryptische Syntax, weil ich einen C/C++ Hintergrund habe. Aufgrund einiger interner Anwendungen musste ich mich für eine Weile mit VB.net auseinandersetzen. Es ist also Präferenz und Sie werden wahrscheinlich schnell alles in vb.net implementieren. Aber wenn Ihre Firma bereit ist, Sie eine neue Sprache lernen zu lassen und in Ihr Wissen zu investieren, dann sage ich, dass Sie für C# den ganzen Weg gehen.

+1

C# ist definitiv eine gute Investition! Danke für deine Gedanken! – Airn5475

0

Keine wesentlichen Unterschiede, und jetzt mehr denn je VB.NET und C# werden synchron gehalten, so dass es wirklich auf Ihre (oder Ihre Firma) Präferenz kommt.

4

Mit .NET 4.0 haben VB.NET und C# genau die gleiche Funktionalität. Der einzige wirkliche Unterschied ist die Syntax. Vor 4.0 war dies nicht der Fall, da es einige kleinere Unterschiede gab. Microsoft hat jedoch versucht, die Sprachen gleich zu machen. Was wird mit der Veröffentlichung von 4.0 passieren.

+0

Halten Sie mit dem Marketing-Jargon, es ist nicht .0 mehr es ist nur 4;) – Nate

+0

Um mit Microsoft-Jargon zu hacken. Wenn sie eine schlaue Firma wären, würden sie weniger Sprache machen und bessere Produkte herstellen. Ich liebe sie, aber sie müssen noch verbessern –

1

Wenn Sie in erster Linie ein VB-Programmierer sind, kann C# verwirrend sein; all diese geheimnisvollen Klammern anstelle eines schönen ausführlichen "End Sub"!

In den meisten Fällen sind die Sprachen ansonsten gleichwertig; beide kompilieren zu im Wesentlichen der gleichen IL (obwohl es gelegentlich Unterschiede gibt) und sind somit (zum größten Teil) gleichermaßen performant.

Fazit: es ist Vorliebe. Ich bevorzuge C#. Du darfst nicht.

+0

Ein I Herr, bevorzugen VB6. Nee! C# :) +1 für so wahr, es ist nur ein anderer Dialekt zum gleichen Ausgang. –

+4

eine nette ausführliche "End Sub" \ * spits \ *;) – johnc

0

Hängt von dem Team ab, mit dem Sie arbeiten, und vom Skillbase.

9

Ich habe tatsächlich eine irrationale Abneigung für vb.net, wenn ich ehrlich bin, ich bevorzuge C# Syntax, aber es gibt keine zwingenden Gründe, um zu wechseln. Beide kompilieren nach IL, mit sehr feinen Unterschieden und beide sind gleichermaßen fähig.

Ich könnte mir vorstellen, dass der beste Grund für einen Wechsel vielleicht darin besteht, dass es einfacher ist, hochwertige C# -Entwickler zu finden und zu rekrutieren als es vb ist.

5

Ich denke, Ihr größtes Problem ist nicht in der Unterschied in Leistung oder Fähigkeit. Ich denke, es wird auf Dokumentation kommen. MSDN wird wahrscheinlich Funktionen in beiden Sprachen bereitstellen, aber die meisten Blogposts usw. werden in C# sein.Diese Beiträge können eine echte Anleitung zu Best Practices, Tipps und Tricks und eine Menge anderer Informationen bieten, auf die Sie sich in Ihrer Entwicklungspraxis stützen werden, und die meisten werden in C# sein.

+0

Ich stimme Ihnen auf Chris völlig zu. Ich laufe KONSTANT zu Google/Bing, um die Syntax zu erklären oder etwas zu tun. Ich bin im Herzen ein C# Typ, aber dieser Job kam, so arbeite ich VB.NET Ich würde gerne zurück zu C# ohne Grund anders als die externe Dokumentation und Ressourcen dort gefunden. – Airn5475

3

Einer der überzeugendsten Unterschiede für mich ist, dass C# im Allgemeinen eine prägnantere Syntax hat. Dies äußert sich besonders bei Lambda-Ausdrücken. Obwohl VB.Net jetzt die gleiche Funktionalität hat, finde ich die VB.Net-Syntax viel zu ausführlich.

ZB wenn Sie die 'Fluent API' Syntax LINQ verwenden:

C#

var addresses = _users 
    .Where(u => u.Name == "scott") 
    .Select(u => u.Address) 

Zwar kann die Syntax ein wenig seltsam auf den ersten, aber sobald Sie es gewohnt sind es wird tatsächlich sehr lesbar. Vergleichen Sie dies mit VB.Net:

Dim addresses = _users _ 
    .Where(Function(u) As Boolean 
       return u.Name = "scott" 
      End Function) _ 
    .Select(Function(u) as Address 
       Return u.Address 
      End Function) 

EDIT: Anscheinend war ich falsch informiert ...

Der obige Code ist nur gültig in VB10 (wo sie mehrzeilige Lambda-Anweisungen hinzugefügt), kann aber mehr geschrieben werden prägnant wie folgt:

 Dim addresses = users _ 
      .Where(Function(u) u.Name = "scott") _ 
      .Select(Function(u) u.Address) 

Neben der hässlichen Unterstrichen und das Function Schlüsselwort anstelle der =>, diese meist ist das gleiche. Trotzdem bevorzuge die C# -Syntax obwohl ;-)

+0

ist das eigentlich valide VB? Normalerweise würden Sie die "As Boolean" - und "End Function" -Arten verlassen. Für Einzeiler ist die Syntax von VB.NET kaum schlechter als die von C# –

+0

@Eamon. Wie Eaomon sagt, ist die gültige VB nicht viel schlechter als die C#. Dim Adressen = _users.Where (Funktion (w) w.Name = "scott"). Wählen Sie (Funktion (z) z.Adresse) 'Aber für mich ist es schwierig, auf diese VB' Dim Adressen = Von u In _users zu verbessern Wo u.Name = "scott" Wählen Sie u.Adress " – MarkJ

+0

... Ich weiß, mein zweites Beispiel war nicht" fließend "(nach dem Buch), aber IMHO ist es lesbar, extrem kurz und ermöglicht Verkettung, die die wichtigsten Vorteile sind "fließend" AFAIK – MarkJ

0

C# ist meiner Meinung nach der richtige Weg. Ich kann beides programmieren, aber viel eher C#. Die .Net-Welt scheint sich um C# zu drehen. Ich denke, Ihr Unternehmen wird mehr C# -Codierer finden, die besser qualifiziert sind, als Sie VB.net-Programmierer finden würden.

+0

Ich mag Ihre Wortwahl mit "revolve". ich stimme zu – Airn5475

0

Ich denke, beide Sprachen werden funktionieren. Ich bevorzuge C# nur, weil ihre Dokumentation in C# mehr da draußen ist.