Независимый дизайн DAL - специфический и общий - PullRequest
2 голосов
/ 30 октября 2010

Сценарий: создаю приложение для целей обучения и пытаюсь сделать его независимым от базы данных.

Я довольно много смотрел на архитектуру пивной, где каждая база данных имеет свой собственный набор данных, представляющий собой смесь SqlCommands и DataReaders и т. Д. Я не вижу ни одно правильное или неправильное, но, как правило, с точки зрения обслуживания, скорости и т. Д. Примите во внимание то, что архитектурная сторона приложений .net является для меня совершенно новой, вы бы предпочли использовать свои собственные специальные классы, такие как beerhouse, или использовать что-то вроде dbProviderFactory, где довольно много функциональности уже есть?

Есть ли плюсы / минусы использования общих классов в System.Data.Common, таких как DbCommand, DbDataReader, в отличие от определенных классов SqlCommand, SqlDataReader и т. Д.

Заранее спасибо.

1 Ответ

1 голос
/ 30 октября 2010

Насколько я знаю, прямое использование DbDataReader быстрее. Но это не расширяется, когда вы хотите изменить свой интерфейс. (например, ваши проекты Winforms и Webforms используют один и тот же DAL).

На мой взгляд, если вы хотите большей гибкости, вы, вероятно, потеряете производительность. Дело в том, что вы (как разработчик) несете ответственность за баланс производительности и сложности / расширяемости. Например, предположим, что вы разрабатываете приложение winforms для компании. Вы уверены, что компания не изменит своего поставщика данных (например, с SQL Server на Oracle). Тогда нет необходимости разрабатывать вашу программу, чтобы иметь возможность подключаться к различным поставщикам данных. Как говорится: ПОЦЕЛУЙ. (Сохраняй это простым, глупый!; P)

...