Visual Studio и .NET программирование - PullRequest
2 голосов
/ 16 марта 2010

Я просто хочу спросить, прав ли я относительно .NET. Итак, .NET - это новый фреймворк, который позволяет легко реализовывать новые и старые функции Windows. Он похож на Java в том смысле, что он также скомпилирован в «байт-код», но его имя - Common Language Infrastructure или CLI. Этот язык интерпретируется .NET Framework, поэтому код, сгенерированный программированием с использованием .NET, не может быть выполнен непосредственно процессором. Теперь несколько языков могут быть скомпилированы в CLI. Во-первых, это были C #, разработанные Microsoft, чем J #, другие C ++. Я подозреваю, что это в целом правильно, по крайней мере, я надеюсь, что я правильно понимаю.

Но чего мне еще не хватает, так это вы можете написать в машинный код скомпилированный код в C #? И если при использовании Visual Studio 2005, когда я выбираю проект Win32, он компилируется в машинный код, поэтому для запуска этого приложения вам нужно только библиотеки динамической компоновки Windows, поскольку код статических библиотек внедряется в приложение на этапе компоновки. И эти динамически подключаемые библиотеки реализуются в каждой установке Windows или предоставляются установками DirectX.

Но когда я выбираю CLR в Visual Studio 2005, приложение компилируется в код CLI и сначала запускает .NET Framework, а затем .NET Framework выполняет эту программу, поскольку ее нет в машинном коде.

Итак, я прав? Я спрашиваю, потому что вы можете прочитать эту информацию в Интернете, но мне некому сказать, правильно я это понимаю или нет. Благодарю.

Ответы [ 2 ]

2 голосов
/ 16 марта 2010
  • CLI не интерпретируется платформой .NET, но обычно компилируется. Чистая интерпретация будет слишком медленной.
  • C #, J # и т. Д. Пришли одновременно. На самом деле, J # происходит из Microsoft J ++ .... так что можно сказать, что это было раньше. C ++ также был там раньше, вы, возможно, имеете в виду Managed C ++ (NOW: C ++ / CLI). Я думаю, что это было сделано одновременно - параллельно. На microosft работают более 2-3 человек;)
  • Вы не можете писать C # в машинный код. Проект win32 является родным C ++ (т.е. версия, не использующая среду выполнения .NET).
2 голосов
/ 16 марта 2010

. Первая IDE .NET вышла в 2002 году, поэтому .NET восемь лет. Целая вечность;)

.NET начинался с C #, Basic и J #, а также C ++. Далее следуют многие другие языки, например, в области динамических языков IronRuby. С C # и Basic нет возможности генерировать код, который не требует .NET Framework, с C ++ у вас есть эта опция. Так что нет, со стандартными инструментами вы не можете скомпилировать C # в машинный код.

Есть вещи для оптимизации времени выполнения (предварительно JITting сборки, посмотрите на ngen). Он сочетается и не всегда интерпретируется, поэтому он работает намного быстрее, чем, например, скрипт VB. Обычно это делается не каждый раз, а при первой установке одной сборки или с помощью ngen при установке приложения.

НТН, -sa

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...