Работаем с MS Visual Studio.
Здесь пойдёт речь о том, как работать с MS Visual C++.
Цель данной статьи — не полный обзор пакета, а освещение некоторых основ и замечаний, предназначенных для того, чтобы в других статьях сайта GameDev.ru не возвращаться к косвенным темам, таким как создание проекта и пр. За основу берётся 6-я версия MS Visual С++.
Эта статья не претендует на последнюю инстанцию и НЕ говорит о том, что другим средствам разработки компьютерных игр нет места на GameDev.ru. Возможно, статья будет дописываться новыми пунктами.
Почему MS Visual Studio.
Конечно, существует множество средств разработки, каждый любит больше свою, к которой привык. Некоторые умудряются пользоваться несколькими средами и языками программирования. Однако, можно дать некоторые объяснения выгодной позиции MS Visual С++.
Это всё касается тех, кто занимается компьютерной графикой. Популярные графические пакеты, такие как 3D Studio MAX и Maya, написаны на MS Visual C++. Очень много разработчиков игр сталкивается с написание plug-in’ов к этим пакетам. Естественно, им нужно использовать эту среду разработки. Создавать какие-то свои подключения, для других языков и сред — утопично, проблемы возникают при выходе новых версий пакетов. То же самое касается и продуктов Adobe. Чтобы писать plug-in’ы к Photoshop’у или к Affter Effect’у, нужен MS Visual Studio. Есть смысл, знать один пакет очень хорошо, чем несколько поверхностно.
К тому же к MS Visual C++ есть множество дополнительных продуктов, которые помогают в разработке.
Стереотип, что раз это продукт Microsoft, то он является заведомо никчемным, не имеет твёрдой основы. К тому же, в большинстве вакансий требование знания MS Visual C++ вместе с MFC появляются чаще, чем знание других средств разработки.
Тут не имеется в виду отдельные случаи, типа верхнего уровня игровых проектов, где удобно иногда использовать скриптовые языки или Java.
Конечно, если вы занимаетесь не компьютерной графикой, а базами данных, то тут ещё можно спорить.
Workspace.
В Visual Studio есть такое понятие как Workspace (рабочее пространство).
Workspace может содержать как один проект так и несколько. Бывает удобно помещать в один Workspace несколько проектов, если вы создаёте большой продукт, имеющий несколько исполняемых модулей, статических и динамически подключаемых библиотек.
Окно Workspace обычно включено по умолчанию, если оно выключено, его можно включить либо из меню View/ Workspace, либо нажатием Alt+0. Окно Workspace можно использовать, как навигационное окно. Из него можно управлять проектами, файлами, классами и ресурсами. Это окно содержит несколько закладок.
Закладка ClassView. Показывает список всех проектов и, содержащихся в них, всех классов (включая структуры) вместе с их членами (методами и полями), которые объявлены в файлах, включённых в Workspace. Отсюда можно устанавливать активный проект и управлять содержим классов, а также навигацию по классам.
Закладка ResourceView. Она видна в том случае, если хотя бы один проект содержит ресурсы, такие как диалоговые формы, меню, иконки, рисунки и пр. Отвечает за управление ресурсами и навигацией по ним, вызывая соответствующие редакторы.
Закладка FileView. Показывает список всех проектов и, содержащихся в них, файлах. Здесь можно добавлять и удалять проекты, файлы из проектов, вызывать окна редакторов соответствующих файлов и пр. Отсюда также можно устанавливать активный проект.
Добавление существующего проекта в текущий Workspace, осуществляется из меню Project / Insert Project into Workspace:
Между проектами можно устанавливать зависимости (dependencies). Если установить зависимость одного проект над другим, то перед компиляцией первого проекта, сначала произойдёт (если есть в этом необходимость) компиляция второго проекта. Например, если вы компилируете какой-то основной проект, требующий статическую библиотеку, собираемую вторым проектом, то тут полезно выставить зависимость. При каких-то изменениях в файлах проекта статической библиотеки перед компиляцией основного проекта произойдёт компиляция изменённых файлов проекта статической библиотеки.
Зависимости устанавливаются из меню Project / dependencies.
Workspace чаще всего создаётся вместе с проектом.
Проект. Создание проекта.
Проект (Project) представляет собой набор файлов, объединённых для компиляции и сборки в одну программную единицу, такую как исполняемый модуль, динамически или статически подключаемая библиотека и т.д.
Проект создаётся следующим образом. Меню File / New.
Выбирается закладка Projects (Эта закладка выбирается автоматически, если Visual Studio не содержит открытого Workspace).
Далее выбирается Мастер приложения (AppWizard) проекта, в зависимости от типа проекта. AppWizard — некая заготовка, которая строится, используя некие рекомендации пользователя. Если вам нужно создать обычное Windows приложение, вы можете выбрать Win32 Application. Если консольное приложение — то Win32 Console Application. Если динамически подключаемую библиотеку — Win32 Dynamic-Link Library. И т.д.
Вы можете сами создать свой собственный AppWizard для часто используемых вами структур проекта. Некоторые производители ПО делают такие AppWizard’ы для plug-in’ов к своим приложениям. Например, есть AppWizard для plug-in’ов к 3D Studio MAX и Maya. Кстати, в месте с поставкой DirectX 8.1, тоже идёт Мастер приложения.
Далее в окне Project Name нужно ввести имя проекта, ниже — указать расположение (location) проекта. Ещё ниже — указать, создавать проект с новым Workspace или в текущем.
Описание среды разработки Microsoft Visual Studio
Microsoft Visual Studio — это программная средапоразработке приложений для ОС Windows, как консольных, так и с графическим интерфейсом.
В комплект входят следующие основные компоненты:
1. Visual Basic.NET — для разработки приложений на VisualBasic;
2. Visual C++ — на традиционном языке C++;
3. Visual C# — наязыке C# (Microsoft);
4. Visual F# — на F# (Microsoft Developer Division).
Функциональная структура среды включает в себя:
редактор исходного кода, который включает множество дополнительных функций, как автодополнение IntelliSense, рефракторинг кода и т. д.;
редактор форм, предназначенный для упрощённого конструирования графических интерфейсов;
дизайнерсхем баз данных.
Visual Studio также позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (Subversion и VisualSourceSafe), добавление новых наборов инструментов (для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования или инструментов для прочих аспектов процесса разработки программного обеспечения).
Коммерческие версии в порядке возрастания цены: Visual Studio Professional, Visual Studio Premium и Visual Studio Ultimate.
Достоинства и недостатки
Интегрированная среда разработки (IntegratedDevelopmentEnvironment — IDE) Visual Studio предлагает ряд высокоуровневых функциональных возможностей, которые выходят за рамки базового управления кодом.
Ниже перечислены основные преимущества IDE-среды Visual Studio.
Встроенный Web-сервер. Для обслуживания Web-приложения ASP.NET необходим Web-сервер, который будет ожидать Web-запросы и обрабатывать соответствующие страницы. Наличие в Visual Studio интегрированного Web-сервера позволяет запускать Web-сайт прямо из среды проектирования, а также повышает безопасность, исключая вероятность получения доступа к тестовомуWeb-сайту с какого-нибудь внешнего компьютера, поскольку тестовый сервер может принимать соединения только с локального компьютера.
Поддержка множества языков при разработке. Visual Studio позволяет писать код на своем языке или любых других предпочитаемых языках, используя все время один и тот же интерфейс (IDE). Более того, Visual Studio также еще позволяет создавать Web-страницы на разных языках, но помещать их все в одно и то же Web-приложение. Единственным ограничением является то, что в каждой Web-странице можно использовать только какой-то один язык (очевидно, что в противном случае проблем при компиляции было бы просто не избежать).
Меньше кода для написания. Для создания большинства приложений требуется приличное количество стандартного стереотипного кода, и Web-страницы ASP. NET тому не исключение. Например, добавление Web-элемента управления, присоединение обработчиков событий и корректировка форматирования требует установки в разметке страницы ряда деталей. В Visual Studio такие детали устанавливаются автоматически.
Интуитивный стиль кодирования. По умолчанию Visual Studio форматирует код по мере его ввода, автоматически вставляя необходимые отступы и применяя цветовое кодирование для выделения элементов типа комментариев. Такие незначительные отличия делают код более удобным для чтения и менее подверженным ошибкам. Применяемые Visual Studio автоматически параметры форматирования можно даже настраивать, что очень удобно в случаях, когда разработчик предпочитает другой стиль размещения скобок (например, стиль K&R, при котором открывающая скобка размещается на той же строке, что и объявление, которому она предшествует).
Более высокая скорость разработки. Многие из функциональных возможностей Visual Studio направлены на то, чтобы помогать разработчику делать свою работу как можно быстрее. Удобные функции, вроде функции IntelliSense (которая умеет перехватывать ошибки и предлагать правильные варианты), функции поиска и замены (которая позволяет отыскивать ключевые слова как в одном файле, так и во всем проекте) и функции автоматического добавления и удаления комментариев (которая может временно скрывать блоки кода), позволяют разработчику работать быстро и эффективно.
Возможности отладки. Предлагаемые в Visual Studio инструменты отладки являются наилучшим средством для отслеживания загадочных ошибок и диагностирования странного поведения. Разработчик может выполнять свой код по строке за раз, устанавливать интеллектуальные точки прерывания, при желании сохраняя их для использования в будущем, и в любое время просматривать текущую информацию из памяти.
Visual Studio также имеет и множество других функций: возможность управления проектом; встроенная функция управления исходным кодом; возможность рефакторизации кода; мощная модель расширяемости. Более того, в случае использования Visual Studio 2008 Team System разработчик получает расширенные возможности для модульного тестирования, совместной работы и управления версиями кода (что значительно больше того, что предлагается в более простых инструментах вроде Visual SourceSafe).
В качестве недостатка можно отметить невозможность отладчика (Microsoft Visual Studio Debugger) отслеживать в коде режима ядра. Отладка в Windows в режиме ядра в общем случае выполняется при использовании WinDbg, KD или SoftICE.
Лучшие IDE для C#-разработчика
C# — популярный язык программирования. Он является основным инструментом для разработки программного обеспечения компании Microsoft. Этот объектно-ориентированный язык применяется для создания веб-приложений и десктопных программ. Чтобы узнать больше о C#, запишитесь на базовый курс программирования для начинающих . В этой статье мы разберем лучшие IDE для C#-разработчиков. В их число входит следующие продукты:
- Visual Studio
- Project Rider
- Eclipse
- Visual Studio Code
- MonoDevelop
- Code::Blocks
Преимущества и недостатки Visual Studio, Project Rider, Eclipse
Visual Studio признана лучшей IDE для C#. Дело в том, что оба продукта принадлежат корпорации Microsoft. Поэтому они идеально подходят для работы друг с другом.
В число преимуществ Visual Studio входит следующее:

