csharp_ci | Unsorted

Telegram-канал csharp_ci - C# (C Sharp) programming

18377

По всем вопросам- @haarrp C# - обучающий канал Senior C# разработчика. @ai_machinelearning_big_data - Machine learning @itchannels_telegram - 🔥лучшие ит-каналы @csharp_ci - C# академия @pythonlbooks- книги📚 Реестр РКН: https://clck.ru/3Fk3kb

Subscribe to a channel

C# (C Sharp) programming

Помимо разработки в IT много направлений для развития. Одно из таких — AI. Хотите узнать о востребованных навыках в сфере IT, актуальных профессиях и перспективах для творчества? Запись выступлений и дебатов конференции YaC/e 2023 от Яндекса — отличная возможность для этого.

🔗 Переходите по ссылке на бесплатную видеозапись и попадите в мир новых возможностей для разработчиков.

Читать полностью…

C# (C Sharp) programming

𝗔𝗣𝗜 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆 𝗖𝗵𝗲𝗰𝗸𝗹𝗶𝘀𝘁

Контрольный список наиболее важных мер по обеспечению безопасности при разработке, тестировании и выпуске API.

🐱 Github

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🔥 Дайджест полезных материалов из мира C# за неделю

Почитать:
— «Внешние» сортировки: что это, зачем это и как это реализовать?
— Лучшие ресурсы чтобы выучить Git и Github
— C#: [required] keyword, что это?
— Что нового в .NET 8?
— В каких аспектах улучшилась производительность в ASP NET Core 8
— Async/Await: O que tem de novo no .NET 8?
— C# - Default Interface Methods
— Game Dev Digest — Issue #213 - Say Hello To Unity 6
— 🚀 Default Lambda Expression Parameters in C# 12
— What's new in .NET 8?
— C# - Use Record Types for Immutable Data Structures
— What are the Basics of Comments in C# 💭
— Trabalhando com Queues (Filas) no RabbitMQ utilizando C#/.NET
— Alias any Type with C# 12
— Using Primary Constructors in C# 12

Посмотреть:
🌐 "Always Use Any over Count in LINQ" | Code Cop #008 (⏱ 09:56)
🌐 Should You Use The Async Suffix in C#? (⏱ 08:03)

Хорошего дня!

#csharp #dotnet #digest

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Если вы сомневаетесь, стоит ли переходить на последнюю версию #dotnet, то одно только повышение производительности должно вас убедить.

📌 Что нового в .NET 8?

@csharp_ci

Читать полностью…

C# (C Sharp) programming

💻 Хотите писать более качественный код?

Узнайте о чистоте функций.

🧽 Чистые функции:

▪️ Всегда возвращают один и тот же результат для одних и тех же входных аргументов
▪️ Не имеют побочных эффектов

Чистые функции лежат в основе функционального программирования.

Вот как начать работу с ними в C#:

📌 Статья

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Новая рубрика #КтоБыстрее

Читать полностью…

C# (C Sharp) programming

🖥 Dapper - это легковесный объектно-реляционный связующий модуль в .NET.

Он популярен, поскольку прост в использовании и в то же время быстр.

Однако, еслм вы используете SQL, маппинг результата в объектную модель может оказаться непростой задачей.

Вот наиболее распространенные сценарии работы с маппингом sql:

https://www.milanjovanovic.tech/blog/mastering-dapper-relationship-mappings

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Пятничный C# квиз. #ПятничныйКвиз

@csharp_ci

Читать полностью…

C# (C Sharp) programming

В Контуре больше 500 С#-разработчиков, которые делают продукты для бизнеса и внутренние инфраструктурные сервисы.

Присоединяйтесь к команде, если хотите:
🔹 сложных задач, чтобы поломать голову,
🔹 работу с highload-сервисами, которые экономят нервные клетки предпринимателей,
🔹 гибкий график работы, выделенное время на развитие и преподавание, если готовы делиться опытом.

Зарегистрироваться и решить контест можно до 11 ноября.

Дальше — одно собеседование и оффер, если подойдем друг другу.

Реклама, АО "ПФ "СКБ Контур", ОГРН 1026605606620.

Читать полностью…

C# (C Sharp) programming

🖥 C# поддерживает блокировку с помощью оператора `lock`.

С его помощью можно определить блок кода, доступ к которому будет иметь только один поток.

Однако в асинхронном контексте он не работает.

Поэтому придется использовать какой-либо другой примитив параллелизма C#.

- Семафор
- SemaphoreSlim
- Монитор
- Мьютекс

Никогда не знаешь, когда понадобится использовать блокировку в C#.

Вот как инструкция с примерами: https://www.milanjovanovic.tech/blog/introduction-to-locking-and-concurrency-control-in-dotnet-6

@csharp_ci

Читать полностью…

C# (C Sharp) programming

⚙️ Курс «Введение в реверс-инжиниринг»

Изучите тайны программного обеспечения и познакомьтесь с обратной разработкой на курсе от Академии Кодебай.

Всего за 6 месяцев вы научитесь анализировать исполняемые файлы, понимать их структуру и исследовать вредоносное ПО. Главной темой курса является реверс-инжиниринг программ, написанных на языке ассемблера и Си. 

Курс подойдет как новичкам, знающим основы программирования, так и практикующим специалистам.

📆 Старт курса - 6 ноября 

🔝 Преимущества: личная поддержка от куратора, более 120 заданий в практической лаборатории, закрытый чат единомышленников и сертификат при успешной сдаче экзамена.

ℹ️ Узнать подробнее о курсе

Реклама. ООО "АКАДЕМИЯ КОДЕБАЙ". ИНН 9706020333. erid: LjN8K2ywV

Читать полностью…

C# (C Sharp) programming

🔥 Дайджест полезных материалов из мира C# за неделю

Почитать:
— CRC — это просто (деление столбиком)
— C#: Как создавать модульные тесты для проверки моделей
— Уязвимость XXE в .NET 6 SDK: с чем боролись…
— Архитектура unity проектов
— Мал, да удал. ASCADA. Простейшая система диспетчеризации (SCADA) для Arduino и других микроконтроллеров
— Programming Patterns for Games: Observer
— How To Call JavaScript From Blazor Web Assembly – Breaking Boundaries With JavaScript Interop
— C# - Dependency Injection and Inversion of Control (IoC) Containers
— Game Dev Digest — Issue #210 - Atmospheric, Shader Effects, My Game, and more
— Building a .NET RESTful Service with Dynamsoft's Document, Barcode, and MRZ SDKs
— Magical C# Classes
— Binary Search in C#
— How to Encrypt and Decrypt a Word Document Using the .NET Word Library
— How To Build A Personal Website In Blazor: An ASP.NET Core Tutorial
— Encapsulamento: O Básico que todo jr. precisa saber!

Посмотреть:
🌐 "Stop Using if else if else In Your Code!" | Code Cop #005 (⏱ 07:56)
🌐 "Stop Using Structured Logging in .NET!" | Code Cop #006 (⏱ 08:24)
🌐 .NET 8 & C# 12 Release In a Nutshell (⏱ 00:21)

Хорошего дня!

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🖥 Как применить 𝗖𝗤𝗥𝗦 𝗽𝗮𝘁𝘁𝗲𝗿𝗻 в своей системе?

CQRS — это разделение ответственности за команды и запросы, шаблон, который разделяет операции чтения и обновления для хранилища данных. Внедрив в приложение CQRS, можно максимально увеличить его производительность, масштабируемость и защиту.

Вот мой подход к его реализации.

Я предпочитаю использовать MediatR - но эта идея прекрасно работает и без него.

MediatR реализует паттерн посредника. Он отделяет внутрипроцессную отправку сообщений от их обработки.

