Это позволяет создать массив фиксированного размера в виде структуры.
Он обеспечивает производительность, аналогичные небезопасному буферу фиксированного размера.
Эта функция используется разработчиками выполнения для повышения производительности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Нужно создать нтерфейс `IMiddleware`, который предоставляет единственный метод.
Пример на картинке.
Существует еще 2 способа создания middleware в .NET.
- Делегаты запросов
- Основанные на соглашениях
Вот как их можно использовать:
https://www.milanjovanovic.tech/blog/3-ways-to-create-middleware-in-asp-net-core
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
С его помощью можно определить блок кода, доступ к которому будет иметь только один поток.
Однако в асинхронном контексте он не работает.
Поэтому придется использовать какой-либо другой примитив параллелизма C#.
- Семафор
- SemaphoreSlim
- Монитор
- Мьютекс
Никогда не знаешь, когда понадобится использовать блокировку в C#.
Вот как инструкция с примерами: https://www.milanjovanovic.tech/blog/introduction-to-locking-and-concurrency-control-in-dotnet-6
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Впечатляющая монолитная архитектура Stack Overflow
Компания
Веб-серверы:
- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде
- Обработка 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
Компания
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
https://www.c-sharpcorner.com/article/asp-net-core-web-api-development-with-observer-design-pattern/
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет на экран этот код?
Anonymous Quiz
32%
1 1 1 1
15%
1.0 1.0 1.0 1.0
9%
1.00 1.00 1.00 1.00
13%
1.000 1.000 1.000 1.000
31%
1 1.0 1.00 1.000
ml.png
3.8 MB
⚡️ Комплексная дорожная карта разработчиков .NET до уровня Сеньора.
Это пошаговое руководство по становлению инженера .NET со ссылками на соответствующие учебные ресурсы.
▪Github
@csharp_ci
Это пошаговое руководство по становлению инженера .NET со ссылками на соответствующие учебные ресурсы.
▪Github
@csharp_ci
Он популярен, поскольку прост в использовании и в то же время быстр.
Однако, еслм вы используете SQL, маппинг результата в объектную модель может оказаться непростой задачей.
Вот наиболее распространенные сценарии работы с маппингом sql:
https://www.milanjovanovic.tech/blog/mastering-dapper-relationship-mappings
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет на экран этот код?
Anonymous Quiz
7%
Base.Foo(int)
64%
Derived.Foo(int)
20%
Derived.Foo(object)
9%
Derived.Foo(int) Base.Foo(int)
Какой метод быстрее?
Anonymous Quiz
29%
Method1
16%
Method2
56%
Одинаковые по скорости (отклонение меньше 5%)
🔥 Дайджест полезных материалов из мира 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
Почитать:
— Книга «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#:
📌 Статья
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM