es
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

Ir al canal en Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Mostrar más

📈 Análisis del canal de Telegram C# (C Sharp) programming

El canal C# (C Sharp) programming (@csharp_ci) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 18 307 suscriptores, ocupando la posición 7 335 en la categoría Tecnologías y Aplicaciones y el puesto 36 870 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 18 307 suscriptores.

Según los últimos datos del 15 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -14, y en las últimas 24 horas de 0, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 19.46%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 7.27% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 3 563 visualizaciones. En el primer día suele acumular 1 331 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 0.
  • Intereses temáticos: El contenido se centra en temas clave como .net, api, логика, архитектура, string.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 16 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

18 307
Suscriptores
Sin datos24 horas
+87 días
-1430 días
Archivo de publicaciones
В этой статье рассматривается новый функционал ASP.NET Core Identity, добавляемый в .NET 8 в виде API, которые можно использо
В этой статье рассматривается новый функционал ASP.NET Core Identity, добавляемый в .NET 8 в виде API, которые можно использовать для выполнения базовых операций идентификации, таких как регистрация пользователей. Эти конечные точки служат удобными альтернативами "стандартному пользовательскому интерфейсу", который уже некоторое время доступен в ASP.NET Core Identity. В статье показно, как использовать эти API для взаимодействия с защищенными API в вашем приложении. 📌Читать @csharp_ci

Что выведет на экран код выше?
Anonymous voting

Пятничный C# квиз:
Foo foo = new Foo();
Bar bar = new Bar();
Baz baz = new Baz();

Console.WriteLine($"{foo.a}, {bar.a}, {baz.a}");


record struct  Foo(int a = 10);
struct Bar
{
    public Bar(int a = 10)
    {
        this.a = a;
    }

    public int a { get; }
}
record class Baz(int a = 10);

Ad-hoc-полиморфизм и паттерн type class в C# Что такое ad-hoc-полиморфизм, какие проблемы он решает и как вообще его реализовать, используя паттерн type class на языке программирования C#? ⬇️ ▍ Виды полиморфизмов Оказывается, что полиморфизмов есть, как минимум, три вида: 1. Параметрический. 2. Специальный (ad-hoc). 3. Полиморфизм подтипов. Начнём с параметрического полиморфизма. Допустим, у нас есть список элементов. Это может быть список целых чисел, чисел с плавающей запятой, строк, чего угодно. Теперь представьте метод GetHead(), который возвращает первый элемент из этого списка. Для него не важно, является ли возвращаемый элемент типом int, string, Apple или Orange. Его возвращаемый тип — это формальный типовой параметр, стоящий вместо T внутри IList<T>, и его реализация одинакова для всех типов: «вернуть первый элемент». interface IList<T> { T GetHead(); } В отличие от параметрического полиморфизма, специальный полиморфизм привязан к типу. В зависимости от него вызываются разные реализации метода. Перегрузка методов — один из примеров ad-hoc-полиморфизма. Например, можно иметь две версии метода, присоединяющего первый элемент ко второму — одну, которая принимает два целых числа и складывает их, и другую, которая принимает две строки и конкатенирует их. Вы знаете, что 2 + 3 = 5, но "2" + "3" = "23". class Appender { public int AppendItems(int a, int b) => a + b; public string AppendItems(string a, string b) => $"{a}{b}"; } При полиморфизме подтипов дочерние классы предоставляют разные реализации метода некоторого базового класса. В отличие от специального полиморфизма, где решение о том, какая реализация вызывается, принимается на этапе компиляции (раннее связывание), в полиморфизме подтипов оно принимается во время выполнения (позднее связывание). abstract class Animal { public abstract int GetMeatMass(); } class Cow : Animal { public override int GetMeatMass() => 20; } class Dog : Animal { public override int GetMeatMass() => 5; } Теперь давайте ближе рассмотрим ad-hoc-полиморфизм, два других рассматривать подробно в этот раз не будем. 📌 Читать дальше @csharp_ci

