Возможности Visual Studio 2013 и их использование для облачных вычислений

Управление решениями и проектами в Visual Studio 2013

Разбить на страницы
Показывать лекцию целиком

Цель лекции

Ознакомление с типами решений и проектов в Visual Studio 2013 и управлением ими; управление облачными проектами.

5.1. Введение. Решения (solutions) и проекты (projects)

Среда Visual Studio при разработке программ оперирует двумя категориями сущностей: решениями (solutions) и проектами (projects). Решение - это более крупная единица: решение может состоять из одного или нескольких проектов. Возможно также создание пустого решения, к которому постепенно добавляются все новые проекты.

Код программного проекта может иметь сложную структуру и состоять из нескольких файлов исходного кода и конфигурационных файлов. Кроме того, сам код может быть весьма специфическим: например, код Web-сервиса может иметь Web-методы, аннотированные специальными атрибутами, и т.д. В связи с этим, среда Visual Studio облегчает создание проектов с помощью шаблонов (templates). Шаблон задает типовую структуру кода проекта и его конфигурационных файлов, и разработчику остается "только" добавить в шаблон конкретный код.

По умолчанию разработчик, как правило, создает в среде один проект. При этом по умолчанию среда создает и решение, частью которого становится создаваемый проект. Имя решения совпадает с именем проекта.

5.2. Создание проекта

Наиболее распространенный способ создания нового проекта в среде Visual Studio - выбор пунктов основного меню: ).

(рис 5.1) Окно для создания нового проекта

Как видно из рисунка, основная содержательная часть окна (кроме, разумеется, имени нового проекта и директории для его размещения) - выбор шаблона (template) нового проекта. Содержание шаблона определяется, во-первых, языком разработки (C#, Visual Basic, Managed C++, F# и т.д.), во-вторых, видом проекта: консольное приложение, облачный сервис и т.п.

Следует отметить, что набор видов проектов является расширяемым. Расширения среды (add-ins) определяют новые разновидности проектов, специфичные для данного расширения. Например, add-in Aspect.NET Framework, с помощью которого реализован графический пользовательский интерфейс нашего проекта Aspect.NET, определяет новые виды проектов и их шаблонов: Aspect.NET ML module - код аспекта с аннотациями на метаязыке Aspect.NET.ML - и Aspect.NET module - код аспекта без ML-аннотаций, с явным использованием атрибутов АОП. Для каждого из этих видов проектов предусмотрен специфический шаблон кода.

Кроме того, не все виды проектов доступны в начальной конфигурации Visual Studio 2013, в том виде, в каком она инсталлирована на Ваш компьютер. Использование (фактически - добавление) некоторых видов проектов может потребовать дополнительных инсталляций. Прежде всего, это относится к ), среда сообщает, что для их использования необходимо инсталлировать Microsoft Azure SDK соответствующей версии - на момент разработки курса (июнь 2014 г.) это версия 2.3. Microsoft Azure SDK - комплекс инструментов, который необходимо дополнительно скачивать и инсталлировать (рекомендации по инсталляции приведены на страницах MSDN). Подробнее об этом - ниже, в лекциях 10 и 11, посвященных облачным проектам.

В версии Visual Studio 2013 Ultimate доступны следующие виды проектов (для каждого языка разработки):

  • Windows - проекты, специфичные для Windows: Windows Forms Application (проекты, использующие GUI в стиле Windows - окна, меню и т.д.); Windows Presentation Foundation Application (проекты с в стиле WPF); Console Application (проекты, основанные на пользовательском интерфейса в виде командной строки); Class Library (библиотеки классов); Portable Class Library (переносимые библиотеки классов); WPF Browser Application (Web-приложения для браузера с интерфейсом в стиле WPF); Empty Project (пустой проект); Windows Service (сервисный процесс для Windows); WPF Custom Control Library (библиотека элементов управления); WPF User Control Library (библиотека пользовательских элементов управления); Windows Forms Control Library (библиотека элементов управления с интерфейсом в стиле Windows Forms)
  • Web - веб-сервисы, основанные на ASP.NET
  • Office / SharePoint - приложения, использующие офисные продукты Microsoft: Microsoft Office и SharePoint
  • Cloud - облачные сервисы для платформы Microsoft Azure
  • LightSwitch - проекты на основе Microsoft Silverlight
  • Reporting - проект по генерации и обработке отчетов на основе баз данных
  • Silverlight - проекты по разработке различных видов Web-приложений на основе Silverlight
  • Test - различные виды проектов по разработке и пропуску тестов, в том числе - unit-тестов, сгенерированных инструментом JUnit
  • WCF - проекты по реализации различного рода приложений и сервисов на основе Windows Communication Foundation (WCF)
  • Workflow - проекты по планированию деятельности (activity) группы разработчиков
  • Для языка Visual Basic набор проектов тот же самый.

    Для языка Visual C++ предусмотрены лишь некоторые виды проектов "в старом стиле", отражающие специфику данного языка: например, Win32 Application - приложение, использующее Win32 API; MFC Application - приложение, использующее библиотеку Microsoft Foundation Classes и т.д.

    Предусмотрены также следующие языки и виды проектов: Visual F# - функциональный язык со своим набором проектов, в том числе - консольное приложение, tutorial и Silverlight-приложение; SQL Server - проект по разработке приложения, взаимодействующего с базой данных; TypeScript - проекты на языке TypeScript (требуют отдельной инсталляции TypeScript в среде Visual Studio; Python - проекты на языке Python, широко используемом в настоящее время для Web-программирования (требуют отдельной инсталляции Python); Modeling Projects - проекты по разработке UML-моделей.

    Разнообразие языков и видов проектов просто поражает. По своей сути и назначению, среда Visual Studio открыта для расширения новыми языками и видами проектов. Так что дело за Вами, уважаемые разработчики!

    5.3. Пример создания консольного проекта

    Рассмотрим для примера полный цикл работы с простым консольным проектом (приложением) - создание проекта, его визуализацию, компиляцию (сборку), выполнение и отладку.

    Для создания проекта в основном меню и окне создания проекта выберем пункт изображены возможные типы (шаблоны) проектов вида Windows.

    (рис 5.2) Проекты вида Windows в Visual Studio 2013

    Выбираем в окне создания проекта, в меню шаблонов проектов, в поле Project Name, пункт ConsoleApplication. Вводим имя нового проекта FirstApp и замечаем, что, одновременно с ним, в поле SolutionName, появляется точно такое же имя решения, т.е. одновременно создается решение под тем же именем, частью которого становится новый проект. На этом шаге, при желании, мы могли бы задать другое имя решения и затем добавить к нему новый проект, и т.д. Однако мы сознательно выбираем самый простой сценарий. Соглашаемся также с именем пути к директории, где будут храниться наши проекты, которое среда предлагает и создает по умолчанию.

    Нажимаем кнопку .

    (рис 5.3) Визуализация информации о проекте после его создания

    Рассмотрим внимательнее созданный по шаблону исходный код нашего консольного приложения Program.cs. В начальных строках мы видим операторы using, подключающие необходимые пространства имен (namespaces).

    System - это корневое стандартное пространство имен (аналогичное по назничению пакету java.lang в языке Java.

    System.Collections.Generic - это пространство имен с определением встроенных в язык C# параметризованных коллекций, которые были в него введены в версии 2.0.

    System.Linq - пространство имен для использования LINQ (Language Integrated Query) - механизма взаимодействия из кода на языке C# с базой данных, построенной по стандарту SQL, - построение SQL-запросов к базе, генерация элементов базы и т.д. Заметим, что никаких дополнительных хранимых процедур для работы с нашей базой на каком-либо отдельном экзотическом языке, как было раньше, нам не требуется. Все эти возможности встроены в сам язык C#. Функциональность LINQ была реализована в языке C# и Visual Studio.NET в 2003 г. Как представитель поколения программистов, которые начали активно заниматься разработкой программного обеспечения в середине 1970-х гг., я хорошо помню многих замечательных специалистов - и отечественных, и зарубежных, - которые десятками лет работали над проблемой взаимодействия традиционных языков и систем программирования с базами данных, помню их языки, инструменты и проекты. Их усилия и идеи не пропали даром, воплотившись в столь удобном инструменте, как LINQ.

    Пространство имен System.Text предназначено для работы с текстовой информацией.

    Пространство имен System.Threading обеспечивает поддержку многопоточного программирования.

    Программа нашего проекта реализована как пространство имен FirstApp, в котором определен класс Program - исполняемая программа. Точкой входа в программу, аналогично языку Java, является статический метод Main, аргумент которого - массив элементов командной строки.

    Дополним теперь код нашего консольного приложения, вставив оператор вывода приветственного сообщения и оператор ввода пустой строки для комфортного прочтения вывода программы. Код класса принимает вид:

    namespace FirstApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Console.WriteLine("My First Visual Studio 2013 application");
                System.Console.Write("Press <Enter> to continue: ");
                System.Console.ReadLine();
            }
        }
    }
        

    При вводе исходного кода обращаем внимание, насколько удобно для этого приспособлена среда. Если забыта или пока не введена точка с запятой или сделана какая-либо другая подобная синтаксическая ошибка, среда информирует об этом, подчеркивая неправильный текст красной чертой. Реализовано также выделение различными цветами фрагментов текста разной природы - ключевых слов и идентификаторв, строк и т.д. При вводе имени метода нет необходимости вводить его подностью, достаточно выбрать его из всплывающего контекстного меню, предлагаемого средой. Подобная функциональность в современных интегрированных средах носит название code completion (автоматическое завершение кода).

    Сохраним теперь на всякий случай введенный код и весь проект, выбрав пункт меню File / Save All.

    5.4. Компиляция (сборка) и выполнение проекта

    Для .

    (рис 5.4) Результат компиляции проекта

    Для выполнения программы проекта выберем наиболее быстрый вариант - зеленую кнопку с углом вправо, расположенную под пунктом меню Debug.

    Результат выполнения (до паузы в ожидании нажатия клавиши .

    (рис 5.5) Результат выполнения проекта

    5.5. Отладка проекта

    Выполним простейшие действия по отладке проекта. Установим контрольную точку (breakpoint) на первую строку метода ):

    (рис 5.6) Выбор пункта Breakpoint в контекстном меню

    После выбора в контекстном меню пункта . Строка с контрольной точкой выделена, в начале ее установлен красный маркер в виде круга.

    (рис 5.7) Контрольная точка установлена

    Теперь начнем отладку программы. В меню ):

    (рис 5.8) Остановка программы в выбранной контрольной точке

    Рассмотрим подробнее способы визуализации информации отладчиком. В области визуализации исходного кода строчка, в которой прозошла остановка, выделена желтым цветом и красным маркером в начале строчки. Ниже появилось окно Autos, в которой отладчик визуализирует значения локальных переменных и аргументов метода, в данном примере - аргумента args; значение - пустая строка string[0]. Правее окна локальных переменных - окно Call Stack, где визуализирован стек вызовов, в данном случае - из основной программы FirstApp.exe вызван метод FirstApp.Program.Main и указана строчка, где произошла остановка. Справа - область визуализации состояния отладки. Указано событие: остановка в контрольной точке.

    Чтобы продолжить отладку, нажимаем кнопку Continue (под пунктом меню Debug, кнопка в виде зеленого угла вправо). Выполнение программы продолжается, нажимаем в окне вывода программы Enter и завершаем ее выполнение. Отладчик вновь приглашает нас нажать кнопку Start.

    5.6. Анализ производительности программы проекта

    Для анализа производительности программы выбираем пункт ):

    (рис 5.9) Запуск анализа производительности программы проекта

    Нажимаем кнопку Start.

    Открывается окно первого шага профилирования (рис 5.10):

    (рис 5.10) Окно первого шага профилирования: выбор метода профиилрования

    Выбираем метод CPU sampling (анализ использования процессора). Другие возможные методы, предлагаемые средой, - профилирование вызовов методов; профилирование использования памяти.

    Нажимаем Next.

    Открывается окно второго шага профилирования. Среда предлагает выбрать проект для профилирования (он всего один - .

    (рис 5.11) Окно второго шага профилирования: выбор проекта и разновидности приложения

    Нижимаем Next. Открывается окно третьего шага профилирования - указание точного пути к исполняемому файлу, аргументов командной строки и рабочей директории. Для указания пути следует помнить, что исполняемый код обычно размещается средой в поддиректории ).

    (рис 5.12) Окно третьего шага профилирования: точный путь к исполняемому файлу, аргументов командной строки и рабочей директории

    Нажимаем Next.

    Открывается окно четвертого шага профилирования - запуск профайлера после закрытия ). Нажимаем Finish.

    (рис 5.13) Четвертый шаг профилирования - запуск профайлера

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

    Результат профилирования использования процессора показан на рис 5.14 - наглядная временная диаграмма (график) использования процессора нашим приложением.

    (рис 5.14)

    5.7. Резюме

    Рассмотрены основные этапы жизненного цикла приложения в среде Visual Studio 2013. Отметим удобство и комфортность среды. Среда предлагает большое разнообразие языков и инструментов разработки и видов проектов. Для примера подробно рассмотрен один вид проекта - консольное приложение и его жизненный цикл, на этом примере наглядно демонстрируются возможности среды.

    Ключевые термины

    Контрольная точка (breakpoint) - точка (строчка) в программе, которая может быть установлена в отладчике для постедующей контрольной остановке в данной точке в ходе отладки.
    Проект (project) - концепция среды Visual Studio, предназначенная для поддержки разработки программы того или иного назначачения.
    Решение (solution) - концепция среды Visual Studio, предназначенная для группировки проектов.
    Сборка (build) - компиляция проекта в среде.
    Отладка (debugging) - поиски ошибок и исследование программы путем установки и использования контрольных точек и визуализации динамической картины выполнения программы, состояния стек3а и переменных в каждой контрольной точке.
    Профилирование (profiling) - получение динамических характеристик программы (использование процессора, вызовы методов, использование памяти и др.) путем контрольных прогонов программы и сбора статистической информации в ходе прогонов в специальной базе данных, файле или директории).
    Шаблон (template) - заготовка кода для какого-либо вида проектов, в которую разработчик должен добавить свой конкретный код.

    Краткие итоги

    Среда Visual Studio 2013 предлагает разнообразные языки разработки и виды проектов. Для разработки используются концепции проект (разрабатываемая программа) и решение (группа взаимосвязанных проектов). Для каждого вида проектов предусмотрены шаблоны кода, значительно облегчающие разработку. При вводе кода среда обеспечивает подсказки, контроль правильности введенного кода и т.д. Реализованы разнообразные виды сборки (компиляции) проектов в среде. Удобные возможности предоставляет отладчик IntelliTrace и инструменты анализа (профилирования) программы.

    Набор для практики

    Вопросы

  • Что такое проект в Visual Studio?
  • Что такое решение в Visual Studio?
  • Перечислите основные виды проектов и поясните их назначение.
  • Перечислите виды проектов категории Windows и поясните их назначение.
  • Что такое облачные проекты?
  • Что такое WCF?
  • Что такое WPF?
  • Что такое Silverlight?
  • Что такое шаблон кода проекта и как он используется?
  • Какие виды проектов предусмотрены для языков Visual C#, Visual Basic, Visual F#, Visual C++?
  • Какие еще языки программирования поддерживаются в среде Visual Studio и какого рода дополнительные инсталляции требуются для их использования?
  • Какие дополнительные действия по инсталляции необходимы для разработки облачных проектов для платформы Microsoft Azure в среде Visual Studio?
  • Что такое консольное приложение?
  • Что такое WFC-приложение?
  • Что такое WPF-приложение?
  • Какие основные действия могут быть выполнены в среде для разрабатываемого проекта?
  • Что такое сборка проекта?
  • Что такое отладка проекта?
  • Что такое профилирование проекта?
  • Упражнения

  • Разработайте простой консольный проект на предпочтительном для Вас языке и выполните все этапы жизненного циал проекта (ввод кода, сборка, выполнение/, отладка, профилирование).
  • То же задание - для проекта типа Windows, использующего Windows Forms.
  • Темы для курсовых работ, рефератов, эссе

  • Обзор возможностей среды Visual Studio 2013 (реферат).
  • Обзор видов проектов в Visual Studio 2013 (реферат).
  • Жизненный цикл проекта в среде Visual Studio 2013 (реферат).
  • Дополнительные материалы, презентации

    Презентация к данной лекции: VS_2013_Course_5.pptx.

    Страницы:

    Цель лекции

    Ознакомление с типами решений и проектов в Visual Studio 2013 и управлением ими; управление облачными проектами.

    5.1. Введение. Решения (solutions) и проекты (projects)

    Среда Visual Studio при разработке программ оперирует двумя категориями сущностей: решениями (solutions) и проектами (projects). Решение - это более крупная единица: решение может состоять из одного или нескольких проектов. Возможно также создание пустого решения, к которому постепенно добавляются все новые проекты.

    Код программного проекта может иметь сложную структуру и состоять из нескольких файлов исходного кода и конфигурационных файлов. Кроме того, сам код может быть весьма специфическим: например, код Web-сервиса может иметь Web-методы, аннотированные специальными атрибутами, и т.д. В связи с этим, среда Visual Studio облегчает создание проектов с помощью шаблонов (templates). Шаблон задает типовую структуру кода проекта и его конфигурационных файлов, и разработчику остается "только" добавить в шаблон конкретный код.

    По умолчанию разработчик, как правило, создает в среде один проект. При этом по умолчанию среда создает и решение, частью которого становится создаваемый проект. Имя решения совпадает с именем проекта.

    5.2. Создание проекта

    Наиболее распространенный способ создания нового проекта в среде Visual Studio - выбор пунктов основного меню: ).

    (рис 5.1) Окно для создания нового проекта

    Как видно из рисунка, основная содержательная часть окна (кроме, разумеется, имени нового проекта и директории для его размещения) - выбор шаблона (template) нового проекта. Содержание шаблона определяется, во-первых, языком разработки (C#, Visual Basic, Managed C++, F# и т.д.), во-вторых, видом проекта: консольное приложение, облачный сервис и т.п.

    Следует отметить, что набор видов проектов является расширяемым. Расширения среды (add-ins) определяют новые разновидности проектов, специфичные для данного расширения. Например, add-in Aspect.NET Framework, с помощью которого реализован графический пользовательский интерфейс нашего проекта Aspect.NET, определяет новые виды проектов и их шаблонов: Aspect.NET ML module - код аспекта с аннотациями на метаязыке Aspect.NET.ML - и Aspect.NET module - код аспекта без ML-аннотаций, с явным использованием атрибутов АОП. Для каждого из этих видов проектов предусмотрен специфический шаблон кода.

    Кроме того, не все виды проектов доступны в начальной конфигурации Visual Studio 2013, в том виде, в каком она инсталлирована на Ваш компьютер. Использование (фактически - добавление) некоторых видов проектов может потребовать дополнительных инсталляций. Прежде всего, это относится к ), среда сообщает, что для их использования необходимо инсталлировать Microsoft Azure SDK соответствующей версии - на момент разработки курса (июнь 2014 г.) это версия 2.3. Microsoft Azure SDK - комплекс инструментов, который необходимо дополнительно скачивать и инсталлировать (рекомендации по инсталляции приведены на страницах MSDN). Подробнее об этом - ниже, в лекциях 10 и 11, посвященных облачным проектам.

    В версии Visual Studio 2013 Ultimate доступны следующие виды проектов (для каждого языка разработки):

  • Windows - проекты, специфичные для Windows: Windows Forms Application (проекты, использующие GUI в стиле Windows - окна, меню и т.д.); Windows Presentation Foundation Application (проекты с в стиле WPF); Console Application (проекты, основанные на пользовательском интерфейса в виде командной строки); Class Library (библиотеки классов); Portable Class Library (переносимые библиотеки классов); WPF Browser Application (Web-приложения для браузера с интерфейсом в стиле WPF); Empty Project (пустой проект); Windows Service (сервисный процесс для Windows); WPF Custom Control Library (библиотека элементов управления); WPF User Control Library (библиотека пользовательских элементов управления); Windows Forms Control Library (библиотека элементов управления с интерфейсом в стиле Windows Forms)
  • Web - веб-сервисы, основанные на ASP.NET
  • Office / SharePoint - приложения, использующие офисные продукты Microsoft: Microsoft Office и SharePoint
  • Cloud - облачные сервисы для платформы Microsoft Azure
  • LightSwitch - проекты на основе Microsoft Silverlight
  • Reporting - проект по генерации и обработке отчетов на основе баз данных
  • Silverlight - проекты по разработке различных видов Web-приложений на основе Silverlight
  • Test - различные виды проектов по разработке и пропуску тестов, в том числе - unit-тестов, сгенерированных инструментом JUnit
  • WCF - проекты по реализации различного рода приложений и сервисов на основе Windows Communication Foundation (WCF)
  • Workflow - проекты по планированию деятельности (activity) группы разработчиков
  • Для языка Visual Basic набор проектов тот же самый.

    Для языка Visual C++ предусмотрены лишь некоторые виды проектов "в старом стиле", отражающие специфику данного языка: например, Win32 Application - приложение, использующее Win32 API; MFC Application - приложение, использующее библиотеку Microsoft Foundation Classes и т.д.

    Предусмотрены также следующие языки и виды проектов: Visual F# - функциональный язык со своим набором проектов, в том числе - консольное приложение, tutorial и Silverlight-приложение; SQL Server - проект по разработке приложения, взаимодействующего с базой данных; TypeScript - проекты на языке TypeScript (требуют отдельной инсталляции TypeScript в среде Visual Studio; Python - проекты на языке Python, широко используемом в настоящее время для Web-программирования (требуют отдельной инсталляции Python); Modeling Projects - проекты по разработке UML-моделей.

    Разнообразие языков и видов проектов просто поражает. По своей сути и назначению, среда Visual Studio открыта для расширения новыми языками и видами проектов. Так что дело за Вами, уважаемые разработчики!

    5.3. Пример создания консольного проекта

    Рассмотрим для примера полный цикл работы с простым консольным проектом (приложением) - создание проекта, его визуализацию, компиляцию (сборку), выполнение и отладку.

    Для создания проекта в основном меню и окне создания проекта выберем пункт изображены возможные типы (шаблоны) проектов вида Windows.

    (рис 5.2) Проекты вида Windows в Visual Studio 2013

    Выбираем в окне создания проекта, в меню шаблонов проектов, в поле Project Name, пункт ConsoleApplication. Вводим имя нового проекта FirstApp и замечаем, что, одновременно с ним, в поле SolutionName, появляется точно такое же имя решения, т.е. одновременно создается решение под тем же именем, частью которого становится новый проект. На этом шаге, при желании, мы могли бы задать другое имя решения и затем добавить к нему новый проект, и т.д. Однако мы сознательно выбираем самый простой сценарий. Соглашаемся также с именем пути к директории, где будут храниться наши проекты, которое среда предлагает и создает по умолчанию.

    Нажимаем кнопку .

    (рис 5.3) Визуализация информации о проекте после его создания

    Рассмотрим внимательнее созданный по шаблону исходный код нашего консольного приложения Program.cs. В начальных строках мы видим операторы using, подключающие необходимые пространства имен (namespaces).

    System - это корневое стандартное пространство имен (аналогичное по назничению пакету java.lang в языке Java.

    System.Collections.Generic - это пространство имен с определением встроенных в язык C# параметризованных коллекций, которые были в него введены в версии 2.0.

    System.Linq - пространство имен для использования LINQ (Language Integrated Query) - механизма взаимодействия из кода на языке C# с базой данных, построенной по стандарту SQL, - построение SQL-запросов к базе, генерация элементов базы и т.д. Заметим, что никаких дополнительных хранимых процедур для работы с нашей базой на каком-либо отдельном экзотическом языке, как было раньше, нам не требуется. Все эти возможности встроены в сам язык C#. Функциональность LINQ была реализована в языке C# и Visual Studio.NET в 2003 г. Как представитель поколения программистов, которые начали активно заниматься разработкой программного обеспечения в середине 1970-х гг., я хорошо помню многих замечательных специалистов - и отечественных, и зарубежных, - которые десятками лет работали над проблемой взаимодействия традиционных языков и систем программирования с базами данных, помню их языки, инструменты и проекты. Их усилия и идеи не пропали даром, воплотившись в столь удобном инструменте, как LINQ.

    Пространство имен System.Text предназначено для работы с текстовой информацией.

    Пространство имен System.Threading обеспечивает поддержку многопоточного программирования.

    Программа нашего проекта реализована как пространство имен FirstApp, в котором определен класс Program - исполняемая программа. Точкой входа в программу, аналогично языку Java, является статический метод Main, аргумент которого - массив элементов командной строки.

    Дополним теперь код нашего консольного приложения, вставив оператор вывода приветственного сообщения и оператор ввода пустой строки для комфортного прочтения вывода программы. Код класса принимает вид:

    namespace FirstApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Console.WriteLine("My First Visual Studio 2013 application");
                System.Console.Write("Press <Enter> to continue: ");
                System.Console.ReadLine();
            }
        }
    }
        

    При вводе исходного кода обращаем внимание, насколько удобно для этого приспособлена среда. Если забыта или пока не введена точка с запятой или сделана какая-либо другая подобная синтаксическая ошибка, среда информирует об этом, подчеркивая неправильный текст красной чертой. Реализовано также выделение различными цветами фрагментов текста разной природы - ключевых слов и идентификаторв, строк и т.д. При вводе имени метода нет необходимости вводить его подностью, достаточно выбрать его из всплывающего контекстного меню, предлагаемого средой. Подобная функциональность в современных интегрированных средах носит название code completion (автоматическое завершение кода).

    Сохраним теперь на всякий случай введенный код и весь проект, выбрав пункт меню File / Save All.

    5.4. Компиляция (сборка) и выполнение проекта

    Для .

    (рис 5.4) Результат компиляции проекта

    Для выполнения программы проекта выберем наиболее быстрый вариант - зеленую кнопку с углом вправо, расположенную под пунктом меню Debug.

    Результат выполнения (до паузы в ожидании нажатия клавиши .

    (рис 5.5) Результат выполнения проекта

    5.5. Отладка проекта

    Выполним простейшие действия по отладке проекта. Установим контрольную точку (breakpoint) на первую строку метода ):

    (рис 5.6) Выбор пункта Breakpoint в контекстном меню

    После выбора в контекстном меню пункта . Строка с контрольной точкой выделена, в начале ее установлен красный маркер в виде круга.

    (рис 5.7) Контрольная точка установлена

    Теперь начнем отладку программы. В меню ):

    (рис 5.8) Остановка программы в выбранной контрольной точке

    Рассмотрим подробнее способы визуализации информации отладчиком. В области визуализации исходного кода строчка, в которой прозошла остановка, выделена желтым цветом и красным маркером в начале строчки. Ниже появилось окно Autos, в которой отладчик визуализирует значения локальных переменных и аргументов метода, в данном примере - аргумента args; значение - пустая строка string[0]. Правее окна локальных переменных - окно Call Stack, где визуализирован стек вызовов, в данном случае - из основной программы FirstApp.exe вызван метод FirstApp.Program.Main и указана строчка, где произошла остановка. Справа - область визуализации состояния отладки. Указано событие: остановка в контрольной точке.

    Чтобы продолжить отладку, нажимаем кнопку Continue (под пунктом меню Debug, кнопка в виде зеленого угла вправо). Выполнение программы продолжается, нажимаем в окне вывода программы Enter и завершаем ее выполнение. Отладчик вновь приглашает нас нажать кнопку Start.

    5.6. Анализ производительности программы проекта

    Для анализа производительности программы выбираем пункт ):

    (рис 5.9) Запуск анализа производительности программы проекта

    Нажимаем кнопку Start.

    Открывается окно первого шага профилирования (рис 5.10):

    (рис 5.10) Окно первого шага профилирования: выбор метода профиилрования

    Выбираем метод CPU sampling (анализ использования процессора). Другие возможные методы, предлагаемые средой, - профилирование вызовов методов; профилирование использования памяти.

    Нажимаем Next.

    Открывается окно второго шага профилирования. Среда предлагает выбрать проект для профилирования (он всего один - .

    (рис 5.11) Окно второго шага профилирования: выбор проекта и разновидности приложения

    Нижимаем Next. Открывается окно третьего шага профилирования - указание точного пути к исполняемому файлу, аргументов командной строки и рабочей директории. Для указания пути следует помнить, что исполняемый код обычно размещается средой в поддиректории ).

    (рис 5.12) Окно третьего шага профилирования: точный путь к исполняемому файлу, аргументов командной строки и рабочей директории

    Нажимаем Next.

    Открывается окно четвертого шага профилирования - запуск профайлера после закрытия ). Нажимаем Finish.

    (рис 5.13) Четвертый шаг профилирования - запуск профайлера

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

    Результат профилирования использования процессора показан на рис 5.14 - наглядная временная диаграмма (график) использования процессора нашим приложением.

    (рис 5.14)

    5.7. Резюме

    Рассмотрены основные этапы жизненного цикла приложения в среде Visual Studio 2013. Отметим удобство и комфортность среды. Среда предлагает большое разнообразие языков и инструментов разработки и видов проектов. Для примера подробно рассмотрен один вид проекта - консольное приложение и его жизненный цикл, на этом примере наглядно демонстрируются возможности среды.

    Ключевые термины

    Контрольная точка (breakpoint) - точка (строчка) в программе, которая может быть установлена в отладчике для постедующей контрольной остановке в данной точке в ходе отладки.
    Проект (project) - концепция среды Visual Studio, предназначенная для поддержки разработки программы того или иного назначачения.
    Решение (solution) - концепция среды Visual Studio, предназначенная для группировки проектов.
    Сборка (build) - компиляция проекта в среде.
    Отладка (debugging) - поиски ошибок и исследование программы путем установки и использования контрольных точек и визуализации динамической картины выполнения программы, состояния стек3а и переменных в каждой контрольной точке.
    Профилирование (profiling) - получение динамических характеристик программы (использование процессора, вызовы методов, использование памяти и др.) путем контрольных прогонов программы и сбора статистической информации в ходе прогонов в специальной базе данных, файле или директории).
    Шаблон (template) - заготовка кода для какого-либо вида проектов, в которую разработчик должен добавить свой конкретный код.

    Краткие итоги

    Среда Visual Studio 2013 предлагает разнообразные языки разработки и виды проектов. Для разработки используются концепции проект (разрабатываемая программа) и решение (группа взаимосвязанных проектов). Для каждого вида проектов предусмотрены шаблоны кода, значительно облегчающие разработку. При вводе кода среда обеспечивает подсказки, контроль правильности введенного кода и т.д. Реализованы разнообразные виды сборки (компиляции) проектов в среде. Удобные возможности предоставляет отладчик IntelliTrace и инструменты анализа (профилирования) программы.

    Набор для практики

    Вопросы

  • Что такое проект в Visual Studio?
  • Что такое решение в Visual Studio?
  • Перечислите основные виды проектов и поясните их назначение.
  • Перечислите виды проектов категории Windows и поясните их назначение.
  • Что такое облачные проекты?
  • Что такое WCF?
  • Что такое WPF?
  • Что такое Silverlight?
  • Что такое шаблон кода проекта и как он используется?
  • Какие виды проектов предусмотрены для языков Visual C#, Visual Basic, Visual F#, Visual C++?
  • Какие еще языки программирования поддерживаются в среде Visual Studio и какого рода дополнительные инсталляции требуются для их использования?
  • Какие дополнительные действия по инсталляции необходимы для разработки облачных проектов для платформы Microsoft Azure в среде Visual Studio?
  • Что такое консольное приложение?
  • Что такое WFC-приложение?
  • Что такое WPF-приложение?
  • Какие основные действия могут быть выполнены в среде для разрабатываемого проекта?
  • Что такое сборка проекта?
  • Что такое отладка проекта?
  • Что такое профилирование проекта?
  • Упражнения

  • Разработайте простой консольный проект на предпочтительном для Вас языке и выполните все этапы жизненного циал проекта (ввод кода, сборка, выполнение/, отладка, профилирование).
  • То же задание - для проекта типа Windows, использующего Windows Forms.
  • Темы для курсовых работ, рефератов, эссе

  • Обзор возможностей среды Visual Studio 2013 (реферат).
  • Обзор видов проектов в Visual Studio 2013 (реферат).
  • Жизненный цикл проекта в среде Visual Studio 2013 (реферат).
  • Дополнительные материалы, презентации

    Презентация к данной лекции: VS_2013_Course_5.pptx.

    Вернуться к учебному плану