Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

История о том, как мы монолит с .NET Framework на .NET 6 и Kubernetes переводили

Время на прочтение10 мин
Количество просмотров10K

В 2011 году 2 разработчика начали создавать свою информационную систему, чтобы через неё принимать заказы в Додо Пицце. 2 года назад мы рассказывали про раннюю архитектуру Dodo IS здесь и здесь. За это время монолит нашей системы пережил немало изменений, самое значительное произошло в этом году — мы перевели его весь на .NET 6 и переехали в Kubernetes. Переход оказался непростой задачей и длился в общей сложности год.

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

Читать далее
Всего голосов 38: ↑38 и ↓0+38
Комментарии19

Топ-10 докладов DotNext 2022 Spring

Время на прочтение4 мин
Количество просмотров6.9K

У нас есть традиция: каждые полгода до того, как провести конференцию DotNext, мы публикуем на Хабре десять докладов с предыдущей конференции, которые особенно понравились участникам.

Сейчас до осеннего DotNext остаются считанные дни (он пройдёт 3–4 ноября в онлайне, 20 ноября в Москве с возможностью онлайн-просмотра). Так что публикуем десятку с весеннего. Как обычно, в тексте доклады расположены от десятого места к первому — для максимальной интриги.

Читать далее
Всего голосов 29: ↑29 и ↓0+29
Комментарии1

Блеск и нищета мапперов объектов в .net

Время на прочтение8 мин
Количество просмотров8K

Всем привет, меня зовут Сергей, я системный архитектор в компании BIMeister, и, как вы уже догадались, сегодня мы поговорим про маппинг объектов в .net

Мы сравним несколько популярных подходов и библиотек для маппинга, дадим общее представление и посмотрим на различия, которые стоит учитывать при выборе инструментов. Статья ориентирована на младших разработчиков, которые впервые сталкиваются с темой маппинга объектов и на всех неравнодушных. В данной статье мы не будем касаться широкой темы разнообразных ОRМ-ов (Object­Relational Mapping), а также темы сериализации/десериализации данных, которую тоже часто называют маппингом, а рассмотрим сопоставление объектов между различными слоями нашего приложения, например DТО (Data Transfer Object) и объектом из базы данных, с которым оперирует Entity Framework

Итак, начнём!
Всего голосов 11: ↑10 и ↓1+9
Комментарии11

Особенности реализации List в C#

Время на прочтение7 мин
Количество просмотров40K

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

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии14

Source Generators в действии

Время на прочтение38 мин
Количество просмотров15K

C# 9 дал долгожданную возможность кодогенерации, интегрированную с компилятором. Тем, кто мечтал избавиться от тысяч строк шаблонного кода или попробовать метапрограммирование, стало проще это сделать.


Ранее Андрей Дятлов TessenR выступил на конференции DotNext с докладом «Source Generators в действии». А теперь, пока мы готовим следующий DotNext, сделали для Хабра текстовую расшифровку его доклада.



Что вообще такое эти Source Generators? Как их использовать? Как предоставить пользователю вашего генератора необходимую гибкость конфигурации и понятные сообщения о возникающих проблемах? Как разобраться, когда что-то пошло не так?


Ответы на все эти и другие вопросы — в тексте.

Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии7

Предварительная версия C# 11: обощённые типы для ML, обязательные члены и многое другое

Время на прочтение5 мин
Количество просмотров8.7K


Окончательная версия выйдет уже в ноябре, а пока приглашаем под кат, где к старту нашего курса по разработке на C# рассказываем о новой предварительной версии и напоминаем, что у вас есть возможность повлиять на развитие языка.

Узнать больше
Всего голосов 10: ↑7 и ↓3+5
Комментарии24

Entity Framework Core и высокая производительность

Время на прочтение15 мин
Количество просмотров26K

Entity Framework Core является рекомендованным и самым популярным средством взаимодействия с реляционными базами данных на платформе ASP NET Core. Это мощный инструмент который подходит для большинства сценариев, но, как и любой другой инструмент имеет свои ограничения. Долгое время бытовало мнение (и не безосновательно) что Entity Framework не подходит для высоконагруженных систем и в таких сценариях лучше использовать Dapper. Но время идет и Entity Framework развивается, в том числе в плане оптимизации. Помимо улучшения производительности самой платформы .NET, Entity Framework Core для NET 6 имеет ряд настроек и возможностей, призванных значительно улучшить производительность. В этой статье мы рассмотрим Entity Framework Core с точки зрения производительности и сравним его с Dapper используя актуальные версии на момент июля 2022 года. Посмотрим насколько рекомендация "перепишите все на Dapper" актуальна :)

Эта статья будет полезна разработчикам, которые используют Entity Framework Core в ежедневной работе, а также разработчикам высоконагруженных систем для актуализации знаний о возможностях последних версий Entity Framework Core.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии16

О выгорании в СССР из книжки 1973 года

Время на прочтение8 мин
Количество просмотров75K

Досталась мне от бати книжка издания 1973 года, отпечатанная на ротапринте. Наткнулся в ней на вещи, которые бы мы сейчас назвали проблемой "выгорания". Термина в то время еще не было, но проблема была. Я выписал кое-какие вещи чисто для себя, но потом решил все же опубликовать, может кому пригодится...

Читать далее
Всего голосов 88: ↑86 и ↓2+116
Комментарии99

Разработка графического кроссплатформенного приложения на C#. LXUI

Время на прочтение21 мин
Количество просмотров38K

Всем привет! Меня зовут Леонид, я являюсь разработчиком программного обеспечения на языках программирования С++, C# и Java. Имея достаточно неплохой опыт в создании пользовательских элементов управления еще со времен C++ Builder, было решено сделать свой кроссплатформенный GUI с блэкджеком и шарпом. О нем мы и поговорим сегодня :)

Читать далее
Всего голосов 35: ↑35 и ↓0+35
Комментарии31

.NET 6 и провайдеры баз данных

Время на прочтение18 мин
Количество просмотров12K

Все материалы, которые будут показываться в ходе данной статьи будут доступны по данной ссылке https://github.com/vliashko/CommunicationWithDB. Вполне возможно, что со временем данный репозиторий будет обновляться, или, некоторые захотят сами принять участие в его развитии.

Можно ли сегодня представить разработку, будь то десктопы или веб, без использования баз?

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

В чем же так плоха файловая система? Ну на самом деле, говоря на своем опыте, можно выделить следующие пункты:

1. Блокировка файла, в который идет запись

2. Отсутствие специализированных программ для работы с файлами (аналог СУБД)

Да, в какой-то мере можно выделить еще минусы, или попытаться закрыть уже названные мной. Но в целом главная идея базы данных – это удобство для чтения данных, а также наличие огромного числа инструментов для работы с данными (возможность быстрого поиска по полям таблицы, соединение таблиц, группировка записей, индексирование и т.д.)

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

Тогда давайте рассмотрим как пользоваться базами данных на платформе .NET с использованием языка C#.

Читать полностью
Всего голосов 10: ↑4 и ↓60
Комментарии13

Простые шаги по повышению производительности ASP NET Core приложения

Время на прочтение16 мин
Количество просмотров13K

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

Статья будет полезна разработчикам и лидерам команд, стремящимся улучшить производительность системы в целом. Также статья будет полезна опытным разработчикам, которые смогут использовать список рекомендаций из данной статьи в качестве отправной точки для создания или дополнения собственного чеклиста по улучшению производительности ASP NET Core приложений.

Читать далее
Всего голосов 25: ↑25 и ↓0+25
Комментарии5

Минимальные API в .NET 6

Время на прочтение10 мин
Количество просмотров26K

Создание REST API является основной частью многих проектов разработки. Выбор для создания таких проектов широк, но если вы разработчик на C#, варианты будут весьма ограничены. API на основе контроллеров были наиболее распространенными в течение долгого времени, но .NET 6 меняет эту ситуацию, предлагая новую возможность. 

Читать далее
Всего голосов 17: ↑16 и ↓1+17
Комментарии12

22 новых фичи C# — каким будет C# 11+

Время на прочтение26 мин
Количество просмотров25K

