Отличия visual studio 2017 и 2015

Обновлено: 05.07.2024

Хочу начать изучать c++. Из IDE в один голос советуют VS, но я не могу понять какую версию ставить. Везде пишут про 2015. 2017, как я понял, урезанная. Помогите разобраться.

  • Вопрос задан более трёх лет назад
  • 443 просмотра

Простой 2 комментария

Adamos


Кто? Друзья-студенты, которые ничего другого и не видели?
VS имеет неприятное свойство учить не техническим аспектам программирования, а умению копаться в настройках VS. Вне ее программист оказывается совершенно беспомощным.
Попробуйте QtCreator, хотя бы для расширения кругозора.

Adamos, та нет, видел в видеоуроках и на форумах.
Но совет беру на заметку. Посмотрю, спасибо.

pavel9609

У Visual Studio 2015 нет express версии, есть комьюнити.
Комьюнити - это есть урезанная, бесплатная версия.
Ну вроде даже у бесплатной функционал нормальный. Качайте 2017, если вы сидите на 10 винде.

Павел Михаловский Причём здесь 10 винда? У меня мсвс2017 спокойна поставилась на вин7.

maaGames

community полноценная версия для одного разработчика. Нет только некоторых функций, полезных при корпоративной разработке. Но придётся зарегистрироваться (бесплатно). Ну и нельзя для коммерческой разработки использовать.)

Ясно.
А что до 2015 express? Просто я глянул, она вроде даже весит меньше.))

Adamos


Не видел такого требования. Можно пруф?
Мне, правда, для сборки под винду и 2013 Express хватает.

maaGames

1. Индивидуальная лицензия. Если вы являетесь физическим лицом, разрабатывающим собственные приложения для продажи или с какой-либо другой целью, вы можете использовать данное программное обеспечение для разработки и тестирования таких приложений.

Adamos

maaGames, ну, я-то являюсь работником организации. Правда, там же далее мне таки разрешают использование VS для разработки, поскольку организация не является Предприятием с большой буквы, описанным ниже.
P.S. Эти долбоклюи в простоте даже запрет написать не могут, обязательно придумают свой, ни с чем логически не совместимый, термин.

maaGames

Adamos, Может работодатель не пожопится купить Pro версию за 30 тысяч рублей и не придётся переживать о юридических вопросах.

Скриншот панели выбора компонентов для создания графического приложения

1. В первую очередь перечислим, какие компоненты должны быть установлены для создания графического приложения на языке С++. Их три, все относятся к разделу "Desktop development with C++":
- VC++ 2017 v141 toolset (x86,x64)
- Windows 10 SDK (10.0.15063.0) for Desktop C++ x86 and x64
- C++/CLI support

Первые два нужны для создания любого приложения на С++, третий именно для создания графической оболочки программы. Во время исследования данной темы мною подключалось два десятка других - пользы новичкам от них нету.

Окно выбора типа создаваемого приложения

2. После установки среды разработки переходим
File > New > Project. ( ^+N )
В появившемся окне отыскиваем Installed > Visual C++ > CLR > CLR Empty Project

Поля внизу заполняем традиционным для таких программ способом. В названии проекта лучше не допускать пробелов, иначе вам потом придётся мудрить в коде.

3. Необходимо добавить в приложение главную форму. Есть два равносильных пути достижения этой цели.
Первый: в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню Add > New Item.
Второй способ: в главном меню выбираем Project > Add New Item.
Или просто нажимаем ^+A

выбор Windows Form

Во появившемся окне Visual C++ > UI > Windows Form

Устранение ошибки 0x8000000A, иногда происходящей при создании формы

Главная форма программы создана. На некоторых компьютерах в данный момент возможно выскакивание ошибки 0x8000000A, в этом случае нужно просто закрыть вкладку.

Эта ошибка хорошо известна ещё по Visual Studio 2015. Можете почитать её обсуждение, к примеру, на сайте Microsoft по ссылке1, ссылке2, ссылке3. И более лучшего решения, чем закрывать вкладку, ещё нет. По всей видимости, команда разработчиков Visual Studio не считает эту ошибку достаточно серьёзным делом, чтобы ломать о неё копья.

Выбор в контекстном меню элемента Свойства

4. Но мало просто создать форму, нужно вплести её в создаваемую программу. Для этого в "Solution Explorer" правой кнопкой мыши на названии проекта, во всплывшем контексном меню выбрать Properties .

Выбор содсистемы (SubSystem)

В открывшемся окне произвести два действия.
• Linker > System > SubSystem , из раскрывающегося списка выбрать " Windows (/SUBSYSTEM:WINDOWS) "

Прописывание точки привязки (Entry Point)

• Linker > Advanced > Entry Point . В пустое поле вписать " main " (без кавычек).

5. В "Solution Explorer" двойным щелчком открыть в редакторе файл MyForm.cpp. Скопировать в него текст

Отлично, всё готово! Теперь проект компилируем и запускаем. Но если у вас ранее выскакивала 0x8000000A, то быстрее всего вам придётся перезапустить Visual Studio и вновь загрузить в нём проект. Далее ошибка ни в чём не проявится.

Вызов панели Toolbox, также показана сама панель

6. Для того, чтобы добавить на нашу только что созданную форму новые элементы, понадобится панель Toolbox. Полезно запомнить горячую клавишу ^!X

Работа с размещением элементов на форме сложностей вызвать не должна. Работает здесь всё удобнее, чем wxWidgets в CodeBlocks или wxDev-C++. Никаких глюков мною замечено не было.

Для изменения свойств только что созданного элемента интерфейса щёлкните на нём правой кнопкой и в контекстном меню выберите, соответственно, Properties.

Испытаем кнопку в работе. Сделаем так, чтобы по её названию появлялось окно с умным текстом. Двойной щелчок по элементу на форме вызовет редактор кода с уже прописанным в нём шаблоном. Добавим внутрь фигурных скобок команду

MessageBox::Show("Hello World",
"My heading", MessageBoxButtons::OKCancel,
MessageBoxIcon::Asterisk);

Работающее простейшее графическое приложение, созданное в VS2017

Запускаем и проверяем!

Список Solution Configuration, выставленный на Release

Если вдруг не запустится, то первым делом проверяем, что выставлено в раскрывающемся списке Solution Configurations . Он находится на панели инструментов (под главным меню). Там должно быть Release (а не Debug) .

Дополнительная информация

Альтернативные способы создания графических приложений в Visual Studio 2017.

1. UWP (Universal Windows Platfrom application) - универсальные приложения, способные запускаться на Windows 10, Windows 10 Mobile и аналогичных самых современных платформах от Microsoft. Платформа разработана как расширение Windows Runtime. Всё бы хорошо, но данные приложения не могут запускаться на более старых версиях Windows, даже на восьмёрке.

Пара слов для общего развития о нескольких технологиях, на которые вы будете постоянно натыкаться при чтении документации по разработке GUI в Visual Studio.

ATL (Active Template Library) - набор шаблонных классов языка C++, предназначенных для упрощения написания COM-компонентов.
MFC (Microsoft Foundation Classes) - библиотека объектов, помогающая профессиональным разработчикам создавать десктопные приложения. Что-то вроде более усложнённого и навороченного варианта ATL. ATL и MFC являются хорошими вещами, и с их задействованием также можно создавать графические приложения. Но это инструменты, требующие наличия углублённых знаний тематики.

IncrediBuild - технология ускорения компиляции и сборки приложений с помощью подключения дополнительных компьютеров. К методам создания графических интерфейсов это напрямую не относится.

Примечания:
В интернете можно наткнуться на заголовок "Full C and C++ IDE with Visual Studio". Оттуда закачиваются те же самые стандартные дистрибутивы Visual Studio, проверено по контрольным суммам.

Код и внешний вид простейшего графического калькулятора

P.S.
Теперь можно немного поэкспериментировать с элементами интерфейса. Ниже показан код простейшего графического калькулятора:

private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) Application::Exit();
>

private: System::Void radioButton1_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "+";
>
private: System::Void radioButton2_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "-";
>
private: System::Void radioButton3_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "*";
>
private: System::Void radioButton4_CheckedChanged(System::Object^ sender, System::EventArgs^ e) label1->Text = "/";
>

private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) char sw = System::Convert::ToChar(label1->Text);
double a = System::Convert::ToDouble(textBox1->Text);
double b = System::Convert::ToDouble(textBox2->Text);
double r;
switch (sw) case '+':
r = a + b;
break;
case '-':
r = a - b;
break;
case '*':
r = a * b;
break;
case '/':
r = a / b;
break;
>
label2->Text = "Result: " + System::Convert::ToString(r);
>

Простой стандандартный windows-калькулятор

А теперь можно попытаться сотворить что-то более похожее на стандартное window-приложение. Пока простейшее.

double iFirstNum;
double iSecondNum;
double iResult;
String^ iOperator;

private: System::Void btnC_Click(System::Object^ sender, System::EventArgs^ e) /*button C ("Global Clear" - clears the entire calculation*/
tbDisplay->Text = "0";
lblShowOp->Text = "";
>

private: System::Void btnCE_Click(System::Object^ sender, System::EventArgs^ e) <
/*button CE ("Clear Entry" is supposed to be used to clear only the thing you are currently
typing into the calculator, before you have performed any operation on it.*/
tbDisplay->Text = "0";
>

private: System::Void buttonS_Number_Click(System::Object^ sender, System::EventArgs^ e) <
//Number Buttons Event
Button ^ Numbers = safe_cast<Button^>(sender);
if (tbDisplay->Text == "0")
tbDisplay->Text = Numbers->Text;
else
tbDisplay->Text += Numbers->Text;
>

private: System::Void buttonS_Arithmetic_Click(System::Object^ sender, System::EventArgs^ e) <
//Operator Buttons Event
Button ^ op = safe_cast<Button^>(sender);
iFirstNum = Double::Parse(tbDisplay->Text);
tbDisplay->Text = "0";
iOperator = op->Text;
lblShowOp->Text = System::Convert::ToString(iFirstNum) + " " + iOperator;
>

private: System::Void btnEquals_Click(System::Object^ sender, System::EventArgs^ e) <
//Equals
iSecondNum = Double::Parse(tbDisplay->Text);

if (iOperator == "+")
iResult = iFirstNum + iSecondNum;
else if (iOperator == "-")
iResult = iFirstNum - iSecondNum;
else if (iOperator == "*")
iResult = iFirstNum * iSecondNum;
else if (iOperator == "/")
iResult = iFirstNum / iSecondNum;
else MessageBox::Show("Unknown operation.\nSomething wrong.",
"error", MessageBoxButtons::OK,
MessageBoxIcon::Error);
return;
>

private: System::Void btnDot_Click(System::Object^ sender, System::EventArgs^ e) <
//Decimal Point
if (!tbDisplay->Text->Contains("."))
tbDisplay->Text += ".";
>

private: System::Void btnPM_Click(System::Object^ sender, System::EventArgs^ e) <
//Plus-Minus
if (tbDisplay->Text->Contains("-"))
tbDisplay->Text = tbDisplay->Text->Remove(0, 1);
else
tbDisplay->Text = "-" + tbDisplay->Text;
>

Код создан на основе видеоролика
"Visual C++ Calculator Tutorial with Decimal Point and Backspace" (37:59, DJ Oamen, 2016 Jan 2, Visual C++ 2010) ,
но имеет ряд отличий.

Как продолжение, существует видеоролик
"Visual C++ Scientific Calculator Tutorial" (53:31, Paul Oamen, 2016 Oct 2, Visual Studio 2015). Судя по голосу, автор тот же. К показанному выше калькулятору прибавляется конвертер температуры и ряд более научных функций. Предупрежу, что итоговое "творение" имеет массу изъянов и глюков, поэтому видео можно просматривать исключительно для изучение приёмов программирования. Но не используйте его в качестве образца того, как нужно создавать калькуляторы.


Microsoft Visual Studio

В настоящее время 11-я версия Visual Studio, названная Visual Studio 2017, является последним стабильным выпуском команды разработчиков инструментов Microsoft. Это доступно в 3 главных выпусках а именно

  1. Бесплатная версия сообщества,
  2. Профессиональная версия и
  3. Корпоративное издание.

На данный момент Visual Studio является Редактором кода , Отладчиком и Дизайнером . Это означает, что вы можете редактировать или писать простой код для бэкенда или консолей здесь, вы можете проверить, функционален ли написанный вами код и может ли он помочь в улучшении вашего кода. Кроме того, он является дизайнером, поскольку теперь вы можете создавать пользовательские интерфейсы и пользовательский опыт в Visual Studio, например, при разработке приложений для UWP или в Xamarin с использованием Blend или XAML.

Вся информация в этой статье касается сносок, изложенных Microsoft. Они перечислены ниже:

Теперь давайте просто сравним выпуски Visual Studio.

Visual Studio Community Бесплатная версия

1] Для кого это нужно?

Visual Studio Community Edition значительно выиграет от следующих сценариев использования. Они будут поддерживать индивидуальных разработчиков, обучение в классе, академические исследования, содействие проектам с открытым исходным кодом и некоммерческим организациям для максимум 5 пользователей.

2] Будет ли она поддерживать платформу разработки?

Как я упоминал выше, он будет обязательно поддерживать платформу разработки.

3] Как насчет интегрированной среды разработки?

