powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibenate - клиентские запросы
17 сообщений из 17, страница 1 из 1
NHibenate - клиентские запросы
    #37719835
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имею трехзвенную архитектуру, использую на киенте Silverlight, NHibernate на WCF-сервисе.

И такой вопрос возник, если какая-то возможность писать запросы на SELECT в клиентской части?
т.е. передавать допустим HQL/IQuery запрос на сервис для его выполнения.

Не хочется плодить банальные методы на поиск человека по имени и т.п.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37719847
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratoss,

Можно. Вопрос том, готовы ли выставить такую возможность в сеть.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720037
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorМожно. Вопрос том, готовы ли выставить такую возможность в сеть.

У меня интранет приложение, раграничение прав доступа согласно ролям Oracle,
то что нельзя получить - получить не сможет, если Вы про это?

Можно ссылку на такую возможность?

Если пользоваться HQL - тут все просто. Делаем метод, который принимает hql запрос в виде строки.
А если хотим динамический запрос, например с ICriteria, то тогда как.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720074
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratoss...У меня интранет приложение...
А нафиг тогда Вам "Silverlight, NHibernate на WCF-сервисе"?
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720078
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПС. Не подумайте чего плохого. Просто пытаюсь держать нос по ветру.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720105
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratoss,

Есть старый добрый шаблон builder . Используете его на клиенте, а серверу отправляете уже готовый hgl-запрос.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720119
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergemaratoss...У меня интранет приложение...
А нафиг тогда Вам "Silverlight, NHibernate на WCF-сервисе"?
Не понял вопроса.

Приложение банальные CRUD операции ну и + каскадное добавление/обновление.
Решил использовать, заодно изучить, данный ORM.
А SL, как клиент вполне годится.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720179
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

Спасибо, сейчас что-нибудь наковыряю.
А насчет готовых решений, есть что-нибудь, не в курсе?
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720185
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratossShSergeпропущено...

А нафиг тогда Вам "Silverlight, NHibernate на WCF-сервисе"?
Не понял вопроса.

Приложение банальные CRUD операции ну и + каскадное добавление/обновление.
Решил использовать, заодно изучить, данный ORM.
А SL, как клиент вполне годится.
То, что Вы написали для интранет не годится. Особенно, если учесть, что Вы не поняли моего простого вопроса. Вот этот самый CRUD, про который Вы, как бы между прочим, написали - это Ваша самая большая проблема и самая большая работа, даже если на nHibernate, хотя не рекомендую. А вот это: "Silverlight, NHibernate на WCF-сервисе" Вам вообще нафиг не нужно.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37720888
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

выкладывайте ваше решение. На идейном уровне.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37721167
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что нельзя формировать запросы на клиенте, известный факт. Интранет здесь не оправдание. Сколько уже раз такое случалось, когда обиженный начальством работник... . Это во-первых.
Изучение технологий - дело полезное, трудно с этим не согласиться, но зачем же такие сложности? Во-первых, сначала ограничивать себя безопасными интернет-технологиями, а потом формировать запрос на клиенте? Это во-вторых.
В третьих, я бы не заморачивался и написал бы простое клиент-серверное (два звена) приложение, если это интрасеть, например винформс - клиент, sql-сервер - сервер.
Но это так, моё скромное имхо.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37721262
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeТо, что нельзя формировать запросы на клиенте, известный факт. Интранет здесь не оправдание. Сколько уже раз такое случалось, когда обиженный начальством работник... . Это во-первых.
Изучение технологий - дело полезное, трудно с этим не согласиться, но зачем же такие сложности? Во-первых, сначала ограничивать себя безопасными интернет-технологиями, а потом формировать запрос на клиенте? Это во-вторых.
В третьих, я бы не заморачивался и написал бы простое клиент-серверное (два звена) приложение, если это интрасеть, например винформс - клиент, sql-сервер - сервер.
Но это так, моё скромное имхо.
В четвертых winform давно уже протух и есть масса вариантов, когда нужна распределенность и он не подходит.
Помимо этого давное есть REST c IQueryable и различные варианты обверток(например, WCF Data Services Client Library for Silverlight), которые преобразуют Linq запрос в нужный вид вызова сервиса.
В этом плане никаких особых ограничений нет, было бы желание и представление о возможностях технологии.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37721270
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaВ четвертых winform давно уже протух и есть масса вариантов, когда нужна распределенность и он не подходит...
Что такое "распределённость" и почему не подходит и протух? В принципе, я уже больще пяти-шести лет не пишу двухзвенные клиент-серверные приложения. Может, соглашусь с Вами. Только что Вы имеете ввиду?
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37722592
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

Сложно не согласиться, что лучше присылать не hql, а параметры запроса, и уже из них на сервере формировать уже сам запрос. По поводу wcf - сложнее, зависит от контекста. Может автору надо интеграцию с другими приложениями делать? Тогда сервер приложений ближе к делу. А сервелат немножко проще апргрейдить, нежели виндморды. Так что в этом тоже может быть смысл.
Но в целом могу с вами согласится (за исключением мнения о NH).
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37724752
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Планируется использование сервиса из другого приложения/другого сервиса.
Поэтому и решил вынести некоторую логику в сервис.

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

Погуглил, советуют использовать DTO, но придется по сути дублировать много кода с перекачкой из объекта в DTO.
А есть еще какие-нибудь способы передать объект на клиент?

Сложно не согласиться, что лучше присылать не hql, а параметры запроса, и уже из них на сервере формировать уже сам запрос.
Объясните плз, почему?
Единственный минус, который я вижу - это то что можно написать, неоптимизированный запрос и обязательное знание HQL.
Для первого случая можно придумать инструмент, который будет показывать в какой SQL код будет транслироваться HQL.
Для второго в принципе подойдет как вы сказали паттерн Builder.


А вот про WCF DataService еще не читал.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37724821
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maratossА есть еще какие-нибудь способы передать объект на клиент?
Серебряной пули нет. Я бы посоветовал остановится на DTO + object-object mapper.
И кстати, загрузкой объектов в NHibernate можно управлять на уровне запросов, а не только mapping'ов.
maratossОбъясните плз, почему?
Потому что при должном знании, какой-нибудь сотрудник может узнать что-нибудь интересное, но для него совсем не предназначенное. А если клеить на клиенте SQL - то это просто приглашение к SQL-iinjection.
...
Рейтинг: 0 / 0
NHibenate - клиентские запросы
    #37730765
maratoss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за разъяснения!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibenate - клиентские запросы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]