Привет всем, я довольно новичок в многоуровневом процессе разработки. В настоящее время я разрабатываю приложение, и у меня есть некоторые основные вопросы, касающиеся лучших практик/архитектурных вопросов с сегодняшней технологией. Я буду использовать WCF в качестве уровня сервиса. Заметьте, я стараюсь как можно больше разделить вещи. Я не хочу, чтобы в верхних ярусах ничего не было, чтобы знать о чем-либо в нижнем ярусе, что является одной из причин, по которым мне не нравится LINQ TO SQL или инфраструктура сущности.
1) Каков наилучший способ передачи данных между уровнями? Я знаю, что набор данных или данные будут легкими, но я бы не подумал, что передача этой раздутой структуры данных между уровнями будет лучшим решением. Кроме того, отладка будет сложнее, если данные datasables/datasets будут большими. Может быть, массив объектов POCO будет лучшим решением или есть лучший способ?
2) Следующий вопрос немного сложнее. Множество приложений будет иметь множество разных представлений данных. У вас может быть несколько отчетов, множество данных, а может быть, диаграмма или два. Как вы собираетесь разрабатывать свой уровень данных для этого? Вы просто создаете функцию типа "Get" для каждой таблицы, а затем попытаетесь объединить их в полезные представления, например, сетку или отчет на уровне вашего бизнеса, или у вас есть специализированная функция для каждого вида, который вам нужен на уровне бизнеса.
Честно говоря, мне не нравится какое-либо решение. Если вы выбираете специализированную логику для каждого представления, вам нужно будет создать объект POCO (при условии, что вы собираетесь возвращать массив объектов POCO) для каждого представления. Если вы решите позже, вам нужно добавить больше столбцов в одно из представлений, тогда вы нарушите существующий код (потому что вы меняете интерфейс на POCO). Если вы решите вернуть представление каждой таблицы и попытаться объединить ее в слое buisness, то это может стать ДЕЙСТВИТЕЛЬНО беспорядочным. У TSQL есть причины для причины:). Кроме того, вы могли бы вернуть гораздо больше данных, тогда вам нужно в зависимости от вашего дизайна, который был бы неэффективен.
У меня есть еще несколько вопросов, но я сохраню это позже. Я не хочу, чтобы этот пост стал большим:)
NCAGE