30.08 csharp_ci ⚡️Углубитесь в С++ разработку бесплатно! 5 сентября мы проведём практический открытый урок «Готовим рабочее м
30.08 csharp_ci ⚡️Углубитесь в С++ разработку бесплатно! 5 сентября мы проведём практический открытый урок «Готовим рабочее место: C++ + VSCode» для будущих С++ разработчиков. Занятие пройдёт в рамках курса «Специализация С++ Developer» от OTUS. На занятии мы: - с нуля настроим VS Code; - соберем и отладим небольшой C++ проект; - познакомимся с инструментами из экосистемы C++. В результате живого вебинара: - поймем, как собирается программа на C++ и что для этого делает IDE «под капотом»; - научимся настраивать VS Code, диагностировать и исправлять возникающие ошибки. Продолжить изучение С++ можно на онлайн-курсе доступном в рассрочку. 🔥Регистрируйтесь на вебинар прямо сейчас и ставьте событие в календарь, чтобы не пропустить начало: https://otus.pw/LWgT/ Нативная интеграция. Информация о продукте www.otus.ru

🖥 Изучаем базы данных Большой сборник теоретического материала по работе с базами данных. ▪основы: http://phpclub.ru/mysql/d
🖥 Изучаем базы данных Большой сборник теоретического материала по работе с базами данных.основы: http://phpclub.ru/mysql/doc/tutorial.htmlотношения между таблицами в БД: http://jtest.ru/bazyi-dannyix/sql-dlya-nachinayushhix-chast-3.htmlвнешние ключи: http://denis.in.ua/foreign-keys-in-mysql.htmбольшой учебник по SQL: http://www.pyramidin.narod.ru/rusql/index.htmsql канал с практичесикми задачами: @sqlhubсборник запросов на все случаи жизни (англ): http://www.artfulsoftware.com/infotree/queries.phpтаблицы отличий в диалектах SQL в разных СУБД (англ): http://en.wikibooks.org/wiki/SQL_dialects_referenceманга-учебник про SQL в картинках: http://www.nostarch.com/mg_databases.htm @csharp_ci

Практика по SQL: объединение нескольких таблиц 🔥Успейте в стартующую 30 августа группу продвинутого онлайн-курса «C# ASP.NET
Практика по SQL: объединение нескольких таблиц 🔥Успейте в стартующую 30 августа группу продвинутого онлайн-курса «C# ASP.NET Core разработчик» по спеццене: пройти вступительный тест За 5 месяцев обучения вы: — Сможете создавать различные информационные системы, состоящие из сайтов, мобильных клиентов, Telegram-ботов и высоконагруженные API на GraphQL, gRPC и SignalR Core. — Освоите JavaScript, познакомитесь с ReactJS и научитесь интегрировать его с ASP.NET Core. — Узнаете, как покрывать веб-приложения интеграционными и нагрузочными тестами. — Научитесь разворачивать веб-приложения в Docker-контейнерах и в облаках. А также: — Настраивать CI/CD и использовать Kubernetes. — Реализовывать микросервисную архитектуру и использовать RabbitMQ. — Управлять безопасностью и защищаться от хакерских атак. 💯Курс доступен также в рассрочку. Нативная интеграция. Информация о продукте www.otus.ru

