Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🔗 Разработка сокращателя URL-адресов на .NET: мини-гайд от Milan Jovanović

Автор делится опытом проектирования простой системы сокращения ссылок и пишет её с нуля.

👉 Читать & смотреть гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍7🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🧰 Кстати, C# REPL поддерживает IntelliSense, установку NuGet-пакетов, а также ссылки на локальные проекты и сборки .NET. Отличный инструмент для экспериментов и изучения C# на Windows, Mac OS, and Linux.


dotnet tool install -g csharprepl
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍6🌚1
💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии

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

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

🔗 Читать статью
🔗 Зеркало
🥱91👍1👾1
💬 Мысли Эндрю Лока о primary constructors: 3 и 5

В предыдущей статье автор представил введение в primary constructors в C# 12. В новом материале вас ждет более глубокое погружение в тему с описанием основных достоинств и недостатков (по его мнению):

☑️ Основные подходы к использованию primary constructors
☑️ Лучшие юзкейсы primary constructors

▫️Базовая инициализация полей
▫️Инициализация в тестовом коде
▫️Dependency injection в MVC-контроллерах

☑️ Проблемные моменты, или «что не нравится»

▫️Duplicate capture
▫️Неявные поля не могут быть readonly
▫️Неявные поля изменяют макет структуры
▫️Путаница с соглашениями об именах
▫️Путаница с record
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19
💡Поддержка open telemetry в .NET становится все лучше и лучше с каждым выпуском. В .NET 8 вы можете настроить как логирование, так и метрики в конфигурации.

#dotnet
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥17👍121
👨‍🎓️ 33 лучших вуза России для будущих программистов 2024-2025

Составили список из 33-х вузов, где вы научитесь думать как программист и получите фундаментальные знания в области математики, информатики, компьютерных наук и так далее. Для удобства вузы отсортированы по среднему проходному баллу ЕГЭ: от наибольшего к наименьшему.

🔗 Читать статью
🔗 Зеркало
🥱93🤔2😁1👾1
Кстати, у EF есть возможность повторить попытку в случае сбоя соединения, и ее полезно включить для большей устойчивости.

#efcore #tip
👍51🥱6
💬 Разрабы, какую музыку вы предпочитаете слушать во время работы?

👍 — энергичная и мотивирующая музыка (рок, поп, электронная)
🔥 — спокойная и расслабляющая музыка (классическая, джаз, саундтреки)
❤️ — предпочитаю работать в тишине

#холивар
👍11792🔥70
🤔 Что делать в среду вечером C#-разрабу? Например, можно написать IoT .NET-приложение для Sipeed Lichee RV и запустить на RISC-V

До недавнего времени разрабатывать IoT приложения на C# можно было только для компьютеров, построенных на архитектуре ARM или x86.

В начале этого года был представлен неофициальный .NET 8.0 SDK, который уже сейчас вы сможете запустить на RISC-V процессоре под ОС Debian/Ubuntu.

В качестве платформы запуска автор взял одноплатный компьютер Sipeed Lichee RV на RISC-V процессоре Allwinner D1 (ядро Alibaba/T-Head Xuantie C906 RISC-V).

🟣 Часть 1: установка .NET 8.0 SDK на Sipeed Lichee RV
🟣 Часть 2: запуск приложения для работы с контактами GPIO и датчиком BME280 для замера температуры, влажности и давления
Please open Telegram to view this post
VIEW IN TELEGRAM
12😁5👍3🔥2
💸📊 На сколько просели зарплаты в ИТ в 2024 году?

Благодаря открытым данным с сайта Хабр Карьера мы узнали, какие основные тенденции ждать в зарплатном секторе, и сколько получают ИТ-специалисты сейчас.

🤔 Например, в первом полугодии 2023 года в среднем джунам предлагали 80 тысяч рублей, а спустя год это число упало до 72,5 тысячи рублей.

