csharpproglib | Unsorted

Telegram-канал csharpproglib - Библиотека шарписта | C#, F#, .NET, ASP.NET

23284

Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Subscribe to a channel

Библиотека шарписта | C#, F#, .NET, ASP.NET

🌳 Основы деревьев выражений в .NET

Деревья выражений — одна из сложных тем в C#/.NET, которую необходимо понять. Они представляют код в виде древовидной структуры данных, где каждый узел является выражением (например, вызов метода, бинарная операция или константа). Они позволяют динамически создавать, исследовать и выполнять код во время выполнения.

Деревья выражений особенно полезны для создания динамического кода, анализа кода во время выполнения и для таких фреймворков, как LINQ to SQL и Entity Framework, для преобразования кода C# в SQL-запросы или других операций.

👉 Читать гайд

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

☝️ ADO .NET 🆚 Entity Framework 🆚 Dapper: показатели TechEmpower Fortunes 2023

А еще недавно разрыв между EF и Dapper составлял около 55%. Огромный толчок был сделан для сокращения данной цифры. Если кому-то интересно, вот тикет, охватывающий эту работу.

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

Привет, друзья! 👋

Мы готовим статью о распространенных ошибках в карьере программиста и хотели бы услышать ваше мнение! Поделитесь своими мыслями и опытом, и самые полезные советы мы включим в нашу статью.

Вот несколько вопросов для вас:
🤔 С какими ошибками в своей карьере программиста вы сталкивались? Как вы их преодолели?
📚 Какие советы вы бы дали начинающим разработчикам, чтобы избежать распространенных ловушек в программировании?
🖥️ Что, по вашему мнению, важно учитывать при планировании своей карьеры в IT, чтобы минимизировать сожаления в будущем?

Спасибо за ваше участие! 🚀

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🎙101-й выпуск подкаста RadioDotNet про FrozenDictionary в деталях, Aspire для тестов, локальную БЯМ и многое другое

Таймкоды:

[00:02:50] — Getting started with testing and .NET Aspire
[00:13:40] — Заглядываем под капот FrozenDictionary
[00:37:00] — Run a Large Language Model (LLM) Locally With C#
[00:52:50] — Differences Between Onion and Clean Architecture
[01:02:10] — Avoid using enums in the domain layer
[01:14:48] — Подслушано
[01:16:00] — Кратко о разном

YouTube | Другие площадки

#подкасты

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🤔 Как можно аннотировать основной конструктор атрибутом?

Ранее, если у записи/класса/структуры было несколько конструкторов, возникала проблема с десериализацией, так как необходимо было указать атрибут JsonConstructor в основном конструкторе.

Начиная с C# 12, можно использовать method attribute target для указания конструктора☝️

#dotnet #csharp #tip by Oleg Kyrylchuk

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🤖 В июне команда .NET запустила первую бета-версию библиотеки OpenAI, что позволило разработчикам интегрировать продвинутые ИИ-модели в свои приложения. Несколько дней назад представлен релиз официальной библиотеки OpenAI для .NET. Этот выпуск гарантирует плавную и надежную интеграцию для разработчиков, работающих с OpenAI и Azure OpenAI в своих .NET- приложениях.

Основные фичи:

✔️ Упрощение интеграции новых моделей OpenAI в .NET-приложения (GPT-4o, GPT-4o mini, o1-preview и o1-mini).
✔️ Полная поддержка REST API OpenAI: включает Assistants v2 и Chat Completions для гибкого взаимодействия.
✔️ Расширяемость: библиотека спроектирована с учетом возможностей расширения, что позволяет сообществу создавать дополнительные библиотеки.
✔️ Синхронные и асинхронные API: предоставляют разработчикам гибкость в использовании синхронных или асинхронных моделей.
✔️ Доступ к streaming completions через IAsyncEnumerable<T>, что открывает новые динамичные модели взаимодействия.
✔️ Совместимость с .NET Standard 2.0: библиотека написана на C# и поддерживает все версии .NET, реализующие .NET Standard 2.0.

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