Хотите бесплатно изучить чистой архитектуры? Первое, что необходимо понимать — приложения, созданные с помощью принципов чистой архитектуры, обладают высокой устойчивостью к изменениям. Они быстро адаптируются к новым требованиям и возможностям, сохраняя при этом высокое качество кода и производительность. Кроме того, система становится гораздо проще для понимания и сопровождения, что делает ее более доступной для других разработчиков. Принципы чистой архитектуры также помогают избежать проблем с зависимостями и разделить приложение на логические блоки. Это повышает удобство добавления новых функций и изменения уже существующих. В результате, время разработки сокращается, а приложение становится более гибким и масштабируемым. Какие преимущества могут дать принципы Clean Architecture : ▪Улучшение качества кода; ▪Быстрая адаптация к изменениям и новым функциям; ▪Удобство сопровождения и расширения приложений; ▪Минимизация проблем с зависимостями; ▪Повышение гибкости и масштабируемости приложений; ▪Сокращение времени разработки и улучшение производительности. Все эти пункты дают принципам чистой архитектуры важное преимущество в сравнении с другими методиками разработки. Представляем вам список из 45 полезных уроков, разбитых по темам.🔥 𝗖𝗹𝗲𝗮𝗻 𝗔𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗙𝘂𝗻𝗱𝗮𝗺𝗲𝗻𝘁𝗮𝗹𝘀 - Project setup - Minimal APIs - http://youtu.be/GCuVC_qDOV4 - Dependency injection - http://youtu.be/tKEF6xaeoig - CA + Document database - http://youtu.be/Ru6_b50wdfo - Project setup from scratch - http://youtu.be/fe4iuaoxGbA - 4 Best practices for new project - http://youtu.be/B9ZUJN1Juhk - Structured logging - http://youtu.be/nVAkSBpsuTk - Message queues - http://youtu.be/CTKWFMZVIWA 𝗗𝗼𝗺𝗮𝗶𝗻-𝗗𝗿𝗶𝘃𝗲𝗻 𝗗𝗲𝘀𝗶𝗴𝗻 𝗜𝗻𝘁𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻 - Rich Domain model - http://youtu.be/1Lcr2c3MVF4 - Entities - http://youtu.be/00tCda35Bvk - Value objects - http://youtu.be/P5CRea21R2E - Aggregate root - http://youtu.be/0D3EB2jvQ44 - Domain validation - http://youtu.be/KgfzM0QWHrQ - Domain model tradeoffs - http://youtu.be/eC7GMGIR4Gw - Repository pattern - http://youtu.be/h4KIngWVpfU - Specification pattern - http://youtu.be/rdY5ElleWKY - Unit of work - http://youtu.be/vN_j1Bs0ALU - Smart Enums - http://youtu.be/v6cYTcEfZ8A - Snapshot pattern - http://youtu.be/HhZ4DtON404 - Strongly typed IDs - http://youtu.be/LdrMdIabE1o - Anemic Domain model - http://youtu.be/6gwIDiUk2h4 - DDD modeling - http://youtu.be/fO2T5tRu3DE - DDD + EF mapping - http://youtu.be/IlXnIe6p_Uk - Incomplete aggregates - http://youtu.be/cCnZJE0wEjY - Double dispatch - http://youtu.be/wi_wsw5Gp6Q 𝗖𝗤𝗥𝗦 - CQRS Fundamentals - http://youtu.be/vdi-p9StmG0 - Validation /w Result - http://youtu.be/85dxwd8HzEk - Validation /w Exception - http://youtu.be/OhQA4PDdp0Q - Read models - http://youtu.be/AVBAAKa84cs - UoW pipeline - http://youtu.be/sSIg3fpflI0 - The "Truth" on CQRS - http://youtu.be/F3xNCfP3Xew - CQRS Query side - http://youtu.be/RgqCavV2cqQ - Materialized views - http://youtu.be/2ZNMlx44gKQ 𝗧𝗲𝘀𝘁𝗶𝗻𝗴 - Parameterized tests - http://youtu.be/Pk2d-qm5KwE - Unit testing - http://youtu.be/a6Qab5l-VLo - Integration testing /w Docker - http://youtu.be/tj5ZCtvgXKY - Architecture tests - http://youtu.be/_D6Kai4RdGY 𝗗𝗲𝘀𝗶𝗴𝗻 𝗣𝗮𝘁𝘁𝗲𝗿𝗻𝘀 - Idempotent consumer - http://youtu.be/mGeEtokcjVQ - Saga pattern - http://youtu.be/dlXCodLxhag - Compensating transaction (Saga) - http://youtu.be/FPVzevl6Ri8 - Domain events - http://youtu.be/AHzWJ_SMqLo - Domain vs. Integration event - http://youtu.be/K806a-rWE2g - Options pattern - http://youtu.be/wxYt0motww0 - Options pattern validation - http://youtu.be/qRruEdjNVNE - Decorator pattern - http://youtu.be/i_3I6XLAOt0 @csharp_ci

