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

Visual Studio *

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

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

Git — сравнение Visual Studio 2022 с MeGit/EGit и SourceTree

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

В этой статье мы сравним функциональность Git в IDE Visual Studio 2022 и в других клиентах Git с GUI. Git внутри VS2022 имеет упрощённый интерфейс по сравнению с некоторыми другими GUI-клиентами наподобие MeGit/EGit и SourceTree. Это привлекает многих разработчиков к платформе VS2022/Git, однако опытным пользователям дополнительно потребуются и другие инструменты.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии28

Отладка в C++ геометрии и топологии

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

Генерация 3д объекта - как правило, многоэтапный процесс (например в булевых операциях сначала поиск графа пересечений, нахождение геометрии кривых пересечения и построение топологии результирующего тела). Закономерно возникает сложность с его отладкой. Положим при генерации что-то пошло не так и имеем наполовину готовый объект, который не может быть визуализирован разрабатываемой CAD системой. Что делать? Как локализовать место и момент ошибки? Анализировать глазами тысячи xyz координат промежуточных результатов и вспомогательных объектов на момент выдачи исключения? Или хуже, если отклонения желаемого результата от фактического незначительные, тогда и все числа внешне будут корректны. Работая С++ программистом в области 3Д моделирования и построения различных CAD/САПР систем, я регулярно сталкивался с проблемой визуализации вспомогательных/промежуточных сущностей.               

Сформировал себе универсальный инструментарий DumpSTL, позволяющий с минимальными усилиями, в любом C++ проекте дампить в .stl файлы любые внутренние объекты в проекте.
Почему именно .stl? Так уж исторически сложилось. Много использовал чпу фрезера и 3д принтера, где основным и простейшим форматом моделей является .stl.

Суть использования сводится к однократной адаптации инструмента под структуры данных конкретного проекта, затем:
1) подключить один DumpSTL.h
2) вызвать к необходимым данным метод DUMP::save(...)
3) получить на выходе множество файлов с 3д моделями, которые можно открыть в любом 3д редакторе

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

Установка OpenSSL для проекта на С++

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

Решая в целом тривиальные задачи, приходится сталкиваться с нетривиальными проблемами, и эта история, собственно, об этом.

В кои-то веки, решив написать код для себя любимого, проработал проект, установил окружение, прописал в проекте boost и пошёл писать модули.

Ничто не предвещало беды, но в процессе написания кода было обнаружено, что модуль, который запрашивал у интернета погоду, получал вместо описанного в API json'а следующее: "400 The plain HTTP request was sent to HTTPS port". Уж чем руководствовался разработчик сайта, не перенаправивший запрос без персональных данных, не знаю, но видимо хакеры хотят украсть сведения о погоде в деревне так сильно, что спать и есть не могут.

И тут я сделал манёвр, который стоил мне 50 лет. Точнее, пары бессонных ночей, так как работать тоже надо. Ничтоже сумнящийся, подключил boost::asio::ssl, написал тестовый код, который должен был проверить что теперь есть контакт, но тут моя бровь поднялась вверх в первый раз: проект перестал собираться, потому что в системе не было OpenSSL.

Как настроить openssl и не потеряться
Всего голосов 17: ↑9 и ↓8+5
Комментарии29

Истории

DIY VSCode плагин для Clojure

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

На энном году работы с использованием Clojure/Clojurescript в качестве основных языков разработки, я наконец-то дошел до стадии, когда «больше терперть уже нельзя», и написал таки свой плагин для этой цели. Это явилось результатом многолетних поисков, лишений и страданий. Как говаривал Мичурин: мы не можем ждать милостей от природы, взять их у нее – наша задача. Интересующихся прошу под кат.

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

Использование procmon от sysinternals для диагностики проблемных мест в исполняемом коде

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

Сразу хочу сказать, что это только демонстрация возможностей procmon для определения проблемных мест в программном обеспечении. 1С83 была выбрана для опытов из-за неочевидности способа поиска точки входа в процедуру проверки наличия установленных эмуляторов ключа. Она выполняется через различное время после старта порядка 3~10 мин, и вызывает появление окна «нарушение целостности системы» с последующим закрытием приложения. Я призываю всех использовать только лицензионное программное обеспечение. Рассматривать эту статью, как описание возможности взлома, нет смысла. Хотя бы потому, что 1С83 давно взломана и без меня. Любой 1с-ник за секунду вам скажет, как ее запустить без ключа.

Если кто не в курсе procmon от sysinternals умеет ставить перехватчик на системные события работы процессов с файлами и регистром виндуза. И хотя любой процесс плодит гигантское количество обращений к файлам и регистру при старте, да и в процессе работы тоже, использование фильтров и поиска по событиям упрощает нахождение нужного. Интересной особенностью procmon является сохранение стека вызовов у каждого события. Таким образом можно проследить какие модули и в каком месте породили то или иное событие.

Итак, ставим фильтр по имени процесса 1с.

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

VS Code portable,  делаем настоящую переносную сборку для Windows

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

Я не так давно начал изучать Python, и решил,  что мне необходима портативная сборка.  Причин для этого несколько, но статья не об этом. Если вам такое не нужно, дальше можно не читать. Во время поисков решения этой задачи часто сталкивался с вопросами людей по этой теме, но однозначного решения так и не нашел, но ответы некоторых пользователей натолкнули на верное решение. Почему VS Code? Ну, просто у них есть версия “portable”, так она гордо называется на сайте, но скачав ее, возникает вопрос, а как к тебе приделать Python?

 Сразу оговорюсь, целью было сделать полноценно переносную версию из связки Python + среда разработки + Git (для изучения).  В статье все расписал максимально подробно, так же на github закину файлы со всеми изменениями, и вам останется только создать структуру каталогов как у меня. Если хотите все разложить по своему- читайте-исправляйте,  по аналогии думаю не сложно будет сделать под себя.

Читать далее
Всего голосов 7: ↑2 и ↓5-3
Комментарии4

Улучшение Visual Studio Code для новичков

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

VSCode — самый популярный редактор кода среди веб-разработчиков. Вы можете использовать его с нуля, однако со временем его базовых функций станет недостаточно. Рассказываю, как сам докрутил этот редактор под свои потребности.

Читать далее
Всего голосов 18: ↑11 и ↓7+11
Комментарии29

Представляем .NET 7 Preview 1

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

Мы рады объявить об очередной вехе в истории .NET. Отмечая 20-летие технологии, .NET 7 Preview 1 знаменует собой первый шаг вперед к следующим 20 годам .NET.

ASP.NET Core Preview 1 и EF7 Preview 1 также были выпущены.

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

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

Visual Studio 2022 стильно и свежо. История о её поддержке в PVS-Studio

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

Кажется, анонс Visual Studio 2022 был только недавно, и вот она уже вышла. Это означало ровно одно – поддержать данную IDE нужно в ближайшем релизе PVS-Studio. О том, с какими сложностями пришлось столкнуться, а что прошло без проблем, мы сегодня и поговорим.

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

20 лет .NET

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

Сегодня исполняется 20 лет с тех пор, как Visual Studio .NET была запущена, и первая версия платформы .NET была выпущена для всего мира. Мы празднуем весь месяц и приглашаем вас прийти на специальную праздничную трансляцию, которая состоится сегодня, 14 февраля, в 20:00 по московскому времени на сайте www.dot.net. Делитесь своими историями в Твиттере с хэштегом #dotNETLovesMe, расскажите о своих проектах или скачайте что-нибудь.

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

Диапазоны (Ranges) в C# 8

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

Всем привет. Продолжаю цикл статей про нововведения в C# 8 версии. Ранее уже вышло статья про работу с индексами.

Сейчас же поговорим про диапазоны (Ranges). Забегая вперед, скажу, что теперь мы, C# разработчики, можем получать из коллекции непрерывный кусок элементов очень простым и понятным синтаксисом. Очень похоже это все на срезы как в Python.

Пристегнитесь. Начинаем😎

Погнали
Всего голосов 10: ↑8 и ↓2+7
Комментарии19

Твикаем VS Code: убираем визуальный шум, доводим до совершенства

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

Как при помощи небольших твиков можно улучшить интерфейс VS Code, убрав ненужные визуальные элементы интерфейса.

Читать далее
Всего голосов 30: ↑17 и ↓13+8
Комментарии17

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

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

Индексы (Indices) в C# 8

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

Всем привет. Начиная с этой статьи начинаю цикл статей про нововведения в C# 8 версии.

Сейчас мы рассмотрим работу с индексами (Indexes). Забегая вперед, скажу, что теперь мы, C# разработчики, можем работать с индексами как в Python.

Пристегнитесь. Начинаем?

Погнали
Всего голосов 7: ↑7 и ↓0+7
Комментарии32

PVS-Studio для Visual Studio 2022

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

Команда PVS-Studio пишет много статей на разные интересные темы. Но вот вопросы взаимодействия с самим анализатором затрагиваются редко. Исправим этот недочёт обзорной статьёй, описывающей плагин PVS-Studio для среды Visual Studio 2022.

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

Инструменты тестирования для .NET и кроссплатформенных приложений

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

В повседневные инструменты тестирования добавлено несколько новых полезных функций, которые, я надеюсь, улучшат ваш внутренний цикл тестирования. Чтобы узнать больше об этих новых функциях, смотрите подробности в видеоролике «Советы и рекомендации по Visual Studio» в разделе «Тестирование». Ну или можете продолжить читать эту статью!

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

PascalABC.NET, повторная проверка

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

Приветствуем всех любителей чистого кода. Сегодня у нас на разборе проект PascalABC.NET. Ранее мы уже искали ошибки в этом проекте при помощи сразу двух инструментов статического анализа, а именно плагинов для SonarQube: SonarC# и PVS-Studio. Этому была посвящена статья в далёком 2017 году. В этот раз мы решили ограничиться только C# анализатором PVS-Studio последней актуальной версии и посмотреть, какие новые ошибки можно найти в PascalABC.NET сегодня. Тем более что за это время наш анализатор стал гораздо более продвинутым и обзавелся новыми возможностями поиска ошибок и потенциальных уязвимостей в коде.


0912_PascalABCNET_2_ru/image1.png

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

Представляем Q# Formatter

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

За последние несколько лет, по мере развития Q#, его синтаксис развивался вместе с ним. Было внесено несколько изменений в синтаксис, которые привели к устареванию способов выполнения стандартных действий в Q#, таких как удаление круглых скобок вокруг условий цикла for. Чтобы помочь нашим пользователям обновлять свой код с помощью новейшего синтаксиса, мы добавили в QDK несколько новых функций.

Когда вы используете расширения Q# для Visual Studio или Visual Studio Code для редактирования кода Q# с устаревшим синтаксисом, рассматриваемый код будет подчеркнут зелеными волнистыми линиями, и будут доступны предложения для обновления синтаксиса. В прошлом у нас уже были предложения по обновлению каждого устаревшего фрагмента кода. В выпуске 0.21 мы добавили действие кода для обновления всего устаревшего синтаксиса в файле:

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

Представляем .NET MAUI Preview 12

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

Сегодня мы выпускаем 12 превью-версию .NET Multi-platform App UI со многими улучшениями качества и некоторыми новыми возможностями. По мере того, как мы приближаемся к выпуску нашей первой стабильной версии, баланс работы начинает смещаться в сторону улучшения качества и стабильности, хотя есть еще и несколько интересных нововведений, на которые стоит обратить внимание, в том числе:

Новая документация по значкам приложений, жизненному циклу приложений, кистям, элементам управления и Single Project; Обработчик FlyoutView реализован на Android; Добавлены обработчики совместимости для RelativeLayout и AbsoluteLayout; Добавлено свойство Z Index; Унификация .NET 6 — типы iOS; Расширенная панель инструментов Windows — без оболочки.

В этом выпуске также представлено крутое усовершенствование Shell. Давайте более подробно рассмотрим Shell в Preview 12.

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

Как я делал user-control на WPF (VS2019, c#)

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

Всех приветствую, решил выложить свой первый пост на Хабре, не судите строго - вдруг кому-нибудь да пригодится =)

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

Задача: сделать контрол кнопки (WPF): круглая, с возможностью использования в качестве иконки объекта Path, с возможностью использовать свойство IsChecked, и сменой цветовых схем при наведении/нажатии.

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

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