Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🤔 Как получить ассемблерный код, сгенерированный JIT для C#-метода?

Когда вы выполняете .NET-метод, JIT компилирует его в машинный код. Этот нативный код затем выполняется процессором.

Если у вас вдруг возникла необходимость исследовать сгенерированный ассемблерный код, сделать это можно несколькими способами:

Использовать переменную окружения DOTNET_JitDisasm (.NET 7+)
Использовать расширение для Visual Studio Disasmo
Использовать онлайн-сервис Sharplab, если под рукой нет других инструментов
👍133🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🤯🔥 Сеньор немного накосячил на проде...

Сам виноват, но быстро исправился и не потерял атмосферу!

#жиза
Please open Telegram to view this post
VIEW IN TELEGRAM
😁63👍32
🧰 При компиляции асинхронного C#-метода компилятор преобразует код, разбивая его на отдельные шаги. Потом, во время выполнения каждый шаг прерывается асинхронной операцией.

🤔 Когда она завершается, надо точно понимать, куда вернуть управление — в какой конкретно шаг. Поэтому все шаги нумеруются и компилятор очень строго следит за тем куда можно перейти. Такое решение называется state machine.

👨‍🎓 .NET/ASP.NET Core разработчик Родион Мостовой разбирается с понятием state machine для понимания принципа работы асинхронности в C#.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍32
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🏔 Эпикфейл: карьера катится к чертям

🤦‍♂️ У всех нас случались провалы в карьере, о которых не хочется распространяться. Неловкий момент на собеседовании, провал проекта из-за глупой ошибки, конфликт с начальством — такие ситуации хочется поскорее забыть. Однако часто именно они дают нам самые ценные уроки и закаляют как профессионалов.

📝 Поделитесь своей историей карьерного провала в нашем новом опросе и расскажите, к чему он привел в итоге. Быть может, эта ошибка позволила вам пересмотреть свой путь и выбрать более подходящую профессию? А может, вы сделали правильные выводы и сейчас добились успеха?

👉 Поделиться историей
1👍1
👩‍💻 Новый TerminalLogger в .NET 8 SDK

TerminalLogger предоставляет более подробный вывод, по сравнению со стандартным консольным логгером, однако он не включен по умолчанию.

📌 Для активации используйте опцию --tl (например, dotnet build --tl) или включите его по умолчанию с помощью переменной окружения MSBUILDTERMINALLOGGER, которая может быть установлена в значения true, false или auto.

📌 Новый TerminalLogger можно включить для текущего пользователя:

[Environment]::SetEnvironmentVariable("MSBUILDTERMINALLOGGER", "auto", "User")


В статье также приводится сравнение вывода между стандартным консольным логгером и TerminalLogger, подчеркивая такие преимущества, как группировка предупреждений и ошибок по целевой платформе, улучшенная читаемость благодаря цветам, гиперссылки для основного вывода сборки, отображение времени выполнения для каждой цели и более понятный статус окончательной сборки.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍202
Можно ли ускорить рефлексию в .NET? Да, с помощью легковесной генерации кода на основе деревьев выражений.

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

Это все еще в 100 раз медленнее, чем прямой доступ. Но в 10 раз быстрее, чем обычная рефлексия!

#dotnet #csharp #benchmarks #tip by Сергей Тепляков
12👍61💯1
🤦‍♂️ Есть такое слово «надо», которое отравляет многим жизнь. Надо получить вышку, надо жениться до стольких-то лет и родить детей до стольких-то, надо зарабатывать столько-то и еще много-много «надо».

❤️ Как с этим жить? Попробуйте вместо «надо» поставить «полезно». И если бесполезно — то не надо!

💬 А какое слово отравляет вашу жизнь? Поделитесь в комментариях 👇
👍12🥱74
👨‍💻 При разработке .NET-приложений почти всегда возникает необходимость включить в сборку сторонние ресурсы. Среди них могут быть данные любого типа: от исполняемых файлов до изображений и CSS-файлов.

Также часто возникает необходимость использовать разные ресурсы для разных целевых платформ. В статье автор разбирает два примера настройки MSBuild с разными ресурсами для каждой из выбранных операционных систем (Windows и Linux).

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

<EmbeddedResource Include="Images\linux.png" LogicalName="Images.Banner.png"/> 
<Content Include="run" CopyToOutputDirectory="PreserveNewest"/>
👍131
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🗄️ Базовые запросы SQL: получение записей из БД

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

🔗 Читать статью
🔗 Зеркало
17🥱9
🤔 Microsoft 365 «под капотом» переведут на Rust — соответствующие вакансии появились на официальном портале Microsoft

Рассматривать возможность переноса кода собственных проектов на современные типобезопасные языки в Microsoft начали не позднее 2019 г. В декабре 2019 г. CNews писал о том, что специалисты «Редмондского гиганта» разрабатывают новый язык программирования под кодовым названием Verona, который базируется на Rust.

Непосредственно с Rust в Microsoft начали экспериментировать летом 2019 г., а в ноябре того же года Adam Burch, программист из команды разработчиков Hyper-V, написал в корпоративном блоге о том, что ему поручили переписать на Rust некий низкоуровневый компонент Windows. Он также отметил, что опыт применения Rust для него оказался в целом положительным.

👉 Подробнее о новости
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔18👍4🥰42👏2
😱 Команда Microsoft представила утилиту sudo для Windows

🔐 Кто работал в *nix, знают, что sudo позволяет выполнять привилегированные команды обычным пользователям без необходимости ввода пароля суперпользователя.

⚒️ Sudo для Windows — это новый способ запуска команд с повышенными привилегиями прямо в терминале пользователя. Казалось бы, отличная новость, — операционная система развивается. Но в случае с Microsoft всегда в сообществе происходит переполох.

🤯 Мейнтейнеры оригинального проекта sudo вместе с сообществом решили перенести Word в OpenBSD, при этом повторить путь Microsoft:

🔸Не заботиться о совместимом поведении
🔸Не заботиться о товарных знаках или де-факто товарных знаках
🔸Не спрашивать первоначальные продуктовые команды, все ли в порядке
👍12🤔4😁2
👩‍💻 Советы и рекомендации по работе в Visual Studio

Erik Dahl, Microsoft MVP и автор на Pluralsight, делится опытом кастомизации Visual Studio, которая повышает его продуктивность. Может и вашу повысит 😉

Шрифты
Цвета и темы
Производительность разработчика
Условные точки останова
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥84
🥇 Спортивная мотивация и мотивация в IT, что общего?

Рассказываем, как использовать психологические инструменты из спорта, чтобы увеличить внутреннюю мотивацию и повысить продуктивность.

👉 Читать статью
👉 Зеркало
😁9👍1
🔐 AuthPermissions.AspNetCore (AuthP) — библиотека, которая предоставляет дополнительные функции авторизации и мультитенантности для приложений ASP.NET Core.

👩‍💻 GitHub
📦 NuGet
🛤 Roadmap
🔗 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍5🎉3