Начать заниматься IT можно, не дожидаясь выпускного! Так вы не только освоите уникальные скиллы, но и поймёте, какая професси
Начать заниматься IT можно, не дожидаясь выпускного! Так вы не только освоите уникальные скиллы, но и поймёте, какая профессия вам по-настоящему подходит.  А погружаясь в IT с Яндекс Лицеем, вы сможете попробовать себя в практических задачах и получите актуальные знания от опытных разработчиков.  Сейчас Яндекс Лицей предлагает бесплатное обучение по Python, Go, разработке игр, Machine Learning, Django, анализу данных и Big Data. Можно выбрать годовые офлайн- или онлайн-курсы. В программе — интенсивное погружение в IT, работа над групповыми проектами и много общения с единомышленниками.  В Лицее ждут школьников 8‒11-х классов и студентов ссузов 1-2-х курсов. Скорее переходите по ссылке и читайте подробности

🖥 Вопросы и ответы на собеседовании по C# многопоточности В этой статье вы найдете полную подборку вопросов для собеседовани
+3
🖥 Вопросы и ответы на собеседовании по C# многопоточности В этой статье вы найдете полную подборку вопросов для собеседования по многопоточности C#, которые не только проверят ваше знание предмета, и обеспечат хорошую подготовку к следующему техническому собеседованию. https://dev.to/bytehide/c-multithreading-interview-questions-and-answers-4opj

🖥 Путь к Инновационному Тестированию с Selenium и C#: Мастерство и Качество Роль Selenium и C# в создании надежных автоматизированных тестов Представьте, что автоматизированные тесты - это специальные инструменты, которые помогают проверить, работает ли программа правильно. Такие тесты особенно полезны для веб-сайтов, и вот почему. Selenium - это как мощный детектив, который может заметить, что происходит на веб-странице. Он может найти кнопки, текстовые поля, выпадающие списки и многое другое. А C# - это язык, на котором можно "разговаривать" с Selenium и давать ему команды. Вместе Selenium и C# - как динамичный дуэт. Они позволяют нам создавать тесты, которые будут проверять веб-сайт на ошибки. Например, мы можем сказать, чтобы они "нажали" кнопку "Войти" и проверили, что после этого появится правильное сообщение. Это как если бы вы проверяли, что все кнопки на вашем пульте дистанционного управления работают правильно. Манипуляция с веб-элементами При создании надежных автоматизированных тестов необходимо взаимодействовать с веб-элементами, такими как кнопки, текстовые поля и выпадающие списки. В этом процессе Selenium предоставляет инструменты для поиска и взаимодействия с элементами на странице, а C# дает возможность эффективно управлять этими элементами. Клик на кнопку "Войти" на странице авторизации IWebElement loginButton = driver.FindElement(By.Id("login-button")); loginButton.Click(); Ввод текста в поле для поиска IWebElement searchBox = driver.FindElement(By.Name("search")); searchBox.SendKeys("Selenium testing"); Выбор опции "Черный" из выпадающего списка цветов IWebElement colorDropdown = driver.FindElement(By.Id("color-selector")); SelectElement colorSelect = new SelectElement(colorDropdown); colorSelect.SelectByText("Черный"); Вход на сайт и проверка успешной авторизации using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; [TestFixture] public class LoginTests { IWebDriver driver; [SetUp] public void SetUp() { driver = new ChromeDriver(); driver.Navigate().GoToUrl("https://www.example.com/login"); } [Test] public void TestSuccessfulLogin() { IWebElement usernameInput = driver.FindElement(By.Id("username")); IWebElement passwordInput = driver.FindElement(By.Id("password")); IWebElement loginButton = driver.FindElement(By.Id("login-button")); usernameInput.SendKeys("myUsername"); passwordInput.SendKeys("myPassword"); loginButton.Click(); IWebElement welcomeMessage = driver.FindElement(By.CssSelector(".welcome-message")); Assert.AreEqual("Welcome, User!", welcomeMessage.Text); } [TearDown] public void TearDown() { driver.Quit(); } } 📌 Читать дальше @csharp_ci

