ASP.NET Application - бесплатный и лучший DAL Framework - PullRequest
1 голос
/ 31 октября 2009

Мы работаем над приложением ASP.NET с SQL Server 2008 в качестве бэкэнда и не используем LINQ.

В приложении все вызовы базы данных будут выполняться с использованием / с помощью хранимых процедур. Поэтому кто-нибудь может предложить любую бесплатную и лучшую платформу доступа к данным, которая могла бы выполнять эту работу.

Большое спасибо,

Привет.

Bhavna.

Ответы [ 5 ]

2 голосов
/ 31 октября 2009

Предлагаю вам перейти на NHibernate.

Если вы стесняетесь XML из-за сопоставления, вы можете использовать Fluent NHibernate, что позволит вам выполнить все сопоставления (и настройки) в вашем строго типизированном коде.

1 голос
/ 31 октября 2009

Мне нравится шаблон ActiveRecord, и я часто использую SubSonic, DAL с открытым исходным кодом. Я только немного поиграл с последней версией 3.0, но постоянно использую 2.2 в проектах, которые я создаю.

Скачать SubSonic

1 голос
/ 31 октября 2009

Эти хранимые процедуры написаны от руки? Если это так, задача DAL заключается только в создании команд ADO.NET и привязке результирующих наборов к объектам передачи данных и их коллекциям. Не будет большой разницы в качестве от лучшего к худшему DAL для строго хранимой процедуры, управляемой базой данных. Я бы порекомендовал делать генерацию кода с собственными рукописными шаблонами, вы лучше поймете результаты, и это не очень сложно. Шаблоны T4 сейчас актуальны.

Теперь, если вы собираетесь ослабить и позволить DAL получить доступ к базовым таблицам, у вас есть выбор из Object Relational Mapper, например, NHiberate и Entity Framework, которые сильно отличаются по качеству и подходу.

А если вы используете ORM для хранимых процедур, это все равно, что купить авианосец, чтобы отправиться на развлекательную рыбалку по выходным. Часть ORM усложнит ситуацию, и вы не получите никаких преимуществ от использования платформы ORM.

0 голосов
/ 31 октября 2009

Я обнаружил, что использование параметров xml в хранимой процедуре позволяет использовать один метод для вызова всех процедур. Все наши процессы имеют один параметр xml и всегда возвращают xml. Это значительно упрощает код, требуемый в DAL.

0 голосов
/ 31 октября 2009

известный ответ, это зависит от ваших потребностей и знаний вашей команды:)

  • если у вас есть существующая база данных, я бы сказал, просто используйте linq или каркас сущностей, потому что вы можете легко создавать сопоставления, просто перетаскивая их мышью!

  • если у вас нет базы данных, Nhibernate будет отличным выбором, потому что вы можете сгенерировать базу данных во время разработки приложения из файлов сопоставления

...