Pull to refresh
0
0
Send message

Пошаговая инструкция по настройке и использованию Gitlab CI + Visual Studio для сборки приложения .NET Framework

Reading time14 min
Views55K

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


Как только кто-либо из нашей команды вносит изменения в код (читай «мерджит feature-ветку в develop»), наш билд-сервер:


  • Собирает исходный код и установщик приложения
    • проставляет номер сборки, каждый раз увеличивая последнюю цифру. Например, текущая версия нашего ПО 3.3.0.202 – часть 3.3.0 когда-то ввёл разработчик (привет, SemVer), а «202» проставляется в процессе сборки.
    • В процессе анализирует качество кода (с использованием SonarQube) – и отправляет отчёт во внутренний SonarQube,
  • Сразу после сборки запускает автотесты (xUnit) и анализирует покрытие тестами (OpenCover),

Также, в зависимости от ветки, в которую были внесены изменения, могут быть выполнены:


  • отправка сборки (вместе с changelog-ом) в один или несколько телеграм-каналов (иногда удобнее брать сборки оттуда).
  • публикация файлов в систему автообновления ПО.

Под катом о том, как мы научили Gitlab CI делать за нас бОльшую часть этой муторной работы.

Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments8

Как мы перешли на конфигурацию Microsoft.Extensions.Configuration (IOptions) и стало хорошо

Level of difficultyEasy
Reading time18 min
Views5.7K

Привет, меня зовут Андрей Рягузов, в 2ГИС я разрабатываю внутренние продукты для актуализации справочных данных на .NET.

Несколько лет назад для работы с настройками мы в команде пользовались самописным методом. Пока приложения были простыми, нас всё устраивало, однако при масштабировании начали вылезать неприятности. Так мы начали искать альтернативу.

Расскажу, почему изначально решились на нестандартный метод, с какими трудностями столкнулись и что решили улучшить, какие варианты рассматривали и какие преимущества получили от «коробочных» инструментов.

Читать далее
Total votes 22: ↑20 and ↓2+22
Comments14

Вычисление любого математического выражения в C# (.NET)

Level of difficultyMedium
Reading time4 min
Views2.4K

Для улучшения возможностей научных вычислений в C# я реализовал evaluator, способный вычислять любое математическое строковое выражение с исключительной производительностью. Он также поддерживает пользовательские переменные, операторы и функции. Библиотека .NET под названием MathEvaluator и её документация доступны на GitHub.

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

Читать далее
Total votes 6: ↑5 and ↓1+8
Comments25

Git, Gitflow и ветка develop. Продолжаем разбираться в основах программирования

Reading time5 min
Views9.5K

Привет, Хабр! В блоге beeline cloud я делюсь личным опытом разработки. Ранее рассказывал, как инжектить в статические поля, как упростить себе жизнь при написании тестов, подсвечивал особенности пагинации. А сегодня продолжу знакомить вас с Git, Gitflow и веткой develop. Если вы пропустили первую статью из цикла — рекомендую прочитать тут.

Читать далее
Total votes 14: ↑12 and ↓2+16
Comments9

5 книг, которые стоит почитать начинающему ИТ-архитектору

Reading time5 min
Views42K

Привет, Хабр! Меня зовут Александр Бардаш, я главный архитектор интеграционных платформ в МТС. Сегодня расскажу, почему ИТ-архитекторам важно хотя бы иногда всегда читать книги, и поделюсь подборкой для начинающих. Жду вас под катом и в комментариях!

Читать далее
Total votes 25: ↑19 and ↓6+19
Comments17

Заставляем работать MinIO и Postgresql вместе

Level of difficultyEasy
Reading time3 min
Views6.9K

Всем привет, в этой статье я хочу рассказать, как у меня получилось интегрировать MinIO и Postgres, а именно, что после каждой загрузки картинки в объектное хранилище у нас появляется запись в БД.

Читать далее
Total votes 9: ↑9 and ↓0+12
Comments9

Слабоумие и отвага: Разработка игры Disciples 2 на Avalonia и WPF

Level of difficultyMedium
Reading time13 min
Views10K

Здравствуй, Хабр!

Поступая в университет на программиста, я мечтал стать разработчиком игр. Но жизненный путь привёл меня в десктоп на WPF (о чём я, на самом деле, не жалею). А в пет-проекте объединились опыт десктоп-разработчика и стремление писать игры. Так родился пингвинослон Disciples II на Avalonia и WPF.

В статьей пойдёт речь о получившемся "движке", об оригинальных ресурсах игры и том, как я их адаптировал под проект.

Итак, Бетрезен умирает.

Читать далее
Total votes 52: ↑52 and ↓0+62
Comments25

Создание игр на Unity: с чего начать?

Level of difficultyEasy
Reading time14 min
Views9.9K

Создание игр на Unity: с чего начать?

Эта статья познакомит вас с основами разработки игр на Unity. Вы узнаете, как установить и настроить Unity, создать свой первый проект и реализовать простую игру. Мы рассмотрим основы работы с объектами, скриптами и физикой. В статье будет много наглядных примеров кода и пошаговых инструкций, что сделает процесс обучения простым и увлекательным. Эта статья идеально подходит для начинающих разработчиков, которые только начинают свой путь в мире Unity.

Читать подробнее
Total votes 8: ↑6 and ↓2+9
Comments9

Не изобретайте велосипед! Или наборы утилит для Vue и React приложений

Reading time3 min
Views5.2K

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

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments6

Использование кастомных шаблонов и конфигов для swagger-typescript-api

Level of difficultyMedium
Reading time8 min
Views2.8K

swagger-typescript-api - это мощный инструмент для генерации кода на основе OpenApi-контактов, о процессе работы с которым я рассказывал в предыдущей статье. Там же я упомянул, что его можно кастомизировать под нужды конкретного проекта с помощью своих шаблонов.

Именно кастомные шаблоны и бонусом, кастомная конфигурация, будут раскрыты в текущей статье. Поехали!

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments2

Анализируем HTTP трафик в Wireshark

Reading time4 min
Views11K

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

При этом, не все умеют эффективно использовать тот функционал который представляет анализатор для работы с дампами трафика.

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

Читать далее
Total votes 13: ↑13 and ↓0+15
Comments1

Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда?

Level of difficultyMedium
Reading time8 min
Views252K

Десять лет назад я писал пару статей - Как загрузить последний Office с сайта Microsoft без всякого App-V / Хабр (habr.com) и Как загрузить Microsoft Office 16 с сайта Microsoft / Хабр (habr.com), при помощи на тот момент еще мало кому известным Office Deployment Tool.

Время бежит стремительно, за Office 2016 выходит Office 2019, Office 2021, и вот сейчас подошло время для Office 2024. Что ж, посмотрим, что поменялось в плане загрузки, установки и активации продукта за десять лет.

Для начала о версиях и изданиях Microsoft Office. Чтобы не быть слишком дотошным в описании, скажу коротко самое главное, - с годами линейка Office развивается, существуют разные подписки и планы обновления, - новые функции появляются в новых версиях, для старых версий выходят исправления ошибок и заплатки к найденным уязвимостям.

Microsoft давно перешел на систему распространения продуктов семейства Office по разным, так называемым, "каналам" (channels), в зависимости от того как часто вы хотите получать нововведения и обновления.

Ключевым отличием в текущей загрузке и установке Office от того, что было актуально во времена Office 2016, является то, что вы должны определить, каким каналом распространения вы собираетесь пользоваться, - то есть с какого канала собираетесь устанвливать сам продукт. Тем, кто хотел бы подробно изучить разные каналы распространения я предложу почитать первоисточник - Обновления Office - Office release notes | Microsoft Learn. Остальным кратко резюмирую - Microsoft сейчас предпочитает всем продать подписку на Microsoft 365 (то, что ранее называлось Office 365), с регулярно обновляемыми возможностями в течении так называемой Современной политики жизненного цикла. По этой же современной политике распространяется пользовательские (коробочные, ретейл) версии Office 2021. Office 2021, например, поддерживается лишь до 13 октября 2026. А более старые версии следуют, так называемой политике фиксированного жизненного цикла, в рамках которой Office 2016 и Office 2019 поддерживаются лишь до 14 октября 2025. В целом, они не перестанут работать после, однако, перестанут обновляться. И у тех из вас, кто пользуется почтовыми сервисами на базе Microsoft Outlook.com или Office365, а возможно и пользователям Microsoft Exchange, с обновлениями выпущенными после 14 октября 2025 уже пора призадуматься об обновлении.

Читать далее об установке Office 2024
Total votes 166: ↑157 and ↓9+173
Comments256

Методы тестирования веб-API, которые должен знать каждый: чек-листы для начинающих

Level of difficultyEasy
Reading time8 min
Views17K

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

Михаил Абрамов, технический писатель платформы МТС Exolve, подготовил для начинающих специалистов чек-листы с основными правилами и процедурами тестирования.

Читать далее
Total votes 5: ↑5 and ↓0+7
Comments5

Четыре частых вопроса по SQL джуну-аналитику и три задачи на собеседовании. Часть 1

Level of difficultyEasy
Reading time8 min
Views28K

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

В статье мы обсудим четыре области вопросов, которые могут встретиться на собеседованиях по SQL. А в конце рассмотрим три задачки.

Читать далее
Total votes 18: ↑15 and ↓3+16
Comments57

Безопасность веб-приложений: анализ методов защиты от атак на уровне Backend

Level of difficultyMedium
Reading time18 min
Views6.6K

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

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

Целью данной работы является анализ и оценка методов защиты веб-приложений на уровне Backend от различных видов угроз и атак.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments2

Аутентификация для WebSocket и SSE: до сих пор нет стандарта?

Level of difficultyMedium
Reading time21 min
Views12K

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

В статье разберем особенности аутентификации применительно к протоколу WebSocket и технологии Server-Sent Events, обсудим, какие нюансы могут быть, когда клиентская часть находится в браузере, и на что еще стоит обратить внимание, чтобы избежать неочевидных проблем.

А еще заодно поговорим про уязвимость Cross-Site WebSocket Hijacking (CSWSH) и в целом посмотрим на многие вопросы через призму информационной безопасности.

Читать далее
Total votes 53: ↑53 and ↓0+53
Comments5

Защита Home Assistant

Level of difficultyMedium
Reading time6 min
Views12K

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

И все это дельные советы, ничего плохого в них нет, но хочется чего то большего.

Читать далее
Total votes 14: ↑10 and ↓4+8
Comments21

Как работает сеть в контейнерах: Docker Bridge с нуля

Level of difficultyMedium
Reading time21 min
Views45K

В этой статье мы собираемся разобраться со следующими вопросами:

* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?

* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?

* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?

* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?

* Как реализовать публикацию портов, подобную Docker?

Читать далее
Total votes 71: ↑71 and ↓0+71
Comments14

Валидация входных данных в фильтрах Minimal API .NET, просто и без затей

Level of difficultyMedium
Reading time6 min
Views4.3K

В последние год-два снова набирает силу тенденция обращать самое пристальное внимание на производительность разрабатываемых приложений. Тема на самом деле непростая, поскольку производительность не на пустом месте появляется и требует значительных временных ресурсов и квалификации специалистов. В данной статье обсуждается эффективный способ валидации данных для .NET. Если C# входит в круг ваших интересов, если ваши коллеги обсуждают за кофе Minimal API, эта статья определённо для вас.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments27

Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform

Reading time14 min
Views16K


Привет, Хабр! Меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
Читать дальше →
Total votes 30: ↑29 and ↓1+36
Comments0
1
23 ...

Information

Rating
Does not participate
Registered
Activity