Вы ещё успеваете поступить в онлайн-магистратуру МФТИ «Финансовые технологии и аналитика» 👩‍🎓Ближайшие даты экзаменов — 4 и
Вы ещё успеваете поступить в онлайн-магистратуру МФТИ «Финансовые технологии и аналитика» 👩‍🎓Ближайшие даты экзаменов — 4 и 19 сентября. ➕Диплом очной магистратуры гособразца по направлению 38.03.05 «Бизнес-информатика». ➕Онлайн-обучение из любой точки мира. ➕Углубленная специализация в сфере финтех-разработки или аналитики. ➕Гранты на запуск своего стартапа в области Data Science/AI/ML до 3 млн ₽. ➕Более 5 проектов в портфолио: реальные задачи от Сбера, ВТБ, Ozon Fintech, Альфа-Банка и других финтех-компаний уже с первого семестра. ➕Возможность совмещать с работой и развивать корпоративный проект в качестве дипломного. ➕Рассрочка под 3% от Сбера и Минобразования. Платёж во время учебы — до 900 ₽ в месяц. Бесплатный подготовительный курс и запись прошедших консультаций по экзаменам доступны после регистрации. Оставьте заявку, чтобы зарегистрироваться на день открытых дверей и начать готовиться к поступлению: https://netolo.gy/b3nU Реклама ООО “Нетология” LatgBdHv1

🖥SharpShellPipe Это легковесное приложение на C#, которое осуществляет интерактивный удаленный shell доступ через именованны
🖥SharpShellPipe Это легковесное приложение на C#, которое осуществляет интерактивный удаленный shell доступ через именованный канал и протокол SMB. ▪Github @csharp_ci

⏩ RISC-V formal ISA Specification Очень интересный проект, который показывает элегантность и выразительность F# – формальная
RISC-V formal ISA Specification Очень интересный проект, который показывает элегантность и выразительность F# – формальная (и исполняемая) спецификация для RISC-V ISA, написанная в функциональном стиле. Авторы демонстрируют «чрезвычайно элементарную» реализацию F#, чтобы сделать ее читаемой и пригодной для широкой аудитории. GithubISA инструкции @csharp_ci

Создайте свое web-приложение и научитесь эффективно работать в Scrum-команде на онлайн-курсе «C# ASP.NET Core разработчик» в
Создайте свое web-приложение и научитесь эффективно работать в Scrum-команде на онлайн-курсе «C# ASP.NET Core разработчик» в OTUS. Пройдите вступительный тест и узнайте, осилите ли вы уровень курса. Результат теста получите сразу. 👉 ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ASP.NЕT  Сможете успешно пройти тест — получите доступ к курсу по специальной цене! Курс доступен в рассрочку. Нативная интеграция. Информация о продукте www.otus.ru

