2010-02-18 3 views
10

Моя компания бросает идею использования Entity Framework, когда она выходит с .NET 4. В настоящее время мы являемся магазином VB.NET, но заинтересованы в переключении на C#.Entity Framework - C# или VB.Net

Есть ли какие-либо серьезные аргументы в пользу такого движения?
Имеет ли EF с C# какие-либо преимущества в производительности, легкость кодирования и т. Д. Через VB.NET?

Спасибо за ваши мысли/мнения!

+0

Не отставайте от маркетингового жаргона, его нет .0 больше его просто 4;) – Nate

+0

Приношу свои извинения за такой оскорбительный недосмотр! ; D – Airn5475

+0

Возможно, вы захотите принять ответ, с которым вам удобно. Это помогает людям понять, что ваша проблема решена. – JonH

ответ

7

Я всегда говорю, что придерживаюсь того, на что вы способны. Если есть большая кривая обучения от vb.net до C#, это может быть рискованным. Я был программистом vb.net, но перешел на C#, мне не все было так сложно. Но если вы работаете над каким-то надежным программным обеспечением, которое нуждается в ежедневных изменениях/исправлениях, вы можете захотеть использовать то, что вам нравится (в данном случае VB.net).

Here is a nice comparison between both languages.

Когда вы сравниваете оба языка для рамок сущности, вы не найдете много различий. Если вы предпочитаете публичный юг с соответствующими концевыми субтипами (более многословными и многословными), используйте vb.net. Если вам нравится {} и меньше словесности, то предпочитайте C#.

Ненавижу говорить людям, чтобы они не учились C#, потому что я буду честно, мне бы хотелось, чтобы я давно изменил с VB.net на C#. Мне нравится загадочный синтаксис, потому что у меня есть фон C/C++. Мне пришлось иметь дело с VB.net некоторое время из-за некоторых внутренних приложений. Так что это предпочтение, и вы, вероятно, быстро реализуете все в vb.net. Но если ваша компания готова позволить вам, ребята, изучить новый язык и инвестировать в ваши знания, тогда я говорю, что я иду на C# полностью.

+1

C#, безусловно, хорошая инвестиция! Спасибо за ваши мысли! – Airn5475

0

Нет существенных отличий, и теперь более чем когда-либо VB.NET и C# будут синхронизироваться, поэтому это действительно сводится к вашей (или вашей компании) предпочтениям.

4

С .NET 4.0, VB.NET и C# имеют ту же функциональность. Единственное реальное различие - синтаксис. До 4.0 это было не так, поскольку было несколько незначительных различий. Однако Microsoft сделала толчок, чтобы сделать языки одинаковыми. Что произойдет с выпуском 4.0.

+0

Следите за маркетинговым жаргоном, его нет .0 больше его просто 4;) – Nate

+0

К черту с Microsoft lingo. Если бы они были умной компанией, они бы делали меньше жаргона и производили лучшие продукты. Я люблю их, но они все еще нуждаются в улучшении. –

1

Если вы в первую очередь программист VB, C# может ввести в заблуждение; все эти тайные брекеты вместо приятного подробного «End Sub»!

По большей части языки в ином случае эквивалентны; оба компилируются по существу в один и тот же ИЛ (хотя есть случайные различия) и, таким образом, в равной степени выполняют (по большей части).

Итог: это предпочтение. Я предпочитаю C#. Вы не можете.

+0

Я сэра, предпочитаю VB6. Noooo! C# :) +1 для того, чтобы быть настолько правдивым, это просто другой диалект для того же выхода. –

+4

приятный подробный «End Sub» \ * spits \ *;) – johnc

0

Зависит от команды, с которой вы работаете, и от уровня мастерства.

9

У меня на самом деле есть иррациональная неприязнь к vb.net, если честно, я предпочитаю синтаксис C#, но нет никаких веских причин для переключения. Они оба компилируются в IL, с очень тонкими различиями, и оба одинаково способны.

Я бы предположил, что наиболее веская причина для переключения может заключаться в том, что легче найти и нанять высокопроизводительных разработчиков C#, чем это vb.

5

Я думаю, что ваша самая большая проблема заключается не в различии в производительности, а в возможностях. Я думаю, что это сведется к документации. MSDN, вероятно, предоставит функции на обоих языках, но большинство сообщений в блогах и т. Д. Будет в C#.Эти должности могут предлагать реальное мировое руководство по лучшим практикам, советам и трюкам и множеству другой информации, на которую вы опишетесь в своей практике развития, и большинство из них будет в C#.

+0

Я полностью согласен с вами в этом на Крисе. Я ПОСТОЯННО бегу к Google/Bing, чтобы уточнить синтаксис или как что-то сделать. Я нахожусь в центре парня на C#, но эта работа возникла, поэтому я работаю VB.NET . Мне бы хотелось вернуться на C# без каких-либо причин, кроме внешней документации и ресурсов, обнаруженных там. – Airn5475

3

Одна из самых убедительных отличий для меня в том, что C# обычно имеет более сжатый синтаксис. Это проявляется особенно в лямбда-выражениях. Хотя VB.Net теперь имеет ту же функциональность, я считаю, что синтаксис VB.Net слишком подробный.

Например, если вы используете LINQ «Fluent API» синтаксис:

C#

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

Правда, синтаксис может быть немного странно на первый, но как только вы привыкли это действительно становится очень читаемым. Сравните это с 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: Видимо, я дезинформировали ...

Приведенный выше код действителен только в VB10 (где они добавляют многострочные операторы лямбда), но может быть записано более сжато следующим образом:

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

Помимо некрасивого подчеркивания и Function ключевого слова вместо =>, это является в основном то же самым. Еще предпочитают синтаксис C#, хотя ;-)

+0

- это действительно действительный VB? Как бы то ни было, вы оставите вещи «как булево» и «конец функции». Для однострочных синтаксисов VB.NET вряд ли намного хуже, чем C# –

+0

@Eamon. Как говорит Эомон, действительный VB не намного хуже, чем C#. 'Dim address = _users.Where (Функция (w) w.Name =" scott "). Выберите (Function (z) z.Address)' Но для меня трудно улучшить этот VB 'Dim address = From u In _users Где u.Name = "scott" Выберите u.Address' – MarkJ

+0

... Я понимаю, что мой второй пример не был «бегло» (по книге), но IMHO читается, предельно кратким и позволяет цепочки, которые являются ключевыми преимуществами «Свободный» AFAIK – MarkJ

0

C# - путь, по моему мнению. Я могу кодировать в обоих, но гораздо скорее C#. Мир .Net, похоже, вращается вокруг C#. Я думаю, что вы в компании найдете больше кодеров C#, которые лучше, чем вы найдете кодеров VB.net.

+0

Мне нравится ваш выбор слов с «вращением». согласен – Airn5475

0

Я думаю, что любой из двух языков будет работать. Я предпочитаю C# только потому, что их больше документации там в C#.