Говоря об интегрированной среде разработки, бесплатная версия Visual Studio для сообщества будет поддерживать следующие функции. Он будет поддерживать Peek Definition, Refactoring, Web-развертывание в один клик, Viewer Resource Viewer, Визуализация решений с графиками зависимостей и кодами, а также многоцелевой таргетинг.

4] Продвинутая отладка и диагностика?

В разделе Advanced Debugging and Diagnostics бесплатная версия Visual Studio поддерживает следующее. Он поддерживает метрики кода, отладку графики, статический анализ кода и концентратор производительности и диагностики.

5] Поддержка инструментов тестирования

Ну, так как это бесплатная версия Visual Studio с ограниченными возможностями и инструментами. Он просто поддерживает модульное тестирование , чтобы разработчики могли тестировать свой код.

6] Насколько хорошо интегрирована Xamarin (межплатформенная разработка)?

Ну, если вы заинтересованы в Xamarin, вам повезло. Следующие межплатформенные функции поддерживаются сообществом Visual Studio под именем Xamarin. Это общий код между аналогами приложений для Android и iOS, собственные дизайнеры интерфейсов iOS и Android, Xamarin Forms (сокращенно Xamarin.Forms) и Xamarin Instant Player.

7] Можете ли вы сотрудничать с другими коллегами-разработчиками из сообщества Visual Studio?

Что ж, Microsoft предоставила вам покрытие здесь. Следующие функции поддерживаются Visual Studio для выполнения всех ваших совместных потребностей. Это PowerPoint Storyboarding, Code Review, возможности приостановки/возобновления задач и Team Explorer с поддержкой сторонних инструментов разработки.

Читать . Что такое код Visual Studio?

Visual Studio Professional

1] Для кого это нужно?

Помимо того, что упомянуто для сообщества Visual Studio, это профессиональное издание Visual Studio поддерживается в сценариях использования, таких как предприятия.

2] Будет ли она поддерживать платформу разработки?

Как я упоминал выше, он, безусловно, будет поддерживать Платформу разработки.

3] Как насчет интегрированной среды разработки?

Говоря об интегрированной среде разработки, профессиональная версия Visual Studio будет поддерживать все, что поддерживает сообщество Visual Studio. Это дополнительно будет поддерживать CodeLens .

4] Продвинутая отладка и диагностика?

В разделе Advanced Debugging and Diagnostics профессиональная версия поддерживает ровно все, что поддерживает бесплатная версия Visual Studio, поддерживаемая сообществом Visual Studio.

5] О том, насколько хорошо Visual Studio поддерживает инструменты тестирования

Что ж, профессионал Visual Studio по-прежнему обладает ограниченными возможностями и инструментами по сравнению с версией Enterprise. Он просто поддерживает модульное тестирование , чтобы разработчики могли тестировать свой код.

6] Насколько хорошо интегрирована Xamarin (межплатформенная разработка)?

Хорошо, если вы заинтересованы в Xamarin. Он поддерживает те же функции, что и сообщество Visual Studio. Следующие межплатформенные функции поддерживаются сообществом Visual Studio под именем Xamarin. Это общий код между аналогами приложений для Android и iOS, собственные дизайнеры интерфейсов iOS и Android, Xamarin Forms (сокращенно Xamarin.Forms) и Xamarin Instant Player.

7] Можете ли вы сотрудничать с другими коллегами-разработчиками с помощью Visual Studio Professional?

Что ж, Microsoft предоставила вам покрытие здесь. Visual Studio поддерживает все функции для удовлетворения всех ваших потребностей в сотрудничестве. Это PowerPoint Storyboarding, Code Review, возможности приостановки/возобновления задач и Team Explorer с поддержкой сторонних инструментов разработки.

Visual Studio Enterprise

1] Для кого это нужно?

Как и Visual Studio Professional, он поддерживает индивидуальных разработчиков, обучение в классе, академические исследования, вклад в проекты с открытым исходным кодом, некоммерческие организации (до 5 пользователей) и предприятие.

2] Будет ли она поддерживать платформу разработки?

Как я упоминал выше, он, безусловно, будет поддерживать Платформу разработки.

3] Как насчет интегрированной среды разработки?

Говоря об интегрированной среде разработки, выпуск Visual Studio для предприятий будет поддерживать все, что поддерживает Visual Studio Professional. Это дополнительно будет поддерживать проверку в реальном времени зависимости, диаграммы архитектурных уровней, проверку архитектуры и клонирование кода.

4] Продвинутая отладка и диагностика?

5] Поддержка инструментов тестирования

