FAQ по программированию 49
Теория и практика | создано: 23.11.2023 | опубликовано: 25.11.2023 | обновлено: 13.01.2024 | просмотров: 552 | всего комментариев: 5
Ключевые понятия, затронутые в этом видео: Task, ValueTask, EntityFrameworkCore, микросервисы, JSON, BMPN, Camunda, REST API и другие.
FAQ по программированию 49
В этом видео будут озвучены ответы на следующие вопросы:
215. Какие паттерны вы используете чаще всего?
216. Микросервисы только на HTTP - это плохо?
217. Есть веб-сервис A, которому нужно взять из базы данных большой объем данных с помощью EF Core и через http POST-запрос отправить в виде JSON сервису B. Вопрос в комментарии.
218. Когда использовать Task, а когда ValueTask? Почему ValueTask должна await'титься только один раз?
219. Приходилось ли Вам сталкиваться со связкой BPMN-движков(например Camunda) и C#?
220. Как лучше создавать клиентов для Rest Api? Использовали ли вы библиотеку Refit или автогенерацию в c#?
Видео
Другие вопросы и ответы
Прежде чем задать вопрос, пожалуйста, воспользуйтесь поиском на странице Вопросы и ответы (FAQ), на которой множество других вопросов на разные темы.
Комментарии к статье (5)
Здравствуйте,
сценарий использования:
- Есть веб-сервис A, которому нужно взять из базы данных большой объем данных с помощью EF Core и через http POST-запрос отправить в виде JSON сервису B.
вопрос:
Можно ли организовать такой поток данных с условием того, чтобы:
- при запросе большого количества данных из БД они не алоцировались полностью в сервисе A
- при формировании JSON для HTTP-запроса из A в B данные из базы данных не алоцировались как один большой объект
- при чтении поступившего запроса в сервисе B соответственно тоже чтобы в один большой объект не превращались
В рамках одного процесса в C# такое поведение реализуется с помощью Stream, но как организовать такое же только при межпроцессном взаимодействии.
Насколько я знаю большинство популярных БД отдают данные одним пакетом, то есть послал запрос на миллион записей- вернулся одномоментно гигабайт данных. Есть ли способ получать данные из БД небольшими порциями?
И второй уточняющий вопрос-как из одного веб-сервиса передать большой объем данных другому вебсервису, но не одномоментно, чтобы он алоцировался в LOH второго сервиса, а порционно, как будто Stream передаем.
Пока на данный момент кроме как искуственно разбивать большие объемы данных на пачки и оперировать ими я не видел решения.
Спасибо
Приходилось ли Вам сталкиваться со связкой BPMN-движков(например Camunda) и C#?
Когда использовать Task, а когда ValueTask? Почему ValueTask должна await'титься только один раз?
Как лучше создавать клиентов для Rest Api? Использовали ли вы библиотеку Refit или автогенерацию в c#?
Прис сборке .Net приложений Вы используете серверный режим GarbageCollerctor или клиентский? На собственном опыте проверял работу этого режима-никаких положительных эффектов(в том числе по производительности) не зафиксировал, только стартовое потребление памяти выросло значительно.