Уютное сообщество C# разработчиков
2.52K subscribers
44 photos
53 links
Уютное сообщество C# - обучающий канал для разработчиков.

Полезные материалы по языку программирования.
Тесты на знание C#
Подсказки и трюки языка

@aldrson @viktorreh
Download Telegram
🔼 Spread element в C# 12: простой пример

Идея похожа на ... ( три точки) в JavaScript и используется для объединения коллекций.

💬 Уже пользовались?

#dotnet #csharp #tip by Dave Callan
👍18
💡Модификатор доступа к файлу в C#

Он был представлен в C# 11. Видимость созданного типа ограничена исходным файлом, в котором он объявлен.

Эта фича помогает избегать конфликтов имен при написании генераторов исходного кода.

💬 Как думаете, в каких кейсах его еще можно применить?

#dotnet #csharp #tip by Oleg Kyrylchuk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🍌1
🔥 Руководство по асинхронному программированию в .NET от David Fowler из команды ASP.NET

Асинхронное программирование существует уже несколько лет на .NET, но исторически у разработчиков возникали трудности в его «правильной» реализации.

С момента появления async/await в C# 5 асинхронное программирование стало мейнстримом. Современные фреймворки (например, ASP.NET Core) полностью асинхронны, и очень сложно избежать ключевого слова async при написании веб-сервисов.

В результате возникло много путаницы относительно лучших практик для async и того, как правильно его использовать. David Fowler представил рекомендации с примерами плохих и хороших паттернов написания асинхронного кода.

👉 GitHub
👍8
🤔FluentValidation: прекратите проверять правила при первой ошибке

По умолчанию он проверяет все правила и объединяет сообщения об ошибках. Более эффективно устанавливать CascadeMode либо на уровне класса, либо на уровне цепочки правил, особенно при использовании MustAsync и асинхронных операций.

#dotnet #csharp #tip
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👎31
🛠 Пример модульного теста C# с использованием паттерна Builder

💬 Кто использует паттерн Builder для настройки тестовых данных? В каких ситуациях оправданы дополнительные накладные расходы на обслуживание?

#dotnet #csharp #tip by Dave Callan
👍11
Channel name was changed to «Уютное сообщество C# разработчиков»
Head First C#

Автор:
Andrew Stellman
Год издания:
2021

#csharp #en

Скачать книгу
Algorithms and Data Structures for OOP With C#

Автор:
Theophilus Edet
Год издания:
2023

#csharp #en

Скачать книгу
👎2
🍄 Ботаника Мира это ваш гайд по здоровью и энергии без багов и таблеток!

🌿 Природа — это open-source код здоровья!
Травы, грибы и растения — это натуральные "библиотеки", которые могут помочь вашему телу работать как отлаженная система. Нужно только знать, какие "функции" использовать.

💡 Познакомьтесь с каналом "Ботаника Мира"!
Его автор, Ирина, уже 15 лет исследует "природный код", тестирует его на себе и делится только теми "решениями", которые действительно работают.

Подписывайтесь и начните использовать дары природы как эффективный инструмент для улучшения своей жизни:
👉 https://t.me/+XmAtGxOtkuQ3MTFi

Код здоровья уже написан природой. Осталось только подключиться!💻🌱
🗿4
Что такое ValueTask в C#?

ValueTask — это структура в .NET, которая используется для представления асинхронной операции. Она является альтернативой Task, но предназначена для более эффективного управления ресурсами в случаях, когда асинхронная операция может завершаться очень быстро, возможно даже синхронно.

Особенности использования ValueTask:

1️⃣Повторное ожидание запрещено: вызывать await несколько раз для одного и того же ValueTask нельзя, так как это может привести к неожиданным результатам.
Так делать нельзя:

ValueTask<int> task = GetValueAsync();
int value1 = await task;
int value2 = await task; // Ошибка


2️⃣Конвертация в Task: если требуется передать ValueTask в API, которое ожидает Task, можно вызвать метод .AsTask():
Task<int> task = GetValueAsync().AsTask();


3️⃣Когда использовать ValueTask:
Операция часто завершается синхронно.
Создание объекта Task может быть слишком накладным.
Вы пишете библиотеку с высокой производительностью.

4️⃣Когда НЕ использовать ValueTask:
Операция всегда асинхронна.
Производительность не является критически важной.
Приложение не оптимизировано под работу с ValueTask.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥21👌1
🆚 Go vs C#

Выбор языка — это всегда компромисс между производительностью, удобством и экосистемой. Давайте разберёмся, чем отличаются Go и C#.

Область применения

• Go: создан Google, ориентирован на простоту, скорость и параллельность. Отлично подходит для облачных сервисов, микросервисов и высоконагруженных систем.

• C#: язык Microsoft, мощный инструмент для корпоративных решений, игр (Unity) и десктопных приложений.

Кроссплатформенность

• Go: отлично компилируется под разные платформы без зависимостей.

• C#: поддерживает кроссплатформенность через .NET Core, но требует среды выполнения.

Система типов

• Go: строгая, но минималистичная. Отсутствует наследование, но есть интерфейсы.

• C#: мощная объектно-ориентированная система с поддержкой дженериков, интерфейсов и функционального программирования.

Где какой язык лучше

Выбирайте Go, если:

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

Выбирайте C#, если:

Разрабатываете десктопные приложения или сервисы под Windows.
Нужна мощная экосистема с продвинутыми библиотеками.
Создаёте игры на Unity.

👉 Подробное сравнение в статье

🤔 Книги для шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
👎10👍5🤡3
Разработка мобильных приложений
на C# для iOS и Android

Автор:
Вячеслав Черников
Год издания:
2020

#csharp #ru

Скачать книгу
👍3
Программирование на C# для
начинающих. Основные сведения

Автор: Васильев А.Н.
Дата выхода: 2023

#csharp #ru

Скачать книгу
👎4
🎲 Тест «Тест по C# (начальный и средний уровень)»
🖊 20 вопросов · 30 сек
👍93👌1
Refactoring with C#

Автор: Matt Eland
Дата выхода: 2023

#csharp #en

Скачать книгу
👍2
Metaprogramming in C#

Автор:
Einar Ingebrigtsen
Год издания: 2023

#csharp #en

Скачать книгу
👍1
Вакансия дня. Unity Developer (Middle)

#вакансия

Компания: Dankolab
Формат: Удалённо
Занятость: Full-time

Подробности в канале вакансий по C# и Unity: https://t.me/rabotacschap/290, подпишитесь заодно.

#remote #fulltime #middle
👍2
The C# Workshop

Авторы: Jason Hales, Almantas
Karpavicius, Mateus Viegas
Дата выхода: 2022

#csharp #en

Скачать книгу
💡 Начиная с C# 7 мы можем использовать символ _ для улучшения читаемости числовых литералов. Это особенно полезно для больших чисел и предназначено только для читаемости.

#dotnet #csharp #tip by Dave Callan
👍64