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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Взгляд на Sisk, альтернативный HTTP-сервер .NET

Sisk — легковесный C# веб-фреймворк с отрытым исходным кодом для быстрой и надежной разработки, который позволяет вам полностью контролировать то, что вы хотите делать.

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

Кроме того, для разработки не требуются дополнительные пакеты .NET SDK, ведь базового пакета .NET 6 достаточно, чтобы начать разработку с помощью Sisk. Вот небольшой обзор от Khalid Abuhakmeh с примерами👇

🔗 Читать
🥱6👍5
#dotnet #csharp #tip by Milan Jovanović

Switch expressions в действии: на заметку C#-разработчику.
👍39🥱27
Мок-библиотеки, такие как Moq, NSubstitute — популярный выбор, когда дело доходит до модульного тестирования. Они позволяют создавать поддельные объекты, которые можно использовать для замены зависимостей тестируемого класса.

Но в свете последних новостей вокруг Moq, неплохо было бы разобраться с созданием собственных поддельных объектов без использования сторонних библиотек. У Steven Giesel есть примеры и трезвый взгляд на достоинства/недостатки такого подхода👇

🔗 Читать
👍62
This media is not supported in your browser
VIEW IN TELEGRAM
🔊Демонстрационный аудиоплеер, под капотом у которого реализация Blazor wrapper для Web Audio API

Web Audio API стандартизирует методы обработки и синтеза аудио в веб-приложениях. Основной парадигмой является audio routing graph, где несколько объектов AudioNode соединены вместе, чтобы определить общий рендеринг аудио.

🔗 GitHub
👍183
🔍Насколько легко «войти в айти»?

IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.

👉Пройдите наш 10-минутный опрос по ссылке.
3👍1
Базовая реализация работы с MassTransit: опыт команды Bimeister

MassTransit — open source фреймворк для .NET, который упрощает создание приложений и сервисов, использующих слабосвязанную асинхронную связь на основе сообщений для повышения доступности, надежности и масштабируемости.

Инструмент представляет собой шину сообщений, которая является абстракцией над большинством популярных брокеров сообщений (Azure Service Bus, RabbitMQ, Kafka), что позволяет разработчикам не тратить много времени на конкретную реализацию, а сосредоточиться на задачах функциональности.

🔗 Читать
👍84🔥2
#чтопроисходит

📌SpbDotNet #90

🌐 Михаил Руковишников | Фича-флаги. Практический пример реализации
🌐 Николай Пьяников | Pure.DI

📌DotNext 2022 Autumn: Architecture

🌐 Денис Цветцих | Rich Model и Anemic Model: враги или друзья
🌐 Андрей Парамонов, Антон Оникийчук | MediatR не нужен
🌐 Дмитрий Нестерук | Интересные подходы в реализации паттернов проектирования
🌐 Дмитрий Таболич | Думай как архитектор: майндшифт инженера
🌐 Андрей Цветцих | Zero-downtime deployment и базы данных

📌DotNext 2022 Autumn: Best practices

🌐 Александр Кузнецов | Введение в Microsoft SignalR
🌐 Игорь Шаталкин | Загадочный EF Core, или Как написать свое расширение
🌐 Алексей Авдеев (PVS-Studio) | Уязвимость регулярных выражений: теория и практика ReDoS-атак
🌐 Евгений Пешков | Алгоритмы троттлинга запросов
🌐 Игорь Лабутин | Что нового в .NET 7 и C# 11
🌐 Роман Неволин | Пишем приложения, которые не ломаются в продакшене
🌐 Гурий Самарин | Тестируем код, взаимодействующий с базой данных
🌐 Олег Сафонов | Пишем код, когда пишем код: source generator'ы
🌐 Анатолий Жмур | Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою
🌐 Вагиф Абилов | Распределенный трейсинг OpenTelemetry вместо логирования всего подряд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134🤩3
☝️📺 Какой сетап у вас дома/на работе (можно выбрать два варианта)?
Anonymous Poll
36%
1
13%
2
50%
3
6%
4
8%
5
2%
6
3%
Другой (напишу в комментарии)
5👍3
Начать работу с подходом Entity Framework Database First с помощью CLI достаточно просто, но еще проще использовать расширение Visual Studio EF Core Power Tools.