📖 Обзор книги «Грокаем алгоритмы», Адитья Бхаргава

Направление: #proglib_algorithms
Уровень: #proglib_junior

Автор применяет уникальный визуальный подход, с помощью которого объясняет базовые концепции, такие как сортировка, рекурсия, алгоритм Дейкстры, и многие другие. Благодаря большому количеству иллюстраций и практическим примерам, книга превращается в практическое руководство, особенно полезное для тех, кто только начинает своё знакомство с алгоритмами. Все примеры адаптированы под Python 3, что делает их актуальными для современных разработчиков.

💬 Что говорят люди:

Читатели восхищаются доступностью книги и тем, насколько легко автор объясняет сложные темы. Визуальный стиль делает её отличным стартом для изучения алгоритмов, хотя для опытных разработчиков книга может не предложить глубоких и сложных тем.

➕ Плюсы:

- Иллюстрации всё решают — если вам сложно понять текстовое объяснение, то более 400 наглядных схем точно помогут понять сложные алгоритмы.
- Понятно даже без математики — никакой сложной терминологии и математических уравнений. Бхаргава берёт сложные темы и объясняет их простым языком, делая алгоритмы доступными даже тем, кто не любит математику​.
- Практичность на первом месте — каждый алгоритм сопровождается кодом на Python 3, что помогает сразу применять изученное в реальных задачах​.

➖ Минусы:

- Для профи маловато огонька — опытные разработчики могут почувствовать нехватку более продвинутых и глубоких тем.
- Алгоритмы, которых не хватает — некоторые читатели отмечают, что в книге хотелось бы видеть больше сложных и интересных алгоритмов.

🖊 Об авторе:

Адитья Бхаргава — опытный инженер-программист с большим стажем работы в ведущих IT-компаниях. Он известен своим умением объяснять сложные технические темы простым и понятным языком, что делает его книги популярными среди программистов любого уровня.

Скидка 25% по промокоду: proglib

Купить книгу

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

😮 SQL: от Тетриса до ИИ — неожиданные возможности языка баз данных

Долгое время SQL использовали лишь для запросов и изменения записей в базах данных — для полноценного программирования в привычном смысле слова он не подходил. Однако добавление рекурсивных общих табличных выражений (CTE) сделало SQL полным по Тьюрингу. Рекурсивные CTE состоят из двух частей:

• Нерекурсивная часть (базовый случай) — создает начальные данные.
• Рекурсивная часть — может выполняться много раз, каждый раз используя результат предыдущего шага.

Благодаря CTE на SQL можно при желании реализовать любой алгоритм. Энтузиасты уже сделали:

Визуализацию множества Мандельброта с помощью ASCII-графики.
pallada-92/sql-3d-engine">3D-движок для рисования объемных фигур.
GPT на 500 строках SQL-кода. Подробная статья о реализации этого проекта опубликована здесь.
Трассировку лучей (это метод создания реалистичных изображений).

На прошлой неделе коллекция крутых SQL-проектов пополнилась еще одной интересной разработкой — версией «Тетриса».

Эта реализация демонстрирует несколько нестандартных SQL-техник, о которых стоит знать, даже если вы используете SQL только по прямому назначению:

• игровой цикл;
• вывод игры;
• пользовательский ввод;
• решение проблемы изоляции данных;
• предотвращение кэширования.

Для управления состоянием игры и обработки игровых событий используются подзапросы и агрегатные функции.

🔗 Подробнее читайте в статье
🔗 Зеркало

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🥳 Новый формат .NET-решения .slnx теперь доступен в последней превью-версии Rider

Этот формат находится в режиме превью в Visual Studio, а теперь еще и в Rider. Кажется, с новым форматом улучшена читаемость и возможность слияния (mergeability). Выше — пример различий по сравнению с существующим форматом для простого решения.

