Please open Telegram to view this post
VIEW IN TELEGRAM
😁50
🧑💻 How to: как упаковать и опубликовать библиотеку с помощью GitHub Actions
Если вы пишете кроссплатформенные библиотеки на .NET MAUI и хотите настроить CI/CD без боли — это то, что вам нужно.
Microsoft в своём блоге дали подробный пошаговый пример, как всё это настроить.
Кратко, что вы получите:
✅ Cборка библиотеки и упаковка в NuGet-пакет
✅ Автоматическая генерация версий
✅ Публикация пакета на NuGet прямо из GitHub Actions
✅ Всё в одном YAML-файле
➡️ Оригинальный гайд
🐸 Библиотека шарписта #буст
Если вы пишете кроссплатформенные библиотеки на .NET MAUI и хотите настроить CI/CD без боли — это то, что вам нужно.
Microsoft в своём блоге дали подробный пошаговый пример, как всё это настроить.
Кратко, что вы получите:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Если вы когда-либо пытались внедрить .NET Identity в реальном проекте, скорее всего, в какой-то момент хотели всё выбросить и переписать вручную. Ошибки, магия, дублирующиеся слои абстракций — создаётся ощущение, будто Microsoft намеренно сделала систему сложной. Но действительно ли всё так плохо?
⚠️ Боль разработчиков
• Создаётся впечатление, что каждая операция в Identity прячется в отдельном сервисе, интерфейсе, конструкторе, и всё это трудно дебажить или изменить без побочного эффекта.
• Хочется добавить поле «роль по умолчанию»? Придётся лезть в UserStore, ClaimsPrincipal, кастомизировать SignInManager, и всё это — чтобы в итоге наткнуться на какое-нибудь исключение в рантайме.
• Информации много, но она либо слишком базовая, либо устаревшая. Найти последовательный, жизненный путь от «у меня есть пользователь» до «работающая авторизация и кастомные роли» — задача не для слабонервных.
• Всё как будто работает «само», пока не надо изменить стандартный пайплайн. А как только вы влезаете внутрь — начинается танец с отладчиком.
💡 Почему всё-таки используют Identity
• Это из коробки. Не нужно писать свою систему безопасности (что, к слову, тоже не лучшая идея, если вы не эксперт в этой области).
• Она глубоко интегрирована с ASP.NET Core — пайплайны, мидлвары, авторизация через policy и claims.
• Есть возможность настроить под корпоративные сценарии: многофакторная авторизация, внешние логины, JWT, и всё это — пусть и криво, но реализуемо.
🔁 Есть ли альтернатива
• Сторонние провайдеры (Auth0, Azure AD B2C): проще, но вы зависите от внешнего сервиса.
• Собственные реализации: подойдёт, если требования простые, но нужна аккуратность в вопросах безопасности.
• Обёртки над Identity: некоторые компании и команды создают свои слои поверх Identity, скрывая его сложности и предоставляя более удобный API.
💬 Вы пробовали настраивать Identity с нуля? С какими проблемами столкнулись? Делитесь своим опытом и мнением в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9😁1
🛠 Набор разработчика без браузера
DevToys — это оффлайн десктопное приложение, объединяющее десятки полезных инструментов в одном месте.
➖ Что умеет
• Конвертировать JSON в YAML в XML и наоборот
• Хэшировать строки
• Декодировать/кодировать Base64, URL
• Форматировать SQL, CSS, JS
• Генерировать GUID, Lorem Ipsum
• Проверять регулярные выражения
Не веб-сервис, а локальный инструмент, который просто делает своё дело.
➡️ Попробовать DevToys
🐸 Библиотека шарписта #буст
DevToys — это оффлайн десктопное приложение, объединяющее десятки полезных инструментов в одном месте.
• Конвертировать JSON в YAML в XML и наоборот
• Хэшировать строки
• Декодировать/кодировать Base64, URL
• Форматировать SQL, CSS, JS
• Генерировать GUID, Lorem Ipsum
• Проверять регулярные выражения
Не веб-сервис, а локальный инструмент, который просто делает своё дело.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25
Ранее Redis перешёл на более ограничительные лицензии, такие как SSPL, чтобы защититься от использования их кода крупными облачными провайдерами без должной компенсации.
Цели были достигнуты — AWS и Google теперь поддерживают собственные форки Redis. Но лицензия SSPL не признана OSI как Open Source, что вызвало критику и отток пользователей.
С возвращением Сальваторе Санфилиппо, создателя Redis, в ноябре 2024 года, начались обсуждения о возвращении к более открытой модели лицензирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍34❤4🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23
Что подготовила вам грядущая рабочая неделя? Помимо трёх рабочих дней есть ещё предсказание, которое ждёт вас под спойлером!
Выбирайте свой мем и делитесь своим предсказанием в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12
Самое интересное, что произошло за последние семь дней.
Благодаря возвращению основателя Сальваторе Санфилиппо, Redis вернулся к открытой лицензии.
Команда .NET успешно модернизировала систему сборки своего фреймворка, применив ИИ для автоматического преобразования около 300 проектов из кастомных файлов в MSBuild.
В релизе Wolverine 3.13 представлено множество улучшений, включая поддержку HTTP-форм с атрибутом [AsParameters], а также добавлены улучшения для работы с F#, Pulsar и Kafka.
Денежные призы самым смешным новостям
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Библиотека задач по C# | тесты, код, задания
Что выведет код?
Anonymous Quiz
12%
Исключение
40%
deadlock
43%
Слово "test"
5%
"test" бесконечное число раз
🥱27👍5🤔4🤩3😢2
🔥 Конкурс: 30 000 ₽ за самую смешную IT-новость
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Напоминаем о конкурсе «Библиотеки программиста»: напишите самую смешную версию реальной новости про технологии.
👾 Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переписываете ее так, чтобы смеялись все.
3. Получаете деньги и славу.
🎁 Призы:
- 1 место: 30 000 ₽ + статус ведущего нового юмористического IT-канала
- 2 и 3 место: по 5 000 ₽ + вечный почет в IT-сообществе
🏆 Как будем оценивать:
Мы выложим новости всех участников в одном из наших телеграм-каналов. Те новости, которые наберут больше всего охвата, войдут в шорт-лист. Из шорт-листа подписчики и жюри выберут победителя.
📅 Сроки: прием новостей до 11 мая включительно
Для участия отправьте свою смешную новость в гугл-форму: https://forms.gle/6YShjgfiycfJ53LX8
Осталась неделя — ждем ваших новостей!
Google Docs
Конкурс на самую смешную IT-новость
Библиотека программиста запускает конкурс, который взорвет вашу ленту: создайте самую смешную альтернативную версию реальной IT-новости!
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…
Правила просты:
1. Берете настоящую новость из мира технологий.
2. Переворачиваете её с ног на голову, чтобы смеялись…
🤔4😁1
.NET Xamarin/MAUI Mobile Developer — Гибрид (Санкт-Петербург)
С#-разработчик — Гибрид (Москва)
C# Разработчик — Офис (Москва)
C# F# Developer Junior — от 80 000, Удалённо
Бустер — Удалённо (весь мир)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍1🥱1
🛠 How to: как соблюдать принцип DRY
DRY (Don’t Repeat Yourself) — принцип, согласно которому каждый фрагмент знания должен существовать в системе только в одном месте. Никакого копипаста и дублирующей логики.
Проблема: дублирование валидации
При изменении правила — нужно помнить обновить его везде. Ловушка копипаста.
Решение: вынос логики в общее правило
Теперь в коде
Альтернатива: использование FluentValidation или DataAnnotations
Где чаще всего нарушают DRY в .NET:
• Повторяющиеся SQL-запросы и фильтры
• Повторение одинаковых exception'ов, логов, сообщений
• Дублирование конфигурации
• UI-формы и компоненты
🐸 Библиотека шарписта #буст
DRY (Don’t Repeat Yourself) — принцип, согласно которому каждый фрагмент знания должен существовать в системе только в одном месте. Никакого копипаста и дублирующей логики.
Проблема: дублирование валидации
// Пример плохого кода
if (user.Age < 18)
throw new Exception("User must be at least 18");
...
if (user.Age < 18)
return BadRequest("User must be at least 18");
При изменении правила — нужно помнить обновить его везде. Ловушка копипаста.
Решение: вынос логики в общее правило
public static class ValidationRules
{
public static bool IsAdult(User user) => user.Age >= 18;
}
Теперь в коде
if (!ValidationRules.IsAdult(user))
throw new Exception("User must be at least 18");
// И в другом месте:
if (!ValidationRules.IsAdult(user))
return BadRequest("User must be at least 18");
Альтернатива: использование FluentValidation или DataAnnotations
public class User
{
[Range(18, int.MaxValue, ErrorMessage = "User must be at least 18")]
public int Age { get; set; }
}
Где чаще всего нарушают DRY в .NET:
• Повторяющиеся SQL-запросы и фильтры
• Повторение одинаковых exception'ов, логов, сообщений
• Дублирование конфигурации
• UI-формы и компоненты
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1😢1👾1
🧱 7 архитектурных паттернов, которые должен знать каждый программист
В быстро меняющемся мире разработки от программиста всё чаще требуется не просто писать код, а понимать, как правильно проектировать системы.
Архитектурные паттерны — это фундаментальные подходы, помогающие создавать масштабируемые, устойчивые и поддерживаемые решения.
В статье собрали и разобрали 7 архитектурных паттернов, которые сегодня стоит знать каждому разработчику — будь то разработка микросервисов, проектирование API или работа с распределёнными транзакциями.
➡️ Узнать паттерны
🐸 Библиотека шарписта #буст
В быстро меняющемся мире разработки от программиста всё чаще требуется не просто писать код, а понимать, как правильно проектировать системы.
Архитектурные паттерны — это фундаментальные подходы, помогающие создавать масштабируемые, устойчивые и поддерживаемые решения.
В статье собрали и разобрали 7 архитектурных паттернов, которые сегодня стоит знать каждому разработчику — будь то разработка микросервисов, проектирование API или работа с распределёнными транзакциями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥱3❤1🥰1
💻 Команда дня: сборка, которой не нужен .NET
Сегодня покажем команду, которая используется для публикации .NET-приложения, готового к развертыванию на целевой платформе (в данном случае — Linux x64):
Расшифровка параметров
•
Основная команда .NET CLI, предназначенная для компиляции приложения и подготовки всех необходимых файлов для его запуска.
•
Указывает конфигурацию сборки. В данном случае Release означает, что будет использована конфигурация для продакшн-сборки, в отличие от Debug, где остаются отладочные символы и меньше оптимизаций.
•
Указывает целевую платформу. Здесь linux-x64 означает, что публикуемое приложение будет запускаться на 64-битной Linux-системе.
•
Делает сборку самодостаточной: весь .NET Runtime и все зависимости включаются в сборку.
Это позволяет запускать приложение на машине без установленного .NET.
Это похоже на то, как если бы вы не просто упаковали ваш код, а положили его вместе с собственной версией операционной системы. Он будет работать «в вакууме», не завися от того, что есть на машине пользователя.
🐸 Библиотека шарписта #буст
Сегодня покажем команду, которая используется для публикации .NET-приложения, готового к развертыванию на целевой платформе (в данном случае — Linux x64):
dotnet publish -c Release -r linux-x64 --self-contained true
Расшифровка параметров
•
dotnet publish
Основная команда .NET CLI, предназначенная для компиляции приложения и подготовки всех необходимых файлов для его запуска.
•
-c Release
Указывает конфигурацию сборки. В данном случае Release означает, что будет использована конфигурация для продакшн-сборки, в отличие от Debug, где остаются отладочные символы и меньше оптимизаций.
•
-r linux-x64
Указывает целевую платформу. Здесь linux-x64 означает, что публикуемое приложение будет запускаться на 64-битной Linux-системе.
•
--self-contained true
Делает сборку самодостаточной: весь .NET Runtime и все зависимости включаются в сборку.
Это позволяет запускать приложение на машине без установленного .NET.
Это похоже на то, как если бы вы не просто упаковали ваш код, а положили его вместе с собственной версией операционной системы. Он будет работать «в вакууме», не завися от того, что есть на машине пользователя.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🥱13🔥1🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
💯31😢8😁2❤1👾1