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

Visual Studio *

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

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

Time Travel Debugging в Visual Studio Enterprise 2019

Время на прочтение4 мин
Количество просмотров3.3K
Превью-версия Time Travel Debugging (TTD) в Visual Studio Enterprise 2019 позволяет записывать выполнение веб-приложения, запущенного на виртуальной машине Azure, а затем точно восстанавливать и воспроизводить алгоритм. TTD интегрируется с нашим предложением Snapshot Debugger и позволяет вам перематывать и воспроизводить каждую строку кода сколько угодно раз, помогая идентифицировать и предсказывать проблемы, которые могут возникнуть только в боевых средах.


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

Обновление инструментов Web и Azure в Visual Studio 2019

Время на прочтение2 мин
Количество просмотров2.1K
Скорее всего вы уже видели, что состоялся релиз Visual Studio 2019. Как и следовало ожидать, мы добавили улучшения для веб-разработки и разработки с Azure. В качестве отправной точки Visual Studio 2019 предоставляет новые фичи для начала работы с вашим кодом, и также мы обновили опыт создания проектов ASP.NET и ASP.NET Core, чтобы они соответствовали следующим требованиям:

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

14 новинок в Visual Studio 2019

Время на прочтение2 мин
Количество просмотров50K
Всем привет! На связи команда по улучшению продуктивности в .NET (aka. Roslyn). Мы много внимания уделяем улучшению вашего опыта .NET-кодинга. Ведь иногда небольшие дополнения и исправления действительно могут улучшить рабочий процесс. Возможно вы уже видели некоторые улучшения в превью-версиях VS2019. Но мы все равно хотим рассказать о некоторых из них, которые должны помочь вам работать продуктивнее.

Осторожно, много гифок.

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

Мониторинг сообщений в RabbitMQ

Время на прочтение3 мин
Количество просмотров42K
Рассмотрим классическую схему построения конвейера сообщений в RabbitMQ состоящую из элементов Producer, Exchange, Queue и Consumer.



Задача состоит в том, что бы организовать мониторинг происходящего в очереди и не затронуть основное программное обеспечение (ПО), добавить гибкую возможность построения отчетов и при этом избежать дополнительных затрат. Итоговая конструкция должна позволять быстро строить отчеты для анализа потока данных на конвейере без использования основных мощностей серверов (что позволит избежать дополнительной нагрузки) и основного ПО. Подход должен быть легко переносимым на более сложную архитектуру.
Всего голосов 22: ↑19 и ↓3+16
Комментарии10

Live Share в Visual Studio 2019

Время на прочтение2 мин
Количество просмотров12K
Мы рады объявить об общедоступности Visual Studio Live Share и о том, что эта функция включена в Visual Studio 2019! В течение года с момента выпуска публичного превью Live Share мы работали над улучшением способов совместной работы в команде. Этот релиз — кульминация этой работы.

Если вы не слышали о Live Share, то это инструмент, который позволяет в режиме реального времени вести разработку совместно с вашими коллегами. Вы можете поделиться своим кодом, совместно его редактировать и отлаживать, и все это без необходимости клонировать репозитории или настраивать среды. Начать работу с Live Share.

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

Крутые фичи Visual Studio 2019

Время на прочтение4 мин
Количество просмотров40K
Несколько дней назад мы объявили об общей доступности Visual Studio 2019. Лично я использую Visual Studio 2019 с момента первой внутренней сборки — задолго до выпуска Preview 1 в декабре 2018 года. За это время обнаружилось много маленьких особенностей, которые заставили меня улыбнуться и сделали мою работу более продуктивной.

Я хочу поделиться некоторыми из них с вами, поскольку они не все очевидны, а некоторые требуют изменения некоторых настроек. Подробности под катом!

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии18

Сравнение похожих строк

Время на прочтение11 мин
Количество просмотров13K
Задача сравнения похожих строк встречается на практике довольно часто: лично я недавно столкнулся с ней при попытке импорта почтовых адресов из одной программы в другую.

Например, один адрес может выглядеть как «Тверская обл., Кашин г, Советская ул, 1, 5», а другой – как «Тверская область; город Кашин; улица Советская; дом 1; квартира 5». Похожи ли эти строки и насколько? Несомненно, похожи. И «невооруженным глазом» видна их структура: область – населенный пункт – улица – дом – квартира. Логично, что для адресов важно такое разбиение строк на группы; то есть сравнивать мы должны не «две каши» из сходных слов (где одна «каша» состоит из слов первой строки, а вторая – из слов второй), а именно осуществлять «погруппное» сравнение слов из первой строки со словами из второй. Просматривается и критерий разбиения на группы: в первой строке разделителем групп является «, », а во второй – «; ».
Читать дальше →
Всего голосов 30: ↑18 и ↓12+6
Комментарии15

Проверяем исходный код Roslyn

Время на прочтение22 мин
Количество просмотров7.8K
PVS-Studio vs Roslyn

Время от времени мы возвращаемся к проектам, которые уже проверяли ранее с помощью PVS-Studio и писали про это статьи. Делать это интересно по двум причинам. Во-первых, чтобы понять, насколько лучше стал наш анализатор. Во-вторых, чтобы отследить, обратили ли авторы проекта внимание на нашу статью, а также на отчет об ошибках, который мы им обычно предоставляем. Конечно, ошибки могут быть исправлены и без нашего участия. Но всегда приятно, когда именно наши усилия помогают сделать какой-то проект лучше. Не стал исключением и Roslyn. Предыдущая статья о проверке этого проекта датируется 23 декабря 2015 года. Это довольно давно, учитывая путь, который за это время проделал в своём развитии наш анализатор. Дополнительный интерес лично для нас Roslyn представляет ещё и тем, что на нём базируется ядро C# анализатора PVS-Studio. Таким образом, мы очень заинтересованы в качестве кода этого проекта. Устроим ему повторную проверку и выясним, что же нового и интересного (но будем надеяться, что ничего существенного) там сможет найти PVS-Studio.
Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии6

.NET Core Workers как службы Windows

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

В .NET Core 3.0 мы представляем новый тип шаблона приложения под названием Worker Service. Этот шаблон предназначен для того, чтобы дать вам отправную точку для написания долго-работающих сервисов в .NET Core. В этом пошаговом руководстве мы создадим worker и запустим его в качестве службы Windows.



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

Как фрагмент CSS разметки сломал C++ компилятор

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

Picture 1

В методологии статического анализа применяются разные технологии. Одна из них — препроцессирование файлов непосредственно перед их анализом. Препроцессированные файлы создаёт компилятор, запускаемый в специальном режиме работы. К сожалению, этот режим не очень хорошо тестируется, как показывает наш многолетний опыт разработки статического анализатора кода. В этой заметке приведу пример свеженайденного бага в С++ компиляторе от Microsoft.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии14

Представляем Microsoft Game Stack

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

Microsoft Game Stack


Мы объявляем о новой инициативе «Microsoft Game Stack», в рамках которой мы объединим инструменты и сервисы Microsoft, которые позволят всем разработчикам игр, независимо от того, являются ли они независимыми разработчиками или студией AAA, добиться большего.


Сегодня в мире насчитывается 2 миллиарда геймеров, играющих в самые разные игры на самых разных устройствах. В сообществе столько же внимания уделяется потоковой передаче видео, просмотру и обмену, сколько и играм или соревнованиям. Как создатели игр, вы каждый день стараетесь вовлекать своих игроков, пробуждать их воображение и вдохновлять их, независимо от того, где они находятся и какое устройство они используют. Мы представляем Microsoft Game Stack, чтобы помочь вам делать именно это.

Читать дальше →
Всего голосов 14: ↑9 и ↓5+4
Комментарии3

Ускорение файлового ввода-вывода C/C++, не особо напрягаясь

Время на прочтение4 мин
Количество просмотров25K
image

Предисловие


Есть на свете такая простая и очень полезная утилита — BDelta, и так вышло, что она очень давно укоренилась в нашем производственном процессе (правда её версию установить не удалось, но она точно была не последней доступной). Используем её по прямому назначению — построение бинарных патчей. Если взглянуть, что там в репозитории, — становится слегка грустно: по сути он давным-давно заброшен и многое там сильно устарело (когда-то туда внёс несколько правок мой бывший коллега, но давно это было). В общем, решил я это дело воскресить: форкнулся, выкинул то, что не планирую использовать, перегнал проект на cmake, заинлайнил «горячие» микрофункции, убрал со стека большие массивы (и массивы переменной длины, от которых у меня откровенно «бомбит»), прогнал в очередной раз профилировщик — и узнал, что около 40% времени тратится на fwrite
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии34

Подсчитаем баги в калькуляторе Windows

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

