Библиотека шарписта | C#, F#, .NET, ASP.NET
22.8K 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
Необходимость генерировать новый тип класса во время выполнения программы может обусловлена ​​незнанием свойств вашего класса до выполнения, удовлетворением требований к производительности, необходимостью добавления функциональности в ваш новый тип и другим. Если такая задача возникнет, то можно обратиться к следующему мануалу: https://proglib.io/w/0bc2a53e
Доступ к функции set осуществляется с использованием объекта класса z, значения которого передаются в качестве параметров a и b. Поскольку переменные c1 и c2 являются публичными членами класса z, то они доступны с помощью имени класса. В результате мы получаем 10 20 и 5 125.
Подборка из 15 видеоуроков, представляющих из себя реальные проекты на C# начального и экспертного уровня: https://proglib.io/w/e9b32576
В .NET Core 3 Microsoft представила ряд новых и полезных инструментов для диагностики приложений:
– dotnet-counters для просмотра счетчиков производительности;
– dotnet-dump для сбора и анализа дампов;
– dotnet-trace для захвата событий времени выполнения, эквивалентных событиям ETW и образцам стеков ЦП.

В этой статье автор проводит некоторый анализ производительности с помощью dotnet-trace и PerfView на Linux.

https://proglib.io/w/96e5f70e
​​💸 12 способов зарабатывать с помощью программного кода

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

https://proglib.io/sh/u7tJsmH5S4
​​👨‍💻 Как выбрать сервер для 1С

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

https://proglib.io/sh/bL4TeHxcQy
Серия статей, где автор представляет практическую точку зрения на два принципиально противоположных подхода в разработке программ: объектно-ориентированный и функциональный.

Часть 1
Часть 2
Часть 3
#вопросы_для_самопроверки

Что такое ковариантность и контвариантность делегата?

Представленный ниже делегат является ковариантным или контрвариантным?
delegate T Factory<out T>();
Ковариантность предполагает возможность возвращать из метода объект, тип которого является производным от типа, возвращаемого делегатом, а контрвариантность предполагает возможность передавать в метод объект, тип которого является более универсальным по отношению к типу параметра делегата.

Делегат, указанный в задании, являвется ковариантным.
Gui.cs — простой набор инструментов для разработки кросплатформенных консольных графических приложений для .NET, .NET Core и Mono.

https://github.com/migueldeicaza/gui.cs
​​Что бы там ни говорили, а данные – это не только аналитика. Кто-то должен эти данные найти, сохранить и подготовить для анализа. Теперь всему можно научиться на факультете Data Engineering онлайн-университета GeekBrains:

🛠 Автоматизировать сбор данных
🚠 Создать конвейер обработки информации
🏗 Разработать архитектуру хранения и мониторинга
👓 Подготовить результаты для аналитиков

При успешном прохождении курсов компания гарантирует не только диплом, но и трудоустройство. Список осваиваемых инструментов и отзывы учеников здесь: https://proglib.io/w/5508d80c
Konrad_Kokosa_Pro_NET_Memory_Management_For_Better_Code,_Performance.pdf
24.2 MB
Pro .NET Memory Management: For Better Code, Performance, and Scalability (2018)

Автор(ы): Konrad Kokosa

Книга научит понимать внутреннюю работу, подводные камни и методы управления памятью .NET, чтобы эффективно избегать проблемы производительности и масштабируемости вашего программного обеспечения.

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

В ходе чтения книги вы научитесь понимать теоретические основы автоматического управления памятью, использовать инструменты, связанные с управлением памятью .NET, для диагностики различных проблем; окунитесь в каждый аспект управления памятью .NET, включая подробное описание реализации сборки мусора (GC); получите практические советы о том, как эти знания могут быть применены в реальной разработке программного обеспечения.
​​#вопросы_для_самопроверки

Является ли нижеуказанный метод асинхронным? Если да, то почему? Если нет, то почему?

Какими признаками должен обладать асинхронный метод?
Указанный выше метод не является асинхронным, так как он не использует выражение await.

Признаки, которыми должен обладать асинхронный метод?
– в определении асинхронного метода используется модификатор async;
– асинхронный метод содержит одно или несколько выражений await;
– возвращаемыми типами асинхронного метода могут быть void, Task, Task<T> или ValueTask<T>.