Что вы используете в настоящее время для доступа к данным? - PullRequest
2 голосов
/ 05 сентября 2008

Какой конкретный метод / приложение вы используете для связи между вашим приложением и базой данных? Пользовательский код с хранимыми процедурами? SubSonic? NHibernate? Entity Framework? LINQ?

Ответы [ 14 ]

2 голосов
/ 05 сентября 2008

Я использую NHibernate в течение последнего года или около того, и это оказалось очень быстрым способом получить базовый CRUD (почти) бесплатно.

Если это то, к чему вы стремитесь, я могу порекомендовать статью о лучших практиках NHibernate Билли Маккаферти по CodeProject:

http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx

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

2 голосов
/ 05 сентября 2008

Я в основном использую Блок доступа к данным библиотеки Microsoft Enterprise для доступа к хранимым процедурам в базах данных MS SQL Server.

1 голос
/ 10 сентября 2008

Я использовал Hibernate в своей предыдущей работе для подключения к MySql и Sql Server, но с тех пор я перешел на .NET, поэтому в настоящее время я работаю с LINQ и мне это очень нравится.

1 голос
/ 05 сентября 2008

Мы используем IdeaBlade в наших проектах. Я нашел это довольно простым в использовании.

0 голосов
/ 10 сентября 2008

У нас есть серверная часть оракула с чем-то вроде 500 хранимых процедур, где приложения работают непосредственно с данными.

Я начал создавать собственную или сопоставленную модель предметной области, которую я интегрировал, но сначала я сделал это неправильно, а теперь застрял, имея дело с этой головной болью ... тьфу

0 голосов
/ 07 сентября 2008

Я начал с проекта Hibernate на Java на своем рабочем месте, а затем понял, что существует порт .Net (NHibernate) и снова использовал его в проекте .Net. Я также натолкнулся на статью, в которой упоминается joesteele , и использовал ее в качестве основы для своих проектов с некоторыми незначительными изменениями, когда это было необходимо, в основном, когда это было необходимо для определения цели, начиная и заканчивая транзакцией вручную.

Те же методики и библиотеки, которые можно применять как к платформам Java, так и к C #, ориентируясь на Windows или Linux в качестве платформ приложений, упрощают разработку на разных платформах, не требуя изучения различных платформ.

Хотя я планирую изучить Subsonic, iBatis и LINQ, на данный момент Hibernate и NHibernate кажутся подходящим инструментом для этой работы, в то время как мне нужно ориентироваться как на платформы Windows, так и на Linux.

0 голосов
/ 07 сентября 2008

Среда MVC, где модели имеют классы источников данных с реальным языком базы данных, разработчик в большинстве случаев использует методы save, saveField, delete, find и т. Д., И среда переводит это в запросы SQL. Это не только безопаснее и проще, но и очень удобно, поскольку код не зависит от источника данных, то есть вы можете изменить сервер базы данных и сохранить код.

0 голосов
/ 05 сентября 2008
  • SQL Server
  • Все хранимые процедуры
  • Платформа с полиморфными сущностями, управляемая вручную, которую я повторно использую от проекта к проекту для обработки набора результатов Sproc -> Object.

Полагаю, это делает меня старшей школой.

0 голосов
/ 05 сентября 2008

Я обычно создаю Уровень данных с LiNQ.
Он состоит из репозиториев, которые реализуют составные интерфейсы, поэтому у меня есть полная гибкость в том, как их использовать.

IPersonRepository : IReadRepository<Person>, ICreateRepository<Person>, IUpdateRepository<Person> //and so on..

Они в основном ориентированы на доменные объекты, поэтому они излучают доменные объекты и сами позаботятся о всей логике отображения.
Они могут также создать некоторые списки словарей, например, словарь, состоящий из идентификатора и имени человека, поэтому мне не нужно слишком сильно тянуть из базы данных, чтобы отобразить раскрывающийся список. Хотя иногда для небольших проектов я просто использую базовое сопоставление атрибутов без .dbml.

Мне кажется, что этот подход дает очень чистую модель приложения, потому что вся грязная логика, ориентированная на данные, скрыта в уровне данных. Business- / ServiceTier - это чистый бизнес:)

0 голосов
/ 05 сентября 2008

Хранимые процедуры MS SQL.

...