Бизнес-уровень в приложении asp.net - PullRequest
2 голосов
/ 16 марта 2012

Предположим, у вас есть веб-приложение, в котором на основе некоторых чисел, введенных пользователем, вы даете ему другое число (сверх упрощенное), когда он / она нажимает кнопку.Все данные хранятся на сервере SQL.Теперь я могу получить все необходимые данные на уровне доступа к бизнесу и выполнить там вычисления.Или сделайте расчет в базе данных хранимых процедур и отправьте результат в приложение.Я сильно предпочитаю последнее, потому что мне это намного легче.Но некоторые люди могут утверждать, что вся бизнес-логика должна лежать на бизнес-уровне в приложении.Я чувствую, что если в приложении есть бизнес-логика, оно относится к бизнес-уровню.Но вам не нужно иметь бизнес-логику, связанную с данными, в приложении.

Что порекомендуют эксперты?

Ответы [ 2 ]

3 голосов
/ 17 марта 2012

Если я перефразирую ваш вопрос, я думаю, что вы спрашиваете: «Должен ли я поместить свою бизнес-логику в tsql или c #?»

Лично я настоятельно рекомендую c # (или vb.net, если вы этим пользуетесь). Как инструмент программирования, он дает вам гораздо больше возможностей, чем TSQL. И когда я говорю «сила», я имею в виду способность писать простой для понимания, логичный, хорошо организованный самодокументированный код, который, что более важно, легко поддерживать. Объектно-ориентированные методы, такие как абстрактные классы и интерфейсы, позволяют создавать не только повторно используемые фрагменты кода, но и обеспечивать реализацию легко отслеживаемой бизнес-логики. Это может быть смоделировано с сохраненными процессами, но вы в конечном итоге перепрыгиваете через обручи, чтобы реализовать его, а затем отслеживаете, когда возникают проблемы.

Репозитории кода также созданы для интеграции с VS гораздо легче, чем с SQLserver, и управление изменениями или даже поддержка локальной среды разработки становятся более сложными, когда объекты сосредоточены на базе данных, которая слишком велика для локального запуска, в отличие от обновления разработчики локальной рабочей копии кода C #.

Конечно, в одном сценарии разработчика, когда никто больше не будет работать над этим приложением, соображения совместной работы и управления изменениями бледнеют по сравнению с удобством разработчика с tsql против любого другого инструмента.

И, наконец, только потому, что c # предоставляет богатые языковые функции, их используют не все. Я могу (и должен !!) написать 1000-строчный метод c # так же легко, как написать 1000-строчный хранимый процесс.

Надеюсь, это поможет, Lawrence

1 голос
/ 16 марта 2012

Вы можете сделать либо.Если вы когда-нибудь хотели раздавать числа, не прикасаясь к базе данных, тогда вы бы хотели, чтобы этот расчет на бизнес-уровне.Бизнес-уровень - хорошее место, потому что его легче отлаживать, чем хранимую процедуру, и он может быть проверен модулем.

...