Ну, выпуск Enterprise Studio Visual Studio поставляется со всеми функциями и инструментами по сравнению с другими более низкими версиями. В дополнение к модульному тестированию, поддерживает живое модульное тестирование, управление тест-кейсами, веб-нагрузку и тестирование производительности, IntelliTest, Microsoft Fakes, которая также называется изоляцией модульного теста, Охват кода, управление лабораторией, тестирование кодированного пользовательского интерфейса, ручное тестирование с помощью Microsoft Test Manager, предварительное тестирование с помощью Microsoft Test Manager и быстрая перемотка вперед для ручного тестирования с помощью Microsoft Test Manager.

6] Насколько хорошо интегрирована Xamarin (межплатформенная разработка)?


Что ж, если вас интересует Xamarin. Он поддерживает больше функций, чем Visual Studio Community и Visual Studio Enterprise. Следующие кроссплатформенные функции поддерживаются Visual Studio Enterprise в дополнение к тем, которые поддерживаются двумя другими выпусками под именем Xamarin. Это встроенные сборки, Xamarin Inspector, Xamarin Profiler и Remoted iOS Simulator для Windows.

7] Можете ли вы сотрудничать с другими коллегами-разработчиками в Visual Studio Enterprise?

Что ж, Microsoft предоставила вам покрытие здесь. Очевидно, что все функции поддерживаются Visual Studio для выполнения всех ваших совместных задач. Это PowerPoint Storyboarding, Code Review, возможности приостановки/возобновления задач и Team Explorer с поддержкой сторонних инструментов разработки.

Visual Studio скачать

СОВЕТ : Microsoft Visual Studio Dev Essentials предоставляет вам все инструменты и услуги, необходимые для того, чтобы стать разработчиком абсолютно бесплатно. Программное обеспечение предназначено для предоставления бесплатных инструментов, услуг и обучения, чтобы побудить больше разработчиков и энтузиастов попробовать свои любимые технологии.

Теперь прочитайте : руководство для начинающих по началу работы с Visual Studio.

Программам, разработанным с помощью Visual Studio, обычно требуется для запуска определенная версия Microsoft Visual C++ Redistributable. Данное условие приводит к установке на ПК Windows 10, Windows 8.1 и Windows 7 большого количеств различных версий распространяемых пакетов Visual C++.

В результате на большинстве устройств Windows можно наблюдать ситуацию, когда в системе развернуты пакеты Microsoft Visual C++ Redistributable, установка которых была инициирована программным обеспечением, обновлениями, например патчами безопасности или вручную системным администратором.

Microsoft Visual C++ Redistributable

Пакеты Redistributable сохраняются в общедоступных системных директориях, поэтому любая программа может получить к ним доступ при необходимости.

Microsoft внесла значительные изменения с выходом Microsoft Visual C++ Redistributable для Visual Studio 2015, 2017 и 2019. Для распространяемых пакетов доступен исходный образ, который исключает необходимость установки различных версий пакетов в целевую систему.

Microsoft приводит следующий пример на странице поддержки «Последние поддерживаемые версии Visual C++ для скачивания»:

Например, установка распространяемого пакета Visual C++ 2019 позволяет работать с программами, созданные с помощью Visual C++ 2015 и 2017. Однако установка распространяемого пакета Visual C++ 2015 не заменяет новых версий файлов, установленных распространяемыми пакетами Visual C ++ 2017 и 2019.

Это основное отличие от предыдущих версий Visual C++, поскольку у них есть собственные файлы выполнения, которые не используются совместно с другими версиями.

На странице поддержки Microsoft Docs приводится дополнительная информация:

Эта универсальная CRT является компонентом операционной системы Microsoft Windows. Она входит в состав операционной системы Windows 10 и доступна через Центр обновления Windows для старых операционных систем от Windows Vista до Windows 8.1. Кроме того, локальное развертывание универсальной CRT поддерживается с некоторыми ограничениями.

Администраторы Windows могут загрузить универсальную среду выполнения С++ в зависимости от архитектуры процессора по следующей ссылке:

Ранние версии распространяемых пакетов для Visual Studio по-прежнему нужно будет скачивать и устанавливать отдельно, или они будут развертываться в процессе установки ПО. Сторонний установщик Visual C++ All in One Installer помогает установить все необходимые распространяемые пакеты в системы Windows.

Универсальная CRT – шаг в верном направлении. Хотя она не решает проблему со старыми распространяемыми пакетами C++, она значительно упрощает работу с пакетами Visual C++ 2015 Redistributable и выше.

Читайте также: