Каково различие между NHibernate и iBATIS.NET?

Этот

mapView.delegate = self

с

class ViewController: UIViewController, MGLMapViewDelegate {

отвечает за их вызов, внутри фрейма MapKit класс MKMapView имеет свойство делегата, когда вы установить правый делегат внутренне, это происходит

delegate?.mapView(self,//)

и вы не должны возвращать ноль здесь

func mapView(_ mapView: MGLMapView, viewFor annotation: MGLAnnotation) -> MGLAnnotationView? {
5
задан Jeremy 3 April 2009 в 19:21
поделиться

3 ответа

Я сделал некоторое исследование только что.

Один конкретный вопрос от меня, мог бы дать Вам некоторую дополнительную информацию: Вы использовали бы NHibernate для проекта с унаследованной базой данных, которая частично находится вне Вашего контроля?

Некоторые Ваши интересные места я могу ответить:

  • Который лучше, если Вы управляете и моделью данных и приложением?

Я могу ответить на это наоборот: Если Вы не управляете моделью данных и таким образом стоящий перед некоторой унаследованной базой данных, iBatis является лучшим выбором.

  • iBATIS неоднократно называют более простым учиться - это имеет долгосрочные последствия обслуживания (т.е. легкий запуститься, трудно поддержать)?

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

  • Оба помогают переключить базового поставщика базы данных?

У обоих есть механизмы для защиты Вас прочь от определенного поставщика базы данных, но я признаю, что не провели интенсивное исследование в этом направлении.

  • Насколько квалифицированный Ваши разработчики должны быть с SQL?

При использовании iBatis Вам нужно больше навыков SQL, чем NHibernate. Используя iBatis всегда необходимо кодировать некоторый SQL. NHibernate не требует, чтобы Вы кодировали SQL-операторы - он даже может сделать DDLs для Вас. Мощные функции потребуют, чтобы Вы перешли к старому хорошему SQL, который будет неизбежен.

Некоторые другие точки:

  • Я лично нахожу что iBatis намного больше lightweighter. Можно добиться цели очень быстро. NHibernate более мощен, но имеет намного больше функций, которые можно использовать неправильным способом.

  • Возможно объединить использование NHibernate и iBatis! Можно использовать NHibernate для бизнес-логики. Для создания отчетов о целях, где Вы просто считываете данные из таблиц, нейтрализации к iBatis.

  • Если Ваше приложение имеет более длительный жизненный цикл и большую бизнес-логику, рассмотрите NHibernate. Это имеет много функции, помогающей Вам в бизнес-объектах дескриптора.

  • Сообщество вокруг NHibernate очень активно и придумывает полезные инструменты.

5
ответ дан 13 December 2019 в 19:36
поделиться

В некотором смысле это сравнивает яблоки с апельсинами.

Который лучше, если Вы управляете и моделью данных и приложением?

Они оба работают с нормализованными базами данных хорошо, таким образом, они более или менее равны, если можно сформировать дб. iBatis лучше в отображении на унаследованные базы данных, так как это на самом деле не заботится о структуре базы данных вообще. Это только заботится о форме набора результатов.

.iBATIS неоднократно называют более простым учиться - это имеет долгосрочные последствия обслуживания (т.е. легкий запуститься, трудно поддержать)?

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

Оба помогают переключить базового поставщика базы данных?

Да

Насколько квалифицированный Ваши разработчики должны быть с SQL?

Оба требуют хорошего знания SQL. С iBatis все еще необходимо записать sql queries/procs. С NHibernate необходимо знать, как записать запросы NHibernate для получения эффективного SQL. Ни один не замена для знания SQL.

Какой-либо основной функции, что у каждого есть это другой, недостает?

iBatis является datamapper (термин, использованный на iBatis сайте). NHibernate является полноценным Объектным Реляционным Картопостроителем. iBatis является отличным способом пойти, если Вы, прежде всего, хотите что-то, что вынимает монотонность из отображения объектов к наборам результатов. Однако это не идет полностью в попытке решить объектное/реляционное несоответствие. NHibernate имеет намного больше функций, таких как грязное отслеживание, кэширующееся на основе идентификационных данных / карта идентификационных данных, гибкие запросы, динамический sql, обрабатывая в пакетном режиме и т.д... NHibernate является намного более динамичным в этом, он может сделать много вещей в одном прохождении в DB, который мог взять iBatis несколько прохождений.

3
ответ дан 13 December 2019 в 19:36
поделиться

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

3
ответ дан 13 December 2019 в 19:36
поделиться