1

Это мой VS решение:Архитектура Слои

VS Solution

И это архитектура:

Architecture

У меня есть несколько вопросов:

1) Где я должен начать транзакция и фиксация? Уровень обслуживания или уровень представления? 2) Где я должен обладать уровнем данных? Из уровня обслуживания или уровня модели/ядра/домена? 3) Где мне нужно «ProductDAO» для обновления количества продукта?

+1

В следующий раз, пожалуйста, укажите образцы кода как код, а не скриншоты. –

+0

Хорошо. Я буду. Прости. – Rieth

ответ

2

1) Я бы начал его на сервисном уровне. Презентация не обязательно должна знать о транзакциях, а уровень обслуживания - тот, который делает несколько операций, которые хотят быть атомами

2) Для получения DAL это не так ясно. Я бы пошел на сервисный уровень, так как это «клей» между вашими другими классами. Но было бы разумно, чтобы ваши модели домена знали об этом.

3) Commit должен находиться в том же месте, где была начата транзакция, иначе вы можете получить сложный код и сценарии, в которых транзакция не будет либо совершена, либо отменена.

+0

1) Но если я использую 2 службы, в которых я начинаю транзакции? Например: Client1 использует Service1 и Service2, если я запускаю транзакцию на Client1 (уровень представления), я могу совершить транзакции только в том случае, если Service1 и Service2 сработали ... – Rieth

+0

Затем добавьте контроллер для транзакции и вызовите две разные службы :) – Juan

+0

В другими словами, у сказал, что я должен заключать транзакцию на уровне представления ... и если у меня есть два приложения, которые используют службы? Мне нужно будет управлять транзакциями для обоих ... – Rieth

Смежные вопросы