C# 1001 notes
Kanalga Telegram’da o‘tish
Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp
Ko'proq ko'rsatish6 538
Obunachilar
-224 soatlar
-57 kunlar
-330 kunlar
Postlar arxiv
6 537
👩💻 Открытый практический урок для разработчиков на С#
Спикер: Дмитрий Гурьянов — .NET разработчик в Bell Integrator
Тема: "Пишем свой API: gRPC"
На вебинаре вы:
✔️ познакомитесь с особенностями и преимуществами современного способа организации веб-служб на основе gRPC в ASP. NET;
✔️ поймете применимость данного подхода в микросервисной архитектуре;
✔️ разработаете тестовую службу и клиент для нее.
✔️ Встречаемся 1 февраля в 20:00 мск в рамках курса «C# ASP. NET Core разработчик». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись.
Пройти тест
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 537
Обработчики исключений с пользовательской фильтрацией в C# ⬇
Они позволяют нам добавлять условия в блоки catch, чтобы исключения не выводились только на основе типа исключения.
Я использую их лишь изредка, но предпочитаю их операторам if/else внутри блока catch.
@csharp_1001_notes
6 537
🖥 Введение в антипаттерн Generic Repository Pattern на C#
Generic Repository это антипаттерн. Не существует определенных правил каким должен быть интерфейс репозитория - это всецело зависит от предметной области.
Однако есть класс простых приложений, которые работают с данными одинаково. И когда нужно получить простой универсальный способ работы с данными - это единственный случай, когда использование обобщенного репозитория оправдано.
▪Читать подробно
@csharp_1001_notes
6 537
❗❓Как разработчику на С# не провалиться на собеседовании?
Расскажет опытный эксперт на бесплатном открытом уроке «Асинхронность и многопоточность в C#. Как избежать ошибок на собеседовании» от OTUS.
Асинхронность и многопоточность — одна из самых сложных тем в .NET, в которой довольно легко допустить ошибку. На собеседованиях любят задавать каверзные вопросы, которые мы подробно разберём на вебинаре.
📢Занятие пройдёт 23 января в 18:00 мск и будет приурочено к старту курса «C# Developer. Professional». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку.
🔶Пройдите короткий тест, чтобы занять место на уроке и получить запись. 👉Пройти тест
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 537
Улучшение производительности JsonSerializer в .NET 8
В .
NET 8 делегаты быстрого пути сериализации используются во многих местах.
Посмотрите на цифры на скриншоте 🚀
https://github.com/dotnet/runtime/pull/78646
@csharp_1001_notes6 537
Как CAP-теорема помогает решить проблемы согласованности данных в микросервисной архитектуре современных приложений
Расскажет опытный эксперт на бесплатном практическом уроке «CAP-теорема и управление ожиданиями пользователей» от OTUS.
Разберём:
1. Введение в CAP-теорему
2. Технические ограничения и ожидания пользователей
3. Реальные кейсы и способы решения
Для кого:
Урок будет полезен для разработчиков, сисадминов, аналитиков, DevOps и архитекторов.
Результаты вебинара:
Поймете основные принципы теоремы и ее влияние на разработку приложений в распределенной среде, а также научитесь учитывать компромиссы между согласованностью, доступностью и устойчивостью данных в микросервисной архитектуре.
Для участия зарегистрируйтесь: https://otus.pw/2coO/?erid=LjN8JuiaZ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 537
Aspir8 (aspire для Kubernetes) поддерживает создание файла docker compose из манифеста aspire!
https://prom3theu5.github.io/aspirational-manifests/getting-started.html
@csharp_1001_notes
6 537
Твои игры не замечают?
Хотел создать игру мечты, а остался с выгоранием и забагованным билдом?
Не все потеряно!
На бесплатном онлайн интенсиве, ты узнаешь:
🔹 Как продвигать свою игру без бюджета.
🔹 Где найти команду крутых разработчиков.
🔹 Что делать, чтобы в новом году открыть свою собственную игровую студию.
🎁 Каждый участник интенсива получит до 23 подарков, включая разбор твоей игры от топового геймдизайнера и много ассетов для игр.
Запишись бесплатно тут — @intensive_gamedev_bot
6 537
🖥 Вот быстрый и простой способ добавить вход и регистрацию в бэкенд
http://ASP.NET Core:
@csharp_1001_notes6 537
🖥 Несколько интересных способов создания PDF-файлов в .NET.
https://www.milanjovanovic.tech/blog/how-to-easily-create-pdf-documents-in-aspnetcore
@csharp_1001_notes
6 537
🖥 CQRS — это стиль архитектуры, в котором операции чтения отделены от операций записи. Подход сформулировал Грег Янг на основе принципа CQS, предложенного Бертраном Мейером. Чаще всего (но не всегда) CQRS реализуется в ограниченных контекстах (bounded context) приложений, проектируемых на основе DDD. Одна из естественных причин развития CQRS — не симметричное распределение нагрузки и сложности бизнес-логики на read и write — подсистемы Большинство бизнес-правил и сложных проверок находится во write — подсистеме. При этом читают данные зачастую в разы чаще, чем изменяют.
Не смотря на простоту концепции, детали реализации CQRS могут значительно отличаться. И это именно тот случай, когда дьявол кроется в деталях.
Самая большое заблуждение о CQRS:
- Вам нужны отдельные базы данных для чтения и записи ❌.
Правда в том, что вы можете иметь одну базу данных при использовании CQRS.
Вот что на самом деле представляет собой CQRS:
https://www.milanjovanovic.tech/blog/cqrs-pattern-with-mediatr
@csharp_1001_notes
6 537
⚡️ Дорожная карта разработчиков .NET/C# в 2024 году для начинающих
https://uproger.com/dorozhnaya-karta-razrabotchikov-net-v-2024-godu-dlya-nachinayushhih/
@csharp_1001_notes
6 537
💡 Используете ли вы чистые SQL-запросы в Entity Framework?
EF Core и SQL
В EF8 чистые SQL-запросы могут возвращать любой тип без необходимости включать его в модель EF.
Можно запрашивать несопоставленные типы с помощью методов S
qlQuery и SqlQueryRaw.
Метод SqlQuery использует интерполяцию строк для параметризации запроса
, при этом вам не нужно создавать новые сущности в вашей модели данных.
Вот 4-минутное руководство по работе с запросами.
@csharp_1001_notes6 537
⚡️ Антипаттерны архитектуры
Откройте для себя распространенные антишаблоны архитектуры, узнайте, как их избегать и преодолевать "подводные камни" проектирования!
Антипаттерн (англ. anti-pattern) — это распространённый подход к решению класса часто встречающихся проблем, являющийся неэффективным, рискованным или непродуктивным. В отличие от шаблона проектирования, рассмотрение антипаттерна включает в себя как неправильное решение проблемы с его признаками и последствиями, так и выход из ситуации.
В этом проекте собраны ценные сведения, практические советы и примеры из реальных проектов для обучения и помощи в создании лучших программных архитектур и улучшать существующие.
▪Проект
▪Github
@csharp_1001_notes
6 537
🖥 Appcopier
Программа на C#, которая позволяет создавать резервные копии и восстанавливать наиболее важные параметры и настройки Windows в автономном режиме и локально.
▪ Github
@csharp_1001_notes
6 537
🖥 Интеграция генерации изображений OpenAI в приложение .NET
https://weblog.west-wind.com/posts/2023/Dec/21/Integrating-OpenAI-image-generation-into-your-NET-Application
@csharp_1001_notes
6 537
🖥 Как легко заблокировать нежелательных пользователей?
И как просто реализовать API с ограничением запросов?
Вы можете решить обе проблемы с помощью функции
RateLimitPartition.
Если вы используете .NET 7, вам не нужны сторонние библиотеки.
Все необходимые инструменты уже готовы для работы .
- Выберите алгоритм ограничения скорости
- Создайте политику ограничения скорости с разделением на части
- Примените ее к обратному прокси-серверу или определенным эндпоинтам.
Ограничение скорости по IP отлично подходит для неаутентифицированных пользователей.
Используйте правильный IP-адрес, если ваш API находится на обратном прокси.
Иначе вы можете ограничить скорость обратного прокси.
@csharp_1001_notes6 537
🖥 C# Language Design
Обсуждение дизайна языка: Если вы языковой гик или просто интересуетесь тем, как развивается
C#, обратите внимание на этот репозиторий!
https://github.com/dotnet/csharplang/
@csharp_1001_notes6 537
🚀 BenchmarkDotNet
BenchmarkDotNet поможет вам превратить методы в бенчмарки, отслеживать их производительность и делиться экспериментами по измерениям. Это не сложнее, чем писать модульные тесты!
Под капотом программы происходит много волшебства, которое гарантирует надежные и точные результаты благодаря статистическому движку
perfolizer.
BenchmarkDotNet защищает вас от многих ошибок бенчмаркинга и предупреждает, если что-то не так с кодом бенчмарка или полученными измерениями.
Результаты представлены в удобной для пользователя форме, которая подчеркивает все важные выводы о вашем эксперименте.
BenchmarkDotNet уже используется в 18700+ проектах GitHub, включая .NET Runtime, .NET Compiler, .NET Performance и многие другие.
▪Github
▪Почитать
@csharp_1001_notes6 537
erid: LjN8KZyGa
🦾Хардкорный тест по языку С🦾
📌Пройдите тест из 20 вопросов и проверьте, насколько вы готовы к обучению на углубленном курсе - «Программист С» от OTUS. Сможете сдать - пройдете на курс по спеццене!
⏰ Время прохождения теста ограничено 30 минут
👉ПРОЙТИ ТЕСТ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