👉 Остальные данные — в статье
👉 Зеркало
👍6🤔5
👨‍💻 До недавнего времени в справочной документации .NET API не было обратной ссылки на исходный код, но команда .NET не дремлет, поэтому добавила ссылки, объединяющие документацию с исходниками. Под катом — история о проделанной работе.

👉 Читать
👍18🔥3
🕹 Разработку игры на Unity и Godot Game Engine

Пошаговое руководство по разработке игры Pong, с помощью которого вы углубитесь в уникальные особенности Godot, которые делают его отличным движком для разработки игр, рассмотрите преимущества использования C#, научитесь настраивать среду разработки, поймёте концепции Godot и прокачаетесь в разработке на C# + Godot. В конце вас ждет полезный список ресурсов сообщества.

☑️ Introduction To Game Development
☑️ Set up a Godot Game Development Environment
☑️ Game Design
☑️ Source Control Management with Godot
Asset Management
☑️ Godot Nodes and the Scene Tree
☑️ Adding Scripts To Your Godot Game
☑️ Godot Community Resources
👍10
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🐳✈️ Docker ушёл из РФ! Инструкция по восстановлению доступа к Docker Hub для пользователей из России

Docker заблокировал доступ к своему главному репозиторию Docker Hub для пользователей из России. Однако есть способы обойти это ограничение и продолжить работу. В этом посте мы расскажем, как настроить альтернативные репозитории и зеркала.

🔗 Читать статью
🔗 Зеркало
😁32👏103🥱3👍2
🤔 Как отменить задачу с несколькими источниками CancellationToken в C#: заметки от Steven Giesel

Представьте, что у вас есть долго выполняемая задача, которую вы хотите завершить корректно (или нет) и при этом вам нужно отслеживать сигналы отмены из нескольких источников.

Это может быть часто встречающимся кейсом в реализации BackgroundService или IHostedService, где вы хотите отслеживать событие IHostApplicationLifetime.ApplicationStopping и также какое-то другое событие/условие.


var hostToken = IHostApplicationLifetime.ApplicationStopping;

// Какой-то другой источник для отмены, передаваемый методом
var otherToken = ...;


Теперь вы хотите создать CancellationToken, который будет активирован при отмене любого из токенов. Но метод обычно принимает только один токен:


await Task.Delay(Timeout.Infinite, token); // Вы не можете передать два токена здесь


📌 Решение

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


using var linkedTokenSource = CancellationTokenSource.CreateLinkedTokenSource(hostToken, otherToken);
var linkedToken = linkedTokenSource.Token;

await Task.Delay(Timeout.Infinite, linkedToken); // Теперь вы можете передать связанный токен


Учтите, что CancellationTokenSource является IDisposable и должен быть утилизирован, когда вы закончите работать с ним.

Вы также можете отменить связанный источник токенов вручную, чтобы указать, что задача должна быть отменена. «Исходные» токены останутся неизменными, будет отменен только связанный токен.


using var t1 = new CancellationTokenSource();
using var t2 = new CancellationTokenSource();
using var t3 = CancellationTokenSource.CreateLinkedTokenSource(t1.Token, t2.Token);

t3.Cancel();

Console.WriteLine(t1.IsCancellationRequested); // False
Console.WriteLine(t2.IsCancellationRequested); // False
Console.WriteLine(t3.IsCancellationRequested); // True
👍392
Forwarded from Библиотека программиста | программирование, кодинг, разработка
💻 8 причин участвовать в хакатонах

Давно мечтали попробовать что-нибудь новое в своей жизни, но обойтись без экстремальных ощущений? Тогда хакатоны — это то, что вам нужно!

👉 Читать статью
👉 Зеркало

📌 Другие материалы по теме:

💻🚀🏰 Как мы создали ИИ-стартап на хакатоне выходного дня в Германии
🔥 12 признаков выгорания или как понять, что вам пора в отпуск
🏆 Как принять участие в хакатоне и занять призовое место. Инструкция для начинающих программистов
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
1🥰1😁1