Какой слой подходит для разбора строк в .NET? - PullRequest
2 голосов
/ 17 октября 2008

Рассмотрим стандартное веб-приложение ASP.NET, в котором пользователь вводит в форму некоторые числовые данные. При отправке некоторые бизнес-объекты запускаются для обработки числовых данных. Но серверные элементы управления textbox в .Net возвращают значение типа string. Вопрос: Должен ли ответственный за страницу отвечать за синтаксический анализ строк в числовых данных (и генерировать ошибки, если они недействительны), или бизнес-объекты должны принимать строки для ввода и анализировать их сами?

Ответы [ 3 ]

3 голосов
/ 17 октября 2008

IMO, бизнес-объекты должны принимать только числовые типы. Строки могут быть проанализированы в различных форматах в соответствии с определенными правилами культуры. Числа есть числа. Вы не хотите менять свои бизнес-объекты для локализации - прием только чисел облегчит повторное использование.

1 голос
/ 17 октября 2008

Как правило, вы хотите, чтобы ваша бизнес-логика принимала типы, с которыми она работает, и это более понятно. Хорошей практикой является форматирование входящих данных и их проверка до того, как вы перейдете к бизнес-логике, поскольку вы фактически не выполняете работу с данными, а предварительно отформатируете ее для бизнес-уровня. Это особенно помогает, когда ввод не проходит проверку, вам нужно меньше переходить, чтобы вернуть его пользователю.

0 голосов
/ 17 октября 2008

Бизнес-объектам должны предоставляться только правильно проанализированные и проверенные объекты.

Теперь, должен ли этот анализ и проверка выполняться в коде? Трудно сказать, так как код на самом деле не слой. Правильно, код должен просто обрабатывать проблемы пользовательского интерфейса, и анализ должен выполняться на уровне контроллера между пользовательским интерфейсом и бизнесом. Однако большинство людей просто вставляют контроллер в кодовый блок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...