powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / OData сцуко не радует своими завихрениями
25 сообщений из 187, страница 6 из 8
OData сцуко не радует своими завихрениями
    #38802514
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМне это не надо.
Тебе не надо, чтобы клиенты могли что-то изменять? В каком детском саду ты решил повесить эту погремушку?

Алексей КOData параметры в URL типизированы, ага.
Причем тут URL и прикладной код на C#? Ты кодируешь "на URL"?

Алексей КБанальный метод void Save(Entity obj) вышел из моды?
Если бы всё так было просто.

Алексей КНу я понял. Только тут нужно возвращать myList.AsQueryable() . Но всё равно не нравится.
Зачем возвращать AsQueryable? Ты мой код читал? Где там AsQueryable?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802535
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КУтверждать, что OData заменит SOAP не разумно.

OData полностью перекрывает возможности SOAP, так что нахер этот SOAP пусть ползёт на кладбище и там в муках подыхает.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802544
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КМне это не надо.
Тебе не надо, чтобы клиенты могли что-то изменять? В каком детском саду ты решил повесить эту погремушку? После отказа от DataSet много лет обходился без трэкера изменений на клиенте. И сейчас обойдусь.

МСУАлексей КOData параметры в URL типизированы, ага.
Причем тут URL и прикладной код на C#? Ты кодируешь "на URL"? У меня клиент на JS, тут с типизацией не очень. Но я согласен, для типизации на клиенте потребуются сложные педали. Самому писать их, конечно же, глупо.

МСУАлексей КБанальный метод void Save(Entity obj) вышел из моды?
Если бы всё так было просто.Не надо усложнять там, где не надо усложнять. :-)

МСУАлексей КНу я понял. Только тут нужно возвращать myList.AsQueryable() . Но всё равно не нравится.
Зачем возвращать AsQueryable? Ты мой код читал? Где там AsQueryable?Пусть так, это ничего не меняет.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802549
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КУтверждать, что OData заменит SOAP не разумно.

OData полностью перекрывает возможности SOAP, так что нахер этот SOAP пусть ползёт на кладбище и там в муках подыхает.Посмотрим.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802558
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПосмотрим.

Для нас он уже умер. Отдельные некрофилы могут его ещё 50 лет жувать. Чего смотреть? Когда из конторы за профнепригодность попрут? Ахахаххааа... Тогда наверное сразу и силы на изучения откуда-то возьмутся, и желание появится Как говорится, некоторым просто нужна пинковая мотивация, без неё -- никуда!
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802561
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КПосмотрим.

Для нас он уже умер. Отдельные некрофилы могут его ещё 50 лет жувать. Чего смотреть? Когда из конторы за профнепригодность попрут? Ахахаххааа... Тогда наверное сразу и силы на изучения откуда-то возьмутся, и желание появится Как говорится, некоторым просто нужна пинковая мотивация, без неё -- никуда!Изучение OData займёт дня 3, не меньше...
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802564
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПосле отказа от DataSet много лет обходился без трэкера изменений на клиенте. И сейчас обойдусь.
EF и RIA так же умеют тречить. да и не аргумент это "и сейчас обойдусь". Тебе не надо, другим надо.

Алексей КУ меня клиент на JS, тут с типизацией не очень. Но я согласен, для типизации на клиенте потребуются сложные педали. Самому писать их, конечно же, глупо.
Выкинь клиента на JS и займись уже делом. Выучи MVC, Web API, OData. И в путь дорогу!

Алексей КНе надо усложнять там, где не надо усложнять. :-)
Усложнять? Да этот твой Save вообще не решает задачу Что туда передавать? Всю проекцию? А если я только изменил одно поле во вложенной сущности, причем глубина вложения = 3. OData клиент сгенерирует только единственный PATCH запрос на эту сущность. Ты предлагаешь написать единственный универсальный Save и парсить всё, что туда передается? А потом как-то это всё раскладывать по таблицам? Ты укурен?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802573
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИзучение OData займёт дня 3, не меньше...

