Я готовлю новый проект для Windows и задаюсь вопросом, какую технологию DAL использовать. Первоначально я искал что-то более простое, чтобы не тратить слишком много времени на его создание. Но я также понимаю, что он должен быть эффективным и масштабируемым в долгосрочной перспективе.
Я планирую использовать клиента WPF (MVVM) и службу WCF в трехуровневой системе.
Просто, чтобы подвести итог всем существующим технологиям, с которыми я знаком:
DataSets
PRO: Возможно, он немного старомоден, но очень прост в использовании и позволяет автоматически создавать большинство деталей для вас. Одним из важных аспектов наборов данных является простота прохождения связанных данных через отношения. Кроме того, он отключен от базы данных и может упростить обновления, автоматически обрабатывая временные метки. Включает проверку.
CONTRA: Довольно старомодно. Некоторые считают их не настоящими бизнес-объектами / моделями, а просто зеркалом ваших таблиц данных SQL. Передача их между WCF-сервисом / клиентом может оказаться более сложной, чем создание самостоятельно созданных бизнес-объектов.
Корпоративная библиотека 4.1 - Блок доступа к данным
PRO: DAL красиво помещен в шаблон Factory. Заботится об открытии и закрытии соединения автоматически. Очень прост в использовании по большей части. Он поддерживает как наборы данных, так и обычные SQL-процедуры для создания собственных бизнес-объектов. В рамках существующей платформы может быть гораздо более эффективным использование в сочетании с остальной частью Enterprise Library для эффективного конечного продукта.
CONTRA: ??
Linq to SQL
PRO: Авто создает таблицы SQL в бизнес-объекты. Легко CRUD. Теоретически очень хороший способ сделать это.
CONTRA: Поиграв с ним, когда он вышел, я обнаружил, что он шелушится и иногда нестабилен. Это уже считается мертвой технологией после объявления Microsoft, что Entity Framework 4.0 - как часть .NET 4.0 - будет рекомендованным Microsoft способом. В .NET 4.0 слишком мало исправлений ошибок, но планов расширения возможностей больше нет.
Entity Framework 4.0
Я ничего не знаю об этом, но только то, что он в конечном итоге заменит все остальное, как в .NET 4.0. Я также испытываю желание использовать его, однако, поскольку он все еще находится в бета-версии, я еще не смогу пойти по этому пути.
Мне очень хочется использовать Enterprise Library 4.1 - Блок доступа к данным и создавать свои собственные бизнес-объекты. Большой минус в том, что создание DAL займет больше времени. Если кто-то не сможет убедить меня в использовании DataSets через блок доступа к данным.
Какие у вас комментарии и идеи?
Большое спасибо,
Кава