Если была линия бизнес-приложения слоистые, как это, это было бы соответствующее разделение труда:Как разбить слой данных и уровень бизнес-объектов, каковы соответствующие обязанности каждого из них?
доступа к данным
вызывающую только хранимые процедуры, карты свойств DTO с к элементу hash tablse, которые используются для заполнения коллекций параметров команды ADO.NET.
Только сборка со ссылкой на SqlDataClient.
- Значительная логика, определяющая, что означает пустое, пустое и пустое в коде отображения, но другое не содержит никакой проверки или другой логики, специфичной для домена.
Так называемый бизнес-логики
разделяет несколько наборов результатов в отдельных DataTables, например,
общественный недействительный ReturnNthRecordSetFromStoredProcFoo()
проходит через, чтобы доступ к данным для наборов данных, например,
общественного недействительный ReturnDataSet (имя строки) { возврата (новый PersonController) .GetAnotherDataSet (имя);}
отображает одну строки в DataTable одному DTO сек
- Существенная логика дела с какими средствами пустым, нулевым и пустым в коде сопоставления.
- Удерживает объект транзакции, хотя он используется исключительно для переноса одиночных вызовов хранимых процедур.
- не ли не иметь ссылку на SqlDataClient, поэтому он не может использовать SqlDataReaders для заполнения DTOs
- Нет ссылку на System.Web.UI
- правила авторизации, но в остальном нет домена, реализующей логики.
интерфейс
- 2 способ связывания данных из DTOS к формам ASP.NET.
- Проверка свойств элементов управления - как правило, проверка не выполняется непосредственно с DTO
- «Коллекции» перемещаются путем привязки DataSets к сеткам. На самом деле пытается сделать что-нибудь с коллекциями требует UI перебрать DataRows в DataTables и знать, что имена соответствующих столбцов (которые, как правило, только вид-оф-похож на DTOS)
Таким образом, вопрос, наконец - с этим приложением, должен ли уровень доступа к данным брать на себя обязанности так называемого бизнес-уровня? Разве это уже не два слоя (почти один!), за исключением неудобств дополнительной сборки?
Дополнительная информация: Хорошо, я уже знаю, что сервер приложений будет одной машиной, вероятно, навсегда, поскольку это приложение для интрасети с низким уровнем пользователей. Поэтому я не знаю, как разрабатывать физически отдельные уровни приложений. Кроме того, он, вероятно, будет поддерживать только один пользовательский интерфейс и полностью отказаться от него, если ему когда-либо понадобится поддержка чего-то другого, кроме ASP.NET, еще одна из причин для уровней/уровней.
Пожалуйста, смотрите мой ответ на: http://stackoverflow.com/questions/549305/how-to-handle-communication-between-the-domain-and-database-layers/1209765#1209765 Дон» Не забывайте повышать, если вам нравятся мои идеи. – 2009-07-31 11:46:17