.NET - Стратегия поддержки нескольких баз данных - PullRequest
1 голос
/ 12 июля 2010

Наше текущее веб-приложение использует SQL Server, теперь у нас есть требование для поддержки Oracle.

Есть несколько вариантов:

  1. Шаблон Data Facade: используйте интерфейс Data Facade в бизнес-уровне, чтобы SQL Server и Oracle могли иметь собственную реализацию уровня доступа к данным. Проблема в том, что трудно синхронизировать код DAL для разных типов баз данных.

  2. nHibernate: кажется многообещающим, у меня нет опыта его использования. Поскольку наш текущий уровень доступа к данным смешан с SQL и хранимой процедурой, не уверен, будет ли много работы, если перейти на nHibernate (мы сталкиваемся с нехваткой времени).

Я бы хотел услышать ваше мнение. Благодарю.

Ответы [ 4 ]

2 голосов
/ 12 июля 2010

Я не понимаю, почему было бы так сложно иметь DAL, поддерживающий как Oracle, так и SQL Server. В частности, LLBLGen делает это. Если бы это был я, я бы использовал это. Но это потому, что я использовал его раньше, и я большой поклонник.

1 голос
/ 12 июля 2010

NHibernate имеет превосходную поддержку для приложений с несколькими базами данных. Здесь - сообщение о том, что следует учитывать при этом.

Однако, если у вас «нехватка времени» и вы обновляете приложение совершенно другим подходом (с использованием хранимых процедур), изменение, безусловно, будет нетривиальным.

0 голосов
/ 12 июля 2010

Никто еще не упомянул Microsoft Enterprise Library .Я не использовал его, поэтому не могу дать рекомендацию, но я бы подумал, что она требует дальнейшего внимания.Я слушал подкаст на днях, где они заявили, что совместимость базы данных была целью разработки.

0 голосов
/ 12 июля 2010

ODP.NET обеспечивает стандартный доступ к данным ADO.NET, предоставляя при этом специфичные для базы данных функции Oracle, такие как XML DB, оптимизация производительности доступа к данным и пулы соединений Real Application Clusters.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...