- Среда содержит множество инструментов, которые очень хорошо работают на C#.
- Наличие бесплатной версии — Community Edition.
- Community содержит все что нужно для независимого разработчика.
- Самое эффективное ПО для разработки на любой платформе, включая .Net и C#.
- Возможность хранения данных в облаке.
У продукта есть и некоторые недостатки:
- Требовательность к ресурсам.
- После перехода на платную версии, могут слететь настройки и корпоративный сервер.
- Сложность при самостоятельном освоении.
Project Rider представляет собой кроссплатформенную .Net IDE. Она подходит для использования под Windows, Linux, Mac OS X. Продукт базируется на IntelliJ IDEA и Resharper.

В число ее преимуществ входит следующее:
- Поддержка C#, VB, XAML, HTML, JavaScript, TS и других языков.
- Отлично подходит для создания различного программного обеспечения: ASP.Net, Xamarian и т. д.
- Мощная поддержка навигации и рефакторинга.
- Прекрасно реализованная поддержка интеллектуальных сочетаний клавиш.
- Интеграция с Visual Studio и Unity.
К недостаткам относят следующие свойства:
- Некоторая часть функционала еще в процессе разработке, поэтому продукт содержит в себе ошибки и баги.
- Высокая стоимость. Цена за использование платформы — 139 USD в год. При этом есть trial-версия и скидки для студентов.

