👩💻 Совместное использование настроек сборки в нескольких .NET-проектах: на заметку C#-разработчику
#dotnet #csharp #tip by Dave Callan
#dotnet #csharp #tip by Dave Callan
Привет, друзья! 👋
Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:
🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?
🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?
💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?
Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀
Мы хотим обсудить важную тему — токсичность в среде разработчиков и значимость поддержки и наставничества. Нам интересно узнать ваше мнение и опыт! Поделитесь своими мыслями, и самые полезные советы мы включим в нашу статью. Вот несколько вопросов для вас:
🤔 Приходилось ли вам сталкиваться с токсичными коллегами на работе? Как вы справлялись с этой ситуацией?
🌟 Какие качества вы считаете важными для хорошего наставника в IT-сфере?
💡 Какие советы вы бы дали тем, кто хочет создать более поддерживающую и позитивную рабочую атмосферу?
Спасибо за ваше участие! Ваши ответы помогут сделать рабочую среду лучше для всех. 🚀
⚡️🔫 Секретное оружие бэкендера: 6 инструментов, о которых вы не знали
В новой статье рассказываем о шести малоизвестных, но невероятно мощных инструментах, которые превратят вас в настоящего супергероя бэкенд-разработки.
👉 Читать по этой ссылке
В новой статье рассказываем о шести малоизвестных, но невероятно мощных инструментах, которые превратят вас в настоящего супергероя бэкенд-разработки.
👉 Читать по этой ссылке
⚒ Разработка веб-API CRUD с помощью Data API Builder и EF Core Power Tools
Data API Builder позволяет создавать веб-API CRUD на основе файла конфигурации json, с подержкой REST и GraphQL. Этот кроссплатформенный инструмент также включает CLI для создания довольно сложного файла конфигурации.
Но даже создание команд в командной строке для предоставления доступа к существующей базе данных в качестве веб-API может быть сложным и чреватым ошибками.
Благодаря возможностям EF Core Power Tools по реверсу баз данных вы можете за считанные секунды создать эти операторы командной строки и запустить API с помощью команды
Что вам необходимо?
1️⃣ Существующая база данных Azure SQL, SQL Server, Postgres или MySQL, которую вы хотите использовать в качестве CRUD-API.
2️⃣ Проект Visual Studio 2022 для хранения файлов конфигурации в системе контроля версий.
3️⃣ Установленная последняя версия 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.
👉 Читать гайд
🔥 Класс BinaryFormatter удален из .NET 9
У вас есть два варианта решения данной проблемы:
✔️ Мигрируйте с BinaryFormatter на другие решения. В руководстве по миграции перечислены несколько кейсов.
✔️ Продолжайте использовать BinaryFormatter в .NET 9, но в данном случае вам придется полагаться на неподдерживаемый NuGet-пакет System.Runtime.Serialization.Formatters.
👉 Подробнее
У вас есть два варианта решения данной проблемы:
✔️ Мигрируйте с BinaryFormatter на другие решения. В руководстве по миграции перечислены несколько кейсов.
✔️ Продолжайте использовать BinaryFormatter в .NET 9, но в данном случае вам придется полагаться на неподдерживаемый NuGet-пакет System.Runtime.Serialization.Formatters.
👉 Подробнее
Docs
BinaryFormatter migration guide - .NET
This guide covers the deprecation and removal of BinaryFormatter from .NET and recommends migration paths.
🛠️ TUnit — современный, гибкий и быстрый фреймворк для тестирования проектов .NET 8+ с поддержкой приложений Native AOT и Trimmed Single File.
Фреймворк построен на базе
👉 GitHub
Фреймворк построен на базе
Microsoft.Testing.Platform, в отличие от старой платформы VSTest. Поскольку инфраструктура за кулисами новая и другая, вам может потребоваться включить некоторые настройки.👉 GitHub
👩💻 Работа с tar-файлами в .NET 8
Еще в 2022 году .NET 7 получил поддержку для работы с tar файлами в базовой библиотеке классов.
Эндрю Лок как обычно во всем разобрался и описал, как выполнять некоторые базовые операции с tar-файлами, как он обычно использую CLI-утилиту tar и как вместо этого использовать встроенную в .NET поддержку.
👉 Читать
Еще в 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);
👉 Читать
🤯 Что вам помогает работать, когда устаете? Когда в отпуск ну вообще никак, а сил уже нет.
💬 Может быть, чтение отвлеченной литературы, спорт, дневной сон, прогулки, встречи с друзьями, что-то ещё?
#интерактив
💬 Может быть, чтение отвлеченной литературы, спорт, дневной сон, прогулки, встречи с друзьями, что-то ещё?
#интерактив
🪶 Как следовать принципу DRY при настройке Apache APISIX
DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:
☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.
В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.
🔗 Читать статью
🔗 Зеркало
DRY — один из самых известных принципов разработки ПО: он помогает избежать ненужного повторения фрагментов кода, которые выполняют одни и те же действия. DRY также стоит применять при настройке конфигурации сложных систем, поскольку этот принцип:
☑️ Делает конфигурацию более компактной и легкой для понимания.
☑️ Упрощает поддержку — когда нужно внести изменения, вы делаете это только в одном месте.
☑️ Повышает читаемость — конфигурация становится более структурированной и логичной, что облегчает ее понимание.
☑️ Улучшает масштабируемость — при усложнении конфигурации принципы DRY помогают сохранять ее управляемой и расширяемой.
☑️ Сокращает время на настройку — используя переиспользуемые компоненты, можно быстрее создавать новые конфигурации или модифицировать существующие.
В качестве примера в статье рассматриваем, как применять DRY при настройке конфигурации API-шлюза Apache APISIX.
🔗 Читать статью
🔗 Зеркало
⚙️ Разработка масштабируемого векторного расширения в .NET
Kunal Pathak, разработчик в JIT-команде .NET Runtime, рассказывает о внедрении поддержки Scalable Vector Extension (SVE) на процессорах Arm в .NET.
SVE — это технология, позволяющая обрабатывать данные в параллельных потоках с гибкой длиной векторов, что значительно повышает производительность приложений, таких как машинное обучение и научные вычисления.
Команда Microsoft интегрировала поддержку SVE в .NET как экспериментальную функцию, позволяя разработчикам писать высокопроизводительный код, который использует современные архитектуры. Особое внимание уделено вызовам векторов и предикатов в API .NET, что упрощает адаптацию к различным аппаратным конфигурациям.
👉 Подробнеее
Kunal Pathak, разработчик в JIT-команде .NET Runtime, рассказывает о внедрении поддержки Scalable Vector Extension (SVE) на процессорах Arm в .NET.
SVE — это технология, позволяющая обрабатывать данные в параллельных потоках с гибкой длиной векторов, что значительно повышает производительность приложений, таких как машинное обучение и научные вычисления.
Команда Microsoft интегрировала поддержку SVE в .NET как экспериментальную функцию, позволяя разработчикам писать высокопроизводительный код, который использует современные архитектуры. Особое внимание уделено вызовам векторов и предикатов в API .NET, что упрощает адаптацию к различным аппаратным конфигурациям.
👉 Подробнеее