ORM (особенно. NHibernate) производительность для сложных запросов

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

Моя компания делает Excel совместимыми компонентами электронной таблицы для использования с Windows Forms и ASP.NET. Мы получали этот вопрос в течение многих лет, таким образом, мы, конечно, рассмотрели создание того, потому что это похоже на хороший бизнес. Но HTML / JavaScript является просто не подходящей платформой для создания чего-то, что "чувствует себя хорошо" пользователям, которые хотят, чтобы это работало как Excel - IMO.

Мы обосновались на идее создать управление электронной таблицей для Silverlight. Я полагаю, что это даст Вам лучший из обоих миров - кросс-платформенная богатая интерактивная электронная таблица в браузере, которым любой пользователь Excel был бы доволен. К сожалению, это не собирается происходить в этом месяце или затем...

В моей предыдущей компании, мы на самом деле создали компонент электронной таблицы как Плагин Netscape как элемент управления ActiveX и как Апплет Java. Они имели определенный успех, но ни одна из этих технологий никогда не становилась повсеместной на предприятии по различным причинам. Я полагаю, что Microsoft наконец разбирается в нем с Silverlight и что Silverlight станет золотым стандартом для приложений Направления деятельности на базе браузера на Предприятии.

РЕДАКТИРОВАНИЕ:

я должен был упомянуть, что продуктом, я сослался на вышеупомянутое, является Формула Один / СЕТЬ (Плагин Netscape выпустил ~1995), Формула Один / ActiveX и Формула Один для Java - который теперь продается, Приводят в действие как e. Электронная таблица. Я уехал в 2002, но AFAIK, они все еще поддерживают Апплет Java, который является, вероятно, лучшим примером Excel как UI в браузере (у меня нет интереса к продукту больше - на самом деле, мы конкурируем в некоторой степени с e. Электронная таблица и намеревается иметь лучший ответ с управлением Silverlight в будущем). Я не упоминал это по имени в моем исходном ответе, потому что это - продукт Java - не продукт.NET - но это - потенциальный ответ даже для веб-сайта ASP.NET.

Lloyd Cotten правильно комментирует, что Google Docs является примером электронной таблицы, созданной с HTML / JavaScript. Lloyd говорит, что Google Docs "определенно 'чувствует себя хорошо' в его подобии Excel". В то время как я уважаю мнение Lloyd's, по моему опыту, Google Docs не 'чувствует себя хорошо'. Возможно, это вызвано тем, что я - парень электронной таблицы. Я действительно знаю, что мы говорим с потенциальными клиентами почти каждый день, которые пытаются решить проблему OP, и они все посмотрели и не могут найти того, который они довольны - но конечно они не позвонили бы нам, если бы они имели так, мы имеем дело со смещенной выборкой, и я понимаю это.

, Таким образом, я просто хочу разъяснить, что существует на самом деле много примеров HTML / сетки JavaScript и электронные таблицы, которые применимы. Это просто, что я не хочу должным быть использовать их, потому что я ожидаю, что определенные ключи сделают определенные вещи и конкретный уровень скорости отклика, которая является просто не там сегодня с любым HTML / решения JavaScript, которые я попробовал (и я регулярно смотрю на них, потому что моя компания могла определенно продать такой продукт, если бы было выполнимо создать то, что мы могли гордиться).

10
задан Thomas Levesque 1 October 2009 в 00:19
поделиться

3 ответа

См. этот график . На данный момент нет DataObjects.Net, но его результаты в сравнении с EF и NHibernate показаны здесь .

Тестовый код LINQ для EF - здесь ; версии для других инструментов можно найти в той же папке. Все эти файлы .cs генерируются одним шаблоном T4 , поэтому тесты полностью идентичны. Используемая там модель - Northwind.

Еще несколько ссылок:

8
ответ дан 3 December 2019 в 20:05
поделиться

NHibernate требует некоторого обучения, но его стоит изучить, поскольку любое потраченное время окупится во много раз. Я бы порекомендовал NHibernate in Action book для изучения, так как это отличный ресурс, охватывающий все, что задает ваш вопрос, и многое другое.

Производительность NHibernate можно настроить (см. Ссылки ниже), а NHibernate имеет надежный механизм кэширования.

http://www.codeproject.com/KB/database/NHibernate_Perf.aspx https://www.hibernate.org/hib_docs/nhibernate/html/performance.html

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

6
ответ дан 3 December 2019 в 20:05
поделиться

Если вы ищете ORM с комплексным и эффективным транслятором LINQ, я рекомендую вам попробовать Entity Framework или DataObjects.Net . Я не уверен в поддержке Oracle Lite. Переводчик LINQ NHibernate еще не полностью завершен.

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

5
ответ дан 3 December 2019 в 20:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: