DevOps с Xamarin

Платформа Xamarin позволяет создавать кроссплатформенные мобильные приложения, предназначенные для Android, iOS и Windows, с помощью C#, .NET и Visual Studio. Платформа Xamarin дает возможность совместного использования большей части кода разными платформами, при этом лишь небольшая его часть должна соответствовать конкретной платформе.

Разработка приложений для современных платформ включает гораздо больше, чем просто написание кода. Эти действия, называемые DevOps (разработка + операции), охватывают весь жизненный цикл приложения и включают планирование и отслеживание работы, проектирование и реализацию кода, управление репозиторием исходного кода, выполнение сборок, управление непрерывной интеграцией и развертываниями, тестирование (включая модульные тесты и тесты пользовательского интерфейса), выполнение всевозможной диагностики в средах разработки и рабочих средах и отслеживание производительности приложения и поведения пользователей в режиме реального времени с помощью телеметрии и анализа.

Visual Studio (совместно с Azure DevOps Services и Team Foundation Server) предоставляет широкий набор возможностей DevOps. Многие из функций набора полностью применимы к кроссплатформенным проектам. Это особенно справедливо в отношении приложений Xamarin, так как они создаются с помощью C# и .NET, на которых также основаны некоторые средства DevOps. Другие средства требуют тесной интеграции со средами сборки и выполнения. Поскольку приложения Xamarin выполняются в платформах, отличных от Windows, и используют реализацию Mono среды .NET, Xamarin предоставляет специальные средства для определенных потребностей.

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

Гибкие инструменты

Ссылка: Сведения о средствах Agile и гибком управлении проектами (Agile)

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

Функция Поддерживается в Xamarin Дополнительные комментарии
Управление невыполненной работой и спринтами Да
Отслеживание трудозатрат Да
Совместная работа в комнате команды Да
Канбан-доски Да
Визуализация хода выполнения и отчеты о ходе выполнения Да

Моделирование

Ссылка: Анализ и моделирование архитектуры

Функции разработки не зависят от языка программирования или работы с языками .NET, такими как C#. Аспекты, связанные с кодом, описаны в разделе Роли архитектуры и схем моделирования в разработке программного обеспечения.

Функция Поддерживается в Xamarin Дополнительные комментарии
Схемы последовательностей Да
Графы зависимости Да
Иерархия вызовов Да
Конструктор классов Да
Обозреватель архитектуры Да
UML-схемы (вариант использования, действие, класс, компонент, последовательность и DSL) Да
Схемы слоев Да
Проверка слоев Да

Код

Функция Поддерживается в Xamarin Дополнительные комментарии
Использование системы управления версиями Team Foundation (TFVC) или Azure Repos Да
Приступая к работе с Git в Azure Repos Да
Улучшение качества кода Да
Поиск изменений кода и других журналов Да Кроме выхода за границы конкретной платформы, где реализация не разрешается до времени выполнения.
Использование карт кода для отладки приложений Да

Сборка

Ссылка для справки: Azure Pipelines

Функция Поддерживается в Xamarin Дополнительные комментарии
Локальный сервер TFS Да На компьютерах для сборки должна быть установлена платформа Xamarin; кроме того, они могут быть связаны с компьютером OSX для сборки приложений для iOS. См. раздел Использование TFVC.
Локальные серверы сборки, связанные с Azure Pipelines Да Инструкции см. в разделе Агенты сборки и выпуска.
Служба размещенного контроллера Azure Pipelines Да См. Сборка приложения Xamarin.
Определения сборки с сценариями до и после сборки Да
Непрерывная интеграция, включая условный возврат Да Условный возврат доступен только для TFVC, так как Git работает с моделью запроса на включение внесенных изменений, а не с возвратом.

Тест

Функция Поддерживается в Xamarin Дополнительные комментарии
Планирование тестов, создание тестовых случаев и организация наборов тестов Да
Тестирование вручную Да
Test Manager (запись и воспроизведение тестов) Да Только устройства Windows и эмуляторы Android из Visual Studio.
Покрытие кода Н/Д
Модульное тестирование кода Да Для целевых платформ Windows и Android можно использовать встроенные средства MSTest. Для выполнения модульных тестов в Windows, iOS и Android Xamarin рекомендует использовать NUnit. См. раздел Использование TFVC.
Использование автоматизации пользовательского интерфейса для тестирования кода Только для Windows Средства записи тестов пользовательского интерфейса Visual Studio предназначено только для Windows. Сведения для других платформ см. в разделе Xamarin.UITest.

Улучшение качества кода

Ссылка: Улучшите качество кода

Функция Поддерживается в Xamarin Дополнительные комментарии
Анализ качества управляемого кода Да
Поиск повторяющегося кода с помощью обнаружения клонов кода Да
Оценка сложности и удобства сопровождения управляемого кода Да
Обозреватель производительности No Вместо этого используйте профилировщик Xamarin через Visual Studio для Mac. Обратите внимание, что профилировщик Xamarin находится в режиме предварительной версии и пока не работает для целевых платформ Windows.
Анализ проблем с памятью .NET Framework No Инструменты Visual Studio не имеют обработчиков в платформе Mono для профилирования.

Управление выпуском

Ссылка для справки: Сборка и выпуск в Azure Pipelines и TFS

Функция Поддерживается в Xamarin Дополнительные комментарии
Управление процессами выпуска Да
Развертывание на серверах для загрузки неопубликованных приложений через сценарии Да
Отправка в магазин приложений Частично Доступны расширения, которые автоматизируют этот процесс для некоторых магазинов приложений. См. раздел Расширения для Azure DevOps Services, например расширение для Google Play.

Мониторинг с помощью пакета SDK центра приложений

Ссылка: Мониторинг с помощью пакета SDK для Центра приложений

Функция Поддерживается в Xamarin Дополнительные комментарии
Анализ сбоев, телеметрия и бета-распределение Да