Какой конкретный метод/приложение вы используете для связи между вашим приложением и базой данных? Пользовательский код с хранимыми процедурами? SubSonic? NHibernate? Entity Framework? LINQ?Что вы используете для доступа к данным?
ответ
В основном я использую Microsoft Enterprise Library Data Access Block для доступа к хранимым процедурам в базах данных MS SQL Server.
На работе наша база кода - это C++ и Perl, и мы говорим с базой данных MySQL. Для нашего интерфейса у нас есть довольно тонкие пользовательские классы, обернутые вокруг базовых клиентских библиотек MySQL для нашего кода на C++ и модуля DBI для наших скриптов Perl.
SubSonic и LINQ to SQL, надеюсь, скоро в ближайшее время LINQ to SubSonic!
В первую очередь я использую NHibernate, как на работе, так и на моих проектах по свободному времени. Это началось как попытка выйти из нормы на работе, чтобы использовать ADAT.NET datareaders/datasets, и теперь у нас есть несколько проектов, использующих Hibernate/NHibernate.
Класс SqlHelper из старой версии блоков приложений MS Enterprise. Он далек от совершенства, но трудно превзойти его простоту для простых приложений CRUD.
Мы используем IdeaBlade в наших проектах. Я нашел его довольно простым в использовании.
MS SQL Хранимые процедуры.
Обычно я создаю DataTier с LiNQ.
Он состоит из репозиториев, которые реализуют составные интерфейсы, поэтому я имею полную гибкость в отношении того, как их использовать.
IPersonRepository : IReadRepository<Person>, ICreateRepository<Person>, IUpdateRepository<Person> //and so on..
Они в основном предметная область ориентированных, так что они испускают объекты домена и заботиться обо всех логики отображения себя.
Они также могут создавать некоторые словари списка, f.ex словарь, состоящий из идентификатора и имени человека, поэтому мне не нужно слишком много тянуть с дБ, чтобы отобразить выпадающий список.
Хотя иногда для небольших проектов я просто использую сопоставление базы атрибутов без .dbml.
Я чувствую, что этот подход дает очень чистую модель приложения, потому что вся грязная логическая центрированная логика скрыта в DataTier. Бизнес-/ServiceTier чистый бизнес :)
- SQL Server
- Все хранимые процедуры
- Handrolled рамки полиморфный объект, который повторно использовать от проекта для обработки Sproc Resultset - отображение> Object.
Я думаю, что это делает меня старым.
Я использую NHibernate в течение прошлого года или около того, и это оказалось очень быстрым способом получить базовый CRUD (почти) бесплатно.
Если это то, что вы хотите попасть, я могу рекомендовать NHibernate наилучшей практике статьи Билли Макафферти на CodeProject:
http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx
Это доказала свою большую масштабируемость и гибкое решение и делает легко добиться четкого разделения DAL от других слоев.
MVC framework, где у модели есть классы источников данных с фактическим языком баз данных, разработчик в большинстве случаев использует save, saveField, delete, find и т. Д. Методы, а framework переводит это на sql-запросы. Это не только безопаснее и проще, но и очень удобно, что код является независимым от источника данных, то есть вы можете изменить сервер базы данных и сохранить код.
Я начал с Hibernate на Java-проекте на своем рабочем месте, а затем понял, что есть .Net-порт (NHibernate) и снова использовал его в проекте .Net. Я также наткнулся на статью, которую joesteele упоминает и использовал его в качестве базы для моих проектов с некоторыми незначительными изменениями, когда это необходимо, в основном, когда это необходимо, чтобы нацеливать транзакцию, начинающуюся и заканчивающуюся вручную.
Такая же практика и библиотека, которые могут быть применены как к платформам Java, так и к C#, ориентированы на Windows или Linux в качестве платформ приложений, упрощают разработку на разных платформах, чем нужно изучать различные среды.
Хотя я планирую выпустить Subsonic, iBatis и LINQ, на данный момент Hibernate и NHibernate кажутся подходящим инструментом для работы, в то время как я должен ориентироваться как на платформы Windows, так и на Linux.
Я использовал Hibernate в своей предыдущей задаче для подключения к MySql и Sql Server, но с тех пор я переключился на .NET, поэтому в настоящее время я работаю с LINQ, и мне действительно нравится.
У нас есть задний конец оракула с чем-то вроде 500 хранимых процедур, где приложения запускаются непосредственно против данных.
Я начал строить пользовательский или отображенную модель предметной области, что я интегрирующий, но я сделал это неправильно изначально, и теперь я застрял дело с этой головной болью, а также ... тьфу
- 1. Что вы используете для ReSharper?
- 2. Возможность доступа к данным доступа к данным
- 3. Какие конструкции/шаблоны вы используете для доступа к состоянию?
- 4. Как вы используете CellTemplateSelector с привязкой к данным в GridView?
- 5. Скорость доступа к данным
- 6. Что вы используете для проверки схемы XML?
- 7. Что вы используете для разработки PowerShell?
- 8. Что вы используете для создания блок-схем?
- 9. Что вы используете для C++ Исключения?
- 10. Права доступа к данным
- 11. Синхронизация доступа к данным
- 12. Виртуализация доступа к данным
- 13. Доступ к данным для доступа к данным OpenCV
- 14. Отслеживание доступа к данным
- 15. Уровень доступа к данным
- 16. Уровень доступа к данным
- 17. доступа к данным JSON
- 18. JIRA Plugins: Что вы используете?
- 19. Модель поставщика ASP.NET для доступа к данным
- 20. Что вы используете для создания архитектуры сайта?
- 21. PHP: Что вы используете для написания?
- 22. Что вы используете для макросов Scheme?
- 23. Что вы используете для написания Go
- 24. Что вы используете для упаковки/переупаковки MSI?
- 25. PingFederate - что вы используете для SP?
- 26. Что вы используете для тестирования приложений Silverlight?
- 27. Что вы используете для сложного процесса сборки?
- 28. Что вы используете для просмотра структуры Cocoa?
- 29. Репозиторий против доступа к данным
- 30. Схема проектирования для уровня доступа к данным
Круто! вы отправили свой код в любом месте? – CVertex 2008-09-07 11:41:35