Я расширяю интерфейс MediatR IRequest пользовательской абстракцией ICommand и IQuery.

Это позволяет мне явно определять команды и запросы в системе.

На стороне записи:

- Отправка команды из API с помощью MediatR.
- Богатая доменная модель инкапсулирует бизнес-логику
- EF Core загружает доменные сущности
- Выполнение бизнес-логики
- Сохранить изменения

На стороне чтения:

- Отправка запроса из API с помощью MediatR
- Как можно меньше непрямых связей
- Dapper с необработанными SQL-запросами
- SQL представления и запросы к ним
- EF Core запросы с проекциями

Такое логическое разделение решает специфические требования к чтению и записи.

При обновлении данных мы хотим реализовать сложную бизнес-логику и валидацию.

При чтении данных мы хотим получить результат как можно быстрее.

Это стандарт в моих проектах.

Но вы можете адаптировать этот паттерн по своему вкусу.

📌 Почитать подробнее: https://www.milanjovanovic.tech/blog/cqrs-pattern-with-mediatr

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Блокчейн, машинное обучение, интернет вещей. Это далеко не полный список технологий, которые активно применяют в сфере InsurTech. Проявите себя и попадите в индустрию за один этап — Страховой Дом ВСК запускает ONE DAY OFFER.

Вакансии: системная аналитика, тестирование, разработка Java и C#, Data Science. Если получите оффер, вас ждет:

— Место в компании с золотом в рейтинге работодателей Forbes;
— Работа в гибкой методологии SAFe;
— Комфортный график — удаленка или гибрид;
— Собственная DevOps-платформа (с поддержкой Kafka, Camunda, PostgreSQL и не только);
— Удобная микросервисная архитектура — включает больше 150
приложений и 800 сервисов;
— ДМС, программы лояльности и скидки у партнеров ВСК.

Подача заявок до 26 октября — поторопитесь! Регистрируйтесь: https://u.to/aRIIIA

Реклама, САО «ВСК», ИНН 7710026574, erid 2VtzqvfNoQY

Читать полностью…

C# (C Sharp) programming

🖥 Whisker

Whisker - это инструмент на языке C# для захвата учетных записей пользователей и компьютеров Active Directory путем манипулирования их атрибутом msDS-KeyCredentialLink, эффективно добавляя "теневые учетные данные" к целевой учетной записи.

Для успешного проведения этой атаки в среде должен быть контроллер домена под управлением как минимум Windows Server 2016, а контроллер домена должен иметь сертификат аутентификации сервера, позволяющий проводить аутентификацию PKINIT Kerberos.

⚠️ Disclaimer: Все содержимое данного проекта предназначено только для целей исследования безопасности.

📌 Github

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Потокобезопасность - это правильный подход к реализации одноэлементного шаблона.

Но знаете ли вы, что "блокировка" - очень дорогостоящая операция?
Как это оптимизировать?

Используйте механизм блокировки двойной проверки.

Блокировка двойной проверки используется для гарантии того, что экземпляр Singleton создается только один раз, даже при доступе из нескольких потоков.

Двойная проверка блокировки - это метод, при котором вы сначала проверяете условие блокировки (известное как "подсказка о блокировке"), фактически ничего не блокируя.

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

@csharp_ci

Читать полностью…

C# (C Sharp) programming

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

В этом курсе Гэвин обучает вас некоторым более продвинутым концепциям C#.

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

▪Видео
▪Код

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Пятничный C# квиз #ПятничныйКвиз

@csharp_ci

Читать полностью…

C# (C Sharp) programming

⚡️⚡️⚡️ Выпущен .NET 8 и день презентации .NET Aspire.

🚀.NET Aspire - это новый стек, который должен помочь нам создавать облачные нативные решения.

Microsoft представила выпуск открытой платформы .NET 8, созданной благодаря унификации продуктов .NET Framework, .NET Core и Mono.

