Что бы вы выбрали для вашего веб-приложения ASP.NET; nHibernate, Linq или SubSonic - PullRequest
4 голосов
/ 09 октября 2008

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

Ответы [ 13 ]

5 голосов
/ 09 октября 2008

SubSonic в настоящее время используется во всех наших веб-приложениях с большим успехом. За считанные минуты вся ваша база данных может быть создана с нуля и готова к использованию в вашем приложении. У Роба Конери, создателя SubSonic, есть несколько отличных веб-трансляций, подробно описывающих процесс настройки битов SubSonic в веб-приложении, а также несколько классных демонстраций для начала. Проверьте SubSonic Project .

4 голосов
/ 09 октября 2008

Я использую LLBLGen Pro для своего ORM около года, и это сработало довольно хорошо. Хотя я не использовал SubSonic, мне сказали, что они похожи. С нуля он может создать слой доступа к данным из вашей базы данных и быть готовым к использованию всего за пару минут. Есть небольшая кривая обучения, по крайней мере, для меня, но файлы справки предоставляют достаточно информации, чтобы помочь вам справиться почти со всем, с чем вы столкнулись. Приложение может быть использовано как установлено без проблем, но также поддерживает обширную настройку (может быть, слишком много?).

3 голосов
/ 10 октября 2008

Я бы использовал NHibernate. Постоянное невежество для меня - один из главных способов продажи, а не привязанность к базе данных - это еще один. Entity Framework имеет глубокие недостатки, и это не просто отсутствие отложенной загрузки. EF и LINQ2SQL являются новыми технологиями, в то время как NHibernate очень развит и видел гораздо больше действий.

Еще одна хорошая вещь о NHibernate - возможность переключения баз данных без редактирования вашей. Я использую это для интеграционных тестов, которые запускаются локально, запускает их с SQLite, а затем с SQL Server на сервере CI .

2 голосов
/ 10 октября 2008

Другой вариант - Замок ActiveRecord . Он реализует шаблон проектирования Active Record поверх NHibernate, а также избавляет от большинства проблем с настройкой (например, настройкой «isWeb») и отображением.

2 голосов
/ 10 октября 2008

Если ваша модель наследования в базе данных работает с очень ограниченной поддержкой наследования Linq, тогда я скажу перейти на Linq. Если вам нужны более сложные сценарии наследования, то я бы сказал, что вам следует придерживаться NHibernate и справляться с любой болью, которую вы испытываете.

2 голосов
/ 09 октября 2008

Мы используем ADO.NET Entity Framework на довольно активном сайте (10 000 посещений в день). Это было хорошо для нас. Отсутствие отложенной загрузки раздражает, но заставляет задуматься о переходе в базу данных.

1 голос
/ 01 января 2009

Меня не особо волнует SubSonic. Мне кажется, это очень тонкий инструмент DAL. С SubSonic я по-прежнему набираю много строковых литералов, что, кажется, для меня побеждало. Лично я предпочитаю LLBLGen:

http://www.llblgen.com/defaultgeneric.aspx

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

http://weblogs.asp.net/FBouma/

1 голос
/ 21 октября 2008

Мне нравится SubSonic, так как он довольно прост в настройке и создании DAL. Реализация не является полноценной ORM, так как она создает только класс для каждой таблицы. Возможность использовать хранимые процедуры компенсирует необходимость составления объектов, являющихся результатом объединений. Опять же, SubSonic должен быть функциональным, поэтому он поможет вам быстро достичь целей проекта.

Тем не менее, вы не можете использовать SubSonic для "создания объектов" - нет файла конфигурации, который описывает отношения между классами. База данных все еще определяет, как вы формируете свое решение.

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

Мой опыт работы в экосистеме Microsoft:

Я использовал Linq2Sql в нескольких проектах и ​​столкнулся с проблемой «Расслоение», о которой упоминает azamsharp.

Не то чтобы это сильно помогло бы, если бы вы устали отсылать POCO обратно на уровень логики или пользовательского интерфейса, но реализация шаблона Repository немного помогает в решении этой неприятной проблемы с разделением по слоям и разделением задач.

Хороший базовый репозиторий Impl

Для всего, что использует сложную семантику, такую ​​как голосование или статистика (в основном любой объект домена, который должен отображаться или обрабатываться иначе, чем он представлен в базе данных), ADO.Net Entity Framework дает вам некоторые преимущества. Он может упростить вашу бизнес-логику / уровень доступа к данным, включив сложный поиск данных.

Обзор ADO.Net Entity Framework

Надеюсь, это поможет!

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

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

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