• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии

Поругайте архитектуру доступа к данным

Все форумы  Поиск  Правила  Помощь 
 Активные темы  Темы без ответов
Привет, гость! Войти
Форумы GotDotNet.Ru » Архитектура приложений » Поругайте архитектуру доступа к данным
Страницы: 1
RSS
Поругайте архитектуру доступа к данным
Vadim_1406
Сообщений: 38 Регистрация: 21.04.2003
#1
14.01.2010 10:31
Вроде вечный вопрос, но что-то я не нашел много ответов на форумах.
Итак, задача - стандартное трехзвенное приложение:
1. БД (или другое хранилище данных, например XML файлы), пусть называется Хранилище данных. БД тоже могут быть разные (SQL, Oracle)
2. WCF-сервис для работы с хранилищем+часть бизнес-логики
3. Web-приложение.

сразу отвечу на вопрос зачем WCF-сервис посередине - кроме Web-приложение будет еще Windows-приложение и может быть Windows-mobile. Кроме того, могут подключаться сторонние web-сайты (но как правило через еще один сервис, потому что c WCF мало кто хочет работать). Но это не главное.
Вопрос в доступе к данным.

Как планируется делать - Хранилище данных всегда возвращает XML. Естественно, схемы определены. Т.е. и SQL Server, и Oracle возвращают XML одной структуры. Все сделано через хранимые процедуры.
Далее DAL библиотека десериализует эти XML-ки в DTO и возвращает на уровень выше (т.е. WCF-сервису). Он в свою очередь "прокидывает" их выше, если надо обрабатывая. Сохранение - обратная операция - DTO->XML->база
Почему выбрана такая схема:
1. Хранилище данных может меняться. SQL Server или Oracle, в будущем вообще не понятно, что еще. Поэтому лучше писать что-то кастомное и на ХП, чтобы не зависеть от структуры БД.
2. Почему XML - чтобы сразу выбрать инфу из нескольких таблиц и не писать много кода для чтения Reader'ом.

Что смущает:
1. Сериализация DTO. Насколько это затормозит все? Реальных данных про это что-то я не нашел
2. Писать вручную много DTO
3. Ну и самое главное - такая схема доступа к данным (через XML) использовалась 6 лет назад (в другом проекте) для работы на Framework'е 1.1, когда не было ни нормального NHibernate, ни EF и т.д. 6 лет - гигантский срок, даже стыдно использовать схемы тех времен :) Но на ум ничего больше не приходит. Прикручивать EF ради прикручивания (если оно реально не поможет) не хочется. NHibernate - не люблю, да и вряд ли он поможет (есть же еще XML-файлы).

Выскажите плз. свое веское "фи".
 
 
MIVer
Сообщений: 166 Регистрация: 13.02.2007
#2
14.01.2010 10:56
1. Чем больше слоёв тем медленее будет работать. Это факт!
2. Такая схема позволит вам абсолютно обстрагироваться от источника, теперь там может быть всё что угодно(хоть Вася Петров набирающий Xml вручную). Но за это надо будет заплатить производительностью.
3. EF штука классная, но опять же не совсеми источниками даных работает нормально, я пробовал только с MsSQL и c MySQL со вторым жутко не понравилось.
 
 
aek
Сообщений: 379 Регистрация: 04.08.2006
#3
14.01.2010 12:00
В принципе приемлемо, за исключением генерации XML на стороне СУБД.
Чтобы заработать на жизнь нужно работать, но чтобы разбогатеть нужно придумать что-то другое...
 
 
Vadim_1406
Сообщений: 38 Регистрация: 21.04.2003
#4
14.01.2010 16:55
Цитата
aek:
В принципе приемлемо, за исключением генерации XML на стороне СУБД.

Использовать DataReader'ы? Что-то не тянет... :)
 
 
Partizan03
Сообщений: 9 Регистрация: 09.01.2010
#5
09.02.2010 0:50
Vadim_1406, Здравствуйте, у меня схожая проблема:). Нашли ли вы какие то пути решения?
Вот мой топик http://www.gotdotnet.ru/forums/13/126660/ .
Заранее спасибо за любую помощь.
 
 
 
Страницы: 1
Форумы GotDotNet.Ru » Архитектура приложений » Поругайте архитектуру доступа к данным
О сайте   Свяжитесь с нами   Конфиденциальность   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru