2010-02-18 21 views
10

La mia azienda si sta dando da fare all'idea di utilizzare Entity Framework quando esce con .NET 4. Attualmente siamo un negozio VB.NET, ma abbiamo qualche interesse a passare a C#.Entity Framework - C# o VB.Net

C'è qualche argomento importante a favore o contro tale mossa?
L'EF con C# offre vantaggi in termini di prestazioni, facilità di codifica, ecc. Su VB.NET?

Grazie per i vostri pensieri/opinioni!

+0

Al passo con il gergo del marketing, non è più il suo .0 è solo 4;) – Nate

+0

Le mie scuse per una supervisione così offensiva! ; D – Airn5475

+0

È possibile accettare una risposta con la quale si ha dimestichezza. Aiuta le persone a capire che il tuo problema è risolto. – JonH

risposta

7

Io dico sempre di attenersi a ciò in cui sei bravo. Se c'è una grande curva di apprendimento da vb.net a C# potrebbe essere rischioso. Ero un programmatore vb.net ma mi sono trasferito in C#, non ho trovato tutto così difficile. Ma se stai lavorando su un software robusto che necessita di modifiche/correzioni quotidiane, potresti voler mettere in pratica ciò che sei bravo (in questo caso VB.net).

Here is a nice comparison between both languages.

Quando si confrontano entrambe le lingue per Entity Framework non troverete molta differenza. Se preferisci il sottotitolo pubblico con i sottotitoli corrispondenti (più prolisso e prolisso), usa vb.net. Se ti piace {} e meno parole, allora preferisci C#.

Odio dire alla gente di non imparare C# perché sarò abbastanza onesto, vorrei essere cambiato da VB.net a C# molto tempo fa. Mi piace la sintassi criptica perché ho uno sfondo C/C++. Ho dovuto trattare con VB.net per un po 'a causa di alcune applicazioni interne. Quindi è una preferenza e probabilmente sarai veloce nell'implementare tutto in vb.net. Ma se la tua azienda è disposta a farti imparare una nuova lingua e ad investire nella tua conoscenza, allora dico per C# fino in fondo.

+1

C# è sicuramente un buon investimento! Grazie per i tuoi pensieri! – Airn5475

0

Non ci sono differenze sostanziali, e ora più che mai VB.NET e C# verranno mantenuti in sincrono, quindi si tratta davvero della tua preferenza (o della tua azienda).

4

Con .NET 4.0, VB.NET e C# hanno esattamente la stessa funzionalità. L'unica vera differenza è la sintassi. Prima della 4.0 non era così perché c'erano alcune piccole differenze. Tuttavia, Microsoft ha fatto una spinta per rendere le lingue uguali. Che si verificherà con la versione 4.0.

+0

Resta al passo con il gergo del marketing, non più il suo .0 è solo 4;) – Nate

+0

Per diamine con Microsoft gergo. Se fossero una società intelligente avrebbero fatto meno gergo e produrre prodotti migliori. Li amo ma devono ancora migliorare –

1

Se sei principalmente un programmatore VB, C# può essere fonte di confusione; tutte quelle parentesi arcane invece di un bel verboso "End Sub"!

Per la maggior parte, le lingue sono equivalenti; entrambi compilano essenzialmente la stessa IL (anche se ci sono differenze occasionali) e sono quindi ugualmente performanti (per la maggior parte).

In conclusione: è preferibile. Preferisco C#. Non puoi

+0

An I Sir, preferisco VB6. Noooo! C# :) +1 per essere così vero, è solo un dialetto diverso per lo stesso output. –

+4

un bel verboso "End Sub" \ * spits \ *;) – johnc

0

Dipende dal team con cui si sta lavorando e dalla base di competenze.

9

In realtà ho una antipatia irrazionale per vb.net se non sono sincero, preferisco di gran lunga la sintassi C#, ma non ci sono motivi validi per cambiare. Entrambi compilano per IL, con differenze molto sottili ed entrambi sono ugualmente capaci.

Immagino che la ragione più convincente per cambiare potrebbe essere che è più facile trovare e reclutare sviluppatori C# di alta qualità rispetto a vb.

5

Penso che il tuo più grande problema non sia nella differenza di prestazioni o capacità. Penso che arriverà alla documentazione. MSDN probabilmente fornirà funzionalità in entrambe le lingue, ma la maggior parte dei post del blog, ecc. Sarà in C#.Questi post possono offrire indicazioni del mondo reale sulle migliori pratiche, suggerimenti e trucchi e una miriade di altre informazioni sulle quali ti appoggerai nella tua pratica di sviluppo e la maggior parte sarà in C#.

+0

Sono totalmente d'accordo con te su questo su Chris. Sono COSTANTEMENTE in esecuzione su Google/Bing per chiarire la sintassi o come fare qualcosa. Sono a cuore un ragazzo di C#, ma questo lavoro è venuto fuori, quindi sto lavorando VB.NET Mi piacerebbe tornare al C# per nessun motivo A parte la documentazione esterna e le risorse trovate là fuori. – Airn5475

3

Una delle differenze più interessanti per me è che C# ha generalmente una sintassi più concisa. Questo si manifesta soprattutto con espressioni lambda. Sebbene VB.Net abbia ora la stessa funzionalità, trovo la sintassi VB.Net troppo prolissa.

Ad esempio, se si utilizza il LINQ 'API Fluent' sintassi:

C#

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

Certo, la sintassi può essere un po 'strano in un primo momento, ma non appena si è abituati a questo in realtà diventa molto leggibile. Confronta questo con 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: A quanto pare sono stato male informato ...

Il codice di cui sopra è valida solo in VB10 (dove hanno aggiunto le dichiarazioni lambda su più righe), ma può essere scritto più concisamente come segue:

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

a parte le brutte sottolineature e la parola chiave al posto del =>Function, questo è in gran parte la stessa. Comunque preferisco comunque la sintassi C# ;-)

+0

è effettivamente VB valido? Normalmente, comunque, lascerai la roba "As Boolean" e "End Function". Per one-liner, la sintassi di VB.NET non è molto peggiore di quella di C# –

+0

@Eamon. Come dice Eaomon, il VB valido non è molto peggio del C#. 'Dim address = _users.Where (Funzione (w) w.Name =" scott "). Select (Function (z) z.Address)' Ma per me è difficile migliorare su questo VB 'Dim address = From u In _users Where u.Name = "scott" Seleziona u.Address' – MarkJ

+0

... Mi rendo conto che il mio secondo esempio non era "fluente" (dal libro) ma IMHO è leggibile, estremamente conciso e consente il concatenamento, che sono i principali vantaggi di "fluente" AFAIK – MarkJ

0

C# è la strada da percorrere secondo me. Posso scrivere codice in entrambi, ma molto più C#. Il mondo .Net sembra ruotare attorno a C#. Penso che la tua compagnia troverà più coder C# là fuori che sono più bravi di quelli che troveresti coder VB.net.

+0

Mi piace la tua scelta di parole con "rivoluzione". sono d'accordo – Airn5475

0

Penso che entrambe le lingue funzioneranno. Preferisco C# solo perché la loro è più documentazione là fuori in C#.