Как стать автором
Обновить
13.75

Visual Studio *

Основной инструмент разработчика на платформе .NET

Сначала показывать
Порог рейтинга
Уровень сложности

Кодогенерация при помощи Roslyn

Время на прочтение10 мин
Количество просмотров12K

Время от времени, когда я читал о Roslyn и его анализаторах, у меня постоянно возникала мысль: "А ведь этой штукой можно сделать nuget, который будет ходить по коду и делать кодогенерацию". Быстрый поиск не показал ничего интересного, по этому было принято решение копать. Как же я был приятно удивлен, когда обнаружил что моя затея не только реализуемая, но все это будет работать почти без костылей.


И так кому интересно посмотреть на то как можно сделать "маленькую рефлексию" и запаковать ее в nuget прошу под кат.

Всего голосов 21: ↑20 и ↓1+19
Комментарии9

VS Code Extension — Snippets — Я расскажу как сэкономить время

Время на прочтение3 мин
Количество просмотров14K
Работая долго на каком-то проекте, часто сталкиваешься с потребностью скопировать какую-то часть типичного кода и вставить ее в нужное место. В таких ситуациях snippets выручают как нельзя к стати. Именно на их примере я и расскажу как строить расширение для собственных нужд в VS Code.
Читать дальше →
Всего голосов 18: ↑9 и ↓90
Комментарии15

Создание анализатора Roslyn на примере проверки инкапсуляции

Время на прочтение5 мин
Количество просмотров5.2K

Что такое Roslyn?


Roslyn – это набор компиляторов с открытым исходным кодом и API для анализа кода для языков C# и VisualBasic .NET от Microsoft.


Анализатор Roslyn – мощный инструмент для анализа кода, нахождения ошибок и их исправления.


Синтаксическое дерево и семантическая модель


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


Синтаксическое дерево — это элемент, который строится на основании исходного кода программы, и необходимый для анализа кода. В ходе анализа кода по нему происходит перемещение.


Каждый код обладает синтаксическим деревом. Для следующего объекта класса


class A
{
    void Method()
    {
    }
}

синтаксическое дерево будет выглядеть так:


Дерево

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии7

Анонсировано расширение Azure IoT Edge Tools (Preview)

Время на прочтение2 мин
Количество просмотров2K
Мы рады объявить о доступности preview-версии нового расширения для Visual Studio 2019 — Azure IoT Edge Tools. Расширение предоставляет богатый набор функций для поддержки разработки решений IoT Edge с использованием Visual Studio 2019:

image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Истории

Внимание! Опасный баг в реализации C++ std::map::merge и std::set::merge в Visual Studio 2017

Время на прочтение2 мин
Количество просмотров15K
Если Вы используете стандарт C++17 в MS Visual Studio 2017 — будьте осторожны: текущая версия содержит критический баг в реализации std::map::merge и std::set::merge. Подробности — под катом.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии34

Перенос десктопных приложений на .NET Core

Время на прочтение5 мин
Количество просмотров23K
С тех пор, как я начала работать с сообществом над переносом десктопных приложений с .NET Framework на .NET Core, я заметила, что существует «два лагеря»: представители одного хотят очень простой и короткий список инструкций для переноса своих приложений на .NET Core, в то время как представители другого предпочитают более принципиальный подход с большим количеством исходной информации. Вместо того, чтобы писать документ по типу «швейцарского армейского ножа», мы собираемся опубликовать два сообщения в блоге, по одному для каждого «лагеря»:

  • Данный пост — простой случай. Он ориентирован на простые инструкции и небольшие приложения и рассматривает самый простой способ переноса приложения на .NET Core.
  • Позднее мы опубликуем еще один пост для более сложных случаев. В нем основное внимание будет уделено нетривиальным приложениям, таким как WPF-приложение с зависимостями от WCF и сторонних UI-пакетов.

Если вы предпочитаете смотреть видео, а не читать, то вот видео, где я делаю все, что описано ниже.

Всего голосов 15: ↑13 и ↓2+11
Комментарии20

Nullable Reference типы в C# 8.0 и статический анализ

Время на прочтение13 мин
Количество просмотров24K

Picture 9


Не секрет, что Microsoft достаточно давно работает над выпуском восьмой версии C#. В недавно состоявшемся релизе Visual Studio 2019 новая версия языка (C# 8.0) уже доступна, но пока ещё только в качестве beta релиза. В планах этой новой версии есть несколько возможностей, реализация которых может показаться не совсем очевидной, или точнее, не совсем ожидаемой. Одним из таких нововведений стала возможность использования Nullable Reference типов. Заявленным смыслом данного нововведения является борьба с Null Reference Exception'ами (NRE).
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии8

Поддержка Visual Studio 2019 в PVS-Studio

Время на прочтение21 мин
Количество просмотров4.7K


Поддержка Visual Studio 2019 в PVS-Studio затронула сразу несколько различных компонентов: сам плагин для IDE, command line приложение для анализа, ядра C++ и C# анализаторов, а также несколько утилит. О том, с какими проблемами мы столкнулись в ходе поддержки новой версии IDE и как их решали, я кратко расскажу в данной статье.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии10

