Библиотека шарписта | 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
Практический мануал по созданию базового приложения с распределенной архитектурой для обмена сообщениями в реальном времени. В качестве инструментария используется многоуровневый шаблон запуска, Abp Framework для инфраструктуры, SignalR для обмена данными между сервером и клиентом в реальном времени, и RabbitMQ в качестве шины распределенных событий.

https://proglib.io/w/358c3a38
Видеозапись доклада Алексея Голуб на .NET fwdays'20 про работу с деревьями выражений в C#, в ходе которого поднимались следующие вопросы:
– что такое дерево выражений;
– как скомпилировать код во время выполнения программы;
– как сделать рефлексию быстрее;
– как реализовать обобщенные операторы;
– как превратить доменный язык в дерево выражений;
– как утилизировать систему типов, чтобы сделать метапрограммирование безопасным;
– как перевести лямбду с одной речи в другую.

https://proglib.io/w/c9d53bdc
Необходимость генерировать новый тип класса во время выполнения программы может обусловлена ​​незнанием свойств вашего класса до выполнения, удовлетворением требований к производительности, необходимостью добавления функциональности в ваш новый тип и другим. Если такая задача возникнет, то можно обратиться к следующему мануалу: 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); получите практические советы о том, как эти знания могут быть применены в реальной разработке программного обеспечения.