🚀Паттерн проектирования Singleton в C#: Полное руководство Singleton - порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру. Когда надо использовать Синглтон? Когда необходимо, чтобы для класса существовал только один экземпляр Синглтон позволяет создать объект только при его необходимости. Если объект не нужен, то он не будет создан. В этом отличие синглтона от глобальных переменных. Классическая реализация данного шаблона проектирования на C# выглядит следующим образом: class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) instance = new Singleton(); return instance; } } В классе определяется статическая переменная - ссылка на конкретный экземпляр данного объекта и приватный конструктор. В статическом методе getInstance() этот конструктор вызывается для создания объекта, если, конечно, объект отсутствует и равен null. Для применения паттерна Одиночка создадим небольшую программу. Например, на каждом компьютере можно одномоментно запустить только одну операционную систему. В этом плане операционная система будет реализоваться через паттерн синглтон: class Program { static void Main(string[] args) { Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); // у нас не получится изменить ОС, так как объект уже создан comp.OS = OS.getInstance("Windows 10"); Console.WriteLine(comp.OS.Name); Console.ReadLine(); } } class Computer { public OS OS { get; set; } public void Launch(string osName) { OS = OS.getInstance(osName); } } class OS { private static OS instance; public string Name { get; private set; } protected OS(string name) { this.Name=name; } public static OS getInstance(string name) { if (instance == null) instance = new OS(name); return instance; } } Синглтон и многопоточность При применении паттерна синглтон в многопоточным программах мы можем столкнуться с проблемой, которую можно описать следующим образом: static void Main(string[] args) { (new Thread(() => { Computer comp2 = new Computer(); comp2.OS = OS.getInstance("Windows 10"); Console.WriteLine(comp2.OS.Name); })).Start(); Computer comp = new Computer(); comp.Launch("Windows 8.1"); Console.WriteLine(comp.OS.Name); Console.ReadLine(); } Здесь запускается дополнительный поток, который получает доступ к синглтону. Параллельно выполняется тот код, который идет запуска потока и кторый также обращается к синглтону. Таким образом, и главный, и дополнительный поток пытаются инициализровать синглтон нужным значением - "Windows 10", либо "Windows 8.1". Какое значение сиглтон получит в итоге, пресказать в данном случае невозможно. Вывод программы может быть такой: Windows 8.1 Windows 10 Или такой: Windows 8.1 Windows 8.1 В итоге мы сталкиваемся с проблемой инициализации синглтона, когда оба потока одновременно обращаются к коду: if (instance == null) instance = new OS(name); Чтобы решить эту проблему, перепишем класс синглтона следующим образом: class OS { private static OS instance; public string Name { get; private set; } private static object syncRoot = new Object(); protected OS(string name) { this.Name = name; } public static OS getInstance(string name) { if (instance == null) { lock (syncRoot) { if (instance == null) instance = new OS(name); } } return instance; } } Чтобы избежать одновременного доступа к коду из разных потоков критическая секция заключается в блок lock. 📌 Статья @csharp_ci

Курс «Английский для разработчиков» Яндекс Практикума Для тех, кто хочет изменить свою профессиональную жизнь и работать в ме
Курс «Английский для разработчиков» Яндекс Практикума Для тех, кто хочет изменить свою профессиональную жизнь и работать в международной команде. Обучение построено не вокруг абстрактной теории, а вокруг рабочих ситуаций и полезных для карьеры навыков: ✋ Стендапы. Подготовитесь обсуждать задачи, задавать вопросы и просить о помощи. 👨‍💻 Работа с заказчиками. Научитесь презентовать решения, говорить про баги и фичи. 📣 Митапы. Сможете понимать на слух доклады и выступать сами. 😎 Собеседования. Научитесь рассказывать про свой опыт, понимать вопросы и тактично переспрашивать. 👯 Неформальное общение с коллегами. Сможете рассказать о своих интересах, опыте, планах на будущее. 💻 Код-ревью. Сможете описать сделанное, дать обратную связь, тактично отстоять своё мнение. Запишитесь на бесплатную консультацию. Кураторы определят ваш уровень языка и расскажут подробнее про обучение.

⚡Продвинутые случи использования ограничении частоты запросов в .NET • Вот как определить ограничения, вызвав метод AddTokenB
+4
Продвинутые случи использования ограничении частоты запросов в .NET Вот как определить ограничения, вызвав метод AddTokenBucketLimiter (картинка 1) Ограничение пользователей по IP-адресам (картинка 2) Ограничение с учетом прокси.(картинка 3) Ограничение пользователей по идентификационным признакам (картинка 4) Реализация ограничение на обратном прокси с помощью YARP, необходимо картинка 5) 📌 Читать статью @csharp_ci