2016-08-30 2 views
0

Я написал приложение для цеха, которое занимается производственным процессом. Тем не менее, в течение нескольких месяцев она увеличилась и увеличилась в размерах и теперь мне действительно нужно добавить хорошее количество обработкиSQL-транзакция с большим количеством кода .NET

Это упрощенная версия логики ошибки потоки:

  1. GetWorkCenterStoreLocation - магазин место для выбранного поставщик
  2. GetUsedBoMsFromRouting - Билл материала (BOM) для выбранного продукта
  3. GetProductRoute - получить как далеко вниз по производственной линии мы и используется позже, чтобы знать Wether закончить продукт или просто перейти на следующий рабочий центр.
  4. AdjustStockIn - Настройка продукта на складе (если это последняя работа в центре)
  5. AdjustStockOut - Отрегулировать из исходных материалов, используемых в указанном рабочем центре
  6. UpdateWorkCentreRouting - Переместить изделие к следующему рабочему месту

Итак, на мой вопрос: напишите ли вы SqlTransaction в .NET или напишите большую хранимую процедуру, которая использует функции для каждого этапа и обертывает это в транзакции? Или вы бы сделали совершенно другой подход? Благодарю.

+0

Возможного дубликат [Плюсы и минусы проведения все бизнес-логики в хранимых процедурах в вебе-приложении] (http://programmers.stackexchange.com/q/158534/ 30872) – GSerg

+0

Возможный дубликат [Будь ли бизнес-логика в хранимой процедуре или нет?] (Http://programmers.stackexchange.com/q/113379/30872) – GSerg

+0

Когда вы используете SP - это означает, что вы всегда можете изменить базы данных, в случае любых запросов на изменение - это недостаток. У бизнес-логики в БД тоже сомнительный дизайн. Не рекомендуется использовать * Большие * процедуры - после одного года вы, возможно, не сможете вспомнить, что он на самом деле делает. Помимо этого способа SP, как и .Net 'SqlTransaction'. SP может быть быстрее, хотя. – Vladimir

ответ

0

Написание хранимой процедуры для выполнения всех повторно выполняемых функций и вызывания из вашего .net-кода было бы легко работать.

Преимущество использования SP:

1. Better performance. 
2. Easy to code (as sql part stays in sql) 
3. Easy to debug 
4. Easy to make changes. 
+0

И возможно внести изменения и исправления без необходимости развертывания новой версии вашего клиента dotnet. – GuidoG

+0

Зачем кому-то делать это? Могу ли я узнать причину? –

+3

Не мои нисходящие точки, но ваши баллы 2,3 и 4 являются, по крайней мере, спорными – Steve