Библиотека шарписта | 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
Ловите записи докладов с 91-й встречи SpbDotNet:

🌐Станислав Сидристый (известный .NET-разработчик, автор онлайн-книги .NET Platform Architecture): «Реактивная сборка огромного проекта»

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

• В итоге удалось ускорить сборку с 400 машиноминут (20 агентов, 20 минут) до диапазона (30 сек, 1 мин 30 сек) в зависимости от количества изменений. Через что пришлось пройти, все неудачные варианты и результат — в докладе.

🌐Евгений Пешков (ранее разрабатывал JetBrains Rider, занимался инфраструктурой в Контуре): «Убийцы производительности»

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

• Увы, некоторые подобные проблемы кочуют из библиотеки в библиотеку, и из проекта в проект. В докладе Евгений показывает примеры таких проблем и рассказывает, как их избежать.

#чтопроисходит
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍8
Каким терминалом/интерпретатором командной строки пользуетесь? Пользователи Windows, поделитесь опытом👇
Anonymous Poll
38%
CMD
35%
PowerShell
28%
Windows Terminal
20%
Всеми — в зависимости от задачи
3%
Другим (напишу в комментариях)
7%
Посмотреть результаты
3
📈Каким бы противоречивым ни был индекс TIOBE, который отслеживает показатель популярности языков программирования, но согласно ему C# потихоньку обгоняет Java.

«Разрыв между C# и Java никогда не был таким маленьким», — говорится в последнем выпуске. «В настоящее время разница составляет всего 1,2 процента, и если тенденция сохранится, C# превзойдёт Java примерно через 2 месяца».

📌Почему этим данным можно верить?

💬Снижение популярности Java может быть вызвано решением Oracle ввести модель платного лицензирования после Java 8 и ростом популярности Kotlin. .NET/C# в свою очередь повернулся в сторону открытого исходного кода и сообщества.
👍4311👏3
😎Михаил Жмайло, пентестер в команде МТС RED, делится опытом выполнения полезной нагрузки (payload) в памяти и показывает, насколько жизнь атакующих становится проще.

C# и System.Reflection.Assembly
C# и MemoryStream()
C#, память и неуправляемый код
Конвертация в JScript
Специальные лоадеры

👉Читать

#pentest #redteam
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Использование паттерна Outbox для надежного обмена сообщениями микросервисов: на заметку C#-разработчику

#dotnet #csharp #tip by Milan Jovanović
👍17🤔3😁2
🤔Получить значение типа по умолчанию во время компиляции легко — мы можем использовать default(T). Что, если мы хотим сделать то же самое во время выполнения? Каково значение по умолчанию для любого System.Type?

👉Разбирается Microsoft MVP/разработчик из Ubisoft Gérald Barré
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2❤‍🔥1
🚀 Тезисно об интересных функциях .NET 8, о которых стоит знать:

☑️Улучшения в System.Text.Json
☑️Поддержка IAsyncEnumerable Stream в System.Net.Http.Json
☑️Создание JsonContent через JsonContent.Create
☑️Анализ JsonNode Instances с помощью JsonNode.ParseAsync
☑️Улучшение JsonSerializerOptions.MakeReadOnly(bool populateMissingResolver)
☑️Режим AndroidStripILAfterAOT на Android
☑️Поддержка Azure Managed Identity для SDK Container Publishing и другие

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
💬 Вы пользуетесь ИИ-помощниками в ходе разработки?

🤔 Если да, то каким именно? Повысилась ли ваша производительность?

#холивар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔FromQuery, FromForm и другие: что делают атрибуты веб-API .NET

Существует много атрибутов From, включая FromQuery и FromForm, при добавлении параметра к экшену контроллера в ASP.NET Core Web API или MVC-приложении.

Но что делают эти атрибуты? И что более важно, как мы можем заставить их работать? David Grace рассматривает каждый из них и предоставляет примеры на C#.

👉Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
📌 Подборка за неделю на Code Maze:

🔹ConcurrentQueue в C#: фундаментальные концепции, использование и роль класса в обеспечении потокобезопасности
🔹Использование Keyed Services в .NET: обзор новой фичи, которая появилась в .NET 8
🔹Понимание паттерна Unit of Work в C#: преимущества и недостатки паттерна + пример реализации, который полностью независим от ORM
🔹Как и когда использовать TPC Inheritance Mapping в EF Core: погружение в недавно добавленную стратегию наследования в EF Core 7
🔹Как выполнить поиск подстроки без учета регистра в C#: гайд по использованию методов String.Contains(), String.IndexOf(), регулярных выражений и LINQ в сочетании с String.Equals( )

#dotnet #csharp #codemaze #матчасть
👍82
🧰Вышел крупный релиз проекта OpenSilver 2.0, который продолжает развитие платформы Silverlight и позволяет создавать интерактивные веб-приложения при помощи .NET, C#, VBNET и XAML.

🤔«OpenSilver 2.0 — это гигантский шаг вперед, гарантирующий дальнейшее процветание .NET и XAML в современной среде веб-разработки. Мы не просто возрождаем, но и превосходим дух Silverlight» (Giovanni Albani, CEO Userware).
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍7
🚀System Design 101

Готовитесь к собеседованию по проектированию систем или просто хотите понять принцип работы сложных систем? Тогда репозиторий ByteByteGo точно для вас.

👉 GitHub
👍30
Все, что нужно знать о Middleware в ASP.NET 8: гайд для C#-разработчика

• Inline Middleware
• Class Middleware
• Factory-based Middleware

👉 Читать
👍11
От монолита к микросервисам: как помогает модульный монолит

🔸Хорошей отправной точкой является разделение по ограниченным контекстам.

🔸Ограниченные контексты определяют явные границы между модулями. Затем вам нужно решить проблему связывания: зависимости БД, коммуникация.

🔸Каждый модуль содержит согласованный набор функций и изолирован от других модулей в системе.

👉Подробнее о том, какие требования предъявляются к модулю, как именно это сделать на практике, а также добавить брокер сообщений и извлечь модули в микросервисы, читайте в очередном материале Milan Jovanović.

#dotnet #csharp #tip by Milan Jovanović
👍113
🔥 Вышли новые части в серии «Знакомство с предварительной версией .NET 8»

В 9-ой части Эндрю Лок погружается в новую поддержку рендеринга компонентов Blazor вне контекста ASP.NET Core.

10-ая часть посвящена обновлению Docker-образов в .NET 8. Вы узнаете о некоторых различиях в тегах, новых поддерживаемых типах образов, а также критические изменения в образах.

#dotnet8
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
🔥В Rider 2023.3 завезут фичу под названием Debugger Data Flow Analysis, которая позволяет предсказывать движение потока данных и показывать во время отладки, в каком направлении продолжится выполнение кода

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

На скрине анализ потока данных отладчика помогает сразу увидеть, что метод не будет выполнен после вызова RandomizeBool(), поскольку он выдаст ошибку NotImplementedException.

👉 Подробнее
38🔥18👍7