Особенности работы с Microsoft Visual Studio 2008

 

Как и любая из версий Microsoft Visual Studio (MS VS), версия 2008 заявлена разработчиком как многоязыковая среда разработки программ. История развития этого ряда продуктов фирмы Microsoft – это попытка создать не только многоязыковую среду программирования, но и среду, позволяющую собирать в одном проекте программы, написанные на различных языках программирования.

Среда . NET Framework

.NET Framework является не частью MS VS 2008, а компонентом операционной системы Windows, облегчающим построение приложений и web-служб. Каркас .NET Framework предоставляет ощутимые преимущества в отношении надежности кода и безопасности, а также возможностей интегрирования кода C++ с кодом, написанным на более чем 20 других языках программирования, ориентированных на .NET Framework. Некоторым недостатком ориентации на .NET Framework является незначительное снижение производительности, которое, правда, в большинстве случаев вообще незаметно.

Среда .NET Framework состоит из двух элементов: общеязыковой исполняющей среды (Common Language Runtime – CLR), в которой выполняются программы, и набора библиотек, называемых библиотеками классов .NET Framework. Библиотека классов .NET Framework обеспечивает функциональную поддержку, которая необходима коду при выполнении под управлением CLR, независимо от применяемого языка программирования, поэтому программы .NET, написанные на С++ и С# или любом другом языке, поддерживающем .NET Framework, используют одни и те же библиотеки .NET. Язык С, работающий с этими библиотеками, поддерживается стандартом C ++/CLI.

Общеязыковая исполняющая среда ( CLR)

Существуют два принципиально отличающихся вида приложений C++, которые можно разрабатывать в MS VS 2008. Во-первых, можно разрабатывать приложения, которые выполняются на компьютере как "родные" (native) [7], которые так и принято называть «родными программами C++». Такие программы пишутся на версии языка C++, определенной стандартом ISO/ANSI. Также можно разрабатывать программы, выполняемые под управлением CLR и реализованные с помощью расширенной версии C++, которая носит название C++/CLI. Эти программы называются программами CLR или программами C++/CLI.

CLI – это, по сути, спецификация среды виртуальной машины, которая позволяет приложениям, написанным на разнообразных высокоуровневых языках программирования, выполняться в различных системах без изменения и перекомпиляции оригинального исходного кода. CLI специфицирует стандарт промежуточного языка виртуальной машины, в который компилируется исходный код высокоуровневого языка программирования. В .NET Framework этот промежуточный язык называется Microsoft Intermediate Language (MSIL). Код этого промежуточного языка в конечном итоге при выполнении программы переводится на машинный код с помощью оперативного компилятора (just-in-time – JIT). При этом код на промежуточном языке CLI может функционировать только в среде, для которой существует реализация CLI.

CLI также определяет общий набор типов данных, называемый общей системой типов (Common Type System – CTS), который должен использоваться программами, написанными на любом языке, ориентированном на реализацию CLI. CTS специфицирует то, как применяются типы данных внутри CLR, и включает в себя набор предопределенных типов. Можно также определять собственные типы данных, но их определение должно подчиняться ряду правил, чтобы они были согласованными с CLR. Наличие стандартизованной системы типов для представления данных позволяет компонентам, написанным на разных языках, обрабатывать данные унифицированным способом и обеспечивает возможность интеграции компонентов, написанных на разных языках, в одно приложение.

В CLR в значительной степени расширены безопасность данных и надежность программ, отчасти благодаря тому, что динамическое выделение и освобождение памяти полностью автоматизированы, а также потому, что код программ MSIL полностью верифицируется перед выполнением программы. CLR – это только одна из реализаций спецификации CLI, которая функционирует под управлением Microsoft Windows на ПК.