Решение в терминологии visual studio это
Ознакомление с типами решений и проектов в Visual Studio 2013 и управлением ими; управление облачными проектами.
5.1. Введение. Решения (solutions) и проекты (projects)
Среда Visual Studio при разработке программ оперирует двумя категориями сущностей: решениями (solutions) и проектами (projects). Решение - это более крупная единица : решение может состоять из одного или нескольких проектов. Возможно также создание пустого решения, к которому постепенно добавляются все новые проекты.
Код программного проекта может иметь сложную структуру и состоять из нескольких файлов исходного кода и конфигурационных файлов. Кроме того, сам код может быть весьма специфическим: например, код Web-сервиса может иметь Web-методы, аннотированные специальными атрибутами, и т.д. В связи с этим, среда Visual Studio облегчает создание проектов с помощью шаблонов (templates). Шаблон задает типовую структуру кода проекта и его конфигурационных файлов, и разработчику остается "только" добавить в шаблон конкретный код.
По умолчанию разработчик, как правило, создает в среде один проект. При этом по умолчанию среда создает и решение, частью которого становится создаваемый проект. Имя решения совпадает с именем проекта.
5.2. Создание проекта
Наиболее распространенный способ создания нового проекта в среде Visual Studio - выбор пунктов основного меню : File / New / Project. Открывается окно New Project ( рис. 5.1).
Кроме того, не все виды проектов доступны в начальной конфигурации Visual Studio 2013, в том виде, в каком она инсталлирована на Ваш компьютер . Использование (фактически - добавление) некоторых видов проектов может потребовать дополнительных инсталляций. Прежде всего, это относится к облачным проектам для платформы Microsoft Azure. При попытке выбора и использования одного из видов проектов, отнесенных к категории Cloud (они показаны на рис. 5.1), среда сообщает, что для их использования необходимо инсталлировать Microsoft Azure SDK соответствующей версии - на момент разработки курса (июнь 2014 г.) это версия 2.3. Microsoft Azure SDK - комплекс инструментов, который необходимо дополнительно скачивать и инсталлировать (рекомендации по инсталляции приведены на страницах MSDN ). Подробнее об этом - ниже, в лекциях "Архитектура, принципы и возможности облачных вычислений на платформе Microsoft Azure и ее связь с Visual Studio" и "Visual Studio Online" , посвященных облачным проектам.
В версии Visual Studio 2013 Ultimate доступны следующие виды проектов (для каждого языка разработки):
Для языка Visual Basic набор проектов тот же самый.
Для языка Visual C ++ предусмотрены лишь некоторые виды проектов "в старом стиле", отражающие специфику данного языка: например, Win32 Application - приложение , использующее Win32 API ; MFC Application - приложение , использующее библиотеку Microsoft Foundation Classes и т.д.
В этой статье вы узнаете, что такое проект и решение в Visual Studio. В ней также кратко рассматривается создание проекта и окно инструментов "Обозреватель решений".
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Проекты и решения в Visual Studio для Mac.
Проекты
При создании в Visual Studio приложения или веб-сайта вы начинаете с проекта. С логической точки зрения проект содержит все файлы, которые будут скомпилированы в исполняемую программу, библиотеку или веб-сайт. Сюда входят файлы с исходным кодом, значками, изображениями, данными и т. д. Проект также содержит параметры компилятора и другие файлы конфигурации, которые могут потребоваться разным службам или компонентам, с которыми взаимодействует программа.
Файл проекта
Использовать решения или проекты в Visual Studio для редактирования, сборки и отладки кода необязательно. Можно просто открыть папку с файлами исходного кода в Visual Studio и начать редактирование. Дополнительные сведения см. в статье Разработка кода в Visual Studio без использования проектов и решений.
Создать новые проекты
Самый простой способ создать новый проект — использовать шаблон проекта с нужным типом проекта. Шаблон проекта — это базовый набор предварительно созданных файлов кода, файлов конфигурации, активов и параметров. Для выбора шаблона проекта нажмите Файл > Создать > Проект. Дополнительные сведения см. в разделе Создание нового проекта.
Вы можете также создать пользовательский шаблон проекта, чтобы затем использовать его для создания новых проектов. Дополнительные сведения см. в статье Создание шаблонов проектов и элементов.
При создании нового проекта Visual Studio сохраняет его в расположении по умолчанию — %USERPROFILE%\source\repos. Чтобы изменить это расположение, перейдите в раздел Средства > Параметры > Проекты и решения > Расположения. Дополнительные сведения см. в диалоговом окне параметров в разделе "Проекты и решения" > "Расположения".
Решения
Проект находится внутри решения. Несмотря на название, под решением не подразумевается "решение вопроса". Это просто контейнер для одного или нескольких связанных проектов вместе с информацией о сборке, параметрами окна Visual Studio и любыми прочими файлами, которые не относятся к какому-либо конкретному проекту.
Файл решения
В Visual Studio используются два типа файлов (SLN и SUO) для хранения параметров, связанных с решениями:
Расширение | name | Описание |
---|---|---|
.SLN | Решение Visual Studio | Организует проекты, элементы проектов и решений в решении. |
SUO | Параметры пользователя решения | Сохраняет настройки и параметры уровня пользователя, например точки останова. |
Решение описывается текстовым файлом (SLN) в собственном уникальном формате; его обычно не изменяют вручную. И наоборот, SUO-файл является скрытым и не отображается, если проводник имеет параметры по умолчанию. Для отображения скрытых файлов в меню Вид проводника установите флажок Скрытые элементы.
Папка решения
Папка решения — это виртуальная папка, которая доступна только в Обозревателе решений, где с ее помощью можно группировать проекты в решении. Если нужно найти файл решения на компьютере, перейдите к разделу Средства > Параметры > Проекты и решения > Расположения. Дополнительные сведения см. в диалоговом окне параметров в разделе "Проекты и решения" > "Расположения".
Пример проекта и решения, созданного с нуля, а также пошаговые инструкции и пример кода см. в статье Общие сведения о проектах и решениях.
обозреватель решений
На верхней панели обозревателя решений представлены кнопки для переключения между представлениями папки и решения, отображения скрытых файлов, свертывания всех узлов и других функций.
На панели инструментов в верхней части Обозревателя решений есть кнопки для переключения из представления решения в представление папки, фильтрации ожидающих изменений, отображения всех файлов, свертывания всех узлов, просмотра страниц свойств, просмотра кода в редакторе кода и т. д.
Многие команды меню доступны в контекстном меню различных элементов в Обозревателе решений. К таким командам относится сборка проекта, управление пакетами NuGet, добавление ссылок, переименование файла и запуск тестов. Это лишь некоторые из них. Дополнительные сведения см. в статье Использование Обозревателя решений.
Если вы закрыли Обозреватель решений и хотите вновь открыть его, выберите Вид > Обозреватель решений в строке меню или нажмите клавиши CTRL+ALT+L. Если же вы закрыли боковые вкладки и хотите восстановить их в расположениях по умолчанию, выберите Окно > Сброс макета окон в строке меню.
Чтобы просмотреть изображения и значки приложений, отображаемые в Visual Studio, скачайте библиотеку изображений Visual Studio.
В отличие от простейших программ, таких как "Hello World", большинство приложений состоит из нескольких исходных файлов. Это обстоятельство порождает массу проблем, в частности, как назвать файлы, где их разместить и можно ли их использовать повторно. В интегрированной среде разработки Visual Studio принята концепция решения (solution), состоящего из ряда проектов, которые в свою очередь состоят из ряда элементов, благодаря которой разработчики могут работать с исходными файлами. Интегрированная среда разработки имеет множество встроенных инструментов, позволяющих упростить этот процесс, обеспечив разработчикам доступ к большей части их приложений. Далее рассматриваются структура решений и проектов, доступные типы проектов и способы настройки их конфигурации.
Структура решения
Работая с системой Visual Studio, пользователь открывает решение. При повторном редактировании специальных файлов создается временное решение, которое можно уничтожить по окончании работы. Однако решение позволяет управлять текущими файлами, поэтому в большинстве случаев его сохранение означает, что пользователь может вернуться к тому, что он делал накануне, и вновь открыть файлы, с которыми он работал.
Наиболее распространенным способом структурирования приложений в среде Visual Studio является одно отдельное решение, содержащее много проектов. Каждый проект можно создать из набора исходных файлов и папок. Главное окно, в котором пользователь работает с решениями и проектами, называется Solution Explorer:
Для организации работы с исходным кодом и предотвращения его ассоциации с приложениями (за исключением веб-приложений, в которых существуют специальные папки, имеющие особое предназначение в данном контексте) используются папки (folders). Некоторые разработчики используют имена папок, соответствующие пространствам имен, которым принадлежат классы. Например, если класс Person находится в папке DataClasses в проекте FirstProject, то полностью квалифицированное имя класса может выглядеть как FirstProject.DataClasses.Person.
Папки решения (solution folders) - полезный способ организации проектов в большом решении. Они отображаются только в окне Solution Explorer - физически в файловой системе их не существует. Такие действия, как Build или Unload, можно легко выполнять над всеми проектами, включенными в папку решения. Для того чтобы разгрузить окно Solution Explorer, папки решения могут быть свернуты или скрыты.
Скрытые проекты по-прежнему создаются, когда пользователь создает решение. Поскольку папки проекта не соответствуют физическим папкам, их можно добавлять, переименовывать и удалять в любое время, не рискуя повредить связи между файлами или потерять контроль над исходными файлами.
Папка Miscellaneous Files - это специальная папка решения, которую можно использовать для того, чтобы следить за тем, какие еще файлы, не являющиеся частью какого-либо проекта в решении, были открыты в системе Visual Studio. По умолчанию папка Miscellaneous Files скрыта. Для того чтобы сделать ее видимой, следует выполнить команду Tools --> Options --> Environment --> Documents --> Show Miscellaneous Files.
Несмотря на то что формат файла решения, принятый в предыдущих версиях, не изменился, в системе Visual Studio 2010 открыть файл решения, созданный в версии Visual Studio 2013, невозможно.
Кроме информации о файлах, содержащихся в приложении, файлы решения и проектов могут содержать и другие записи, например, о том, как именно должен быть скомпилирован конкретный файл, об установках проекта, о ресурсах и многом другом. Система Visual Studio 2013 имеет немодальное диалоговое окно для редактирования свойств проекта, в то время как свойства решения по-прежнему открываются в отдельном окне. Как и следовало ожидать, свойствами проекта считаются те свойства, которые относятся только к данному проекту, например информация о сборке и связях, а свойства решения определяют общую конфигурацию для сборки приложений.
Формат файла решения
Система Visual Studio 2013 фактически создает для решения два файла, имеющих расширения .suo и .sln (solution file). Первый - это довольно неинтересный бинарный файл, который сложно редактировать. Он содержит информацию, специфичную для пользователя, например, какие файлы были открыты, когда решение закрывалось в последний раз и где находились контрольные точки. Этот файл скрыт, поэтому он не должен появляться в папке решения при использовании Windows Explorer, если не снять с него соответствующую метку.
Иногда файл .suo оказывается поврежденным, и это вызывает непредсказуемые последствия при сборке и редактировании приложений. Если при работе с конкретным решением система Visual Studio становится нестабильной, необходимо выйти из нее и удалить файл с расширением .suo. Он будет создан заново системой Visual Studio, когда решение будет открыто в следующий раз. Файл решения с расширением .sln содержит информацию о решении, например список проектов, конфигурации сборки и другие настройки, не специфичные для проекта. В отличие от многих файлов, используемых в системе Visual Studio 2013, файл решения не является XML-документом. Он хранит информацию в блоках, как показано в следующем примере:
В этом примере решение состоит из трех проектов (GettingStarted, Information Services и Reference Library), а раздел Global содержит настройки, которые применяются к решению. Например, само решение будет видимым в окне Solution Explorer, потому что настройка HideSolutionNode установлена равной FALSE. Если изменить ее на TRUE, имя решения не будет отображаться в системе Visual Studio.
Свойства решения
Для того чтобы открыть диалоговое окно Properties, необходимо щелкнуть правой кнопкой мыши на узле Solution в окне Solution Explorer и выбрать команду Properties. Это диалоговое окно содержит два узла: Common properties и Configuration properties, как показано на рисунке ниже:
Более подробно узлы Common properties и Configuration properties описываются в следующих разделах.
Узел Common Properties
Определяя проект Startup Project для приложения, пользователь имеет три возможности, которые являются практически очевидными. Выбор Current Selection запускает проект, который в данный момент находится в фокусе окна Solution Explorer. Вариант Single Startup гарантирует, что каждый раз будет запускаться один и тот же проект. Эта установка задается по умолчанию, поскольку большинство приложений имеют только один стартовый проект. Последний вариант, Multiple Startup Projects, позволяет запускать несколько проектов в определенном порядке. Это может быть полезным при работе с приложением клиент/сервер в рамках одного решения, причем требуется, чтобы и клиент, и сервер выполнялись одновременно. При выполнении нескольких проектов важно контролировать порядок их запуска. Для управления порядком запуска проектов можно использовать навигационные кнопки, расположенные после списка проектов.
Раздел Project Dependencies используется для того, чтобы задавать другие проекты, от которых зависит конкретный проект. В большинстве случаев система Visual Studio сама управляет этими свойствами, когда пользователь добавляет или удаляет связи между проектами и данным проектом. Однако иногда пользователь может самостоятельно создать связи между проектами, чтобы они собирались в заданном порядке. Система Visual Studio использует этот список зависимостей, для того чтобы определить порядок сборки проектов. Окно этого раздела предотвращает неосторожное добавление циклических связей и удаление необходимых зависимостей между проектами.
В разделе Debug Source Files можно создать список каталогов, в которых система Visual Studio может искать исходные файлы при отладке. Этот список задается по умолчанию и просматривается перед открытием диалогового окна Find Source. Кроме того, пользователь может перечислить исходные файлы, которые система Visual Studio не должна искать. Если щелкнуть на кнопке Cancel в момент, когда система предлагает найти конкретный исходный файл, то он будет добавлен в этот список.
Раздел Code Analysis Settings доступен только в версии Visual Studio Team Suite. Это позволяет выбирать набор правил статического анализа кода, которые будут применяться к конкретному проекту. Более подробно раздел Code Analysis обсуждается далее.
Узел Configuration Properties
И проекты, и решения имеют конфигурации для сборки, определяющие, какие элементы должны быть собраны и почему. Это может сбить пользователя с толку, потому что на самом деле между конфигурацией проекта, определяющей, как должны собираться элементы, и конфигурацией решения, определяющей, какие проекты должны быть собраны, нет никакой корреляции, кроме случаев, когда они имеют одинаковые имена. Новое решение определит конфигурации Debug и Release (решения), что эквивалентно сборке всех проектов в решении с помощью конфигураций Debug и Release (проекта).
Например, может быть создана новая конфигурация решения Test, состоящая из двух проектов: MyClassLibrary и MyClassLibraryTest. Когда пользователь создает свое приложение в конфигурации Test, он хочет, чтобы проект MyClassLibrary был собран в режиме Release, чтобы тестировать его в виде, максимально приближенном к окончательной версии. Однако, чтобы проверить тестируемый код, необходимо собрать тестовый проект в режиме Debug.
Когда пользователь собирает проект в режиме Release, он не хочет, чтобы решение Test было собрано или развернуто вместе с приложением. В данном случае в конфигурации решения Test можно указать, что пользователь хочет, чтобы проект MyClassLibrary был собран в режиме Release, а проект MyClassLibraryTest вообще не собирался.
Пользователь может легко переключаться между этими конфигурациями с помощью меню Configuration стандартной инструментальной панели. Однако, переключаться между платформами не так легко, потому что меню Platform нет ни в одной инструментальной панели. Для того чтобы сделать ее доступной, необходимо выбрать команду View --> Toolbars --> Customize. Затем элемент Solution Platforms из категории Build на закладке Command можно перетащить на инструментальную панель.
Следует отметить, что, выбрав узел Configuration Properties в диалоговом окне Solution Properties, как показано на рисунке ниже, можно получить доступ к раскрывающимся спискам Configuration и Platform. Раскрывающийся список Configuration содержит все доступные конфигурации решения: Debug и Release (заданные по умолчанию), Active и All Configurations. Аналогично в раскрывающемся списке Platform перечислены все доступные платформы. Как только пользователь получит доступ к этим раскрывающимся спискам, он может на этой же странице задать настройки для каждой конфигурации и/или платформы. Для того чтобы добавить новые конфигурации и/или платформы для решения, пользователь может также использовать кнопку Configuration Manager.
При добавлении новых конфигураций решения существует возможность (предусмотренная по умолчанию) создания соответствующих конфигураций для существующих проектов (по умолчанию все проекты будут собираться в новой конфигурации решения), а также возможность создать новую конфигурацию на основе существующих. Если флажок Create Project Configurations установлен и новая конфигурация основана на существующей, то новые конфигурации проекта будут копировать конфигурации проекта, заданные для существующей конфигурации.
Возможности, доступные для создания новых платформенных конфигураций, ограничены типами доступных центральных процессоров: Itanium, x86 и x64. Новая платформенная конфигурация также может основываться на существующих платформенных конфигурациях, и существует возможность создания платформенной конфигурации для проекта.
В конфигурационном файле решения можно также задать тип центрального процессора, для которого оно собирается. Это особенно удобно, если нужно развернуть приложение для компьютеров с 64-битовой архитектурой. Установить настройки для всех этих решений можно непосредственно в контекстном меню, которое открывается после щелчка правой кнопкой мыши на узле Solution node в окне Solution Explorer. В то время как команда Set Startup Projects открывает окно конфигурации решения, команды Configuration Manager, Project Dependencies и Project Build Order открывают окно Configuration Manager and Project Dependencies. Команды Project Dependencies и Project Build Order отображаются в окне, только если решение состоит из нескольких проектов.
Команда Project Build Order открывает окно Project Dependencies и перечисляет порядок сборки, как показано на рисунке ниже:
Закладка Build Order демонстрирует порядок, в котором должны собираться проекты в соответствии с зависимостями между ними. Это может оказаться полезным, если пользователь поддерживает ссылки на бинарные сборки проектов, а не ссылки на проекты. Кроме того, эту возможность можно использовать для двойной проверки того, что проекты будут собраны в правильном порядке.
Где скачать и сколько стоит Visual Studio?
При этом, для работы вам доступно три редакции IDE:
- Community
- Professional
- Enterprise
Редакция Community предоставляется абсолютно бесплатно. При этом, на сайте Microsoft относительно этой редакции сказано дословно следующее:
Для организаций: Visual Studio Community может использовать неограниченное число пользователей в организации в следующих случаях: в учебных аудиториях, для научных исследований или участия в проектах с открытым кодом. Для всех прочих сценариев использования: в некорпоративных организациях Visual Studio Community могут использовать до 5 пользователей. В корпоративных организациях (в которых используется более 250 ПК или годовой доход которых превышает 1 млн долларов США) использование запрещено, за исключением случаев, перечисленных выше (открытый код, научные исследования и учебные аудитории).Знакомство с Visual Studio
Создание нового проекта
По мере того, как вы будете использовать Visual Studio, в левой части этого окна будут появляться ссылки на ваши последние проекты для того, чтобы можно быстро их открыть и начать работу.
Перед вами откроется новое окно создания проекта, которое по умолчанию выглядит вот так:
Для того, чтобы быстро находить необходимый вам шаблон проекта, доступны фильтры по языку программирования, платформе и типам проектов:
В результате, вы увидите в списке шаблонов всего два шаблона проектов:
На втором шаге нас попросят ввести:
- Имя проекта
- Расположение проекта
- Имя решения
- и выбрать платформу
После того, как вы зададите название проекта, его расположение и название решения, то у вас на жестком диске будут созданы следующие директории:
О том, какие файлы располагаются по умолчанию в директории с проектом, мы поговорим позже, когда познакомимся с устройством Visual Studio, а пока перейдем к дальнейшему изучению IDE.
Основные окна в Visual Studio
После того, как мы создали первый проект консольного приложения для Windows, перед нами откроется основное окно Visual Studio с примерно таким содержимым:
В целом, для тех, кто работал в RAD Sudio, внешний вид окна Visual Studio не должен вызвать никаких проблем, хотя здесь есть и свои значительные отличия. Итак, что у нас есть:
Для консольного приложения эта панель пустая и не содержит ничего, кроме подсказки:
Далее идёт привычное нам окно исходного кода с вкладками под каждый модуль проекта. Так как у нас один модуль, то и вкладка пока у нас в окне кода одна:
В правой части окна IDE расположены следующие окна:
Обозреватель решений
Соответственно, если выбрать в списке, например, метод Main, то этот метод будет выделен в окне с исходным кодом проекта.
Team Explorer
Здесь вы можете создать подключение, например, к репозиторию Git или GitHub. С содержимым этого окна и работой с репозиториями мы поговорим позднее.
Представление классов
Свойства
Средства диагностики
Окно расположено в правой части экрана и предоставляет нам различные средства для профилирования нашего приложения. Так, например, можно отследить загрузку ЦП, использование памяти и т.д.
В принципе, для первого знакомства с основными окнами Visual Studio информации достаточно. Теперь попробуем создать наше первое приложение.
Первое приложение в Visual Studio
Напишем следующий код для метода Main:
Чтобы приложение закрылось достаточно нажать любую клавишу на клавиатуре.
При написании кода нашей программы вы, возможно, заметили, что справа в окне исходного кода периодически появляется вот такой значок:
Таким образом Visual Studio предлагает нам какие-либо улучшения исходного кода. Например, вы можете увидеть эту лампочку, если подниметесь в самый верх исходного кода:
Применяем предложенное решение и IDE сама удалит лишний строки из модуля и наша программа станет выглядеть вот так:
Читайте также: