Последние посты

НеСерьезный шарпист
11 июл., 09:00
Знакомый создал бота @booster_tbot, для прохождения мок-собесов бесплатно, а вопросы основаны на основе анализа практически трёхсот собеседований. Так что это не классические списки одних и тех же топ 100 вопросов по технологии X, которые все щитпостят из года в год на всяких хабрах, а действительно нормальный инструмент для подготовки. Пользуйтесь 🔥А еще он у себя на канале @dotnetdad сейчас разыгрывает книжку по микросервисам, подарит первому, кто на синька пройдет 😱TelegramКарьерный бустер | БотЛучший инструмент для буста скиллов. Основан на статистических данных. Канал — @booster_career
НеСерьезный шарпист
30 июн. 2025 г., 11:39изменён
Всем, привет! Мы сейчас начинаем отбор докладов на осеннюю конфу "Стачка" в Питере.Если у вас есть идея интересного доклада - подавайтесь или пишите мне в лс. Это может быть: 🟢живой кейс из продакшена, с которым вы реально справились (или нет), 🟢архитектурные решения, которые сработали в бою, 🟢опыт миграции, оптимизации, тонкой настройки .NET/ASP .NET/Core/EF/etc, 🟢или просто тема, которая вас драйвит, и вы хотите рассказать о ней глубже.Буду читать все заявки на .NET секцию, помогу докрутить идею и выстроить подачу, если это нужно. Если вы никогда не выступали — не страшно, наоборот, хочется видеть новых спикеров. Поддержка будет на всех этапах.📌https://nastachku.ru/ 📆 Конфа пройд
НеСерьезный шарпист
28 июн. 2025 г., 15:32
Столкнулся с тем, что, как выяснилось, не всем очевидно для чего нужен ValueTask и когда его стоит использовать. Что ж 🤨ValueTask<T> - это структура-обертка, которую стоит использовать вместо Task<T> в тех случаях, когда результат может быть получен синхронно, что позволит избежать лишней аллокации объекта Task в куче. Однако ValueTask не должен использоваться в качестве возвращаемого значения во всех под ряд методах, т.к. это может привести к проблемам с производительностью.НЕ используйте ValueTask<T>, если выполняются хотябы одно условие: ❌ Метод всегда выполняется асинхронно. ❌ Метод объявлен как async (всегда будет все равно создаваться AsyncStateMachine, поэтому ValueTask будет бессмысленен). ❌ Метод редко вызывается — выигрыш от избежания
НеСерьезный шарпист
5 июн. 2025 г., 09:21

НеСерьезный шарпист
24 мая 2025 г., 16:46
переслано из @dotnetdad
Давно хотел сделать розыгрыш, и вот, кажется, время настало 🥰Не надо никуда ничего скидывать, на кого-то ещё подписываться, просто кликайте одну кнопку и принимайте участие в розыгрыше пяти книг, которые включены в мой личный топ полезнейших книг.1. Библия .NET разработчика — "CLR via C#" Джеффри Рихтер2. Шикарнейшая литература по построению приложений — "Высоконагруженные приложения" Мартин Клеппман3. Три экземпляра "Микросервисы" Крис Ричардсон. Куда сейчас без микросервисов?Дата подведения итогов — 13.06.2025 12:00


НеСерьезный шарпист
23 мая 2025 г., 17:41изменён
👩💻 Когда в C# 12 появились primary constructors (первичные конструкторы класс/структур), то я почему-то думал, что параметры данного сахара разворачиваются в приватные ридонли поля, для обеспечения иммутабельности. Однако по какой-то причине авторы ушли в другую сторону, и это теперь даже не поля))Да, в ранних версиях предложения первичного конструктора, он должен был работать так же, как в record типах, но генерирующим приватные поля вместо открытого свойства. Однако во время разработки команда C# решила изменить поведение. И имеем следующее, что параметры первичного конструктора — это просто переменные, как в обычном конструкторе, но они оказываются в области видимости всего типа. То есть по факту данные параметры не влияют на состояние объекта и мы не можем, например, обратиться к ним через this, это просто не скомпилируется.И вроде бы кажется,
НеСерьезный шарпист
21 мая 2025 г., 08:24
Вечером 29 мая состоится трансляция питерского .NET-митапа от SpbDotNet и AltenarЗрители онлайна смогут задавать вопросы спикерам. Регистрируйтесь, чтобы не потерять ссылки на трансляции и получить доступ к записям.• В 19:00 (мск) Владимир Куропатка расскажет, как добиться высокой производительности и отказоустойчивости при использовании Serilog в проектах.• В 20:30 Константин Финагин покажет, как писать простые и наглядные юнит-тесты — без тонущих в ассертах простыней кода.Подробности о докладах и митапе — на странице регистрации. Увидимся в эфире!


НеСерьезный шарпист
25 февр. 2025 г., 14:33
переслано из @dotnetdad
Утечки памяти в .NET 🐒Слышал различные мнения на этот счёт и то, что это всё не утечки и их в дотнете не существует, но давайте посмотрим на определение из вики:Уте́чка па́мяти (англ. memory leak) — процесс неконтролируемого уменьшения объёма свободной оперативной или виртуальной памяти компьютера, связанный с ошибками в работающих программах, вовремя не освобождающих память от ненужных данныхИначе говоря простыми словами, утечка памяти — это сценарий, когда память не освободилась, а должна была. Давайте прикинем как такое возможно в дотнете на примере трёх не самых очевидных вариантов🥰1. Забытые подписки на события Пока у события есть подписчики оно не будет очищено сборщиком мусора. public class EventPublisher { public event EventHandler SomeEvent;public void RaiseEvent() { SomeEvent?.Invoke(); } }
НеСерьезный шарпист
6 февр. 2025 г., 21:03
переслано из @steponeit
В этом году я состою в Программном Комитете конференции Стачка и отвечаю за секцию C#Приглашаю СтепВанчиков выступить с годным контентомЕсли у вас только идея, пишите - доработаем и дойдём до докладаКонференция пройдёт в Ульяновске 18-19 апреля, участие оффлайнВся информация тут👇Информация спикерам: https://ul25.nastachku.ru/to-do-speaker-ul25 Регистрация: https://ul25.nastachku.ru/users-new Подача доклада: https://ul25.nastachku.ru/lectures-new
НеСерьезный шарпист
3 февр. 2025 г., 12:08
Привет, бедолаги! Если вы идете путем СИЛЬНЫХ 😎 и не хотите крутить опыт, я сейчас к себе на проект ищу стажера. К сожалению, во время стажировки удаленки нет, а данная позиция открыта в Уфе, поэтому актуально только для уфимцев (ну, либо вы хотите 3.5 месяца потусоваться в Уфе и походить там в офис:).Если вы не из Уфы, можете податься на стажерские позиции в других городах, в компании сейчас идет набор стажеров на весенний поток стажки.И, да, для отбора нужно сделать тестовое задание. Пока я получил 5 слабеньких решений и все. Потом после отбора на приватном канале сделаю видео с разбором основных ошибок, покажу, как следовало подойти к решению.Вакансия 👉 https://spb.hh.ru/vacancy/115482009Место, где оставлять заявку 👉 https://career.infotecs.ru/intern/


НеСерьезный шарпист
2 февр. 2025 г., 13:42
Антипаттерн Lazy LoadingLazy Loading является механизмом EF Core, с помощью которого неявно загружаются связанные сущности при первом обращении к их навигационным свойствам. Для того, чтобы EF Core мог использовать такой тип загрузки связанных данных, все навигационные свойства модели должны быть virtual. public class Library { public int Id { get; set; } public string Name { get; set; }public virtual ICollection<Book> Books { get; set; } }А также при конфигурировании контекста необходимо вызвать UseLazyLoadingProxies(), включив поддержку прокси. protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder .UseLazyLoadingProxies() // Включение прокси для Lazy Loading .UseNpgsql("Host=localhost;Database=mydb;"); }Теперь необязательно при вытягивании Library (context.Library.FirstOrDefault()) необязательно явно делать получение Books через Include
НеСерьезный шарпист
19 янв. 2025 г., 14:35
переслано из @steponeit
Большой ШарпизмНачинаем забирать 2025)Сидел на днях, и в голову пришла мысль - есть svo ремиксы, гачи ремиксы, даже рыбалка ремиксы...А айти ремиксов никто не завёзИ тогда я решил открыть этот жанр - бац, готов текст и сегодняшняя запись на студию Теперь можете послушать, что называется, с пылу жаруПрисылайте своим любимым айти блогерам, чтобы они тоже подключались к движухе и делали вещиДжависты будут повержены 💪
НеСерьезный шарпист
5 янв. 2025 г., 15:32
В .NET 8 были выпущены интересные изменения в библиотеке Microsoft.Extensions.Hosting, на которые многие почему-то не обратили внимания. Данная либа предоставляет возможности для создания фоновых задач в шаблоне ASP.NET приложения, а также для создания отдельных
НеСерьезный шарпист
30 дек. 2024 г., 17:15
В .NET 8 были выпущены интересные изменения в библиотеке Microsoft.Extensions.Hosting, на которые многие почему-то не обратили внимания.Данная либа предоставляет возможности для создания фоновых задач в шаблоне ASP.NET приложения, а также для создания отдельных Worker-сервисов без привязки к веб-серверу (что, например, хорошо подходит для создания микросервисов, работающих с очередью брокера сообщений).Приложение может содержать одну или несколько таких задач, реализующих IHostedService и регистрирующихся в контейнере внедрения зависимостей. Microsoft предоставляет готовую реализацию интерфейса IHostedService в виде базового абстрактного класса BackgroundService, предоставляет общую менимальную логику методов StartAsync() и StopAsync(), которая достаточно большинству фоновых задач. Чтобы использовать BackgroundService, необходимо унаследоваться от данного класса и реализуют
НеСерьезный шарпист
26 дек. 2024 г., 13:30
переслано из @dotnetdad
Ну что же, мы готовы анонсировать менторство до оффера без предоплаты 🥰Вы платите только по факту трудоустройства 100% от суммы оффера, которую можно разбить на несколько месяцев. Никаких штрафов, скрытых условий и мелкого шрифта, всё только по факту трудоустройства.Шах и мат скиллКоробке и гугл теориуму с менторами, которые сами не могут найти работу. У нас всего два ментора: я и @sanazarov_live — руководитель разработки бэкенда в биг-тех компании. Где-то ещё есть такие менторы? 🌟Пишите в ЛС — @mccalen, берём не всех подряд, но я с каждым обязательно созвонюсь лично и отвечу на все интересующие вопросы.@dotnetdad
НеСерьезный шарпист
23 дек. 2024 г., 14:58
Вызов асинхронных методов в синхронном кодеВ C# код, использующий асинхронность, должен следовать принципу: "async всё", то есть если есть асинхронный метод, его нужно вызывать в асинхронном контексте. Однако бывает возникают ситуации, когда нужно вызвать асинхронный метод из синхронного кода (например, в старом коде, в desktop UI-приложениях).Существуют несколько подходов для таких вызовов, рассмотрим основные из них:1. Task.Result и Task.Wait() Самый простой способ — использовать свойство Result или метод Wait(), чтобы блокировать выполнение до завершения асинхронной задачи. public int GetCountMethod() { var task = GetCountMethodAsync(); task.Wait()return task.Result; } или public int GetCountMethod() { var task = GetCountMethodAsync();
НеСерьезный шарпист
4 окт. 2024 г., 14:30изменён
SynchronizationContextЕсли упрощать и не вдаваться в точные определения SynchronizationContext в .NET позволяет передавать между потоками задачи (делегаты) на выполнение. В десктоп приложениях WinForms/WPF/UWP, например, все задачи, связанные с обновлением интерфейса, должны выполняться в основном Main потоке. Когда приложение запускается, оно автоматически создает контекст синхронизации для этого потока. Если выполнение кода уходит в фоновый поток, SynchronizationContext позволяет вернуться обратно к основному UI-потоку. При обращении к UI из другого фонового потока получим исключение. private void SomeWork() { SynchronizationContext context = SynchronizationContext.Current;Task.Run(() => { Thread.Sleep(1000);// Передача задачи на UI поток context.Post(() => { StatusLabel.Content = "Done!"; }, null); }); }
НеСерьезный шарпист
26 авг. 2024 г., 07:56
переслано из @csharpcommon

НеСерьезный шарпист
26 авг. 2024 г., 07:56изменён
Васап, товарищи шарписты?! Как я и говорил, сегодня начали розыгрыш 7 книг Марка Симана "Внедрение зависимостей в .NET" в честь старта нашего общего канала @csharpcommon.Целью канала является создание площадки для комьюнити C# разработчиков без какой-либо цензуры для популяризации шарпа, общения, созвонов с докладами, возможно в последствии даже проведения собственных митапов и конф 😎, также будем периодически разыгрывать качественную на наш взгляд литературу🥂.По условиям текущего розыгрыша все предельно просто, нужно быть подписанным на все 4 канала: мой, общий и каналы коллег (@steponeit, @dotnetdad)


НеСерьезный шарпист
25 авг. 2024 г., 14:23
Пара организационных моментов. По поводу рекламы на канале, реклама иногда будет появляться, т.к. буду продавать рекламные места за много деняг 🥂. Это позволит разыграть крутые книжки, пустить средства на развитие сообщества. Но реклама - это не рекомендация, за рекомендации мне никто не платит и, если я что-то советую (прямым текстом написано "рекомендую"), то это бесценно)По поводу вкусного (розыгрыш). Мы тут создали своместный канал @csharpcommon, где будем рассматривать различные новости индустрии, делать созвоны с докладами на тему шарпа/разработки, где будем также очень экспертно отвечать на все вопросы. По текущему состоянию понятно, что будет много рофло-контента 🤡, но если вас с такого не корежит, подписывайтесь. Наша цель сделать крутое сообщество .NET разработчиков. А, и, да, скоро будет розыгрыш книг Марка