Может сначала тогда изучить, а затем что-то доказывать? А то «не читал, но осуждаю»
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802600
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КПосле отказа от DataSet много лет обходился без трэкера изменений на клиенте. И сейчас обойдусь.
EF и RIA так же умеют тречить. да и не аргумент это "и сейчас обойдусь". Тебе не надо, другим надо.А я и не отговариваю. Нравится - пользуйтесь. Только SOAP не трогайте!
МСУАлексей КУ меня клиент на JS, тут с типизацией не очень. Но я согласен, для типизации на клиенте потребуются сложные педали. Самому писать их, конечно же, глупо.
Выкинь клиента на JS и займись уже делом. Выучи MVC, Web API, OData. И в путь дорогу!SPA одновременно убог и прекрасен. :-)
МСУАлексей КНе надо усложнять там, где не надо усложнять. :-)
Усложнять? Да этот твой Save вообще не решает задачу Что туда передавать? Всю проекцию? А если я только изменил одно поле во вложенной сущности, причем глубина вложения = 3. OData клиент сгенерирует только единственный PATCH запрос на эту сущность. Ты предлагаешь написать единственный универсальный Save и парсить всё, что туда передается? А потом как-то это всё раскладывать по таблицам? Ты укурен? Всегда передавали весь объект, даже если изменилось только одно поле, все были довольны. А тут вдруг стало нельзя.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802602
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КИзучение OData займёт дня 3, не меньше...

Может сначала тогда изучить, а затем что-то доказывать? А то «не читал, но осуждаю» Изучено ровно на столько, чтобы представлять себе его возможности и ждать. :-)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802706
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВпрочем, если не нравится "способ лучше" для SQL, есть способ ещё лучше:
Способ ещё лучше: OData over SOAP
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public class MyService
{
    public Entity[] GetQuery(QueryParameters p)
    {
        return Db.MyTable.Select(v => new Entity { ... }).Select(p).ToArray();
    }
}

...

public class QueryParameters
{
    public string Filter;
 
    public string Sort;

    public int Skip;

    public int Take;
}

// Не забыть подключить DLINQ нугетом или ещё как.

public static IQueryable<T> Select<T>(this IQueryable<T> src, QueryParameters p)
{
    return src.Where(p.Filter).OrderBy(p.Sort).Skip(p.Skip).Take(p.Take);
}

А это не с OData_ли содрано? :)

ODataQueryOptions Class
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802707
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем, парни, не знаю зачем вы так долго тут спорите.

У нас Public API принимает запросы в формате OData, формирует на их основе запрос к Private API примерно в таком же формате.
Далее некоторые запросы конвертируются в Conditions и дёргается WCF-сервис, который Conditions сериализует в XML и передаёт в хранимку.

И никакого IQueryable для этих некоторых запросов :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802713
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Вот, накопал интересную ссылку:

http://blogs.microsoft.co.il/zuker/2013/09/03/wcf-queryable-over-soap-using-odata-uris/

Цитата:

"I understand the concept of OData which aims to serve and manage data over a standard and interoperable protocol, however I found several projects which revolves around building SOAP services with WS-* standards that wished to have that too.
For example, I could have a distributed .NET system with WS-* as well as binary encoding, but I simply want to support that powerful query API, not as a goal for interoperability, but as a goal of allowing the consumer to define the query that it wishes."


Я глубоко не копался в исходниках, но, похоже, фичи OData без особых проблем прикручиваются к WCF :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802716
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА я и не отговариваю. Нравится - пользуйтесь. Только SOAP не трогайте!
Гавно обычно трогают. Чтобы позабавиться как оно воняет

Алексей КВсегда передавали весь объект, даже если изменилось только одно поле, все были довольны. А тут вдруг стало нельзя.
А кто-то раньше доказывал с пеной у лба о скорости SOAP :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802718
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диез, да концепт-то простой.

Основная проблема в том, что лямбды не сериализуются.

