Развертывание ASP.NET Core приложения в Kubernetes.
Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания деплоймента и объекта, предоставляющего доступ к нему, – в статье будет использован ingress в исполнении nginx.
Подробнее: https://habr.com/ru/post/709342
Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания деплоймента и объекта, предоставляющего доступ к нему, – в статье будет использован ingress в исполнении nginx.
Подробнее: https://habr.com/ru/post/709342
Хабр
Развертывание ASP.NET Core приложения в Kubernetes
Данная статья является краткой инструкцией по развертыванию ASP.NET Core приложения в Kubernetes с написанием Dockerfile для формирования образа (Docker image) и минимального манифеста для создания...
Домашнее облачко или что можно сделать с Orange Pi 5 (Часть 1).
Многим разработчикам довольно часто бывают нужны какие-то локальные сервисы под рукой. Почему бы не использовать одноплатный компьютер?
Подробнее: https://habr.com/ru/post/708944/
Многим разработчикам довольно часто бывают нужны какие-то локальные сервисы под рукой. Почему бы не использовать одноплатный компьютер?
Подробнее: https://habr.com/ru/post/708944/
Хабр
Домашнее облачко или что можно сделать с Orange Pi 5 (Часть 1)
Работаю разработчиком и довольно часто бывает нужны какие то сервисы локальные под рукой, что то дорогого покупать не хотелось, арендую обычно когда выкатываю к заказчику. Подумал поискать где можно...
Книга «C# 10 и .NET 6. Современная кросс-платформенная разработка».
Шестое издание книги серьезно переработано, добавлены все новые функции, реализованные в версиях C# 10 и .NET 6.
Подробности: https://habr.com/ru/company/piter/blog/714396/
Шестое издание книги серьезно переработано, добавлены все новые функции, реализованные в версиях C# 10 и .NET 6.
Подробности: https://habr.com/ru/company/piter/blog/714396/
Хабр
Книга «C# 10 и .NET 6. Современная кросс-платформенная разработка»
Привет, Хаброжители! Шестое издание книги серьезно переработано, добавлены все новые функции, реализованные в версиях C# 10 и .NET 6. Вы изучите принципы объектно-ориентированного программирования,...
Опыт разработки программы для игры в шашки с помощью алгоритма минимакс.
Изначально автор хотел писать на python, но потом решил сделать крутую красивую игру и выбрал Unity (C#). Спойлер: красивую игру сделать так и не вышло.
Подробности: https://habr.com/ru/post/710990/
Изначально автор хотел писать на python, но потом решил сделать крутую красивую игру и выбрал Unity (C#). Спойлер: красивую игру сделать так и не вышло.
Подробности: https://habr.com/ru/post/710990/
Хабр
Мой опыт разработки программы для игры в шашки с помощью алгоритма минимакс
Я только лишь передвигал нужную шашку на нужное поле… (ответ Мариона Тинсли на вопрос, как ему удалось победить) Об идее В Интернете можно откопать сотни, а в англоязычном его сегменте — тысячи,...
Привет, читатель. Продолжаю размышлять над тем, как сделать контент канала интереснее. Решил, что неплохо было бы нам познакомится получше.
Мне интересно, есть ли среди подписчиков разработчики игр и интересна ли вообще эта тема. Мы касаемся этого не так часто, но Unity-разработчики ведь пишут на шарпах свои проекты. Можно было поговорить о работе с игровыми движками. Там полно своих нюансов и подходов. Вдохновил на мысль канал Кот и Код, там как раз есть технические моменты про связку С# и Unity, и в целом про работу игрового программиста. В общем можно было бы немного разбавить, а точнее дополнить текущий MS-контент. Что думаете?
Как всегда, жду от вас реакций. Да 👍 или нет 💩.
Мне интересно, есть ли среди подписчиков разработчики игр и интересна ли вообще эта тема. Мы касаемся этого не так часто, но Unity-разработчики ведь пишут на шарпах свои проекты. Можно было поговорить о работе с игровыми движками. Там полно своих нюансов и подходов. Вдохновил на мысль канал Кот и Код, там как раз есть технические моменты про связку С# и Unity, и в целом про работу игрового программиста. В общем можно было бы немного разбавить, а точнее дополнить текущий MS-контент. Что думаете?
Как всегда, жду от вас реакций. Да 👍 или нет 💩.
Telegram
Кот и код: разработка игр и приложений
Про разработку на Unity и .Net, радость и боль программирования.
Автор: @KotikovD
Про искусство и игрострой:
@svolochandborshch
Автор: @KotikovD
Про искусство и игрострой:
@svolochandborshch
Всё что нужно знать про ECS.
В этой статье автор рассказал всё, что знает про Entity-Component-System и попытался развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках ECS, об особенностях этого подхода, о том как с ним подружиться, о потенциальных граблях, о полезных практиках, а также в отдельном разделе коротко посмотрим на ECS фреймворки для Unity/C#.
Подробности: https://habr.com/ru/post/665276/
В этой статье автор рассказал всё, что знает про Entity-Component-System и попытался развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках ECS, об особенностях этого подхода, о том как с ним подружиться, о потенциальных граблях, о полезных практиках, а также в отдельном разделе коротко посмотрим на ECS фреймворки для Unity/C#.
Подробности: https://habr.com/ru/post/665276/
Хабр
Всё что нужно знать про ECS
Привет, Хабр! В этой статье я расскажу всё, что знаю про Entity-Component-System и попытаюсь развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках...
Сортировка слиянием — не так просто, как кажется.
В одной компании соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата.
Требования такие:
- Формат строки: число, точка, пробел, далее любые символы до конца строки.
- Порядок сортировки — сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.
- Кодировка — UTF-8.
- Размер файла — 100гб - гарантированно больше объема ОП.
- Должно отработать за 1 час на машине проверяющего, вряд ли там будет супер-быстрый SSD и огромное количество оперативной памяти.
Эта задача вызвала бурные обсуждения о способах её решения. Многие программисты, причисляющие себя к рангу senior, предложили использовать базы данных, ибо не барское это дело - вручную писать алгоритмы сортировки. Некоторые даже попытались сделать решение на Apache Spark. Однако никто до конца задачу не решил, ибо мало кому удалось отсортировать в нужном порядке даже 10ГБ файл менее чем за 15 минут без SSD.
Подробности: https://habr.com/ru/post/714524/
В одной компании соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата.
Требования такие:
- Формат строки: число, точка, пробел, далее любые символы до конца строки.
- Порядок сортировки — сначала сортируем текстовой части строки, потом по числу если текстовые части совпадают.
- Кодировка — UTF-8.
- Размер файла — 100гб - гарантированно больше объема ОП.
- Должно отработать за 1 час на машине проверяющего, вряд ли там будет супер-быстрый SSD и огромное количество оперативной памяти.
Эта задача вызвала бурные обсуждения о способах её решения. Многие программисты, причисляющие себя к рангу senior, предложили использовать базы данных, ибо не барское это дело - вручную писать алгоритмы сортировки. Некоторые даже попытались сделать решение на Apache Spark. Однако никто до конца задачу не решил, ибо мало кому удалось отсортировать в нужном порядке даже 10ГБ файл менее чем за 15 минут без SSD.
Подробности: https://habr.com/ru/post/714524/
Хабр
Сортировка слиянием — не так просто, как кажется
В одной конторе соискателю на позицию Senior C# developer выдали тестовое задание: отсортировать файл со строками определенного формата. Требования такие: Формат строки: число, точка, пробел, далее...
Проблемы unsafe кода C#.
В этой статье автор показывает, какие проблемы может вызвать unsafe код. Также внутра несколько примеров того, как можно изменить значение константы, readonly поля и свойства без set метода.
Подробнее: https://habr.com/ru/post/707172/
В этой статье автор показывает, какие проблемы может вызвать unsafe код. Также внутра несколько примеров того, как можно изменить значение константы, readonly поля и свойства без set метода.
Подробнее: https://habr.com/ru/post/707172/
Хабр
Проблемы unsafe кода C#
В этой статье я покажу какие проблемы может вызвать unsafe код и пару примеров, как можно изменить значение константы, readonly поля и свойства без set метода. Я не знаю насколько будет вам полезна...
Swagger и полиморфные контракты в .NET 7.
Не так давно состоялся релиз седьмой версии платформы .NET. Он привнёс множество изменений и интересных нововведений, по которым уже успели пробежаться в рамках новостного обзора. В этой статье рассматривается развитие сериализации платформы (System.Text.Json) вместе с возможностями, которые она открывает.
Подробности: https://habr.com/ru/company/ruvds/blog/715000/
Не так давно состоялся релиз седьмой версии платформы .NET. Он привнёс множество изменений и интересных нововведений, по которым уже успели пробежаться в рамках новостного обзора. В этой статье рассматривается развитие сериализации платформы (System.Text.Json) вместе с возможностями, которые она открывает.
Подробности: https://habr.com/ru/company/ruvds/blog/715000/
Хабр
Swagger и полиморфные контракты в .NET 7
Не так давно состоялся релиз седьмой версии платформы .NET. Он привнёс множество изменений и интересных нововведений, по которым уже успели пробежаться в рамках новостного обзора. В этой статье мы...
Нужен ли ConfigureAwait?
В этой статье автор рассказывает зачем нужен ConfigureAwait(false), а также о том, как можно обходиться без него.
Подробности: https://habr.com/ru/post/721050/
В этой статье автор рассказывает зачем нужен ConfigureAwait(false), а также о том, как можно обходиться без него.
Подробности: https://habr.com/ru/post/721050/
Хабр
Нужен ли ConfigureAwait?
Мне никогда не нравилась многословность кода. Длинные и подробные названия упрощают работу с бизнес-логикой, но технические детали кода хочется держать краткими, чтобы они отвлекали на себя минимум...
Современные (инкрементные) Source Generators в .NET.
В процессе написания source generators автор столкнулся с тем, что на большой кодовой базе обычные генераторы работают медленно, существенно влияя на производительность IntelliSense в Visual Studio. Наткнувшись на описание более современного API — incremental generators, автор обрадовался и обновил генераторы. Однако ожидаемого прироста скорости не появлось. В результате поиска ответа на вопрос "почему так и что можно сделать?" и появилась эта статья.
Подробности: https://habr.com/ru/post/721874/
В процессе написания source generators автор столкнулся с тем, что на большой кодовой базе обычные генераторы работают медленно, существенно влияя на производительность IntelliSense в Visual Studio. Наткнувшись на описание более современного API — incremental generators, автор обрадовался и обновил генераторы. Однако ожидаемого прироста скорости не появлось. В результате поиска ответа на вопрос "почему так и что можно сделать?" и появилась эта статья.
Подробности: https://habr.com/ru/post/721874/
Хабр
Современные (инкрементные) Source Generators в .NET
Введение В процессе написания source generators (далее " генераторы ") для наших внутренних нужд я столкнулся с тем, что на большой кодовой базе (>250 проектов в solution, большая часть из которых...
ArrayPool<T>: подводные камни.
Автоматическая сборка мусора упрощает разработку, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.
Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.
В этой статье автор расскажет о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.
Подробнее: https://habr.com/ru/articles/723420/
Автоматическая сборка мусора упрощает разработку, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а не главным врагом на пути к высокой производительности — иногда имеет смысл помогать ему, оптимизируя частые аллокации и аллокации больших объектов.
Для уменьшения аллокаций в современном .NET предусмотрены Span/Memory<T>, stackalloc с поддержкой Span, структуры и другие средства. Но если без объекта в куче не обойтись, например, если объект слишком большой для стека, или используется в асинхронном коде — этот объект можно переиспользовать. И для самых крупных объектов — массивов, в .NET встроены несколько реализаций ArrayPool<T>.
В этой статье автор расскажет о внутреннем устройстве реализаций ArrayPool<T> в .NET, о подводных камнях, которые могут сделать пулинг неэффективным, о concurrent-структурах данных, а также о пулинге объектов, отличных от массивов.
Подробнее: https://habr.com/ru/articles/723420/
Хабр
ArrayPool<T>: подводные камни
Автоматическая сборка мусора упрощает разработку программ, избавляя от необходимости отслеживать жизненный цикл объектов и удалять их вручную. Однако, чтобы сборщик мусора был полезным инструментом, а...
Вакансии для разработчиков C# в Ozon Tech 🔔
📌 Для кого: middle, senior и team lead
📌 Скилы, которые ждем: C# (.NetCore), MSSQL, PostgreSQL, разработка высоконагруженных real-time систем
Решай интересные highload-задачи и применяй лучшие практики, чтобы миллионы пользователей могли совершать сотни тысяч заказов в день и получать их вовремя.
📌 Условия: удаленка, гибрид или офис (Россия, Казахстан) — выбирать только тебе
Подробную информацию о вакансиях, включая задачи и условия, можно найти на сайте по ссылке: https://bit.ly/41iTU11
📌 Для кого: middle, senior и team lead
📌 Скилы, которые ждем: C# (.NetCore), MSSQL, PostgreSQL, разработка высоконагруженных real-time систем
Решай интересные highload-задачи и применяй лучшие практики, чтобы миллионы пользователей могли совершать сотни тысяч заказов в день и получать их вовремя.
📌 Условия: удаленка, гибрид или офис (Россия, Казахстан) — выбирать только тебе
Подробную информацию о вакансиях, включая задачи и условия, можно найти на сайте по ссылке: https://bit.ly/41iTU11
Зачем при изменении сборки менять её версию или как сломать Visual Studio одной командой.
При выпуске нового релиза сборки её версию обычно меняют. Это особенно актуально, если разрабатывается библиотека, от которой зависят другие проекты. Но что, если этого не делать? Предлагаю вашему вниманию небольшую историю о проблемах с библиотеками.
Подробности: https://habr.com/ru/companies/pvs-studio/articles/724218/
При выпуске нового релиза сборки её версию обычно меняют. Это особенно актуально, если разрабатывается библиотека, от которой зависят другие проекты. Но что, если этого не делать? Предлагаю вашему вниманию небольшую историю о проблемах с библиотеками.
Подробности: https://habr.com/ru/companies/pvs-studio/articles/724218/
Хабр
Зачем при изменении сборки менять её версию или как сломать Visual Studio одной командой
При выпуске нового релиза сборки её версию обычно меняют. Это особенно актуально, если разрабатывается библиотека, от которой зависят другие проекты. Но что, если этого не делать? Предлагаю вашему...
Динамические методы в .NET.
На сегодняшний день в .NET существует несколько видов кодогенерации: новомодные Source Generators, компилируемые Expression Trees, динамические сборки и динамические методы. Каждый способ имеет свои области применения, плюсы и минусы.
В этой статье автор рассказывает про динамические методы. Как их создавать, как работает стековая машина, некоторые базовые операции Common Intermediate Language: работа с константами, математические и битовые операции, а также работу с аргументами методов и локальными переменными.
Подробности: https://habr.com/ru/articles/730596/
На сегодняшний день в .NET существует несколько видов кодогенерации: новомодные Source Generators, компилируемые Expression Trees, динамические сборки и динамические методы. Каждый способ имеет свои области применения, плюсы и минусы.
В этой статье автор рассказывает про динамические методы. Как их создавать, как работает стековая машина, некоторые базовые операции Common Intermediate Language: работа с константами, математические и битовые операции, а также работу с аргументами методов и локальными переменными.
Подробности: https://habr.com/ru/articles/730596/
Хабр
Динамические методы в .NET
На сегодняшний день в .NET существует несколько видов кодогенерации: новомодные Source Generators, компилируемые Expression Trees, динамические сборки и динамические методы. Каждый способ имеет свои...
Ozon в поисках C#-разработчиков в команду Доставки
Чем занимается команда: полным циклом взаимодействия покупателя с Ozon, начиная с добавления товаров в корзину, заканчивая выдачей или возвратом, чтобы миллионы пользователей могли совершать сотни тысяч заказов в день и получать их вовремя. Есть разные отделы: чекаут, корзина, логистика, личный кабинет продавца, путь поставок и другие.
Что предлагают:
• Ресурсы, чтобы делать лучшие продукты на рынке e-com
• Бенефиты и льготы
• Удаленку, гибрид или офис (Россия, Казахстан) — выбирать только тебе
• Профессиональную команду
Ознакомиться с подробностями вакансии и откликнуться можно по ссылке ниже
Откликнуться
Чем занимается команда: полным циклом взаимодействия покупателя с Ozon, начиная с добавления товаров в корзину, заканчивая выдачей или возвратом, чтобы миллионы пользователей могли совершать сотни тысяч заказов в день и получать их вовремя. Есть разные отделы: чекаут, корзина, логистика, личный кабинет продавца, путь поставок и другие.
Что предлагают:
• Ресурсы, чтобы делать лучшие продукты на рынке e-com
• Бенефиты и льготы
• Удаленку, гибрид или офис (Россия, Казахстан) — выбирать только тебе
• Профессиональную команду
Ознакомиться с подробностями вакансии и откликнуться можно по ссылке ниже
Откликнуться
yield return.
А вы никогда не задумывались, что
А ещё интересно, сколько же на самом деле стоит перечислять элементы с помощью
Подробности: https://habr.com/ru/companies/skbkontur/articles/732704/
А вы никогда не задумывались, что
yield return
выглядит как-то инородно среди прочего C# кода? Больше нигде не встречается такого странного синтаксиса и такой инструкции, кроме как внутри методов, возвращающих перечисление.А ещё интересно, сколько же на самом деле стоит перечислять элементы с помощью
yield return
? И можно ли лучше?Подробности: https://habr.com/ru/companies/skbkontur/articles/732704/
Хабр
yield return
В предыдущих сериях Пародия на замыкания #dotnet #methods #gc ThreadPool.Intro #dotnet #threadpool Инструменты анализа эффективности работы приложения. PerfView #performance_analysis #trace...
Привет 👋. На связи админ, которому ты ставишь 💩 на рекламу (и это нормально).
Решил поделиться публичной активностью, в которой довелось поучаствовать в конце мая.
Конференция CodeFest Almaty, панельная дискуссия на тему «DevRel != HR». Среди участниц и участников: Наташа Макарова, Head of DevRel в SberDevices (канал Наташи про DevRel); Вероника Ильина, Head of DevRel в Dodo Engineering; Дима Алейников, TechLead в Теле2 Казахстан; Саша Гуреев, админ этого канала.
Обсуждали в чем задачи DevRel, нужно ли быть технарем в этой роли, в чем разница между западным и снг-шным подходами, метрики и тд.
Поделюсь с тобой, читатель, пожалуй самым важным как в рамках дискуссии, так и в рамках всего DevRel, выводом. Не бойся публичных активностей. Выступай, пиши. В первый раз может быть страшно и непонятно, но потом ты точно втянешься.
Чтобы не быть голословным: из 5 разработчиков, которым я помог впервые выступить на конференциях в течение последнего месяца, все 5 уже думают над следующими темами.
Успехов!
Решил поделиться публичной активностью, в которой довелось поучаствовать в конце мая.
Конференция CodeFest Almaty, панельная дискуссия на тему «DevRel != HR». Среди участниц и участников: Наташа Макарова, Head of DevRel в SberDevices (канал Наташи про DevRel); Вероника Ильина, Head of DevRel в Dodo Engineering; Дима Алейников, TechLead в Теле2 Казахстан; Саша Гуреев, админ этого канала.
Обсуждали в чем задачи DevRel, нужно ли быть технарем в этой роли, в чем разница между западным и снг-шным подходами, метрики и тд.
Поделюсь с тобой, читатель, пожалуй самым важным как в рамках дискуссии, так и в рамках всего DevRel, выводом. Не бойся публичных активностей. Выступай, пиши. В первый раз может быть страшно и непонятно, но потом ты точно втянешься.
Чтобы не быть голословным: из 5 разработчиков, которым я помог впервые выступить на конференциях в течение последнего месяца, все 5 уже думают над следующими темами.
Успехов!