Учебник. Отладка кода C# и C++ в рамках одного сеанса отладки
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В рамках одного сеанса отладки в среде Visual Studio можно использовать отладчики разных типов. Такой режим называется смешанным. Из этого учебника вы узнаете, как одновременно выполнять отладку управляемого и машинного кода в рамках одного сеанса отладки.
В этом учебнике описывается процесс отладки машинного кода из управляемого приложения. Тем не менее при необходимости вы можете выполнять отладку управляемого кода из собственного приложения. Отладчик также поддерживает смешанные режимы других типов, например отладку кода Python и машинного кода, а также использование отладчика сценариев в приложениях таких типов, как ASP.NET.
При работе с этим руководством вы сделаете следующее:
- Создание простой собственной библиотеки DLL
- Создание простого приложения .NET Core или .NET Framework для вызова библиотеки DLL
- Настройка смешанного режима отладки
- Запуск отладчика
- Попадание в точку останова в управляемом приложении
- Шаг с заходом в машинный код
Необходимые компоненты
Необходимо установить среду Visual Studio со следующими рабочими нагрузками.
- Разработка классических приложений на C++.
- Разработка классического приложения .NET.
Необходимо установить среду Visual Studio со следующими рабочими нагрузками.
- Разработка классических приложений на C++.
- Разработка классических приложений .NET или Кроссплатформенная разработка .NET Core в зависимости от того, приложение какого типа вы создаете.
Если вы еще не установили среду Visual Studio, вы можете сделать это бесплатно со страницы скачиваемых материалов Visual Studio.
Если среда Visual Studio уже установлена без необходимых рабочих нагрузок, выберите Открыть Visual Studio Installer в левой области диалогового окна Новый проект Visual Studio. В Visual Studio Installer выберите нужную рабочую нагрузку и щелкните Изменить.
Создание простой собственной библиотеки DLL
Создание файлов для проекта библиотеки DLL:
- Откройте Visual Studio и создайте проект. Нажмите клавишу ESC, чтобы закрыть окно запуска. Нажмите CTRL+Q, чтобы открыть поле поиска, введите Пустой проект, выберите Шаблоны и затем Пустой проект в C++. В появившемся диалоговом окне выберите Создать. Введите имя, например Mixed_Mode_Debugging, и нажмите кнопку Создать. Если шаблон проекта Пустой проект отсутствует, перейдите в меню Средства>Получить средства и компоненты. , после чего запустится Visual Studio Installer. Запускается Visual Studio Installer. Выберите рабочую нагрузку Разработка классических приложений на C++, а затем нажмите Изменить. Visual Studio создаст проект.
- В обозревателе решений последовательно выберите Исходные файлы, Проект>Добавить новый элемент. Также можно щелкнуть пункт Исходные файлы правой кнопкой мыши и выбрать Добавить>Новый элемент. Если вы не видите все шаблоны элементов, выберите «Показать все шаблоны«.
- В диалоговом окне Новый элемент выберите Файл C++ (.cpp). Введите Mixed_Mode.cpp в поле Имя, после чего нажмите Добавить. Visual Studio добавит в обозреватель решений новый файл C++.
- Скопируйте следующий код в файл Mixed_Mode.cpp.
#include "Mixed_Mode.h"
#ifndef MIXED_MODE_MULTIPLY_HPP #define MIXED_MODE_MULTIPLY_HPP extern "C" < __declspec(dllexport) int __stdcall mixed_mode_multiply(int a, int b) < return a * b; >> #endif
Настройка и построение проекта библиотеки DLL:
- в панели инструментов Visual Studio выберите конфигурацию Отладка и платформу x86 или x64. Если вызовы будут осуществляться из приложения .NET Core, которое всегда выполняется в 64-разрядном режиме, выберите платформу x64.
- В обозревателе решений выберите узел проекта Mixed_Mode_Debugging, после чего щелкните значок Свойства или щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства.
- Убедитесь, что в верхней части области Свойства для параметра Конфигурация установлено значение Активная (отладка), а для параметра Платформа задано значение, выбранное в панели инструментов (x64 или Win32 для платформы x86).
Важно! При смене платформы с x86 на x64 или наоборот необходимо повторно настроить свойства для новой платформы.

Создание простого управляемого приложения для вызова библиотеки DLL
- Откройте Visual Studio и создайте новый проект. Нажмите клавишу ESC, чтобы закрыть окно запуска. Нажмите клавиши CTRL+Q, чтобы открыть поле поиска, введите консоль, выберите Шаблоны и выберите Консольное приложение для .NET Core или Консольное приложение (.NET Framework) для C#. В открывшемся диалоговом окне щелкните Создать. Затем введите имя, например Mixed_Mode_Calling_App, и щелкните Далее или Создать, в зависимости от того, какой вариант доступен. Для .NET Core выберите рекомендуемую целевую платформу или .NET 8, а затем нажмите кнопку «Создать«. Если нужный шаблон проекта отсутствует, выберите Сервис>Получить средства и компоненты, после чего запустится Visual Studio Installer. Выберите нужную рабочую нагрузку .NET, как описано в предварительных требованиях, и нажмите Изменить.
Примечание. Вы также можете добавить в существующее решение C++ новый управляемый проект. Мы создаем проект в новом решении, чтобы усложнить задачу отладки в смешанном режиме.
using System; using System.Runtime.InteropServices; namespace Mixed_Mode_Calling_App < public class Program < // Replace the file path shown here with the // file path on your computer. For .NET Core, the typical (default) path // for a 64-bit DLL might look like this: // C:\Users\username\source\repos\Mixed_Mode_Debugging\x64\Debug\Mixed_Mode_Debugging.dll // Here, we show a typical path for a DLL targeting the **x86** option. [DllImport(@"C:\Users\username\source\repos\Mixed_Mode_Debugging\Debug\Mixed_Mode_Debugging.dll", EntryPoint = "mixed_mode_multiply", CallingConvention = CallingConvention.StdCall)] public static extern int Multiply(int x, int y); public static void Main(string[] args) < int result = Multiply(7, 7); Console.WriteLine("The answer is ", result); Console.ReadKey(); > > >
Настройка смешанного режима отладки
- В обозревателе решений выберите узел проекта Mixed_Mode_Calling_App, после чего щелкните значок Свойства или щелкните узел проекта правой кнопкой мыши и выберите пункт Свойства.
- Включите отладку машинного кода в свойствах.

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

В левой области выберите пункт Отладка, установите флажок Включить отладку машинного кода и закройте страницу свойств, чтобы сохранить изменения.
Задание точки останова и запуск отладки
- В проекте C# откройте файл Program.cs. Задайте точку останова в следующей строке кода. Для этого щелкните в дальнем левом поле, выберите строку и нажмите клавишу F9 либо щелкните строку правой кнопкой мыши и выберите Точка останова>Вставить точку останова.
int result = Multiply(7, 7);
Шаг с заходом в машинный код и с выходом из него
- Если отладка управляемого приложения приостановлена, нажмите клавишу F11 или выберите Отладка>Шаг с заходом. Откроется собственный файл заголовка Mixed_Mode.h. Место, в котором приостановлена работа отладчика, будет отмечено желтой стрелкой.


- Чтобы просмотреть значение переменной в исходном коде, наведите на нее указатель мыши.
- Переменные и их значения можно просматривать в окнах Видимые и Локальные.
- Если отладка приостановлена, вы также можете использовать окна контрольных значений и стека вызовов.
Поздравляем! Вы полностью ознакомились с учебником, посвященным отладке в смешанном режиме.
Следующий шаг
Из этого руководства вы узнали, как выполнять отладку машинного кода из управляемого приложения в смешанном режиме. Обзор других возможностей отладчика см. в следующих статьях.
Как без проблем компилировать код на C в VS Code
Я тут новенький во всём этом деле, поэтому для меня поподробней)) Хочу изучать Си, но при входе в Vs Code глаза разбегаются, создал только файл .c немного кода написал там, а скомпилировать не могу. Непонятно что и куда устанавливать и тыкать, установил расширения ещё, все от Microsoft: C/C++; Thems C/C++. Заранее спасибо
Отслеживать
задан 5 мая 2022 в 21:11
david_matyash david_matyash
1 1 1 серебряный знак 2 2 бронзовых знака
Пожалуйста, уточните вашу конкретную проблему или приведите более подробную информацию о том, что именно вам нужно. В текущем виде сложно понять, что именно вы спрашиваете.
5 мая 2022 в 21:31
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Скорее всего, у Вас проблема с тем, что в системе не установлен компилятор C++.
В отличие от более «взрослой» Visual Studio, VSC не приносит с собой компилятор, и представляет собой такой «блокнот на стероидах»: это редактор кода, но для компиляции он использует внешнюю программу.
Соответсвенно, редактор нужно просто правильно настроить.
Не так давно я писал инструкцию, которая до сих пор актуальна, попробуйте все сделать по ней. Ну, или по официальной инструкции, ссылка на неё там тоже есть.
Отслеживать
ответ дан 6 мая 2022 в 6:40
11k 1 1 золотой знак 19 19 серебряных знаков 41 41 бронзовый знак
- c
- visual-studio-code
- компиляция
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Узнайте, как использовать редактор кода с Visual Basic
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
В этом 10-минутном введении, посвященном редактору кода в Visual Studio, мы добавим код в файл, чтобы рассмотреть некоторые способы, упрощающие написание и понимание кода Visual Basic и навигацию по нему в Visual Studio.
Установите Visual Studio бесплатно со страницы скачиваемых материалов Visual Studio, если еще не сделали этого.
В этой статье предполагается, что вы уже знакомы с Visual Basic. Если это не так, мы рекомендуем сначала изучить руководство Создание простого консольного приложения Visual Basic.
Чтобы выполнять действия, описанные в этой статье, выберите нужные параметры Visual Basic для Visual Studio. Сведения о настройке параметров для интегрированной среды разработки (IDE) вы найдете в этой статье.
Создание файла кода
Для начала создайте файл и добавьте в него код.

- Откройте Visual Studio. Нажмите клавишу ESC или нажмите Продолжить без кода в окне запуска, чтобы открыть среду разработки.
- В меню Файл в строке меню выберите Создать файл.
- В диалоговом окне Новый файл в разделе Общие выберите Класс Visual Basic и щелкните Открыть. Новый файл открывается в редакторе с каркасом класса Visual Basic. (Возможно, вы уже заметили, что нам не нужно создавать полный проект Visual Studio, чтобы использовать такие преимущества редактора кода, как выделение синтаксиса. Нам нужен только файл кода.)

- Откройте Visual Studio. Нажмите клавишу ESC или щелкните команду Продолжить без кода в окне запуска, чтобы открыть среду разработки.
- В меню Файл в строке меню выберите пункты Создать>Файл.
- В диалоговом окне Новый файл в разделе Общие выберите Класс Visual Basic и щелкните Открыть. Новый файл открывается в редакторе с каркасом класса Visual Basic. (Возможно, вы уже заметили, что нам не нужно создавать полный проект Visual Studio, чтобы использовать такие преимущества редактора кода, как выделение синтаксиса. Нам нужен только файл кода.)
Использование фрагментов кода
Visual Studio предоставляет удобные фрагменты кода, позволяющие быстро и легко создавать часто используемые блоки кода. Фрагменты кода доступны для различных языков программирования, включая Visual Basic, C# и C++. Давайте добавим в созданный файл фрагмент кода Sub на Visual Basic.

- Поместите курсор над линией с текстом End Class и введите слово sub. Появится всплывающее диалоговое окно с информацией о ключевом слове Sub и подсказками для вставки фрагмента кода Sub.
- Два раза нажмите клавишу TAB, чтобы вставить фрагмент кода. В файл будет добавлена структура процедуры Sub MySub() .
Для разных языков программирования доступны различные фрагменты кода. Вы можете просмотреть фрагменты кода, доступные для Visual Basic, выбрав пункты меню Изменить>IntelliSense>Вставить фрагмент или нажав сочетание клавиш CTRL+K, Ctrl+X. Для Visual Basic предлагаются фрагменты кода следующих категорий:

Эти фрагменты кода позволяют определить, существует ли на компьютере определенный файл, записать данные в текстовый файл, считать значение реестра, выполнить SQL-запрос, создать инструкцию For Each. Next и многое другое.

- Поместите курсор над линией с текстом End Class и введите слово sub. Появится всплывающее диалоговое окно с информацией о ключевом слове Sub и подсказками для вставки фрагмента кода Sub.
- Два раза нажмите клавишу TAB, чтобы вставить фрагмент кода. В файл будет добавлена структура процедуры Sub MySub() .
Для разных языков программирования доступны различные фрагменты кода. Вы можете просмотреть доступные фрагменты кода для Visual Basic, открыв контекстное меню в редакторе кода и выбрав пункт Фрагмент кода>Вставить фрагмент (или нажав клавиши CTRL+K, CTRL+X). Для Visual Basic предлагаются фрагменты кода следующих категорий:

Закомментирование кода
Панель инструментов, которая находится в строке кнопок под строкой меню в Visual Studio, поможет повысить продуктивность написания кода. Например, вы можете переключить режим завершения IntelliSense, увеличить либо уменьшить отступ для строк или закомментировать фрагмент кода, который не нужно компилировать. (IntelliSense — это помощь по программированию, которая отображает список подходящих методов, среди прочего.) В этом разделе мы закомментируем некоторый код.

-
Вставьте следующий код в тело процедуры MySub() .
' _words is a string array that we'll sort alphabetically Dim _words = New String() < "the", "quick", "brown", "fox", "jumps" >Dim morewords = New String() < "over", "the", "lazy", "dog" >Dim query = From word In _words Order By word.Length Select word


-
Вставьте следующий код в тело процедуры MySub() .
' _words is a string array that we'll sort alphabetically Dim _words = New String() < "the", "quick", "brown", "fox", "jumps" >Dim morewords = New String() < "over", "the", "lazy", "dog" >Dim query = From word In _words Order By word.Length Select word

Свертывание блоков кода
Вы можете свернуть разделы кода, чтобы полностью сосредоточиться на тех частях, над которыми вы сейчас работаете. Давайте потренируемся, свернув массив _words в одну строку кода. Выберите небольшое серое поле со знаком «минус» внутри в поле строки с текстом Dim _words = New String() < . Если вы предпочитаете использовать клавиатуру, поместите курсор в любое место определения массива и нажмите сочетание клавиш CTRL+M, CTRL+M.

Блок кода сворачивается до первой строки, после которой идет многоточие ( . ). Чтобы развернуть блок кода, щелкните то же серое поле, в котором теперь находится знак «плюс», или нажмите клавиши CTRL+M, CTRL+M еще раз. Эта функция называется структурированием и особенно полезна при свертывании длинных методов или целых классов.
Вы можете свернуть разделы кода, чтобы полностью сосредоточиться на тех частях, над которыми вы сейчас работаете. Давайте потренируемся, свернув массив _words в одну строку кода. Выберите небольшое серое поле со знаком «минус» внутри в поле строки с текстом Dim _words = New String() < . Если вы предпочитаете использовать клавиатуру, поместите курсор в любое место определения массива и нажмите сочетание клавиш CTRL+M, CTRL+M.

Блок кода сворачивается до первой строки, после которой идет многоточие ( . ). Чтобы развернуть блок кода, щелкните то же серое поле, в котором теперь находится знак «плюс», или нажмите клавиши CTRL+M, CTRL+M еще раз. Эта функция называется структурированием и особенно полезна при свертывании длинных методов или целых классов.
Просмотр определений символов
Редактор Visual Studio упрощает проверку определения типа, метода и т. д. Один из способов — перейти к файлу, который содержит определение, например, выбрав «Перейти к определению » в любом месте, на который ссылается символ. Сделать это еще быстрее и даже без перемещения фокуса с рабочего файла можно с помощью команды Показать определение. Давайте посмотрим определение типа String .

- Щелкните слово String правой кнопкой мыши и выберите пункт Показать определение в контекстном меню. Или нажмите Alt+F12. Отображается всплывающее окно с определением класса String . Вы можете прокрутить его или даже показать определение другого типа из просматриваемого кода.
- Закройте окно просматриваемого определения, щелкнув небольшое поле со знаком «x» в его правом верхнем углу.
В редакторе Visual Studio можно легко проверить определение типа или член класса. Один из способов заключается в том, чтобы перейти к файлу, который содержит определение, например, выбрав Перейти к определению в любом месте, где указана ссылка на этот символ. Сделать это еще быстрее и даже без перемещения фокуса с рабочего файла можно с помощью команды Показать определение. Давайте посмотрим определение типа String .

- Щелкните слово String правой кнопкой мыши и выберите пункт Показать определение в контекстном меню. Или нажмите Alt+F12. Отображается всплывающее окно с определением класса String . Вы можете прокрутить его или даже показать определение другого типа из просматриваемого кода.
- Закройте окно просматриваемого определения, щелкнув небольшое поле со знаком Х справа в верхнем углу.
Использование IntelliSense для завершения слов
Технология IntelliSense крайне полезна при написании кода. Она может отображать сведения о доступных членах типа или сведения о параметрах для различных перегрузок метода. Вы также можете использовать IntelliSense для завершения слова после того, как ввели достаточно знаков для однозначного его определения. Давайте добавим строку кода для вывода упорядоченных строк в окне консоли — это стандартное место для отображения выходных данных программы.
-
Начните набирать следующий код под переменной query .
For Each str In qu

Вы видите, как IntelliSense показывает Краткие сведения о символе query .
For Each str In query Console.WriteLine(str) Next
Технология IntelliSense крайне полезна при написании кода. Она может отображать сведения о доступных членах типа или сведения о параметрах для различных перегрузок метода. Вы также можете использовать IntelliSense для завершения слова после того, как ввели достаточно знаков для однозначного его определения. Давайте добавим строку кода для вывода упорядоченных строк в окне консоли — это стандартное место для отображения выходных данных программы.
-
Начните набирать следующий код под переменной query .
For Each str In qu

Вы видите, как IntelliSense показывает Краткие сведения о символе query .
For Each str In query Console.WriteLine(str) Next
Рефакторинг имени
Никто не пишет код правильно с первого раза, и, среди прочего, вам может потребоваться изменить имя переменной или метода. Давайте попробуем использовать функциональность рефакторинга Visual Studio, чтобы переименовать переменную _words в words .

- Поместите курсор над определением переменной _words и выберите пункт Переименовать в контекстном меню, которое открывается правой кнопкой мыши. В верхней правой части редактора отображается всплывающее диалоговое окно Переименование.
- Не снимая выделение с переменной _words , введите желаемое имя words (слова). Обратите внимание, что ссылка на words в запросе также переименовывается автоматически. Прежде, чем нажимать клавишу ВВОД или щелкнуть действие Применить, установите флажок Включить комментарии во всплывающем окне Переименовать.
- Нажмите клавишу ВВОД или щелкните Применить. Это действие переименует оба экземпляра words и ссылку на words в комментариях к коду.
Никто не пишет код правильно с первого раза, и, среди прочего, вам может потребоваться изменить имя переменной или метода. Давайте попробуем использовать функциональность рефакторинга Visual Studio, чтобы переименовать переменную _words в words .

- Поместите курсор над определением переменной _words и выберите пункт Переименовать в контекстном меню, которое открывается правой кнопкой мыши. В верхней правой части редактора отображается всплывающее диалоговое окно Переименование.
- Не снимая выделение с переменной _words , введите желаемое имя words (слова). Обратите внимание, что ссылка на words в запросе также переименовывается автоматически. Прежде чем нажать клавишу ВВОД или щелкнуть действие Применить, установите флажок Включить комментарии во всплывающем окне Переименовать.
- Нажмите клавишу ВВОД или щелкните Применить. Это действие переименует оба экземпляра words и ссылку на words в комментариях к коду.
Следующие шаги
См. также
- Фрагменты кода
- Навигация по коду
- Структура
- Функции «Перейти к определению» и «Показать определение»
- Рефакторинг
- Использование IntelliSense
Visual Studio Online. Что это такое и с чем её едят?
Visual Studio Online, основанна на возможностях Team Foundation Server, представляет собой интернет-пространство для ваших проектов разработки. Быстро настройте необходимую облачную инфраструктуру без необходимости установки или настройки каких-либо серверов.
С какими IDE её можно использовать?
— Visual Studio Online подключается к Visual Studio, Eclipse, Xcode и другим Git-клиентам, что позволяет обеспечить поддержку кроссплатформенной разработки.
Каждая учетная запись Visual Studio Online предусматривает возможность бесплатной работы пяти пользователей. По мере расширения группы или роста потребностей соединяйте и сопоставляйте пользовательские планы и ресурсы, чтобы дать каждому из пользователей именно то, что ему нужно. Подписчики Visual Studio с MSDN могут присоединяться к проектам в учетных записях с пятью бесплатными пользователями.

Размещайте код в облаке
Размещайте код в облаке, чтобы иметь к нему доступ в любое время и из любого места. Используйте традиционную централизованную систему контроля версий Team Foundation Version Control или используйте репозитории Git, если вы предпочитаете распределенный подход.

Создайте частные репозитории исходного кода в облаке
Независимо от того, сколько разработчиков вам необходимо поддерживать (3-5 человек или несколько тысяч), вы можете управлять исходным кодом в облаке, используя расширенные технологии ветвления, объединения и визуализации.
Выберите управление исходным кодом с помощью Git или TFVC
Используйте ту модель управления исходным кодом, которая наилучшим образом вам подходит: распределенная система контроля версий с использованием Git, либо централизованная система контроля версий с использованием TFVC. Выбор за вами.

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

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

Отслеживайте ход выполнения работ с помощью доски Kanban и доски задач гибкой разработки
Отслеживайте общий ход выполнения работ на доске Kanban во время выполнения группой имеющихся задач и отслеживайте ход выполнения работ для спринтов с помощью доски задач на базе Scrum.
Создавайте приложения в облаке
Создавайте процессы сборки, которые автоматически компилируют и тестируют ваши приложения в облаке, по запросу или в рамках стратегии автоматизированной непрерывной интеграции, и управляйте ими.
Разгружайте сборки
Используйте облачный контроллер сборки и месячный выделенный объем бесплатных минут сборки для распределения ресурсоемких задач сборки проекта в облаке.

Автоматизируйте процесс сборки
Автоматизируйте сборку в облаке для ее выполнения в ночное время или после каждого возврата, чтобы обеспечить сборку кода и его готовность к развертыванию.
Отслеживайте состояние сборки с течением времени
Просматривайте актуальные результаты сборки на домашней странице проекта и настраивайте уведомления.
Подробно изучайте структуру приложений
Visual Studio Online Application Insights — это новая облачная служба (в настоящее время доступна версия Preview), которая собирает множество данных об операциях, производительности и использовании клиентами из клиентских приложений и приложений для устройств, а также серверных приложений, независимо от того, запущены ли они локально, в Microsoft Azure, в облачной службе стороннего поставщика или с использованием сочетания этих способов.
Используйте функционально насыщенные панели управления и динамические отчеты, содержащие сведения о приложении
Панели управления предоставляют сведения о работе приложений и позволяют создавать настраиваемые представления. Динамические отчеты содержат сводные данные о различных аспектах вашего приложения.
Отслеживайте использование вашего приложения.
Узнайте все о своем приложении, изучая интерактивные данные, например географическое положение пользователей и предпочитаемые браузеры. Эти сведения затем можно будет использовать для принятия обоснованных решений по приложению.
Вывод: Visual Studio Online является функциональной и почти бесплатной ( до 5 пользователей ) альтернативой Team Foundation Server. Если вы маленькая команда разработчиков, то это как раз для вас.