На основе .NET 8 можно создавать многоплатформенные приложения для браузера, облачных систем, рабочего стола, IoT-устройств и мобильных платформ, используя единые библиотеки и общий процесс сборки, не зависящий от типа приложения.

Сборки .NET SDK 8, .NET Runtime 8 и ASP.NET Core Runtime 8 сформированы для Linux, macOS и Windows. .NET Desktop Runtime 8 поставляется только для Windows. Ветка .NET 8 отнесена к категории LTS и будет сопровождаться в течение трёх лет до ноября 2026 года. Все связанные с проектом наработки распространяются под лицензией MIT.

В состав .NET 8 входит Runtime с JIT-компилятором RyuJIT, спецификации API, библиотеки WPF, Windows Forms, WinUI, Entity Framework, интерфейс командной строки dotnet, а также инструменты для разработки микросервисов, библиотек, серверных, графических и консольных приложений. Отдельно опубликованы стек для разработки web-приложений ASP.NET Core 8.0, ORM-прослойка Entity Framework Core 8.0 (драйверы имеются, в том числе, для SQLite и PostgreSQL), библиотека WPF 8 (Windows Presentation Foundation), фреймворк Windows Forms 8 для разработки GUI, платформа Aspire 8 для создания приложений Cloud Native, фреймворк MAUI 8 для разработки многоплатформенных интерфейсов пользователя, а также выпуски языков C# 12 и F# 8.

Поддержка .NET 8.0 и C# 12 включена в свободный редактор кода Visual Studio Code.

Подробнее:
https://devblogs.microsoft.com/dotnet/introducing-dotnet-aspire-simplifying-cloud-native-development-with-dotnet-8/

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🔥 Дайджест полезных материалов из мира C# за неделю

