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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Immutable означает, что данные, хранящиеся в переменной, не могут быть изменены. При этом значение переменной может быть изменено посредством отказа от использования старых данных, которые могут быть изменены. Оригинальные данные остаются в памяти, а новые значения создаются вновь, в новой области памяти.

Примером является строковой тип String. Он не может быть изменён и при любых модификациях создаётся в результате новый экземпляр класса, все ссылки переприсваиваются, и сборщик мусора собирает старые экземпляры.
Михаил Зинченко (Team Lead в Wargaming) советует 5 книг об индустрии разработки видеоигр, при этом, первые две книги он советует прочесть и тем, кто никогда не занимался созданием каких-либо игр и не планирует делать этого в обозримом будущем, но если вы хоть немного причастны к ремеслу создания вымышленных интерактивных миров и почему-то не знакомы со столь чудесными произведениями — не мешкая, беритесь за чтение прямо сейчас.

https://proglib.io/w/375aefdb
Avalonia — фреймворк, позволяющий создавать кроссплатформенные приложения с графическим интерфейсом на основе XAML, предоставляющий гибкую систему стилей и поддерживающий широкий спектр операционных систем (Windows через .NET Framework и .NET Core, Linux через Xorg, macOS).

Немного материалов, связанных с Avalonia:
Github
Разработка кроссплатформенного десктопного приложения с помощью Avalonia
Реализация MVVM
System.Array.CopyTo() копирует не только сами элемента класса Array, но и объекты, которые связаны ссылками с элементами Array. Это всё называется «глубоким копированием».

System.Array.Clone() осуществляет так называемое «поверхностное копирование». При поверхностном копировании метод копирует только элементы объекта класса Array, и методу не важно, являются ли эти элементы ссылочными или значимыми типами. Копирования объектов, на которые ссылаются ссылочные типы, не происходит. Ссылки в новом объекте класса Array указывают на те же объекты, что и ссылки в оригинальном массиве Array.
Автор поднял редко обсуждаемые, но достаточно важные вопросы, связанные с глобализацией и локализацией в приложении ASP.NET. Он реализовал некоторую расширенную настройку, где сохранил выбранную информацию о языке в Cookie в браузере клиента.

https://proglib.io/w/96bf8af7
#вопросы_для_самопроверки

Объясните предназначение ключевого словоа stackalloc.
Ключевое слово stackalloc выделяет блок памяти в стеке. Выделенный в стеке блок памяти, который создает этот метод, автоматически удаляется по завершении выполнения метода. Вы не можете явным образом освободить память, выделенную stackalloc. Выделенный в стеке блок памяти не подвергается сборке мусора, поэтому его не нужно закреплять с помощью инструкции fixed.

При использовании stackalloc в среде CLR автоматически включается контроль переполнения буфера. Если буфер переполнен, процесс незамедлительно прерывается — это позволяет минимизировать риск исполнения вредоносного кода.
Что мотивирует вас откликнуться на вакансию?
❇️ Команда Библиотеки программиста ищет редактора-копирайтера для подготовки публикаций

Что делать:
— Подготовка нативных материалов по IT-тематике согласно контент-плану. Темы: программирование, информационная безопасность, Data Science и другие. Форматы материалов: лонгриды, обзоры, интервью, тесты, викторины и переводы англоязычных публикаций.
— Редакторская работа со структурой материала под ключ.
— Коммуникация с командой по внесению правок.
— Факт-чекинг, корректура написанных материалов.

Требования:
— Опыт написания материалов для IT-медиа, продукта или компании.
— Понимание целевой аудитории и SEO-оптимизации.
— Умение написания материалов, полезных как для читателя, так и заказчика.
— Знание английского языка для чтения и перевода иностранных источников.
— Приветствуется знание основ программирования и других направлений в IT-сфере.
— Готовность к выполнению тестового задания (оплачиваемое).
— Работа в команде с главным редактором.

Условия:
— Удаленная работа с соблюдением дедлайнов.
— Оплата 40-50 тыс.руб. в зависимости от опыта работы, выплаты два раза в месяц.

С кем связаться:
Откликнуться на вакансию: artem@proglib.io. Присылайте несколько предложений о себе и опыте работы, ссылки на примеры публикаций. Резюме присылать не нужно. В случае взаимного интереса, мы пришлем вам тестовое задание.
throw повторно выбрасывает исключение, которое было обнаружено, и сохраняет трассировку стека (путь к источнику исключения).

throw ex генерирует одно и то же исключение, но сбрасывает трассировку стека на этот метод.
Roger_Villela_Understanding_System_IO_for_NET_Core_3_Implementing.epub
7.2 MB
Understanding System.IO for .NET Core 3: Implementing Internal and Commercial Tools (2020)

Автор(ы): Roger Villela

Воспользуйтесь всеми преимуществами API .NET в System.IO для достижения фундаментальных операций ввода-вывода и создания более качественного программного обеспечения.

В данной книге вы начнете с основ создания собственной библиотеки .NET Core для System.IO. Вы узнаете назначение и преимущества настраиваемой кроссплатформенной библиотеки .NET Core вместе с архитектурой реализации компонентов настраиваемой библиотеки. В дальнейшем вы узнаете, как использовать .NET APIs System.IO для получения информации о ресурсах.

Вы познакомьтесь с внутренними принципами реализации System.IO BCL на платформе .NET Core; научитесь работать с механизмами System.IO, доступными через платформу .NET Core; создадите пользовательскую библиотеку, инкапсулирующую API-интерфейсы .NET из System.IO Design, и внедрите различные инструменты в System.IO.
Автор статьи описывает процесс модернизации проектов .NET Framework в .NET Core, .NET Standard и .NET 5, выпуск которых запланирован на этот год. Он также объясняет различия в уровне между платформами и последствия обновления для потребителей, разработчиков и сопровождающих.

https://proglib.io/w/d62f71d3