C# 1001 notes
رفتن به کانال در Telegram
Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp
نمایش بیشتر6 612
مشترکین
+924 ساعت
+667 روز
+5630 روز
آرشیو پست ها
6 611
CI/CD Workflow: упрощенный гайд от ByteByteGo (Alex Xu)
CI/CD — это методология, которая позволяет автоматизировать процесс разработки и доставки ПО в продакшн.
Будь вы разработчиком, специалистом по DevOps, тестировщиком или занимаетесь любой современной ролью в ИТ, CI/CD пайплайны стали неотъемлемой частью процесса разработки.
#инфографика
6 611
🖥Различные методы размещения и развертывания Blazor WebAssembly
В области веб-разработки Blazor WebAssembly является революционным решением.
Он позволяет разработчикам создавать интерактивные веб-приложения на стороне клиента, используя
.NET и C#, а не JavaScript.
Это не только открывает новые возможности для веб-разработки, но и приводит к появлению новых методов размещения и развертывания этих приложений.
https://www.thetechplatform.com/post/different-methods-to-host-and-deploy-blazor-webassembly
@csharp_1001_notes6 611
🖥 SOAPHound - это инструмент для сбора данных
.NET, который собирает данные Active Directory по протоколу Active Directory Web Services (ADWS).
SOAPHound является альтернативой ряду инструментов безопасности с открытым исходным кодом, которые обычно используются для извлечения данных Active Directory через протокол LDAP.
SOAPHound способен извлекать ту же информацию без прямого взаимодействия с сервером LDAP.
Вместо этого LDAP-запросы оборачиваются в серию SOAP-сообщений, которые отправляются на сервер ADWS с помощью канала связи NET TCP Binding.
Затем сервер ADWS разворачивает LDAP-запросы и направляет их на LDAP-сервер, работающий на том же контроллере домена.
В результате LDAP-трафик не может быть обнаружен обычными средствами мониторинга.
• Github
@csharp_1001_notes6 611
С чего начать изучение работы с RabbitMQ?
С бесплатного практического урока «Очереди сообщений и протокол AMQP» от OTUS.
На вебинаре разберём:
- возможности протокола AMQP;
- как подключаться к брокеру из вашего языка программирования;
- как отправить и принять сообщение;
- как организовать простейший RPC-сервис.
Встречаемся 6 февраля в 20:00 мск в рамках курса «RabbitMQ для разработчиков и администраторов». Доступна рассрочка на обучение!
Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок: https://otus.pw/Cs31/?erid=LjN8KVxQX
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 611
Простой способ для генерации классов C# из данных JSON/XML! 🤖🔥
В Visual Studio:
1/ Скопируйте содержимое
JSON/XML.
2/ В Visual Studio нажмите на Edit -> Paste Special -> Paste JSON as classes (или XML).
3/ Вот и все!
@csharp_1001_notes6 611
🖥Делегирующие обработчики - это как промежуточное программное обеспечение (middleware) http://ASP.NET Core.
C помощью делегирующих обработчиков можно решить множество проблем:
- Протоколирование
- Трассировка
- Валидация
- Аутентификация
- Авторизация
https://dotnet.microsoft.com/en-us/apps/aspnet
@csharp_1001_notes
6 611
Как эффективно обрабатывать данные в высоконагруженных проектах?
Расскажет опытный эксперт на бесплатном практическом уроке «Асинхронная обработка данных и ее использование в высоконагруженных проектах» от OTUS.
На вебинаре разберём:
- применение асинхронной обработки;
- архитектуру прототипа;
- узкие места прототипа.
📅 Занятие пройдёт 15 февраля в 20:00 мск и будет приурочено к старту курса «Highload Architect». Доступна рассрочка на обучение!
🌐 Для бесплатного участия регистрируйтесь прямо сейчас: https://otus.pw/2sRP/?erid=LjN8K3dTm
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 611
🖥 Microsoft Office’s RTC (Real-Time Channel) migration to modern .NET
Блог о переходе Microsoft Office с RTC (Real-Time Channel) на современный .
NET!
Это было одно из самых первых применений SignalR в компании!
#dotnet #aspnetcore #signalr
https://devblogs.microsoft.com/dotnet/office-rtc-dotnet-migration/
@csharp_1001_notes6 611
👩💻 Открытый практический урок для разработчиков на С#
Спикер: Дмитрий Гурьянов — .NET разработчик в Bell Integrator
Тема: "Пишем свой API: gRPC"
На вебинаре вы:
✔️ познакомитесь с особенностями и преимуществами современного способа организации веб-служб на основе gRPC в ASP. NET;
✔️ поймете применимость данного подхода в микросервисной архитектуре;
✔️ разработаете тестовую службу и клиент для нее.
✔️ Встречаемся 1 февраля в 20:00 мск в рамках курса «C# ASP. NET Core разработчик». Доступна рассрочка на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись.
Пройти тест
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 611
Обработчики исключений с пользовательской фильтрацией в C# ⬇
Они позволяют нам добавлять условия в блоки catch, чтобы исключения не выводились только на основе типа исключения.
Я использую их лишь изредка, но предпочитаю их операторам if/else внутри блока catch.
@csharp_1001_notes
6 611
🖥 Введение в антипаттерн Generic Repository Pattern на C#
Generic Repository это антипаттерн. Не существует определенных правил каким должен быть интерфейс репозитория - это всецело зависит от предметной области.
Однако есть класс простых приложений, которые работают с данными одинаково. И когда нужно получить простой универсальный способ работы с данными - это единственный случай, когда использование обобщенного репозитория оправдано.
▪Читать подробно
@csharp_1001_notes
6 611
❗❓Как разработчику на С# не провалиться на собеседовании?
Расскажет опытный эксперт на бесплатном открытом уроке «Асинхронность и многопоточность в C#. Как избежать ошибок на собеседовании» от OTUS.
Асинхронность и многопоточность — одна из самых сложных тем в .NET, в которой довольно легко допустить ошибку. На собеседованиях любят задавать каверзные вопросы, которые мы подробно разберём на вебинаре.
📢Занятие пройдёт 23 января в 18:00 мск и будет приурочено к старту курса «C# Developer. Professional». После урока у вас будет возможность стать студентом программы по специальной цене и даже в рассрочку.
🔶Пройдите короткий тест, чтобы занять место на уроке и получить запись. 👉Пройти тест
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 611
Улучшение производительности JsonSerializer в .NET 8
В .
NET 8 делегаты быстрого пути сериализации используются во многих местах.
Посмотрите на цифры на скриншоте 🚀
https://github.com/dotnet/runtime/pull/78646
@csharp_1001_notes6 611
Как CAP-теорема помогает решить проблемы согласованности данных в микросервисной архитектуре современных приложений
Расскажет опытный эксперт на бесплатном практическом уроке «CAP-теорема и управление ожиданиями пользователей» от OTUS.
Разберём:
1. Введение в CAP-теорему
2. Технические ограничения и ожидания пользователей
3. Реальные кейсы и способы решения
Для кого:
Урок будет полезен для разработчиков, сисадминов, аналитиков, DevOps и архитекторов.
Результаты вебинара:
Поймете основные принципы теоремы и ее влияние на разработку приложений в распределенной среде, а также научитесь учитывать компромиссы между согласованностью, доступностью и устойчивостью данных в микросервисной архитектуре.
Для участия зарегистрируйтесь: https://otus.pw/2coO/?erid=LjN8JuiaZ
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 611
Aspir8 (aspire для Kubernetes) поддерживает создание файла docker compose из манифеста aspire!
https://prom3theu5.github.io/aspirational-manifests/getting-started.html
@csharp_1001_notes
6 611
Твои игры не замечают?
Хотел создать игру мечты, а остался с выгоранием и забагованным билдом?
Не все потеряно!
На бесплатном онлайн интенсиве, ты узнаешь:
🔹 Как продвигать свою игру без бюджета.
🔹 Где найти команду крутых разработчиков.
🔹 Что делать, чтобы в новом году открыть свою собственную игровую студию.
🎁 Каждый участник интенсива получит до 23 подарков, включая разбор твоей игры от топового геймдизайнера и много ассетов для игр.
Запишись бесплатно тут — @intensive_gamedev_bot
6 611
🖥 Вот быстрый и простой способ добавить вход и регистрацию в бэкенд
http://ASP.NET Core:
@csharp_1001_notes6 611
🖥 Несколько интересных способов создания PDF-файлов в .NET.
https://www.milanjovanovic.tech/blog/how-to-easily-create-pdf-documents-in-aspnetcore
@csharp_1001_notes
6 611
🖥 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 611
⚡️ Дорожная карта разработчиков .NET/C# в 2024 году для начинающих
https://uproger.com/dorozhnaya-karta-razrabotchikov-net-v-2024-godu-dlya-nachinayushhih/
@csharp_1001_notes
