Как стать автором
Поиск
Написать публикацию
Обновить
108.13

C# *

Объектно-ориентированный язык программирования

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

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Уровень сложностиПростой
Время на прочтение17 мин
Количество просмотров13K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

Как сделать Unit-тестирование в .NET проще и интереснее?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров6.4K

Сегодня мы поделимся неожиданным решением, которое перевернуло наше представление о тестировании в C# проектах. Скажем только одно: мы кое-что позаимствовали у фронтендеров — и это избавило нас от проблем с тестами навсегда. Что за трюк? Читайте дальше!

Читать далее

Лента Мёбиуса, биомеханические прыжки, мягкие посадки и PD-контроллер

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.3K

Продолжаю описание внутреннего устройства шаблона 3D-игры с ходьбой по ленте Мёбиуса.

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

Идём прыгать на ленте Мёбиуса!

Тюним запросы в EF Core с помощью интерсепторов

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.8K

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

В этом случае приходится либо генерировать запросы вручную (напрямую, либо с помощью хранимых процедур), либо прибегать к дополнительной обработке сгенерированных запросов с помощью механизма интерсепторов. Рассмотрим работу этого механизма подробнее.

Читать далее

Загрузка и обработка видеофайлов посредством Minio, REST и FFmpeg

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров3.5K

Всем привет! Меня зовут Павлов Денис, я .NET backend разработчик в компании DD Planet. 

В статье расскажу о реализации загрузки и обработки видеофайлов с использованием Minio в качестве хранилища и FFmpeg для обработки видео.

Читать далее

Контур + GFS = Kanso. История развития файловой системы

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров2.7K

Привет! Я Антон, работаю в команде базовой инфраструктуры Контура и занимаюсь развитием распределенной системы хранения данных Kanso. Это наш форк GFS (Google File System). Мы развиваем Kanso уже более 15 лет, в статье я расскажу про это подробнее.

Читать далее

Нафига козе баян? (Мне не сдались такие программисты)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров59K

Я обычно не люблю затрагивать общие вопросы, но на работе недавно столкнулся с очень специфичной ситуацией, которой хочу поделиться с вами. Касается она нового человека, которого в 2024 наняли свеженьким, из колледжа.

И тут понеслась... Такого я себе даже в страшном бреду представить не мог.

Пойдём, покажу...

Что нового в .NET 9?

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

.NET 9 вышел в релиз, и значит, можно начинать переносить свои проекты на новую версию. В этой статье мы рассмотрим новые улучшения и фишки .NET: C# 13, производительность, BuildCheck, GC, LINQ, NuGet Audit и прочее.

Читать далее

Unity .NET и Mono — галопом по компонентам

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.1K

Полистал курсы от коробок навыков, мозгов гика и даже Великого Романа Сакутина и не нашел ответа на дефолтный вопрос с джуновых собеседований: "Что же такое .NET, Mono, компилятор, рантайм и прочие ругательства"...

Что же это такое...

.NET Digest #4

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

Добро пожаловать на четвёртый выпуск нашего дайджеста, посвящённого новостям и событиям в мире .NET! В этот раз набралось множество новостей, и команда PVS-Studio рада представить вам подборку самых интересных и полезных материалов. Поехали!

Читать далее

Refit в .NET: обзор библиотеки для упрощения работы с REST API

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.8K

В этом обзоре мы познакомимся с библиотекой Refit для .NET, которая значительно упрощает работу с REST API.

Refit позволяет разработать типобезопасные http клиенты с использованием интерфейсов и атрибутов, что делает код более читаемым и удобным для сопровождения.

Читать далее

Немного размышлений о домене и инфре

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров869

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

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

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

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

Итого так реализуется основное ядро чистой архитектуры. Но что дальше? 

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

Читать далее

Может ли C# догнать C?

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров11K

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

Сторону языков последних поколений будет представлять С#.

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

Читать далее

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

Разработка бота для Telegram на платформе .NET

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров7.3K

Введение

Telegram — один из самых популярных мессенджеров в мире, предлагающий такие функции, как групповые чаты, каналы, голосовые и видеозвонки, а также возможность создания ботов. В данной статье мы не будем ставить цель показать, как создать с нуля приложение a-la "Hello, World!", а изучим более сложный пример готовой реализации бота на платформе .NET с использованием современных технологий и практик разработки, локализацией, поддержкой пожертвований в Telegram Stars и т.д.

Читать далее

«Удалённо» управляем компьютером с доступом в BIOS

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров50K


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

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

Но как это сделать? Вот этим мы тут и будем заниматься…
Читать дальше →

Что не так с .NET в Yandex Cloud Functions

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров3.8K

В статье объясню специфику Яндекс Функций. Покажу свой эксперимент с запуском приложений, которые опубликованы разными способами — в том числе с использованием AOT-компиляции. А в конце — сравнение результатов и выводы.

Интересны особенности работы .NET в Yandex Cloud Functions? Добро пожаловать под кат.

Хочу разобраться

Бескультурная сказка про Dottrace

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров4.6K

Короткая зарисовка о том, почему важно осознанно писать каждую строчку кода, каждый символ. А заодно и небольшой мастер-класс по использованию dottrace и класса string одновременно.

Читать далее

Управление зависимостями с Autofac в C#

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.8K

Привет, Хабр! Сегодня у нас на повестке дня библиотека Autofac — один из самых популярных инструментов для внедрения зависимостей в C#. Разберемся, как она помогает упорядочить код и сделать проект более управляемым.

Читать далее

Третье издание книги «ASP.NET Core в действии» в правильном переводе команды DotNetRu

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

Привет, на связи лингвисты инженеры сообщества DotNetRu. 3 года назад мы рассказывали о книге «ASP.NET Core в действии». А сегодня мы рады представить третье издание этой полезной и информативной книги.

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

Читать далее

ActiveSession — новая библиотека. Общее описание

Уровень сложностиСредний
Время на прочтение35 мин
Количество просмотров2.4K

imageНу вот, я наконец-то сделал ее — первую версию библиотеки ActiveSession для ASP.NET Core. И для того, чтобы описать эту библиотеку, я написал эту статью.


Библиотека ActiveSession дает возможность, пока пользователь работает с веб-приложением в браузере, выполнять код на сервере в фоновом режиме. А результаты работы этого кода — и промежуточные, и окончательные — веб-приложение может потом получать через дополнительные запросы к серверу. Причем, этот код обрабатывает данные и выполняет операции, специфичные именно для этого конкретного экземпляра веб-приложения и работающего с ним конкретного пользователя: для разных пользователей, работающих с разными экземплярами, независимо выполняются разные, не связанные друг с другом экземпляры фоновой программы.
Если вам нужны (или просто интересны) такие возможности — читайте эту статью дальше.

Читать дальше →

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