2010-10-08 2 views
0

Итак, с Microsoft .NET вы получаете преимущество языковой совместимости. Но я слышал, что это медленнее, чем собственные приложения. Что делать, если вам нужен только один язык? Тогда в чем преимущества. Я программист на C и C++, и .net, похоже, сильно связан с C#. Это так? И переносится ли точка в сеть или привязана к окнам?Microsoft .net, это того стоит?

И, наконец, стоит .net стоит взглянуть, с точки зрения программиста на C++, который не нуждается в языковой совместимости?

Thankyou.

+1

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

+1

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

+7

@ Джон Раш, вы на самом деле * знаете *, что означает слово 'var'? Это не имеет ничего общего с печатанием утки. Переменные, объявленные с помощью 'var', * неявно * напечатаны, но все еще строго типизированы. Просто компилятор выводит тип из выражения инициализации, поэтому вам не нужно повторять себя, когда вы объявляете переменную. Кроме того, это единственный способ объявить переменные анонимных типов. –

ответ

2

«.NET is slow» - это заблуждение, а также «Java медленный». Да, он использовал, чтобы быть медленнее, чем native, и да, вы можете получить более быстрые программы, используя оптимизированную вручную сборку, но почти для всех случаев не хватает кода ядра для игр, .NET так же быстро, как и тот же вещь на C или C++, и может (в некоторых случаях) быть быстрее.

Вы также получаете огромную выгоду от автоматического управления памятью (так что вы можете new объект кучи, а затем просто забыть об этом) и большую библиотеку классов в вашем распоряжении.

+0

Я бы не согласился; .NET * медленнее, но разработчик становится во много раз быстрее. – STW

+0

Пожалуйста, напишите декодер H.264 следующего поколения, используя .NET (или Java), и тогда мы сможем поговорить. –

+0

Я согласен (и их много тестов там), которые показывают, что .NET не значительно медленнее или быстрее, чем C++/Java. Я не согласен с тем, что автоматическое управление памятью является преимуществом (это упрощает использование языка для новичков (я согласен)). Но в любом нетривиальном приложении .NET вам нужно будет понять и узнать, как работает управление памятью, и ручная очистка памяти (с использованием соответствующих средств C#). Я не согласен с STW, что он делает много раз быстрее (некоторые типы программ легче писать на C#, а наоборот для любого языка X). –

3

Тогда каковы преимущества ...

Вы получаете все классы .NET.

0

Языковая совместимость особенность .Net. Это далеко не только функция .Net. Не забывайте такие вещи, как расширенная сборка мусора, linq, улучшенная организация api и многое другое.

0

Таким образом, с Microsoft .NET вы получаете преимущество языковой совместимости.

Это не главное преимущество. Большинство людей код в C#, большинство стараются избегать работы над проектом с использованием как VB и C#

Но я слышал, что это медленнее , чем родные приложения

.NET имеет управление памятью, которая может замедлить действие некоторых вещей. Тем не менее, классический пример - игры, много XBox игр теперь написано с использованием XNA

И точка чистые портативным, или привязан к окна?

Существует проект под названием Mono, который портировал .NET на linux и существует платформа MonoTouch, которая запускает этот код на iPhone.

Однако, в широком смысле, в его форме Vanilla она привязана к WindowsOS.

Тогда каковы преимущества

Большинство людей код в C#, потому что это мощный язык как в Интернете и на рабочем столе и имеет легкий кривой обучения и хороший набор инструментов. Он также обладает мощной библиотекой классов, подобной, но более полной, чем Java (IMO).

+0

.NET - это всего лишь одна среда выполнения, использующая язык C#, а Mono - другое время выполнения. Я знаю, что многие библиотеки .NET недоступны в Mono, но * язык * (C#) тот же. – FrustratedWithFormsDesigner

+0

Это в значительной степени то, что я сказал. –

Смежные вопросы