Удалённая разработка в VS Code: ваша жизнь никогда не будет прежней

Время на прочтение3 мин
Количество просмотров67K

У нас в TestMace Visual Studio Code является одним из самых популярных инструментов. И тем более отрадно, что он развивается семимильными шагами. Вашему вниманию предлагается перевод статьи об еще одной вкусной фиче, которая доступна пока только в VS Code Insiders.


Согласен, немного переборщил с заголовком, просто меня переполняют эмоции. Я решил поделиться своими первыми впечатлениями от удалённой разработки в VS Code, на момент написания статьи доступной в VS Code Insiders.

Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии10

Все свое: туториал по созданию новых действий для UiPath RPA

Время на прочтение12 мин
Количество просмотров21K

Данная статья – обучающий материал, который позволяет по шагам пройтись по процессу создания и публикации нового компонента для платформы UiPath RPA. Это удобно в разных случаях, например, для простой интеграции с системами компании или в ситуациях, когда компания хочет помочь сотрудникам, не особенно разбирающихся в программировании, создавать свои процессы для роботов. Но, как мне кажется, особенно хорошо данный прием работает для случаев, когда вам нужно встроить свой продукт в экосистему роботизации, позволяя пользователям в пару кликов настроить интеграцию внутренних процессов. В качестве примера можно привести коннектор, написанный Abbyy для своего продукта Abbyy Flexicapture Distributed. Еще один пример — сама компания UiPath, которая таким образом реализовала подключение к своему новому ML-модулю компьютерного зрения (Computer Vision в менеджере пакетов), действиям работы с PDF и т.д.


Сейчас в магазине приложений UiPath Go! уже вовсю начали появляться коннекторы к популярным решениям, таким как Salesforce или ServiceNow, и, скорее всего, этот тренд только набирает популярность.


Итак, как же начать разработку своего собственного действия?


N.B. По-английски действие — это Activity, помните об этом, если надо будет что-то погуглить

Если не хочется заниматься всеми настройками, можно попробовать пример кода, сделанного по шагам в этом туториале. Он лежит на GitLab. Код в статье сокращен и упрощен, он доступен на Yandex Disk


Робот строит действие для UiPath

Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии1

IntelliSense для C++ в Visual Studio теперь работает на основе примеров в вашем коде

Время на прочтение1 мин
Количество просмотров5.4K
С тех пор, как мы анонсировали IntelliSense for templates, от вас поступили отличные предложения. Одно очень популярное предложение состояло в том, чтобы Template Bar автоматически заполнял вариант на основе примеров в коде. В Visual Studio 2019 версии 16.1 Preview 2 мы добавили эту функцию в опции “Add All Existing Instantiations” в раскрывающемся меню Template Bar. Следующие примеры взяты из кодовой базы SuperTux.

image
Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии3

Улучшения в сервисе распространения Visual Studio App Center

Время на прочтение2 мин
Количество просмотров1.5K
Здесь, в Visual Studio App Center, мы стараемся включать в нашу повседневность идеи, которыми одержимы пользователи. Ранее в этом году мы уже начали работу по широкому охвату пользователей, чтобы лучше понимать их и определять приоритеты продуктов. Эти усилия помогли нам лучше понимать пользователей и расставить приоритеты в прошлом квартале. Однако, по мере нашего роста, мы, к сожалению, не можем охватить столько, сколько бы хотели.

Чтобы продолжать взаимодействовать с как можно большим количеством пользователей, специально для этой цели мы создали репозиторий на GitHub. Мы используем его для отслеживания: ежемесячных итераций от команды, запросов функций и интереса сообщества к определенным функциям. Мы вносим изменения, чтобы согласовать наши приоритеты на предстоящие кварталы, основываясь на пожеланиях аудитории.

Я хотел бы осветить некоторые изменения, которые мы внесли в сервис распространения, основываясь на том, что узнали из обратной связи. Все эти изменения доступны уже сейчас:

  • Распространение релизов по нескольким направлениям
  • Распространение релизов для отдельных тестеров
  • Отключение уведомлений по электронной почте для релизов
  • Отключение релиза
  • Возможность сортировки релизов

image
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии0

Представлен .NET 5

Время на прочтение7 мин
Количество просмотров67K
6 мая было объявлено, что следующим после .NET Core 3.0 релизом будет .NET 5. Это будет следующий большой релиз в семействе .NET.

В будущем останется только один .NET, и вы сможете использовать его для разработки под Windows, Linux, macOS, iOS, Android, tvOS, watchOS, WebAssembly и другие платформы.

Мы представим новые .NET API, возможности исполняющей среды и возможности языка как части .NET 5.


Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии201

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн

Python в Visual Studio Code. Апрельский выпуск

Время на прочтение3 мин
Количество просмотров19K
Мы рады сообщить, что в апреле 2019 вышло обновление расширения Python для Visual Studio Code. Вы можете загрузить расширение Python из Marketplace или установить его прямо из галереи расширений в Visual Studio Code. Вы можете узнать больше о поддержке Python в Visual Studio Code в документации.

В этом выпуске мы внесли ряд улучшений, перечисленных в нашем журнале изменений, закрыв в сумме 84 проблемы, среди которых:

  • Variable Explorer и Data Viewer
  • Усовершенствования конфигурации отладки
  • Дополнительные улучшения в Python Language Server

Заглядывайте под кат, чтобы узнать больше!

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии7

Создание шаблонов с тегами в Visual Studio для эффективного поиска и группировки пользователей

Время на прочтение3 мин
Количество просмотров8.4K
Шаблоны проектов Visual Studio позволяют разработчикам более эффективно создавать несколько схожих проектов, определяя общий набор начальных файлов. Шаблоны проектов могут быть полностью кастомизированы в соответствии с потребностями команды разработчиков или группы и могут быть опубликованы в Visual Studio Marketplace для загрузки и использования другими людьми! После публикации разработчики могут установить шаблон и получить к нему доступ через диалоговое окно New Project в Visual Studio.

Недавно разработанное диалоговое окно New Project для Visual Studio 2019 было создано, чтобы помочь разработчикам быстрее добираться до своего кода. Используя опыт поиска и фильтрации, мы стремимся обеспечить лучшее обнаружение для конкретных шаблонов, чтобы вы могли быстрее начать разработку своего приложения.

image
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

Настраиваем удобную сборку проектов в Visual Studio

Время на прочтение43 мин
Количество просмотров85K
Эта статья является руководством по настройке сборки C++ проектов Visual Studio. Частично она сводилась из материалов разрозненных статей на эту тему, частично является результатом реверс-инжениринга стандартных конфигурационных файлов Студии. Я написал ее в основном потому что полезность документации от самой Microsoft на эту тему стремится к нулю и мне хотелось иметь под рукой удобный референс к которому в дальнейшем можно будет обращаться и отсылать других разработчиков. Visual Studio имеет удобные и широкие возможности для настройки по-настоящему удобной работы со сложными проектами и мне досадно видеть что из-за отвратительной документации эти возможности очень редко сейчас используются.

В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties



Укрощаем MSBuild
Всего голосов 42: ↑39 и ↓3+36
Комментарии37

Обновлена поддержка Razor в Visual Studio Code. Теперь с Blazor

Время на прочтение2 мин
Количество просмотров4.3K
Совсем недавно мы анонсировали улучшенную поддержку инструментов Razor в Visual Studio Code с последним расширением C#. Этот выпуск включает в себя улучшенную диагностику Razor и поддержку для тег-хелперов и приложений Blazor.

image
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Конфигурируйте Visual Studio в вашей организации с помощью .vsconfig

Время на прочтение2 мин
Количество просмотров9.6K
В Visual Studio 2017 Update 15.9 мы добавили возможность экспорта и импорта рабочей нагрузки и выбора компонентов в файл конфигурации установки Visual Studio. Разработчики могут импортировать эти файлы в новые или существующие установки. Проверка этих файлов в ваших исходных репозиториях позволяет легко ими делиться. Однако разработчикам все еще нужно импортировать их, чтобы получить необходимые функции.

В Visual Studio 2019 была добавлена автоматическая установка недостающих компонентов. Подробности под катом!
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

FFmpeg начало работы с Visual Studio

Время на прочтение5 мин
Количество просмотров17K
Привет! Начну с того, что я занимаюсь разработкой программы определения автомобильных номеров на дешевом слабомощном процессоре типа Intel ATOM Z8350. Мы получили достаточно хорошие результаты в определении российских номеров на статической картинке (до 97%) с неплохим быстродействием без применения нейронных сетей. Дело осталось за малым — работа с IP-камерой рис 1.

image
рис.1 Компьютер Intel ATOM Z83II и IP-камера ATIS

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

Задача: Full HD IP-камера в стандарте h.264 передает RTSP поток. Размер распакованного кадра 1920x1080 пикселей, частота 25 кадров в секунду. Нужно получать декодированные кадры в оперативную память и каждый 25 кадр сохранять на диск.

В данном примере мы будем декодировать кадры программно. Цель — научиться использовать FFmpeg и в дальнейшем сравнить результаты, получаемые с помощью аппаратного декодирования. Вы увидите, FFmpeg – это просто!
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии32

Новые фичи для авторов расширений в Visual Studio 2019 v.16.1

Время на прочтение3 мин
Количество просмотров3.2K
В начале прошлой недели мы выпустили Visual Studio 2019 v.16.1 Preview 1 (см. примечания к выпуску). Это первое превью первого обновления Visual Studio 2019. Если вы еще не настроили получение Preview-версий, то сделайте это сейчас. Preview-версия без проблем устанавливается рядом с Release-версией, так что они не мешают друг другу. Я настоятельно рекомендую всем авторам расширений установить Preview-версию.

У вас сейчас установлена 16.1 Preview? Замечательно. Вот некоторые фичи, которые могут вам понравиться. Подробности под катом!

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Вклад авторов