2009-02-18 1 views
1

Сегодня вечером на twitter появился интересный вопрос, и я бы сказал, что разместил его здесь.Какой процент вашей кодовой базы представлен кодом доступа к данным?

В принципе, мне интересно, что вы используете для сохранения данных в вашей базе данных и оценки процента вашей кодовой базы, которая является кодом доступа к данным.

Редактировать -
Другие интересные показатели (как отмечено в комментариях) включают в себя количество бизнес-классов и общий размер вашей кодовой базы.

Я просто посмотрел на проект, который я сделал много времени, прежде чем открывать NHibernate. Быстрый просмотр некоторых из кода доступа к данным показал около 10 строк кода для сохранения/гидратации для каждого сохраняющегося свойства в классе.

+0

Я думаю, сгенерированный код не в счет? Кроме того, приблизительное количество «бизнес-классов» или общий размер кода может быть интересно увидеть эффекты амортизации. –

+0

О да. Сгенерированный код определенно определен. Хотя для производства не требуется почти столько времени, в какой-то момент будет обслуживание. – RKitson

+0

надеюсь, что вы повторно генерируете, а не поддерживаете сгенерированный код ... –

ответ

1

В одном проекте мы использовали LLBLGenPro как наш OR/M. Но поскольку мы не хотели заманивать наше приложение объектами LLBL, мы сопоставили их с нашими BO, прежде чем они попали в клиент. Это означает, что они отображают их обратно в объекты LLBL, прежде чем снова ударять БД. Код DAL оказался очень большой частью нашего приложения. Не 50%, но значительная.

В проекте, над которым я сейчас работаю, я начал с db40, надеясь свести к минимуму расстояние DAL. И это было очень мало, но я столкнулся с проблемами с db40 и должен был отказаться от него. Я перешел на ADO.NET в течение нескольких дней, чтобы получить что-то полезное, и был поражен тем, как много неприятностей ADO мне приходилось писать, просто чтобы получить простой репозиторий. Это была головная боль, поэтому я, наконец, выбрал NHibernate.

Мой код DAL с NHibernate (2.0), вероятно, составляет 5% от моей базы кода. Это включает файлы сопоставления XML. Я имею в виду, что размер DAL настолько мал и с таким удовольствием работает. У меня были проблемы с NHibernate 1.2 в прошлом в распределенной среде, где мне нужно было работать с отдельными объектами, но NHibernate 2.0, похоже, решил эту проблему. Я знаю, что сейчас я делаю DAL, пока не появится что-то лучшее.

Интересно, что мы с коллегами провели аналогичную беседу пару месяцев назад. Но наше внимание было сосредоточено не столько на том, сколько кодов наш DAL учитывал, но сколько нашего приложения было просто запросом/манипуляцией данными. Мы подсчитали, что, вероятно, 90% нашего приложения было всего лишь вопросом получения правильного подмножества данных и разрешения пользователям редактировать его.

+0

Так вы считаете NHibernate лучше, чем LLBL? –

+0

Я лично НЕ сказал бы это.Что касается засорения вашего кода сущностями, вам не нужно генерировать то, чего вы не хотите. – johnc

+0

Насколько я знаю (и, может быть, я что-то пропустил, но мы использовали LLB в течение 3 лет), LLBL не может отображать из базы данных свои собственные пользовательские объекты. Он сопоставляет таблицы БД объектам, создаваемым LLBL. Я лично предпочитаю больше контролировать свои объекты. NHibernate дает мне это. –

0

Мы используем nHibernate большую часть времени, и он генерируется инструментом, если это не так, мы все же добавляем много кода в nHibernate-слой для каждого из объектов и да; он продолжает составлять большую часть кода.

Также код DAL увеличивается с увеличением функциональности и количества объектов в вашем приложении. Так что более или менее я думаю, что около 20% -30% нашей кодовой базы состоит из DAL.

Смежные вопросы