Eclipse aCute — плагин для Eclipse IDE. Он облегчает разработку на C#. aCute дает возможность применять редактор C#, в состав которого входит Eclipse IDE, поддерживающий языки посредством сервера Omni-sharp.
- В число преимуществ относят следующее:
- Плагин aCute выделяет синтаксис цветом.
- Возможность объявлять переменные, методы и классы.
- Возможность разрабатывать полную версию основного проекта .net, не выходя из IDE.
- Программы, разработанные с применением MS test и xUnit, можно выполнять в среде IDE.
К минусам платформы относят следующие особенности:
- Высокая сложность освоения для начинающих.
- Плагин разработан сообществом. Следовательно, нет никаких гарантий, что он всегда будет работать качественно.
Преимущества и недостатки Visual Studio Code, MonoDevelop, Code::Blocks
Visual Studio Code — отличный высокопроизводительный легковесный редактор, предлагающий хорошую поддержку завершения проекта. Работает на Node JS. Содержит плагины для VIM и Emacs.

В число его плюсов входит следующее:
- Работает на базе открытого исходного кода.
- Отлично работает Mac, Linux, Windows.
- Включает большой функционал. В него входит обозреватель решений, отладчик, область расширений и управление исходным кодом.
- Поддержка терминала внутри окна.
- Прекрасно подходит для разработки в ядре .Net.
У продукта есть и определенные недостатки:
- Минималистичный, поэтому сложен для восприятия некоторыми разработчиками.
- Обладает небольшим функционалом, поэтому не подходит для реализации больших проектов.
MonoDevelop подходит для быстрой разработки настольных и web-приложений. IDE позволяет переносить приложения .Net, написанные в Visual Studio, на Linux и Mac OS X, поскольку поддерживает единую базу кода платформ.