1️⃣ Создаем простую БД
2️⃣ Используем модуль Reverse engineer в EF Core Power Tools
3️⃣ Включаем ведение логов в окне Debug
4️⃣ Выполняем простой запрос
9👍1
Ищем копирайтера

Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.

Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).

Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.

Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.

👉Присылайте свои резюме: hello@proglib.io
4
🤔Бесполезно, но весело: вы можете получить адрес управляемого объекта или создать ссылку, не используя небезопасный код, злоупотребляя дескрипторами GC.
👍22🤔54🤩4🥱1
Top_10_Performance_Optimization_Tips_for_C#_Developers_by_Alex_Maher.pdf
787.5 KB
🔥10 советов по оптимизации производительности для C#-разработчиков

Приводим их в оригинале, чтобы не упустить мысль автора:

1. Avoid Boxing and Unboxing
2. Use StringBuilder for String Concatenation
3. Leverage C#’s Lazy Initialization
4. Optimize Loops
5. Use Async/Await for I/O Operations
6. Avoid Exceptions in Normal Program Flow
7. Prefer ValueTypes Over ReferenceTypes
8. Cache Results of Expensive Computations
9. Be Mindful of Capturing in Lambdas
10. Use the ‘in’ Keyword for Read-Only Reference Parameters

🔗 Читать (pdf-файл для тех, у кого Medium не открывается)
👍14🤔3🌚1
#холивар

🤔Что самое трудное в работе программиста? Правильно, выдумывать имена для переменных.

💬Как вы считаете, насколько важен хороший нейминг для сущностей (функций/переменных/констант/классов/модулей) в вашем коде? И есть ли у вас или в вашей команде общепринятые правила или лучшие практики, которым вы следуете при нейминге?

Если да, поделитесь опытом👇
👍13😁3👏1
Истории из трудовых будней миграции .NET

Jimmy Bogard (разработчик, архитектор, консультант, автор, блоггер, мейнтейнер open source проектов и просто хороший парень) за последний год участвовал в масштабной модернизации, переходя как с .NET 4.8 на .NET 6, так и с on-premise в Azure.

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

На практике, естественно, возникло множество мелких решений и препятствий. О них и пойдет речь в серии статей. Следите за обновлениями:

🔸Введение
🔸Разбор текущей системы по полкам
👍10🥰1
#dotnet #csharp #codemaze #матчасть

📌 Подборка за две недели на Code Maze:

🔹Предотвращение SQL-инъекций с помощью EF Core, Dapper и ADO.NET: как защитить ваши приложения.
🔹Использование нескольких фреймворков в проекте .NET: как объединить преимущества нескольких фреймворков.
🔹Как устранить ошибку HTTP 500.31 Failed to Load ASP.NET Core Runtime Error: о причинах проблемы и способах ее устранения.
🔹Как мокать IOptions в ASP.NET Core: простой подход, который сделает ваши тесты подробными и независимыми от реальных конфигураций.
🔹API Key Authentication в ASP.NET Core: имплементации популярного способа защиты эндпоинтов API.
👍111
Апгрейд и миграция с Xamarin.Forms на .NET MAUI: свежее руководство для C#-разработчика

James Montemagno, технический PM для сообщества разработчиков в Microsoft, делится опытом использования встроенного в VS 2022 .NET Upgrade Assistant для миграции проекта на .NET MAUI.

Вас ждет пошаговый разбор всех этапов: кастомные шрифты, NuGet-пакеты, Xamarin.Essentials, Xamarin Community Toolkit, изображения и многое другое.

00:00 - Intro
01:00 - Migration Considerations for Xamarin.Forms
03:00 - App & Code Walkthrough
03:50 - Install & Use .NET Upgrade Assistant
09:15 - Fixing Complication Errors (differences between Xamarin.Forms and .NET MAUI)
12:45 - Merge code into new .NET MAUI Application
19:00 - Fonts, Images, and other Resources
23:30 - Platform Specific Code & Dependency Service/Injection
28:08 - Documentation overview for Migration
29:25 - Wrap-up and final thoughts

📺 Смотреть
👍7🔥2