Организация Data Access Layer - C#
Формулировка задачи:
Здравствуйте.
В книгах как-то слишком абстрактно все описано, хочется хоть какой-то конкретики.
Понятно лишь, то, что клиент (слой представления)должен обращаться к ДАЛ, через интерфейс, дабы можно было менять слои в случае чего как хотим.
Вопрос в том, каким должен быть примерно этот интерфейс и к чему конкретно в ДАЛ он должен быть прикручен.
Я вижу это примерно так. В ДАЛ следует определить некий класс выступающий в роли Фасада (имеется ввиду паттерн "Фассад"), то есть класс, который рулит всем, что есть под капотом ДАЛ (запросы и прочее). К нему и надо прикрутить интерфейс ДАЛа.
Правильно ли я мыслю?
Далее. Не совсем понятно, в какой форме следует передавать данные из ДАЛ.
В ДАЛе хочется определить ДатаСет, который по идее и должен быть передан на слой представления. Но в каком виде? В неизменном? То есть как DataSet или же как DataTable? Или вообще в массивом? Не ясно.
Еще, думается мне, что в слое представления придется определять свой DataSet, а не создавать экземпляр того ДатаСета, который имеется в ДАЛ. Верно ли так поступать? Инкапсуляция же, слои не должны знать ничего друг о друге. Тем более, что ДатаСет, что в ДАЛе, скорее всего будет типизированым.
Итак, вынесу вопросы:
- Как примерно должен выглядеть интерфейс ДАЛа? Хочется увидеть пример.
- К чему прикручивать интерфейс в ДАЛе?
- В каком виде следует передавать данные на слой представления?
Решение задачи: «Организация Data Access Layer»
textual
Листинг программы
private static Expression Convert(Expression expression) { if (expression.NodeType == ExpressionType.Constant) { return expression; } LambdaExpression lambda = Expression.Lambda(expression); Delegate lambdaDelegate = lambda.Compile(); return Expression.Constant(lambdaDelegate.DynamicInvoke(null), expression.Type); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д