В настоящее время я работаю с онлайн-приложением, для завершения которого требуется несколько экранов / шагов. Домен приложения моделируется с использованием графа объектов. Постоянство в базе данных и из нее выполняется с помощью пакета ORM.
По мере продвижения по экранам я строю граф объектов. Между экранами я сериализую / десериализирую граф объекта в текущую сессию. К тому времени, когда я достигаю последнего экрана, граф объектов завершен, и я сохраняю его в своей базе данных.
Мой вопрос следующий. Я не очень заинтересован в таких моделях, как «Единица работы». Мне просто интересно, является ли построение графа объектов заранее, затем заполнение по мере продвижения по экранам и, наконец, сохранение его жизнеспособной стратегией. Или, возможно, заполнение / сериализация / десериализация отдельных объектов через экраны, а затем построение окончательного графа объектов непосредственно перед сохранением в базе данных может иметь больше смысла. Или, если есть вообще лучший подход.
Я решил временно остаться в сеансе, когда собираю кусочки, потому что, если пользователь откажется от процесса, он просто истечет, и мне не придется искать базу данных, чтобы удалить оставленные приложения.
Надеюсь, мой вопрос сформулирован достаточно четко. Это кажется довольно распространенным явлением.
EDIT:
Моя основная проблема с подходом к объектному графу заключается в том, что, хотя я работаю в своей модели предметной области, я чувствую, что каждый раз, когда мне нужно обновить ее часть, я несу расходы на десериализацию / сериализацию всего графа. Возможно, у меня должна быть промежуточная абстракция между моими экранами и окончательной моделью предметной области. Я использую ASP.NET / C # в качестве моей платформы реализации.