Серия из коротких статей про MongoDB in C#, подойдёт тем кто не работал с MongoDB. Потому что там в основном базовые кейсы приводяца (вставка/апдейты/удаления/фильтрация-поиск), но с большим количеством кода в качестве примеров.
Есть и видео к статьям, но я не очень понимаю этот способ обучения :)) #mongodb #dotnet
Есть и видео к статьям, но я не очень понимаю этот способ обучения :)) #mongodb #dotnet
🔥4
Серия из хардкорных (но недлинных) 5 статей про кишки профайлинга
🔸Start a journey into the .NET Profiling APIs
🔸Dealing with Modules, Assemblies and Types with CLR profiling API
🔸Decyphering methods signature with .NET Profiling APIs
🔸Reading parameters value with the .NET Profiling APIs
🔸Accessing arrays and class fields with .NET profiling APIs
#dotnet
🔸Start a journey into the .NET Profiling APIs
🔸Dealing with Modules, Assemblies and Types with CLR profiling API
🔸Decyphering methods signature with .NET Profiling APIs
🔸Reading parameters value with the .NET Profiling APIs
🔸Accessing arrays and class fields with .NET profiling APIs
#dotnet
👍2🔥1
Обновление доки по Intel Advanced Performance Extensions (APX) 4.0 (PDF на 294 страницы) #docs
SimpleR - выглядит интересно, но пока в версии 1.0.0-alpha.1 :)) рановато использовать в продакшене. #dotnet
Medium
SignalR Simplified: Creating Efficient Pure WebSocket Servers with SimpleR for ASP.NET Core
Creating pure WebSocket server on ASP.NET Core has become a lot easier. Learn how to use SimpleR in scenarios where SignalR is not an…
❤1👍1
Пара десятков вопросов (статья на linkedin) для задач на собесах со ссылками на solution #howto #questions
👍1
Столкнулся тут с необходимости поснифать на DEV среде трафик между контейнерами докера... Некоторое количество командных строк на память.
Для начала с помощью
Дампы пакетов в ASCII ( -A ):
Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
Мониторинг keep-alive пакетов
Отображение заголовков http-пакетов GET/POST/HEAD
Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
#tools #docker #tcpdump
Для начала с помощью
docker network ls
надо выяснить id нужного интерфейса (далее этот id написан как INTERFACE), 8000 - это exposed port моего контейнера.Дампы пакетов в ASCII ( -A ):
tcpdump -i INTERFACE 'tcp dst port 8000' -A
Тоже самое + поиск по подстроке 'Sec-WebSocket-Key':
tcpdump -i INTERFACE 'tcp dst port 8000' -A | grep 'Sec-WebSocket-Key:'
Фильтрация только с флагом SYN (например для того чтобы посмотреть установку входящих соединений):
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] & (tcp-syn) != 0)' -A
Мониторинг keep-alive пакетов
tcpdump -i INTERFACE 'tcp dst port 8000 and (tcp[tcpflags] == tcp-ack and less 1)' -A
Отображение заголовков http-пакетов GET/POST/HEAD
tcpdump -i INTERFACE 'tcp dst port 8000' -A | egrep --line-buffered "^........(GET |HTTP\/|POST |HEAD )|^[A-Za-z0-9-]+: " | sed -r 's/^........(GET |HTTP\/|POST |HEAD )/\n\1/g'
Ну а потом я вспомнил, что есть такой инструмент как nast, который позволяет дампить более простой строкой как заголовки так и тело входящего запроса:
nast -i INTERFACE -d -f 'tcp dst port 8000'
#tools #docker #tcpdump
👍8
Ещё одна статья по поводу использования ArrayPool<T>. Это и правда помогает, когда надо много аллоцировать на короткое время. Особенно помогает если надо аллоцировать буферы примерно одинакового размера. #dotnet
www.sharpgis.net
dotMorten | Removing Memory Allocations in HTTP Requests Using ArrayPool<T>
dotMorten - .NET Ramblings, XAML hacking and some GIS endeavors - This post will describe how you can make network requests in .NET without constantly allocating large amounts of memory and reduce your allocations to almost zero.
👍3
Простой вариант сделать свой reverse proxy с помощью YARP. Также в статье не описано этого, но рулить балансировкой можно из кода - основываясь на каких-то других (своих) критериях (время, адрес-подсеть источника, ...) #dotnet #architecture
👍1🔥1
Monoliths have been problematic, then micro-services turned out to be differently problematic. So let’s swing the pendulum back partway but focus more on making our monoliths modular for easier, more maintainable long term development.
Ещё один взгляд на модульные монолиты.
Вторая часть статьи, более подробная. #architecture
Ещё один взгляд на модульные монолиты.
Вторая часть статьи, более подробная. #architecture
❤3
Некоторое количество советов при логировании с помощью Serilog (в основном связано с обогащением контекста разными штуками, чтобы потом легче было искать в логах нужное) #dotnet
Code Maze
Best Practices for Logging With Serilog
In this article, we'll take a closer look at some best practices when it comes to logging in .NET with Serilog.
🔥2
Чуть более десятка полезных запросов для Postgres собрал и оформил с примерами. Для одного поста в телегу - это слишком много (особенно с разметкой примеров вывода). Так что положил в виде gist на github:
🔸Текущие выполняемые запросы
🔸Запросы, выполняемые более 1 секунды
🔸Таблицы с % попадания в кэш при их использовании
🔸Размеры таблиц (включая индексы)
🔸Размеры индексов
🔸Размер текущей БД
🔸Размеры и наличие временных файлов
🔸Статистика по чтению индексов
🔸Статистика использования индексов
🔸Топ 5 самых активных таблиц
🔸Топ 5 самых активных индексов
🔸Никогда не использованные индексы
#postgres
🔸Текущие выполняемые запросы
🔸Запросы, выполняемые более 1 секунды
🔸Таблицы с % попадания в кэш при их использовании
🔸Размеры таблиц (включая индексы)
🔸Размеры индексов
🔸Размер текущей БД
🔸Размеры и наличие временных файлов
🔸Статистика по чтению индексов
🔸Статистика использования индексов
🔸Топ 5 самых активных таблиц
🔸Топ 5 самых активных индексов
🔸Никогда не использованные индексы
#postgres
👍8🔥6🤓1
LongQueryInterceptor.cs (gist) - автоматически логирует в штатный лог запросы EntityFramework, которые выполняются дольше чем указанное время. #dotnet #ef
👍7🔥3
inject/provide в Vuejs - да... это не Рио-де-Жанейро, конечно назвать это DI сложно, но помогает разгрузить код от кросс-ссылок на файлы. Ну и офиц документация да, она правда нищевата на примеры.
#vuejs
#vuejs
👍1
Zuplo - интересный проект, который позволяет завернуть твоё API в них и делать разное (биллить, менеджить ключи, ...) без особых телодвижений.
Zuplo
API Key Management - Zuplo
Zuplo's API key management makes it easy to create, manage, and revoke API keys. Create API keys for your team members and give them access to only the data they need.
🤔2👍1