Если вы фанат такой нелепой программы как Paint net, где отсутствуют бинды на горячие клавиши и прочие удобства современных редакторов, то эта статья для вас! Здесь вы узнаете как бесплатно создавать плагины с помощью CodeLab на языке C# и подготовить их к релизу.
C# *
Объектно-ориентированный язык программирования
Новости
Как одна строка может положить приложение? Поиск проблем и уязвимостей в ScreenToGif
ScreenToGif — полезное приложение, позволяющее сделать из записи экрана или веб-камеры gif-файл, который можно удобно отредактировать во встроенном редакторе. В этой статье мы рассмотрим интересные проблемные места в исходном коде проекта и расскажем, как одна маленькая ошибка может нарушить работу всей программы.
Непрямой контроль за изменениями в производительности приложения через генерируемый SQL и его характеристики
Привет, Хабр! В настоящее время используются не только SQL решения для работы с данными, тем не менее, на долю SQL приходится значительная часть систем. Также нередко бывает, что приложение генерирует SQL в зависимости от действий пользователя, например, при выборе полей или применении фильтров в отчетах, иными словами, есть динамический SQL, а не статический. Также часто для приложения есть тесты, например, соответствующие типичным активностям пользователей, и каждой активности соответствует один или несколько SQL, причем в тестах проверяется именно правильность результатов выполнения SQL.
Далее, для относительно сложных вариантов генерации SQL при изменениях бизнес-логики (или других изменениях) может измениться и сам динамически генерируемый SQL, причем результаты выполнения SQL могут остаться неизменными, однако производительность поменяется. В таких случаях изменения в производительности можно уловить при помощи бенчмарков, однако прогон бенчмарков может занимать значительное время, в связи с этим актуальна задача быстрого анализа изменений в производительности динамически генерируемого SQL. Интересны особенности анализа производительности приложения на основе SQL — добро пожаловать под кат :)
Task изнутри: управление потоками в .NET и создание своих планировщиков
Привет, Хабр! Сегодня поговорим о том, как работают задачи в .NET, зачем может понадобиться собственный TaskScheduler
и как его реализовать.
Истории
Интеграционные тесты для ASP.NET Core
Интеграционные тесты, написанные программистом — это отличный способ обеспечить уверенность в своём веб-сервисе.
В мире .NET для разработки веб-сервисов обычно используют ASP.NET Core, но интеграционное тестирование часто упускают из виду либо делают не очень качественно.
Статья покажет полноценный подход к организации интеграционных тестов на языке Gherkin для API-сервиса, написанного на C# 12 с ASP.NET Core 8 и использующего PostgreSQL.
Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году
Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.
Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.
Как сделать Unit-тестирование в .NET проще и интереснее?
Сегодня мы поделимся неожиданным решением, которое перевернуло наше представление о тестировании в C# проектах. Скажем только одно: мы кое-что позаимствовали у фронтендеров — и это избавило нас от проблем с тестами навсегда. Что за трюк? Читайте дальше!
Лента Мёбиуса, биомеханические прыжки, мягкие посадки и PD-контроллер
Продолжаю описание внутреннего устройства шаблона 3D-игры с ходьбой по ленте Мёбиуса.
В прошлой статье рассмотрена генерация самой ленты Мёбиуса и расчет вектора локальной гравитации. Если есть гравитация, значит, есть прыжки и падения. Их и рассмотрим.
Тюним запросы в EF Core с помощью интерсепторов
Entity Framework обладает достаточно богатым встроенным языком запросов, позволяющим решать широкий спектр задач. Но бывают ситуации, когда либо сгенерированные с его помощью запросы оказываются недостаточно оптимальными, либо возможности EF покрывают не весь спектр функционала базы.
В этом случае приходится либо генерировать запросы вручную (напрямую, либо с помощью хранимых процедур), либо прибегать к дополнительной обработке сгенерированных запросов с помощью механизма интерсепторов. Рассмотрим работу этого механизма подробнее.
Загрузка и обработка видеофайлов посредством Minio, REST и FFmpeg
Всем привет! Меня зовут Павлов Денис, я .NET backend разработчик в компании DD Planet.
В статье расскажу о реализации загрузки и обработки видеофайлов с использованием Minio в качестве хранилища и FFmpeg для обработки видео.
Контур + GFS = Kanso. История развития файловой системы
Привет! Я Антон, работаю в команде базовой инфраструктуры Контура и занимаюсь развитием распределенной системы хранения данных Kanso. Это наш форк GFS (Google File System). Мы развиваем Kanso уже более 15 лет, в статье я расскажу про это подробнее.
Нафига козе баян? (Мне не сдались такие программисты)
Я обычно не люблю затрагивать общие вопросы, но на работе недавно столкнулся с очень специфичной ситуацией, которой хочу поделиться с вами. Касается она нового человека, которого в 2024 наняли свеженьким, из колледжа.
И тут понеслась... Такого я себе даже в страшном бреду представить не мог.
Что нового в .NET 9?
.NET 9 вышел в релиз, и значит, можно начинать переносить свои проекты на новую версию. В этой статье мы рассмотрим новые улучшения и фишки .NET: C# 13, производительность, BuildCheck, GC, LINQ, NuGet Audit и прочее.
Ближайшие события
Unity .NET и Mono — галопом по компонентам
Полистал курсы от коробок навыков, мозгов гика и даже Великого Романа Сакутина и не нашел ответа на дефолтный вопрос с джуновых собеседований: "Что же такое .NET, Mono, компилятор, рантайм и прочие ругательства"...
.NET Digest #4
Добро пожаловать на четвёртый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз набралось множество новостей, и команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали!
Refit в .NET: обзор библиотеки для упрощения работы с REST API
В этом обзоре мы познакомимся с библиотекой Refit для .NET, которая значительно упрощает работу с REST API.
Refit позволяет разработать типобезопасные http клиенты с использованием интерфейсов и атрибутов, что делает код более читаемым и удобным для сопровождения.
Немного размышлений о домене и инфре
Предположим, вам надо написать десктопное приложение, где будет свое состояние с набором коллекций и других свойств. Объекты для отображения могут храниться древовидно, содержать различные свойства со своей логикой и.т.д.
Для быстрой реализации этого, надо, как минимум, создать 3 проекта: проект с формочками, проект с доменное логикой, там, где будут манипуляции с объектами: вставкой, удалением и.т.д. И проест с инфраструктурой: работой с бд, файловой системой и.т.д.
Зависимости проектов будут такими: проекты с формочками и инфрой с бд будут зависеть от проекта с доменными моделями, там, где основное поведение и бизнес логика приложения.
Формочки используют интерфейсы с методами из доменного проекта, а инфра реализует доменные интерфейса для доступа к данным, работе с фалами и другие взаимодействия, которые не важны в бизнес логике.
Итого так реализуется основное ядро чистой архитектуры. Но что дальше?
Дальше встает вопрос: можно ли использовать доменные объекты в представлении? Много кто считает нет. И у этого есть свои обоснования, например, использование атрибутов в моделях представлений.
Может ли C# догнать C?
Современное сообщество программистов разбито на два лагеря - на тех, кто любит языки программирования с управляемой памятью, и тех кто их не любит. Два лагеря яро спорят друг с другом, ломая копья по поводу преимуществ в каком-то из аспектов программирования. Языки с неуправляемой памятью представляются как более быстрые, управляемые, контролируемые. А языки с управляемой памятью считаются более удобными в разработке, в то время как их отставание по скорости выполнения и потребляемой памяти считается несущественным. В этой статье мы проверим, так ли это на самом деле. Со стороны олдскульных языков программирования выступит мастодонт мира разработки - С.
Сторону языков последних поколений будет представлять С#.
Статья носит ознакомительный характер и не претендует на комплексное сравнение. Полноценного тестирования проведено не будет, но будут приведены тесты, которые сможет повторить любой разработчик на своем компьютере.
Разработка бота для Telegram на платформе .NET
Введение
Telegram — один из самых популярных мессенджеров в мире, предлагающий такие функции, как групповые чаты, каналы, голосовые и видеозвонки, а также возможность создания ботов. В данной статье мы не будем ставить цель показать, как создать с нуля приложение a-la "Hello, World!", а изучим более сложный пример готовой реализации бота на платформе .NET с использованием современных технологий и практик разработки, локализацией, поддержкой пожертвований в Telegram Stars и т.д.
«Удалённо» управляем компьютером с доступом в BIOS
Итак, о чём это? Сейчас для удалённого управления компьютером есть великое множество программ на любой цвет, вкус и запах. Но что, если мы хотим пойти немного дальше, и наши требования к удалённому управлению становятся немного жёстче:
- Мы хотим иметь возможность не только работать в операционной системе, но и заходить в биос, или вообще эту систему переустановить.
- По тем или иным причинам, компьютер не может быть подключён к сети, но управлять им мы от этого меньше не хотим, а рядом у нас есть компьютер, который в сети находиться может.
Но как это сделать? Вот этим мы тут и будем заниматься…
Вклад авторов
sidristij 1681.2SergVasiliev 1163.0olegchir 1001.8n0mo 667.0sahsAGU 656.0marshinov 654.6tguev 652.6kekekeks 623.4DreamWalker 566.0Stefanio 557.2