То есть нам нужен некий объект Specification, что мы можем сериализовать и передать WCF сервису.
На той стороне он десиаризуется и на его снове либо создаётся лямбда выражение, либо он сам маппится на запрос в БД.

Например на основе ODataQueryOptions такой объект очень легко собрать и вуаля. :)

Просто разработчики библиотек для OData сразу реализовали и пункт "на его снове либо создаётся лямбда выражение" и люди,
кто не разобрались в проблеме, видят только то, что для поддержки OData надо IQueryable наружу выставлять.

Да ни фига не обязательно :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802719
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТо есть нам нужен некий объект Specification...Или назовём его Condition, Criteria, QueryObject, QueryOptions :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802720
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Специализация" как сказал бы Сахват :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802733
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей К
Будет тебе сегодня концепт в рецептах. Честный OData, клиент на WPF. MVVM + живой контекст, который трачит изменения и сливает их на сервер. Никаких DTO и прочего мусора. Всё как в лучших домах парижа.
Вот http://codearticles.ru/articles/2525 набросал тебе идею, как гибко можно строить толстого клиента на XAML + MVVM + OData. OData по сути сервер приложения, который обcлуживает клиентов. Теперь такие сервера становится писать намного проще, чем процедурный SOAP.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802751
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAskyANAТо есть нам нужен некий объект Specification...Или назовём его Condition, Criteria, QueryObject, QueryOptions :)

Да, в теоретической возможности сериализации Expression Trees сомнений не было. Но если я правильно понял из того блога - уже есть готовые библиотеки, позволяющие без особых трудозатрат "пробросить" лямбду через любой транспорт. Это уже интересно с практической точки зрения :-)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802764
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиезskyANAпропущено...
Или назовём его Condition, Criteria, QueryObject, QueryOptions :)

Да, в теоретической возможности сериализации Expression Trees сомнений не было.Стоп, стоп. Я не предлагаю сериализацию Expression Trees.
Сериализуется как обычно некий DTO объект по которому потом уже стрится LambdaExpression.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802766
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И на практике это работает :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802878
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут описал, как работает парсер одаты http://codearticles.ru/articles/2473
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802945
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Диез
МСУ
Что я понял:

1. Внутренности реализации OData можно использовать по частям отдельно и прикручивать к чему угодно.
2. OData может локально обрабатывать любой IEnumerable.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802947
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА я и не отговариваю. Нравится - пользуйтесь. Только SOAP не трогайте!
Гавно обычно трогают. Чтобы позабавиться как оно воняет OData - это следующий шаг после SOAP. Только один вопрос: этот шаг куда? Как бы не наступить в ..., как это часто бывает с новыми технологиями. Мне эти новые возможности не особо нужны, поэтому буду пока ждать и наблюдать.
МСУАлексей КВсегда передавали весь объект, даже если изменилось только одно поле, все были довольны. А тут вдруг стало нельзя.
А кто-то раньше доказывал с пеной у лба о скорости SOAP :)Мы куда-то не успеваем?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802948
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КВпрочем, если не нравится "способ лучше" для SQL, есть способ ещё лучше:
Способ ещё лучше: OData over SOAP
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
public class MyService
{
    public Entity[] GetQuery(QueryParameters p)
    {
        return Db.MyTable.Select(v => new Entity { ... }).Select(p).ToArray();
    }
}

...

public class QueryParameters
{
    public string Filter;
 
    public string Sort;

    public int Skip;

    public int Take;
}

// Не забыть подключить DLINQ нугетом или ещё как.

public static IQueryable<T> Select<T>(this IQueryable<T> src, QueryParameters p)
{
    return src.Where(p.Filter).OrderBy(p.Sort).Skip(p.Skip).Take(p.Take);
}

А это не с OData_ли содрано? :)

ODataQueryOptions Class Тут можно что-то другое придумать? :-)
...
Рейтинг: 0 / 0
25 сообщений из 187, страница 6 из 8
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / OData сцуко не радует своими завихрениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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