Простой объект в базу данных продукта - PullRequest
0 голосов
/ 26 августа 2008

Я рассмотрел несколько различных продуктов для .NET, которые предлагают ускорить время разработки, предоставляя возможность бизнес-объектам беспрепятственно сопоставляться с автоматически сгенерированной базой данных. У меня никогда не было проблем с написанием слоя доступа к данным, но мне интересно, действительно ли этот тип продукта сэкономит время, которое он требует. Я также беспокоюсь о том, что откажусь от слишком большого контроля над базой данных и усложню отслеживание любых проблем на уровне данных. Делают ли эти типы продуктов лучше или хуже в и без того сложном случае, что структура базы данных и бизнес-объекта должна измениться?

Например: Отображение отношений объектов из Dev Express

По сути, стоит ли это того? Сэкономлю ли я "ЭТО" много времени, усилий и будущих ошибок?

Ответы [ 5 ]

3 голосов
/ 26 августа 2008

Я использовал SubSonic и EntitySpaces. Как только вы их освоите, я полагаю, что они могут сэкономить ваше время, но по мере роста сложности вашего приложения и объема данных вы можете перерасти эти инструменты. Вы начинаете терять время, пытаясь выяснить, связано ли что-то вроде проблемы с производительностью с ORM или с вашим кодом. Итак, чтобы ответить на ваш вопрос, я думаю, что это зависит. Я склонен согласиться с Эриком в этом, корпоративные приложения большого объема не подходят для ORM общего назначения, но в стандартных приложениях CRUD меньшего размера вы можете сэкономить время.

1 голос
/ 26 августа 2008

Я недавно настроил ActiveRecord из проекта Castle для приложения. Это было довольно легко начать. После создания нового приложения с его помощью я даже использовал MyGeneration для создания сценариев для файлов классов для унаследованного приложения, которое ActiveRecord мог использовать в довольно короткие сроки. Он использует NHibernate для взаимодействия с базой данных, но убирает все сопоставления xml, которые идут с NHibernate. Приятно то, что, если необходимо, у вас уже есть NHibernate в вашем проекте, вы можете использовать его полную мощность, если у вас есть особые случаи. Я бы посоветовал взглянуть на это.

1 голос
/ 26 августа 2008

Я нашел iBatis из группы Apache как отличное решение этой проблемы. В настоящее время моя команда использует iBatis для сопоставления всех наших вызовов с Java на наш сервер MySQL. Это было огромным преимуществом, поскольку легко управлять всеми нашими запросами и процедурами SQL, потому что все они находятся в файлах XML, а не в нашем коде. Отделение SQL от вашего кода, независимо от того, на каком языке, очень помогает.

Кроме того, iBatis позволяет вам создавать собственные сопоставители данных для отображения данных в ваши объекты и из них в БД. Мы хотели этой гибкости, в отличие от решения типа Hibernate, которое делает все за вас, но также (IMO) ограничивает вашу способность выполнять сложные запросы.

Существует также .NET-версия iBatis.

0 голосов
/ 26 августа 2008

Я обсуждал это с другом на выходных, и кажется, что вы получаете выгоду от удобства хранения, теряются, если вам нужно иметь возможность запрашивать базу данных вне приложения. Насколько я понимаю, эти базы данных работают, сохраняя данные вашего объекта ненормализованным способом. Это позволяет быстро извлекать все наборы объектов, но если вам нужно выбрать данные с точки зрения, которая не соответствует вашей объектной модели, odbms может быть трудно получить конкретные данные, которые вы хотите.

0 голосов
/ 26 августа 2008

Есть много вариантов ORM. Linq to Sql, nHibernate. Для баз данных чистого объекта есть db4o.

Это зависит от приложения, но для корпоративного приложения большого объема я бы не пошел по этому пути. Вам нужно больше контроля над вашими данными.

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