#dotnet #csharp #tip by Dave Callan

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🛠️ TUnit — современный, гибкий и быстрый фреймворк для тестирования проектов .NET 8+ с поддержкой приложений Native AOT и Trimmed Single File.

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

👉 GitHub

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🥜🔨 Динамическое программирование: как щелкать задачки, как орешки

Готов узнать, как решать задачки, от которых плавятся мозги?


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

Также у нас есть курс как для начинающих программистов, так и для тех, кто уже шарит:
🔵 Алгоритмы и структуры данных

🔗 Ссылка на статью

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

Разработка веб-API CRUD с помощью Data API Builder и EF Core Power Tools

Data API Builder позволяет создавать веб-API CRUD на основе файла конфигурации json, с подержкой REST и GraphQL. Этот кроссплатформенный инструмент также включает CLI для создания довольно сложного файла конфигурации.

Но даже создание команд в командной строке для предоставления доступа к существующей базе данных в качестве веб-API может быть сложным и чреватым ошибками.

Благодаря возможностям EF Core Power Tools по реверсу баз данных вы можете за считанные секунды создать эти операторы командной строки и запустить API с помощью команды dab start.

Что вам необходимо?

1️⃣ Существующая база данных Azure SQL, SQL Server, Postgres или MySQL, которую вы хотите использовать в качестве CRUD-API.
2️⃣ Проект Visual Studio 2022 для хранения файлов конфигурации в системе контроля версий.
3️⃣ Установленная последняя версия EF Core Power Tools.

👉 Читать гайд

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

Привет, друзья! 👋

Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:

🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?

🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?

💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?

Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

👩‍💻 Совместное использование настроек сборки в нескольких .NET-проектах: на заметку C#-разработчику

#dotnet #csharp #tip by Dave Callan

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

Опрос «Как вы учитесь с помощью телефона: поделитесь своим опытом!»

Дорогие подписчики, мы на миссии улучшений, и вы — наш ключ! 🔑


Мы хотим стать ещё круче, и для этого нужно узнать, как вы учитесь!

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

⏳ Займёт всего 5 минут — как раз успеете за чашкой кофе! А за ваш ценный вклад мы дарим 15% скидку на все курсы https://proglib.academy/ 🎁

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

Синхронизация двух мастер-баз кажется сложной задачей? Векторные часы предлагают простое решение. Этот подход обеспечивает согласованность данных в распределенных системах, повышая надежность и эффективность вашей IT-инфраструктуры.

👉 Статья

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🐧 Тредпульное заклятие Dotnet-демонов на Linux

Все слышали о том, что иногда .NET на Linux потребляет больше ресурсов, чем на Windows. Порой эта разница практически незаметна. Но случается и такое, что одно и то же приложение потребляет на Linux в 2–3 раза больше CPU, чем на Windows.

Автор делится опытом, с которым столкнулся при миграции сервиса на Linux. Вы узнаете основные различия в примитивах синхронизации различных операционных систем и их влияние на приложение.

👉 Читать

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🍇 Подборка лучших статей «Библиотеки программиста» за сентябрь: сохраняй в заметки, чтобы не пропустить #самыйсок

🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста
🏗 3 основных шаблона событийно-ориентированной архитектуры
⚡️🔫 Секретное оружие бэкендера: 6 инструментов, о которых вы не знали
🥜🔨 Динамическое программирование: как щелкать задачки, как орешки
🎁 256-й день года: 15 подарков, которые оценит каждый программист
🛠 API-документация без головной боли: ТОП-11 инструментов

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🤔FluentValidation: прекратите проверять правила при первой ошибке

По умолчанию он проверяет все правила и объединяет сообщения об ошибках. Более эффективно устанавливать CascadeMode либо на уровне класса, либо на уровне цепочки правил, особенно при использовании MustAsync и асинхронных операций.

#dotnet #csharp #tip by Saeed Esmaeelinejad

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

⚙️ Подпишись на нашу еженедельную email-рассылку, чтобы быть в курсе последних открытий и тенденций в мире бэкенда.

В еженедельных письмах ты найдешь:
● Языки программирования и фреймворки для бэкенда
● Архитектура и проектирование серверных приложений
● Базы данных и управление данными
● Безопасность и защита данных
● Облачные технологии и DevOps
● API и интеграции
● Тестирование и отладка
● Инструменты и утилиты для бэкенд-разработчиков
● Лучшие практики и паттерны проектирования

👉Подписаться👈

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

👩‍💻 Работа с tar-файлами в .NET 8

Еще в 2022 году .NET 7 получил поддержку для работы с tar файлами в базовой библиотеке классов.

Эндрю Лок как обычно во всем разобрался и описал, как выполнять некоторые базовые операции с tar-файлами, как он обычно использую CLI-утилиту tar и как вместо этого использовать встроенную в .NET поддержку.

using System.Formats.Tar;
using System.IO.Compression;

string sourceDir = "./my-files";
string outputFile = "./myarchive.tar.gz";

using FileStream fs = new(outputFile, FileMode.CreateNew, FileAccess.Write);
using GZipStream gz = new(fs, CompressionMode.Compress, leaveOpen: true);

TarFile.CreateFromDirectory(sourceDir, gz, includeBaseDirectory: false);


👉 Читать

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

💻🔍💼 Кризис IT-рынка: как джуны и кадровый голод меняют правила игры

В условиях нехватки опытных специалистов и наплыва джунов, IT-компании вынуждены искать нестандартные подходы к найму. Рассмотрим основные тренды и стратегии адаптации рынка.

Читать статью

#почитать

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🛤👾 Приключения с F# и Godot

Godot — игровой движок, который имеет нативную поддержку .NET. К сожалению, эта поддержка до такой степени заточена под C#, что F# она выходит боком. Автор делится опытом решения возникших проблем при работе с F# + Godot:

🟠An incursion under C#. Протаскиваем F# в Godot
🟠Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 1. Встреча с фреймворком

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🔥 Класс BinaryFormatter удален из .NET 9

У вас есть два варианта решения данной проблемы:

✔️ Мигрируйте с BinaryFormatter на другие решения. В руководстве по миграции перечислены несколько кейсов.
✔️ Продолжайте использовать BinaryFormatter в .NET 9, но в данном случае вам придется полагаться на неподдерживаемый NuGet-пакет System.Runtime.Serialization.Formatters.

👉 Подробнее

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

⚡️🔫 Секретное оружие бэкендера: 6 инструментов, о которых вы не знали

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

👉 Читать по этой ссылке

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

👩‍💻👩‍💻 CSnakes — инструмент для встраивания кода и библиотек на Python в ваше .NET-приложение (без необходимости в REST, HTTP или микросервисах). Упростите свои проекты в сфере data science.

👉 Подробнее

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🔟🏩 ТОП-10 перспективных студий разработки: лучшие компании для вашего карьерного роста

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

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

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

Читать полностью…

Библиотека шарписта | C#, F#, .NET, ASP.NET

🎙Юбилейный выпуск подкаста RadioDotNet про неумолимый Performance, WebAssembly на Aspire, API под присмотром и многое другое

Таймкоды:

[00:03:00] — .NET 9 Release Candidate 1 is now available
[00:12:40] — WebAssembly Orchestrating with .NET Aspire
[00:20:25] — Performance Improvements in .NET 9
[00:49:10] — Preventing breaking changes in public APIs with PublicApiGenerator
[01:08:20] — Visual Studio 2022 17.12 Preview 2
[01:19:40] — Tales from the .NET Migration Trenches (Part 4)
[01:29:40] — Кратко о разном

YouTube | Другие площадки

#подкасты

Читать полностью…
Subscribe to a channel