На днях компания Microsoft открыла исходный код калькулятора. Это приложение входило во все версии операционной системы Windows. Исходный код разных проектов Microsoft достаточно часто открывался за последние годы, но новость о калькуляторе в первый же день просочилась даже в нетехнологические средства массовой информации. Что ж, это популярная, но очень маленькая программа на языке C++. Тем не менее, статический анализ кода с помощью PVS-Studio выявил подозрительные места в проекте.
Читать дальше →
Всего голосов 197: ↑193 и ↓4+189
Комментарии165

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

15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

VS Code — сниппеты Puppeteer

Время на прочтение2 мин
Количество просмотров3.8K
Это расширение Visual Studio Code добавляет предопределенные полезные фрагменты кода для Puppeteer. Проверьте API для получения дополнительной информации о доступных возможностях.

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

novtable оптимизация

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

Компилятор Microsoft позволяет добавить расширение «novtable» для атрибута «__declspec» при объявлении класса.

Заявленная цель — значительно уменьшить размер генерируемого кода. На экспериментах с нашими компонентами уменьшение составило от 0,6 до 1,2 процента от размера DLL.

Применимость: классы, не предназначенные для создания экземпляров напрямую из них.

Например: чисто интерфейсные классы.

В коде это выглядит так:

struct __declspec(novtable) IDrawable
{
	virtual void Draw() const = 0;
};

Примечание: ключевое слово struct использовалось для декларации интерфейсного класса, чтобы избавить пример от не относящихся к теме статьи деталей; тогда как в случае использования class пришлось бы использовать public для указания «публичности» методов. По той же причине я не буду в этой статье добавлять виртуальный деструктор в интерфейсный класс.

Название «novtable» обещает, что виртуальной таблицы не будет… Но как же работает механизм вызова виртуальных функций в следующем коде:

// Добавим декларацию прямоугольника, реализующего интерфейс IDrawable:

class Rectangle : public IDrawable
{
	virtual void Draw() const override
	{
	}

	int width;
	int height;
};

…
IDrawable* drawable = new Rectangle;
drawable->Draw(); // происходит вызов Rectangle::Draw
…

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

Популярные расширения Visual Studio Code

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

Code Time


Code Time — это плагин с открытым исходным кодом, который предоставляет метрики прямо в редакторе кода.

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

Имитатор чтения статей

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

Добрый день уважаемые. Хотелось бы поделиться своей историей и маленьким лайфхаком.


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


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

Читать дальше →
Всего голосов 24: ↑15 и ↓9+6
Комментарии21

Must-have плагины и несколько полезностей для С\С++ разработки в VS Code

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


Удивительно, но до сих пор на Хабре нет хорошей подборки плагинов для Visual Studio Code для тех, кто пишет на С/С++. Microsoft в своем блоге опубликовали только статью, совсем базового уровня с инструкцией по настройке. Но большинство читателей Хабра, тем более из разработчиков, обойдется без такой подробной инструкции. Есть только несколько подборок для веб-разработчиков, но не для С++.

Наверное это связано с тем, что большинство С++ разработчиков использует тяжеловесные IDE, в первую очередь конечно же Visual Studio.

Но в Linux и MacOS с полноценными IDE всё не так просто, да и тяжелая среда разработки не всегда нужна или просто не хочется ее использовать.

Я же хочу обратить ваше внимание на полезные плагины, которые облегчают жизнь и работу, а также рассказать про полезные настройки и особенности VS Code, которые вы могли просто упустить.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии22

Расширения VSCode, которые облегчат разработку на JavaScript и Vue

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

На сегодняшний день существует достаточное количество средств для разработки с поддержкой языка JavaScript и основанных на нем фреймворков. Вопрос выбора конкретного инструмента стоит вне этой статьи, тут же я постараюсь описать свой пользовательский опыт работы с Visual Studio Code и средствах, которые призваны облегчить жизнь JS разработчикам, в частности тем, кто использует Vue.


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

Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии13

Docker'изация: что нужно знать каждому .Net-разработчику

Время на прочтение6 мин
Количество просмотров22K
В век победившего DevOps разработчики просто обязаны знать про Docker контейнеры, зачем они нужны и как с ними работать. Это многократно облегчает работу. Причем всю силу контейнеризации могут почувствовать даже те, кто работает с .Net Core в среде разработки Visual Studio 2017. О доступных инструментах и настройке Docker под VS рассказал Павел Скиба, начальник отдела разработки серверных приложений, на митапе Panda-Meetup C# .Net.


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

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