C# 1001 notes @csharp_1001_notes Channel on Telegram

C# 1001 notes

@csharp_1001_notes


Регулярные короткие заметки по C# и .NET.

Просто о сложном для каждого.

admin - @notxxx1

C# 1001 notes (Russian)

Добро пожаловать в Telegram-канал "C# 1001 notes"! Этот канал предлагает регулярные короткие заметки по языку программирования C# и платформе .NET. Если вам интересны темы разработки на C# и вы хотите узнавать что-то новое каждый день, то этот канал - именно то, что вам нужно.

Администратор канала - @notxxx1, готов делиться своими знаниями и опытом с каждым подписчиком. Здесь вы найдете информацию как для новичков, так и для опытных разработчиков. Мы объясняем сложные темы простым языком, чтобы каждый мог понять и улучшить свои навыки в программировании.

Присоединяйтесь к нам, чтобы быть в курсе всех новостей и обновлений в мире C#! Подписывайтесь на наш канал и получайте дозу полезной информации каждый день. До встречи в "C# 1001 notes"!

C# 1001 notes

09 Nov, 12:15


🌎 Unity с нуля Урок 6 Создаем земную поверхность terrain

Видео
Полный курс

@csharp_1001_notes

C# 1001 notes

09 Nov, 11:13


Начинай писать код как профессионал уже! Приходи на открытый урок по поведенческим паттернам проектирования в C#! 🔥
 
Ты узнаешь фишки для создания гибкого, поддерживаемого и эффективного кода!
 
В чем ценность этого урока:
1️⃣Самые актуальные поведенческие паттерны в C# за 60 минут. 
2️⃣ Научишься эффективной их реализации, используя особенности языка. 
3️⃣ Сможешь  применять полученные знания на практике, улучшая архитектуру своих проектов на изи. 

Будет очень полезно, чтобы: Освоить  ключевые принципы проектирования программного обеспечения.  Повысить свой уровень владения C#.  Получить ответы на все интересующие вопросы от эксперта. 

Места теперь ограничены! 😱 Регистрируйся прямо сейчас! ➡️ https://clck.ru/3ET5Y5?erid=LjN8KA5Mt 

P.S.  Зарегистрируйся до 11.12.2024 и получи бонус - Нестандартные возможности LINQ, которые используют профессионалы!

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

C# 1001 notes

08 Nov, 08:54


🖥 Эта статья описывает методы повышения продуктивности при создании CRUD API в .NET!

🌟 Автор делится практическими советами, такими как использование шаблонов кода и автоматизация рутинных задач, чтобы ускорить разработку и упростить поддержку кода. Применение этих подходов позволяет сократить объем ручного кода и повысить читаемость.

🔗 Ссылка: *клик*

@csharp_ci

C# 1001 notes

06 Nov, 10:01


🖥 Изучение кортежей в C# как альтернативы анонимным типам!

🌟 Узнайте, как использовать кортежи в C# для группировки элементов, возврата нескольких значений и улучшения читаемости кода. Изучите примеры, ключевые отличия от анонимных типов и практические задания на легком, среднем и сложном уровнях!

🔗 Ссылка: *клик*

@csharp_1001_notes

C# 1001 notes

06 Nov, 08:01


ХОЧЕШЬ ПОВЫСИТЬ ГРЕЙД В 2024 ГОДУ? 🚀

Чтобы стать Senior C# разработчиком сегодня, нужно не только знать язык программирования и фреймворки. Нужно уметь строить гибкую архитектуру приложения, которую легко тестировать и менять под задачи бизнеса. Стань экспертом в построении гибкой архитектуры приложения!

👉 Стартуем 11 ноября.

Курс ведет действующий архитектор и Principal Engineer Кирилл Ветчинкин.

Ты научишься:
Разбивать приложение на слои в соответствии с Clean Architecture
Формировать Domain Model и применять тактические паттерны DDD
Реализовывать Use Case как Command/Query
Делать синхронные и асинхронные интеграции, не загрязняя ядро приложения
Писать 3 вида тестов для разных слоев приложения

Полная программа ТУТ 👉 https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2Vtzqvdy4F7&utm_campaign=2

А главное — ты с нуля разработаешь и запустишь микросервис, который максимально приближен к реальности "Диспетчеризация заказов на курьеров". Это будет крутым проектом в портфолио или основой для рабочих задач.

А еще:
Проверим все домашки
Поддержим в чате
Проведем живые разборы
Ответим на все вопросы

📕 Сертификат об участии по итогам прохождения курса.

🔥 Не откладывай свой рост на потом: https://microarch.ru/courses/ddd?utm_source=posev&utm_medium=erid:2Vtzqvdy4F7&utm_campaign=2

Реклама. ИП Ветчинкин К.Е. ИНН: 773376451099 Erid: 2Vtzqvdy4F7

C# 1001 notes

05 Nov, 12:00


🖥 Эта статья рассматривает использование паттерна Result для обработки ошибок в .NET!

💡 Автор объясняет недостатки традиционного подхода с использованием исключений, отмечая его сложность и неявность. Паттерн Result позволяет более функционально и явно управлять ошибками, что улучшает читаемость кода и тестируемость. В статье приводится пример кода, а также создаются классы Result и Error для документирования ошибок, что делает возможные ошибки явными для разработчиков.

🔗 Ссылка: *клик*

@csharp_ci

C# 1001 notes

29 Oct, 18:41


🖥 Эта статья рассказывает о продвинутых методах присваивания значений в кортежах в языке C#. В частности, рассматриваются паттерны распаковки кортежей с использованием деконструкции для более удобного доступа к элементам, а также способы работы с кортежами для создания удобочитаемого и безопасного кода

🔗 Ссылка: *клик*

@csharp_1001_notes

C# 1001 notes

27 Oct, 10:05


⚡️ Уроки Unity с нуля.Урок 3: Работа с инструментами unity

Видео
Урок 2
Урок 1
Полный курс C# 2024

@csharp_1001_notes

C# 1001 notes

24 Oct, 13:54


⚡️ Уроки Unity с нуля. Урок 2 Знакомство с интерфейсом

▪️Урок2
▪️Урок1
▪️Полный курс

@csharp_1001_notes

C# 1001 notes

23 Oct, 09:33


🖥 Wexflow — это мощная платформа для автоматизации рабочих процессов с открытым исходным кодом. Она позволяет автоматизировать задачи, такие как обработка файлов, отправка уведомлений, резервное копирование, интеграция с различными API и многое другое

🌟 Wexflow обладает рядом функций, включая интеграцию с базами данных и облачными сервисами, поддержку различных форматов данных и протоколов, а также собственным приложением для Android!

🔐 Лицензия: MIT

🖥 Github

@csharp_1001_notes

C# 1001 notes

22 Oct, 17:06


🖥 Проверка пагинации в .NET: с Entity Framework и без него

💡 Пагинация относится к процессу разделения большого набора данных на более мелкие, управляемые фрагменты, которые могут быть извлечены и отображены пошагово. Этот метод имеет важное значение для повышения производительности приложения и удобства пользователя, особенно при работе с большими наборами данных

🔗 Читать: *клик*

@csharp_1001_notes

C# 1001 notes

18 Oct, 12:34


🖥 Новый способ создания блокировок в .NET 9: Lock(). Это упрощает код и избавляет от необходимости вручную управлять блокировками в finally

@csharp_1001_notes

C# 1001 notes

18 Oct, 09:42


Всем привет!
Наша международная продуктовая компания в сфере IoT ищет опытного C# разработчика для работы над проектом по созданию 3D digital twins для промышленных компаний. Мы разрабатываем передовые платформы для управления и мониторинга сетей, интегрирующие сбор данных в реальном времени, автоматизацию и аналитику. Работа полностью удалённая (не из РФ и РБ).

🛠 Стек: C#, .NET Core, REST API, WebSockets, MongoDB, SNMP
💼 Зарплата: $7000-9000
👥 Команда: небольшая и плоская, опытные разработчики со стажем 10+ лет.

Требуется опыт глубокой работы с протоколом SNMP и кроссплатформенной разработкой (Windows, Linux).

Пока на практике, нам встречаются либо опытные C# разработчики без опыта SNMP, либо сильные специалисты со знанием SNMP, но с другим стэком технологий (обычно С++, Java).
Если вы имеете глубокие знания и обширный опыт с C# и SNMP - будем очень рады познакомиться и пообщаться. Если вы знаете таких специалистов - будем признательны за рекомендацию, готовы обсудить бонус в случае найма такого специалиста к нам в команду

Если интересно — пишите в личные сообщения @dariapeopleverywhere!

C# 1001 notes

17 Oct, 09:25


🖥 Создание GraphQL-клиента на .NET с использованием Rider и StrawberryShake может оказаться сложной задачей без хорошего руководства.

Этот материал будет полезен тем, кто испытывает трудности с определением схем, написанием запросов и интеграцией GraphQL в приложения на .NET.

Далее мы рассмотрим поэтапный процесс настройки среды разработки, определения схем, генерации клиентского кода и интеграции всех компонентов в проект.

Для начала следует ознакомиться с плагином GraphQL в Rider и фреймворком StrawberryShake.

атем следуйте шагам по настройке, описанным ниже.

📌 Подробнее

@csharp_1001_notes

C# 1001 notes

14 Oct, 08:50


openai-dotnet — библиотека, которая предоставляет .NET SDK для работы с OpenAI API. Она позволяет разработчикам легко интегрировать модели OpenAI в приложения, написанные на языке C# и других языках платформы .NET

🌟 Библиотека поддерживает взаимодействие с различными возможностями OpenAI, такими как GPT и другие инструменты, предлагаемые через их API

🔐 Лицензия: MIT

▪️Github

@csharp_1001_notes

C# 1001 notes

12 Oct, 09:42


🖥 Включение функций без повторного развёртывания приложения

❗️ Используйте Feature Flags!

💡 Флаги функций в .NET позволяют динамически включать или отключать определённые функциональные возможности приложения во время выполнения, что упрощает управление поведением системы без необходимости развёртывания новой версии.

🔍 Основные концепции:

🌟 Флаги функций: Переключатели, управляющие включением или отключением определённых функций

🌟 Управление флагами: В .NET 8 появился встроенный API для управления флагами

🌟 Постепенный запуск: Позволяет запускать новые функции для ограниченного числа пользователей, а затем включать для всех

🌟 Источники конфигурации: Флаги можно настраивать через appsettings.json, Azure App Configuration или внешние сервисы

🌟 Фильтры функций: Условия для активации флагов (например, на основе ролей пользователей или окружения)


💡 Пример: Вы можете включить новую функцию только для 10% пользователей и анализировать, как они реагируют на изменения, прежде чем развернуть её глобально

@csharp_1001_notes

C# 1001 notes

10 Oct, 15:32


🖥 UUID (Guid в C#) широко используются в качестве уникальных идентификаторов в базах данных. UUID являются случайными, что делает их популярными в распределенных системах

❗️ Однако у UUID есть некоторые недостатки:

🌟 UUID замедляют вставки в базу данных. Каждая вставка должна обновлять кластеризованный индекс, дерево B+. Поскольку UUID являются случайными, это дорогостоящая операция, так как она требует повторной балансировки дерева. Фрагментация индекса также высока (это плохо)

🌟 Более высокие затраты на хранение. Длина UUID составляет 128 бит, а если хранить его в виде строки в удобном для чтения формате, то он становится еще больше

💡 Эти недостатки можно исправить с ULID. Он также 128-битный, поэтому совместим с UUID. Однако, в отличие от UUID, ULID можно сортировать. Первые 40 бит ULID представляют собой временную метку, что делает ULID монотонно увеличивающимися.

🌟 Существует пакет .NET, реализующий спецификацию ULID, поэтому вы можете начать использовать его немедленно!

@csharp_ci

C# 1001 notes

09 Oct, 10:11


🖥 А вы знали, что INumber<T> — это встроенный способ ограничить дженерики только числовыми типами?

🌟 Этот способ появился довольно давно, начиная с dotnet 7!

@csharp_1001_notes

C# 1001 notes

04 Oct, 10:10


🖥 Serilog — Это библиотека для структурированного логирования, которая позволяет гибко настраивать вывод логов в разных форматах (текст, JSON и др.). Serilog поддерживает множество синков (каналов для записи логов), таких как консоль, файлы, базы данных и различные облачные сервисы. Библиотека упрощает мониторинг и отладку приложений, позволяя анализировать лог-файлы для выявления ошибок и потенциальных проблем

🌟 Если вам нужно легкое и настраиваемое логирование в .NET проектах, Serilog будет отличным выбором

🔐 Лицензия: Apache 2.0

▪️Github

@csharp_1001_notes

C# 1001 notes

03 Oct, 11:02


🖥 Малоизвестная функция C#: Caller Information

❗️ Функциональность Caller Information позволяет передавать в метод информацию о вызывающем его коде, например:

- Имя файла
- Номер строки в файле
- Имя вызывающего метода

🌟 Эта особенность может быть крайне полезной для логирования, отладки и тестирования кода. Хотя она существует с версии C# 5.0, о ней часто забывают.

Как это работает?

💡 Для получения информации о вызывающем методе используются специальные атрибуты:

🌟 [CallerFilePath] — возвращает полный путь к исходному файлу, в котором был вызван метод.
🌟 [CallerLineNumber] — возвращает номер строки в файле, где был вызван метод.
🌟 [CallerMemberName] — возвращает имя метода или свойства, из которого был вызван метод.

🔍 Пример использования

Предположим, у нас есть метод Log, который записывает сообщение в консоль вместе с информацией о вызове:


using System;
using System.Runtime.CompilerServices;

class Program
{
static void Main()
{
TestMethod();
}

static void TestMethod()
{
Log("Это тестовое сообщение");
}

static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = 0,
[CallerMemberName] string memberName = "")
{
Console.WriteLine($"Сообщение: {message}");
Console.WriteLine($"Файл: {filePath}");
Console.WriteLine($"Метод: {memberName}");
Console.WriteLine($"Строка: {lineNumber}");
}
}


🔍 Вывод:


Файл: C:\Users\...\Program.cs
Метод: TestMethod
Строка: 11


💡 Применение:

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

@csharp_1001_notes

C# 1001 notes

26 Sep, 13:22


Обновление в .NET Smart Components

.NET Smart Components теперь доступны на GitHub! Эти AI-ориентированные компоненты облегчают интеграцию умных функций в ваши приложения. Ознакомьтесь с кодом, документацией и примерами, чтобы начать использовать AI в своих проектах, и делитесь своими идеями на GitHub.

Подробности: https://devblogs.microsoft.com/dotnet/join-the-dotnet-smart-components-ecosystem/

#en

C# 1001 notes

25 Sep, 12:05


⚡️ Сможет ли Blazor превзойти React/Angular?

Очень интересное обсуждение на Reddit от новичка в .NET-разработке. Комментаторы считают, что Blazor учить легче, но в то же время он не развивается так быстро как популярные JavaScript-фреймворки.

Делитесь своими мыслями в комментариях

@csharp_1001_notes

C# 1001 notes

20 Sep, 09:50


Awesome-Avalonia PRs Welcome

Коллекция полезных библиотек и инструментов для проекта Avalonia включает в себя множество полезных ресурсов.

Если вы работаете с кроссплатформенным XAML-фреймворком для экосистемы .NET, то репозиторий awesome-avalonia заслуживает вашего внимания. Он содержит множество полезной информации и будет отличным дополнением к вашим закладкам.

GitHub

C# 1001 notes

19 Sep, 09:38


💁💁 LXC vs. Docker: что использовать?

В современных условиях разработки программного обеспечения технология контейнеризации стала ключевым инструментом для разработчиков, стремящихся повысить эффективность и обеспечить согласованность в различных средах. Среди различных контейнерных технологий, доступных сегодня, контейнеры Linux (LXC) и Docker являются двумя наиболее популярными вариантами.
В статье рассматриваются виртуальные среды LXC и Docker и их функциональные возможности.

Продолжение тут

#почитать

C# 1001 notes

17 Sep, 14:04


🏬 Разработка масштабируемого веб-API для приложения e-commerce с использованием .NET и MongoDB: пошаговый гайд

Гайд проведет вас через ключевые компоненты и принципы проектирования чистой архитектуры .NET, интеграцию MongoDB и различные функции и возможности приложения электронной коммерции.

👉 Читать

6,559

subscribers

258

photos

2

videos