Библиотека шарписта | 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
This media is not supported in your browser
VIEW IN TELEGRAM
Парсинг сайтов на C# с использованием Html Agility Pack или AngleSharp

Гайд по разработке просто CLI-приложения, из которого вы увидите оба инструмента в деле. CLI-приложение парсит тестовый веб-сервис Books to Scrape и выводит информацию о ценах на книги.

Читать
👍13
Разработчик из компании АльфаСтрахование делится опытом интеграции .NET Core приложений с корпоративным хранилищем секретов HashiCorp Vault

Разбор достоинств/недостатков используемого ранее решения Vault Integration 1.0 и деталей улучшенного продукта.

Читать
21🤔1
Введение в абстрактные типы Edm.Untyped и Collection(Edm.Untyped), поддерживаемые в ASP.NET Core OData 8.x

Sam Xu (Senior Software Engineer, OData, Microsoft Graph, Open API, Swagger) демонстрирует различия между typed/untyped, declared/undeclared свойствами с точки зрения схемы OData с использованием модели данных.

Читать
👍5
Реализация стратегии обратимого удаления в EF Core с использованием перехватчиков и фильтров запросов: гайд для C#-разработчиков.

Читать
👍155
Добавление фильтрации, сортировки и пагинации на страницы в REST API

В предыдущем видео Milan Jovanović показал, как создать набор эндпоинтов CRUD, и некоторые из лучших практик REST API (лучших по его мнению).

Теперь он продолжает путешествие по REST API, добавляя поддержку фильтрации, сортировки и пагинации страниц.

📺 Смотреть

#dotnet #restapi #bestpractices
👍6🔥3🥱1
Основы, особенности и реализация с нуля паттерна «Посредник» (англ. Mediator): гайд для C#-разработчика от Steven Giesel.

Читать
🥱4👍2
Если ваш метод возвращает нулевые коллекции, это может привести к потенциальным ошибкам. У Milan Jovanović есть решение.

#dotnet #csharp #tip
24👍17🥱8❤‍🔥2
Серия статей на не самые очевидные темы .NET от команды Контур продолжается. В новой части автор сравнивает между собой foreach и for.

📌Спойлер:

▪️foreach быстрее for на массивах, по крайней мере на int[]. Но unsafe-реализация for может догнать foreach.
▪️for быстрее foreach на списках, по крайней мере на List. Хотя, в .NET 7 foreach значительно ускорили. Но for он так и не догнал.
▪️Обращения к IList'у как к коллекции что с помощью for, что с помощью foreach, очень дороги на каждой итерации из-за виртуальных вызовов методов. При этом, foreach на IList'е аллоцирует объект энумератора. А ещё, foreach на IList'е деградирует на .NET 7 по сравнению с .NET 6.

Более полезные выводы, бенчмарки и многое другое увидите в статье.

#dotnet #csharp
👍17❤‍🔥22💯1
SQLite/SQL Server Compact Toolbox — Visual Studio расширение, которое добавляет несколько полезных функций для упрощения работы со встроенными базами данных: создание сценариев для таблиц и данных, импорт из файлов SQL Server и CSV и многое другое.

Установить (> 1,2 миллиона установок)

#tools
👍8
💭Как вы стали C#-разработчиком?

Расскажите, как попали в экосистему .NET? Перешли с другого языка или изучали C# с нуля?

#холивар
👍8🥱1
✍️ «Библиотека программиста» находится в поиске переводчика технических статей

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

Что значит редактирование? Просто так взять DeepL и слово в слово перевести статью не получится?
• Не получится. Как правило, 10–40% текста — «вода». Переводчик должен убрать все лишнее и оставить главное, чтобы читатель не тратил время на чтение «забавной истории из жизни моего питомца, который внес неоценимый вклад в написание данного материала».

Мы предлагаем
• Удаленку.
• Официальное трудоустройство.
• Своевременную оплату за выполненную работу.

➡️ Заполнить анкету ⬅️

Я хорошо программирую, но пишу «так себе». Что делать?
Если вы хорошо программируете, но навыки письма немного отстают, пройдите наш бесплатный курс на Степике «Статьи для IT: как объяснять и распространять значимые идеи».
👍6💯2❤‍🔥1🔥1
Если вы тестируете бэкенд на .NET, для сборки проектов используете GitHub Actions и решили внедрить Allure TestOps, этот гайд для вас.

📌Allure TestOps стоит внедрять, если вы хотите:
✔️Иметь единое место для всех отчётов о прогоне
✔️Перестать писать ручные тест-кейсы или сократить их написание до минимума
✔️Избавиться от ручной поддержки тест-кейсов
✔️Чтобы метрики собирались автоматически

Читать
7👍1
Шаблон ASP.NET Core проекта, построенный в соответствии с принципами чистой архитектуры

Цель шаблона — предоставить простой и эффективный подход к разработке корпоративных приложений, используя возможности чистой архитектуры и ASP.NET Core.

С его помощью вы можете легко создать одностраничное приложение с использованием ASP.NET Core + Angular/React, придерживаясь принципов чистой архитектуры.
👍212😁2
Полезная фича Visual Studio, о которой стоит знать.

#dotnet #tools #tip
👍40🌚5💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Просто пример научного калькулятора, разработанного с использованием .NET MAUI для Android, MacCatalyst, Tizen, Windows и iOS.

Репозиторий
👍32
💭 За последние несколько лет команда .NET в Microsoft вместе с сообществом проделали огромную работу и выпустили множество инструментов/фреймворков для упрощения и повышения эффективности разработки.

Интересно узнать ваш технический стек .NET. Используете ли вы .NET MAUI, Avalonia, ASP.NET Core, Blazor, Entity Framework, Xamarin и др.?

#холивар
🔥15👍41
Использование класса StringBuilder для эффективной замены существующей строки: полезные заметки от Khalid Abuhakmeh.

Читать
🥱19👍6
Знакомство с предварительной версией .NET 8: традиционная серия статей от Эндрю Лока перед выходом новой версии.

Следите за обновлениями👇

▫️Часть 1. Using the new configuration binder source generator
▫️Часть 2. The minimal API AOT compilation template
▫️Часть 3. Comparing WebApplication.CreateBuilder() to the new CreateSlimBuilder() method
▫️Часть 4. Exploring the new minimal API source generator
▫️Часть 5. Replacing method calls with Interceptors
▫️Часть 6. Keyed service dependency injection container support
▫️Часть 7. Form binding in minimal APIs
▫️Часть 8. Introducing the Identity API endpoints
▫️Часть 9. Rendering Blazor components to a string
▫️Часть 10. Updates to Docker images in .NET 8
▫️Часть 11. Short-circuit routing в .NET 8
▫️Часть 12. Avoiding flaky tests with TimeProvider and ITimer

#dotnet8
👍95