1. Полуавтоматические свойства и ключевое словоfield.
2. Модификатор уровня доступа file.
3. Первичные конструкторы для классов и структур.
4. Паттерн-матчинг для списков.
5. Атрибуты для Main в программах с top level statement.
6. Сырые строки без экранирования внутри строки для удобства работы с json, xml, html и регулярными выражениями.
7. Строковые литералы для UTF-8.
8. Паттерн-матчинг для Span<char>.
9. Перенос строк в выражениях интерполяции.
10. Возможность перегрузки операторов с проверкой на переполнение
11. Оператор побитового сдвига вправо без знака >>>.
12. Доступ к параметрам методов nameof.
13.nameof для членов экземпляров.
14. Ключевое слово required для обязательно инициализируемых свойств и полей.
15. Автоматическая инициализация свойств структур значением по-умолчанию.
16. generic-атрибуты.
17. локальные переменные и параметры только для чтения.
18. Кэширование делегатов при использовании method group для статических методов.
19. Поля с значением хранящимся по ссылке.
20.params Span<T>/params ReadOnlySpan<T>/params IEnumerable<T> в объявлении методов чтобы избежать лишних неявных созданий массива в куче и копирований коллекций.
21. Удаление оператора проверки параметров на null !!.
22. Предупреждения для имен типов полностью в нижнем регистре.

Внутри — разбор каждой фичи и сценарии применения.

Читать далее
Всего голосов 43: ↑43 и ↓0+43
Комментарии25

Собеседование за рубежом. Часть первая: резюме и интервью с эйчаром

Время на прочтение7 мин
Количество просмотров17K

Мы GeekFactor. Вместе с GetMentor мы помогаем разработчикам найти работу за границей, а компаниям подбираем подходящих кандидатов.

Главные этапы в собеседовании зарубеж — подача резюме, system design interview, coding interview и culture fit interview. На что обратить внимание и как готовиться, мы расскажем в двух статьях. 

В первой мы поговорим о том, из чего состоит собеседование за рубежом, как составлять резюме и что нужно помнить, когда проходишь screening interview — разговор с эйчаром. Дополнительно обсудим, есть ли разница между CV и резюме, можно ли переехать джуну за 30, и как зарубежные компании смотрят на опыт в аутсорсе. 

Читать далее
Всего голосов 14: ↑10 и ↓4+7
Комментарии21

Вторая часть гайда по интервью за рубежом — Coding, System Design и Culture Fit

Время на прочтение8 мин
Количество просмотров8.2K

Мы GeekFactor. Вместе с GetMentor мы помогаем разработчикам найти работу за границей, а компаниям подбираем подходящих кандидатов.

Главные этапы в собеседовании зарубеж — подача резюме, system design interview, coding interview и culture fit interview. На что обратить внимание и как готовиться, мы рассказываем в двух статьях. 

В первой части мы поговорили о том, из чего состоит собеседование за рубежом, как составлять резюме и что нужно помнить, когда проходишь screening interview — разговор с эйчаром. В этой — раскроем подробнее тему coding interview, culture fit interview и system design interview.

Примечание: да, с текущими событиями найти работу с релокейтом стало сложнее. Но советы остаются актуальны — мы проверили.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Проблемы работы с Entity Framework на Blazor Server

Время на прочтение4 мин
Количество просмотров5.5K

Blazor Server - технология для простого написания Web-систем на платформе .Net. Для удобной работы с базами данных была создана библиотека Entity Framework, которая позволяет работать программисту напрямую с моделями, не задумываясь об SQL-запросах. Но всё ли так хорошо, если соединить Blazor и EF?

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии10

Запуск фоновых задач в asp.net core

Время на прочтение10 мин
Количество просмотров42K

Небольшой обзор стандартных средств запуска бэкграунд-задач в аспнет приложениях — что есть, чем отличается, как пользоваться. Встроенный механизм запуска таких задач строится вокруг интерфейса IHostedService и метода-расширения для IServiceCollection — AddHostedService. Но есть несколько способов реализовать фоновые задачи через этот механизм (и ещё несколько неочевидных моментов поведения этого механизма).

Читать далее
Всего голосов 15: ↑14 и ↓1+14
Комментарии10

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность