Dependency Injection контейнеры .NET, допускающие полиморфное поведение
При разработке .NET-приложения с DI и сервисами от контейнера может потребоваться поддержка полиморфного поведения. Когда, например, у интерфейса есть несколько реализаций, и их нужно грамотно расфасовать по правильным конструкторам так, чтобы всё работало из коробки.
Однако стандартный DI контейнер платформы долгое время не давал этой возможности. Сеньор .NET-разработчик Степан Минин рассмотрел альтернативы для решения этой задачи на тот случай, если вы ещё не успели переехать на .NET 8 или работаете в каком-нибудь Иннотехе, где в наличии только зеркало NuGet-пакетов, выпущенных до начала 2022 года.
👉 Читать
При разработке .NET-приложения с DI и сервисами от контейнера может потребоваться поддержка полиморфного поведения. Когда, например, у интерфейса есть несколько реализаций, и их нужно грамотно расфасовать по правильным конструкторам так, чтобы всё работало из коробки.
Однако стандартный DI контейнер платформы долгое время не давал этой возможности. Сеньор .NET-разработчик Степан Минин рассмотрел альтернативы для решения этой задачи на тот случай, если вы ещё не успели переехать на .NET 8 или работаете в каком-нибудь Иннотехе, где в наличии только зеркало NuGet-пакетов, выпущенных до начала 2022 года.
👉 Читать
Хабр
Dependency Injection контейнеры .NET, допускающие полиморфное поведение
Иногда случается так, что при разработке приложения на платформе .NET с внедрением зависимостей и сервисами от контейнера требуется поддержка полиморфного поведения. Когда, например, у интерфейса есть...
👍16🌚1
Логика инициализации работает следующим образом: для списков она опирается на новый API
CollectionsMarshal
и использует span
для эффективного заполнения списка.Это гораздо эффективнее, чем инициализаторы коллекций!
#dotnet #csharp #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏18👍11❤2
Представлен новый инструмент AppCAT для упрощения миграции локальных .NET-приложений в Azure.
Он позволяет оценить исходный код .NET, конфигурации и бинари вашего приложения, чтобы выявить потенциальные проблемы и возможности при миграции приложения в Azure.
dotnet tool install -g --ignore-failed-sources dotnet-appcat
#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3😁2
🤘 Особенности работы в ИТ: информация из первых рук
👨💻 Недавно мы проводили среди вас опрос, а теперь делимся интересными выводами обо всех аспектах работы в ИТ.
📊 Выяснили, с каким стеком можно получать 300к+, что айтишники думают о рекрутерах, насколько они довольны своей зарплатой и ради чего могут сменить работу.
💬 Пишите в комментариях другие темы, о которых вам хотелось бы узнать👇
👨💻 Недавно мы проводили среди вас опрос, а теперь делимся интересными выводами обо всех аспектах работы в ИТ.
📊 Выяснили, с каким стеком можно получать 300к+, что айтишники думают о рекрутерах, насколько они довольны своей зарплатой и ради чего могут сменить работу.
💬 Пишите в комментариях другие темы, о которых вам хотелось бы узнать👇
👍8
При использовании Akka.NET
вы можете случайно изучить pattern matching, effects systems, monads и другие концепции функционального программирования. Не забудьте предупредить своих коллег-разработчиков на C#😉
вы можете случайно изучить pattern matching, effects systems, monads и другие концепции функционального программирования. Не забудьте предупредить своих коллег-разработчиков на C#
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍6👾1
MemoryStream
в пул для повышения производительности.Это замена
MemoryStream
, которая предлагает улучшенное поведение для систем, критичных к производительности. В частности, она оптимизирована для выполнения следующих задач:☑️ Устранение аллокаций в куче больших объектов за счет использования пулов буферов
☑️ Сокращение количества полных сборок мусора (gen 2 GC) и уменьшение времени простоя из-за сборки мусора
☑️ Предотвращение утечек памяти за счет ограничения размера пула
☑️ Избежание фрагментации памяти
☑️ Предоставление нескольких способов чтения и записи данных, которые избегают лишних аллокаций памяти
☑️ Обеспечение отладки и логирования
☑️ Предоставление метрик для отслеживания производительности
Install-Package Microsoft.IO.RecyclableMemoryStream
👉 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - microsoft/Microsoft.IO.RecyclableMemoryStream: A library to provide pooling for .NET MemoryStream objects to improve application…
A library to provide pooling for .NET MemoryStream objects to improve application performance. - GitHub - microsoft/Microsoft.IO.RecyclableMemoryStream: A library to provide pooling for .NET Memor...
👍29❤4
1️⃣🐝🏎️ The One Billion Row Challenge — версия .NET
Изначально челлендж 1BRC завирусился в сообществе Java-разработчиков, но .NET-разрабы не смогли пройти мимо.
Выше представлены результаты тестов на 10-ядерном процессоре Xeon W iMac Pro 2017 года с тактовой частотой 3 ГГц.
Изначально челлендж 1BRC завирусился в сообществе Java-разработчиков, но .NET-разрабы не смогли пройти мимо.
Выше представлены результаты тестов на 10-ядерном процессоре Xeon W iMac Pro 2017 года с тактовой частотой 3 ГГц.
👍22❤2
This media is not supported in your browser
VIEW IN TELEGRAM
🎮 Собираем автономную игру на C# в 2 килобайтах
Как думаете, каким может быть минимальный размер полезного автономного исполняемого файла C#? Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Автор создал автономную игру размером 64 МБ на C#, а затем за 10 шагов сократил размер до ~2 КБ и закодировал содержимое EXE'шника в QR-код.
👉 Читать
Как думаете, каким может быть минимальный размер полезного автономного исполняемого файла C#? Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Автор создал автономную игру размером 64 МБ на C#, а затем за 10 шагов сократил размер до ~2 КБ и закодировал содержимое EXE'шника в QR-код.
👉 Читать
👍39😁6
🎉 C# — язык программирования 2023 года по версии TIOBE
Новость была встречена с большим воодушевлением поклонниками C# и .NET и некоторой постоянной дозой скептицизма со стороны разработчиков, работающих в других экосистемах. Хотя обе реакции ожидаемы и совершенно нормальны, есть еще несколько интересных фактов, о которых почти никто не говорит, даже несмотря на то, что индекс TIOBE не указывает на превосходство языка программирования или экосистемы.
👉 Читать
Новость была встречена с большим воодушевлением поклонниками C# и .NET и некоторой постоянной дозой скептицизма со стороны разработчиков, работающих в других экосистемах. Хотя обе реакции ожидаемы и совершенно нормальны, есть еще несколько интересных фактов, о которых почти никто не говорит, даже несмотря на то, что индекс TIOBE не указывает на превосходство языка программирования или экосистемы.
👉 Читать
❤55👍7🔥4
Как вы внедряете обучение в свою жизнь? Поделитесь опытом
Anonymous Poll
41%
Еле втискиваю обучение в расписание
12%
Кроме учёбы у меня нет других занятий
14%
Приходится отказываться от хобби
20%
Никак, пока не получается
10%
Я не хочу больше учиться(
4%
Свой вариант (напишу в комментариях)
👍8🥰2❤1🌚1
Краткий обзор StringValues от Эндрю Лока: реализация и практика использования в ASP.NET Core.
👉 Читать
👉 Читать
Andrew Lock | .NET Escapades
A brief look at StringValues
In this post I look at the StringValues type, where it's used in ASP.NET Core, why it's useful, how it's implemented, and why.
👍9👏2❤1
💡 Как улучшить производительность при использовании Entity Framework Core?
Принцип работы заключается в том, что он выделяет блоки идентификаторов, которые затем могут быть использованы приложением без необходимости каждый раз обращаться к БД за новым идентификатором.
🛠 Для использования HiLo в EF Core, необходимо:
1. Настроить контекст базы данных для использования
2. Настроить базу данных для создания последовательности HiLo. Это делается в методе
В примере создается последовательность
Этот метод особенно полезен в распределенных системах, где множество экземпляров приложения могут одновременно добавлять записи в базу данных.
👉 Подробнее
#dotnet #efcore #tip
HiLo
в EF Core — это алгоритм генерации идентификаторов, который помогает управлять выделением уникальных ключей для сущностей в базе данных. Принцип работы заключается в том, что он выделяет блоки идентификаторов, которые затем могут быть использованы приложением без необходимости каждый раз обращаться к БД за новым идентификатором.
🛠 Для использования HiLo в EF Core, необходимо:
1. Настроить контекст базы данных для использования
HiLo
. Например:protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<YourEntity>()
.Property(e => e.Id)
.UseHiLo("YourHiLoSequenceName");
}
2. Настроить базу данных для создания последовательности HiLo. Это делается в методе
OnModelCreating
контекста базы данных:protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.HasSequence<int>("YourHiLoSequenceName")
.StartsAt(1)
.IncrementsBy(10);
}
В примере создается последовательность
YourHiLoSequenceName
, которая начинается с 1 и увеличивается на 10. Это означает, что каждый раз, когда приложение запрашивает блок идентификаторов, оно получает диапазон из 10 значений.Этот метод особенно полезен в распределенных системах, где множество экземпляров приложения могут одновременно добавлять записи в базу данных.
HiLo
гарантирует, что каждое приложение получит уникальный блок идентификаторов, избегая конфликтов и блокировок.👉 Подробнее
#dotnet #efcore #tip
.NET Blog
How to use HILO with Entity Framework Core
In Entity Framework Identity DB server generated keys are most popular but as a latency optimization technique HILO keys can … Continue reading How to use HILO with Entity Framework Core
👍27🤔3❤2🌚2
Сон — это важно. А какими лайфхаками для глубокого сна вы пользуетесь?
Anonymous Poll
19%
Ложусь спать и просыпаюсь в одно и то же время
6%
Убираю телефон подальше, чтобы не достать
19%
Засыпаю в проветренной, прохладной и темной комнате
18%
Час-два смотрю мемы перед сном
8%
Ложусь рано и встаю рано
34%
Просто сплю 7-8 часов
5%
Гуляю на свежем воздухе перед сном
22%
А что вообще такое глубокий сон?
30%
Никакие, у меня проблемы со сном
2%
Свой вариант (напишу в комментариях)
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🍊Подборка лучших статей «Библиотеки программиста» за декабрь: сохраняй в заметки, чтобы не пропустить #самыйсок
🛠️ 17 суперинструментов для разработки фронтенда
🏃 Самоучитель по Go для начинающих: часть 3 + часть 4
🔟🏢 ТОП-10 российских IT-работодателей
📁💡Где программисту взять идеи для портфолио
🐍📋 F-строки в Python для интерполяции и форматирования строк
🤖 Машинное обучение: что это такое и как оно работает
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
📈 Обзор рынка труда в ИТ: III квартал 2023 года
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🧠🧩 Зачем айтишнику психолог?
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
👨🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
✍️ Почему отсутствие технической документации убьёт ваш проект?
❓👨💻 Вопросы для подготовки к собеседованию по JavaScript. Часть 1
🎄🎁 10 абсурдных подарков программисту на Новый год
😺🐙✅ Как разобраться в Git: краткая инструкция для джунов
🔥 12 признаков выгорания или как понять, что вам пора в отпуск
⚙️✅📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
🛠️ 17 суперинструментов для разработки фронтенда
🏃 Самоучитель по Go для начинающих: часть 3 + часть 4
🔟🏢 ТОП-10 российских IT-работодателей
📁💡Где программисту взять идеи для портфолио
🐍📋 F-строки в Python для интерполяции и форматирования строк
🤖 Машинное обучение: что это такое и как оно работает
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT
🐍🤖✍️ Документирование кода и проектов на Python с помощью ChatGPT
📈 Обзор рынка труда в ИТ: III квартал 2023 года
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения
🧠🧩 Зачем айтишнику психолог?
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python
👨🎓 14 бесплатных ресурсов, которые пригодятся каждому разработчику
✍️ Почему отсутствие технической документации убьёт ваш проект?
❓👨💻 Вопросы для подготовки к собеседованию по JavaScript. Часть 1
🎄🎁 10 абсурдных подарков программисту на Новый год
😺🐙✅ Как разобраться в Git: краткая инструкция для джунов
🔥 12 признаков выгорания или как понять, что вам пора в отпуск
⚙️✅📕 Ответы на вопросы для самопроверки из книги «Тестирование Дот Ком» Романа Савина
🏦⚠️ Борьба с ошибками разработки ПО в финтехе
👍3
Немного магии JIT от Егора Богатова
🙃 Оба метода работают одинаково, но почему версия
#dotnet #benchmarks
🙃 Оба метода работают одинаково, но почему версия
_hacker
работает быстрее?#dotnet #benchmarks
🤔22🔥10👍5😁4
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
#️⃣C#
Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие профильные каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
💼Каналы с вакансиями
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
👍4