Почитать:
— Книга «Blazor в действии» в правильном переводе команды DotNetRu
— Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)
— Использование расширения VS Code «PVS-Studio» для эффективной борьбы с ошибками в C# коде
— Оплата в Telegram | API Yoomoney С#
— EF Core. Как 1 строчка может добавить x4 к быстродействию запросов к БД?
— Дизайним абилки как в X-COM
— .NET 7 против российской криптографии. Часть 2. Штампы времени
— Как я писала программу на C#, которая шифрует текст по принципу «Квадрат Полибия»
— Как провести курс для разработчиков (за 1.5 млн) в маленькой компании и не сойти с ума
— Microsoft PowerToys: Король GitHub среди C# проектов с C++ ошибками
— From MS-Access to EF Core (C#)
— Explorando el Mundo de los Archivos de Recurso en C# con Visual Studio
— C# - Reducing Lock Contention with ReaderWriterLockSlim
— Game Dev Digest — Issue #212 - Parody, Performance, Modeling and more
— Building a Data Warehouse with ETLBox: A .NET Developer's Guide
— From Angular to Blazor: Unleashing the C# Magic!
— C# - Caching Data with MemoryCache
— Using the PVS-Studio extension for VS Code to effectively handle errors in C# code
— Async/Await: Para que serve o CancellationToken?
— C# - Asynchronous Initialization of Singleton Pattern

Посмотреть:
🌐 Using P/Invoke in C#: Windows API Integration Made Easy! (⏱ 15:45)
🌐 Mastering Code with Rubber Duck Debugging 🦆 Unlock Your Programming Potential! (⏱ 01:00)
🌐 "Your Code Has a SQL Injection!" | Code Cop #007 (⏱ 12:11)
🌐 The Missing Piece of Your .NET Logs (⏱ 08:13)
🌐 Every New Feature Added in C# 12 (⏱ 14:19)
🌐 The Coolest Way To Await Multiple Tasks in .NET (⏱ 09:24)

Хорошего дня!

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Пятничный С# квиз
#ПятничныйКвиз

Читать полностью…

C# (C Sharp) programming

⚡️ Комплексная дорожная карта разработчиков .NET до уровня Сеньора.

Это пошаговое руководство по становлению инженера .NET со ссылками на соответствующие учебные ресурсы.

▪Github

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🖥 Разработка веб-интерфейсов ASP .NET Core с использованием паттерна проектирования Observer

https://www.c-sharpcorner.com/article/asp-net-core-web-api-development-with-observer-design-pattern/


@csharp_ci

Читать полностью…

C# (C Sharp) programming

⚡️ Впечатляющая монолитная архитектура Stack Overflow

Компания Stack Overflow, поддерживает тенденцию развития микросервисов их сервис обрабатывает 1,3 млрд. просмотров страниц в месяц на своих 200 сайтах, используя удивительно эффективную монолитную архитектуру с минимальной инфраструктурой.

Веб-серверы:

- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде .NET
- Обработка 450 пиковых запросов в секунду на каждом сервере при использовании всего 12% процессорной мощности
- Код минимизирует потребление памяти и настроен на ограничения сбора мусора

Серверы SQL:

- Организованы в 2 отказоустойчивых кластера по 2 сервера в каждом
- Первый кластер: 1,5 ТБ оперативной памяти на сервер
- Второй кластер: 768 ГБ оперативной памяти на сервер
- Около трети массива данных Q&A находится в памяти.
- Каждый кластер обрабатывает более 10 000 пиковых запросов в секунду при ~15% CPU

Redis:

- Один основной сервер с репликой на 256 ГБ.
- Обработка 60000 пиковых операций в секунду при 2% CPU

Stack Overflow эффективно масштабирует монолитное приложение.

📌 Архитектура наглядно
📌 Подкаст об архитектуре Stack Overflow

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🖥 Мне нравится использовать паттерн фабрика к определению middleware ASP .NET.

Нужно создать нтерфейс `IMiddleware`, который предоставляет единственный метод.

Пример на картинке.

Существует еще 2 способа создания middleware в .NET.

- Делегаты запросов
- Основанные на соглашениях


Вот как их можно использовать:
https://www.milanjovanovic.tech/blog/3-ways-to-create-middleware-in-asp-net-core

@csharp_1001_notes

Читать полностью…

C# (C Sharp) programming

🖥 В C# 12 представлены встроенные массивы InlineArray.

Это позволяет создать массив фиксированного размера в виде структуры.

Он обеспечивает производительность, аналогичные небезопасному буферу фиксированного размера.

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

Читать полностью…

C# (C Sharp) programming

🎓 Применение улучшенной библиотеки локализации в приложениях .NET

В этой статье подробно рассказывается о том, как использовать библиотеку Localize-ME для добавления локализации в приложение .NET.

https://www.thereformedprogrammer.net/applying-an-improved-multiple-languages-library-to-net-applications/

@csharp_ci

Читать полностью…

C# (C Sharp) programming

🖥 Как визуализировать архитектуру программного обеспечения?

Большинство диаграмм архитектуры программного обеспечения, которые я видел, представляют собой полный беспорядок.

Но вы можете использовать модель C4 для стандартизации своих диаграмм.

Это простой и эффективных подход к описанию архитектуры программного обеспечения.

https://www.milanjovanovic.tech/blog/visualize-your-software-architecture-with-the-c4-model

@csharp_ci

Читать полностью…

C# (C Sharp) programming

Пятничный С# квиз
#ПятничныйКвиз

@csharp_ci

Читать полностью…

C# (C Sharp) programming

📒 GigaChat нового поколения.

Разработчики @gigachat_bot изменили подход к обучению модели, а потому практически все умения модели были улучшены. В частности, речь идет о сокращении текстов, ответов на вопросы и генерации идей.

Появился и бот GigaChat в социальной сети «ВКонтакте» — после активации, его можно использовать для самых разных целей: от создания текстов до генерации изображений (за счет интеграции с Kandinsky).

Число уникальных пользователей GigaChat достигло 1 млн.

• Попробовать

@data_analysis_ml

Читать полностью…
Subscribe to a channel