Как стать автором
Обновить
8
0
Алексей Захаров @leksiq

Пользователь

Отправить сообщение

Dependency Injection и Full state сервер

Время на прочтение19 мин
Количество просмотров4.3K


Сразу же сообщу, что в данной публикации не сравниваются Fullstate и Stateless парадигмы построения серверов. Также отсутствует какая-либо агитация в пользу Fullstate. Мы исходим из ситуации, в которой мы приняли решение, что для конкретного проекта сервер ASP.NET должен между запросами не только хранить какие-то статические данные, но и возможно выполнять какую-то полезную работу.
При этом мы, разумеется, хотим использовать всю мощь DI-контейнера .NET!

Читать дальше →
Всего голосов 11: ↑9 и ↓2+10
Комментарии27

О применении RazorPages в консольных и десктопных приложениях

Время на прочтение17 мин
Количество просмотров4.1K

Иногда хочется автоматически создавать текстовые файлы, подставляя в шаблоны значения каких-то полей. Например, это могут быть исходники классов-хелперов на основе какого-то интерфейса, какие-то отчеты в XML, которые хотя и можно сгенерировать полностью программно, но на практике это может быть достаточно трудный для сопровождения код. Наверное, те, кто сталкивался с такой потребностью, смогут дополнить этот список. Приведу для примера задачу с хелперами.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии13

JSON-сериализация асинхронного стрима

Время на прочтение4 мин
Количество просмотров16K

Можно считать это продолжением публикации Кастомный JsonConverter: уменьшаем связность и экономим ресурсы. Там при рассмотрении списков верхнего уровня упор был сделан на десериализацию из JSON. Но чтобы что-то десериализовать, нужно сначала это сериализовать. Посмотрим, чем нам может помочь возможность сериализации IAsyncEnumerable<T> объекта.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Кастомный JsonConverter: уменьшаем связность и экономим ресурсы

Время на прочтение9 мин
Количество просмотров9.6K

Рассматриваем некоторые возможности, которые нам предоставляет кастомный JsonConverter.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Утилизация «мусорщиком» сессий с истекшим сроком годности

Время на прочтение11 мин
Количество просмотров3.6K

Соглашаясь с мнением, что stateful-сервер ограничен в масштабируемости, всё же считаю, что инструмент должен соответствовать задаче. Для высоконагруженной системы с миллионами запросов в секунду важна распределённость, но за неё мы платим необязательностью предоставления актуальных данных в конкретный момент. Ни того ни другого нельзя сказать о системе, в которой при самых оптимистичных предположениях будет работать сотня операторов.

Так что предположим, что запрос на полноценные сессии всё же имеется. И эти сессии надо как-то утилизировать после окончания их срока жизни. Навскидку можно предложить следующие решения.

Запуск параллельной задачи при очередном запросе с клиента.

Запуск специального потока.

Использование таймера.

Всё же осмелюсь предложить ещё одну идею.

Обновление: благодарю @Politura - комментарий о MemoryCache оказался очень полезным! Проверил и решил так и сделать.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии5

Как не дать пользователю заснуть во время загрузки большого набора данных

Время на прочтение11 мин
Количество просмотров5.1K

Одно из двух, — прошелестел он, — или пациент жив, или он умер. Если он жив — он останется жив или он не останется жив. Если он мёртв — его можно оживить или нельзя оживить.

А.Н. Толстой. "Золотой ключик, или Приключения Буратино"

Пользователю лень фильтровать запрашиваемые данные, а их бывает довольно много. Заставлять пользователя что-то фильтровать - негуманно и попахивает произволом. В таком случае пользователь сидит грустит, ругает разработчиков, давит на техподдержку. Если сделать "в лоб", сервер по запросу клиента будет собирать для отправки коллекцию объектов, загружая их из базы или ещё как-то. Потом всю эту махину он пошлёт в ответном HTTP-пакете, предварительно серилизовав в JSON, там это всё будет в один присест десериализовано в клиентские объекты, которые, наконец-то предстанут пред взором потерявшего надежду пользователя.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии14

Информация

В рейтинге
Не участвует
Откуда
Пушкин, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

Fullstack Developer
Lead
C#
WPF
SOLID
Multiple thread
SQL
XSLT
ASP.NET Web API