All the most useful things for a C# developer in one channel. For advertising: @proglib_adv Learn from us: https://proglib.io/w/b60af5a4 For feedback: @proglibrary_feeedback_bot RKN: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
This channel is part of the discussion
Библиотека шарписта | C#, F#, .NET, ASP.NET appears in 43 event pages on TGList🤩 F#: упрощённые иерархии интерфейсов с DIM Раньше при работе с C#-интерфейсами, где базовый слот закрыт через дефолтную реализацию интерфейсов, F# всё равно требовал явно реализовать оба интерфейса. Теперь достаточно реализовать только производный интерфейс. 🤩 Допустим, есть…
🦆 Duck typing в C# — почти как в TypeScript В TypeScript достаточно, чтобы у объекта был нужный метод: function foo(a: { Do(): void }) { a.Do(); } 🔜 В C# так напрямую нельзя: class A { public void Do() => Console.WriteLine("A.Do"); } class B { public void Do() =>…
📎 JsonSerializerOptions в каждом запросе это бомба замедленного действия Вы оптимизировали базу данных. Ничего не изменилось. Оптимизировали сетевые вызовы. Всё ещё медленно. Оказалось, приложение создаёт новый JsonSerializerOptions в каждом запросе. Это уничтожает встроенный…
📎 JsonSerializerOptions в каждом запросе это бомба замедленного действия Вы оптимизировали базу данных. Ничего не изменилось. Оптимизировали сетевые вызовы. Всё ещё медленно. Оказалось, приложение создаёт новый JsonSerializerOptions в каждом запросе. Это уничтожает встроенный…
🎹 Почему строки в .NET неизменяемы и что такое интернирование string в .NET нельзя изменить. Любая конкатенация, замена или обрезка создаёт новый объект. Благодаря этому строки безопасно использовать из нескольких потоков, удобно хранить в качестве ключей словаря, а оператор…
🧑💻 Сёрфить .NET без Blazor Можно ли запустить .NET-приложение в браузере без Blazor? Да, существуют несколько альтернативных методов, которые могут подойти для различных проектов. Один из таких методов — это WebAssembly. Эта технология позволяет компилировать .NET-код в…