powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / OData сцуко не радует своими завихрениями
25 сообщений из 187, страница 5 из 8
OData сцуко не радует своими завихрениями
    #38802125
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Муся потихоньку идет к нам :)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802148
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAКуда приплыли? Ты реально думаешь, что в случае с OData кто-то разграничение прав реализует на клиенте?
Да это кагбэ две недели уже вдолбить пытаюсь.
Любое ограничение приводит к допилу сервера! А в ентерпрайзе такие ограничения нужны чаще чем свобода которую дает клиенту OData! Поэтому и профит от OData стремится к нулю! Сплошное размарывание логики которое никому не нужно.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802162
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAКуда приплыли? Ты реально думаешь, что в случае с OData кто-то разграничение прав реализует на клиенте?
Да это кагбэ две недели уже вдолбить пытаюсь.
Любое ограничение приводит к допилу сервера! А в ентерпрайзе такие ограничения нужны чаще чем свобода которую дает клиенту OData! Поэтому и профит от OData стремится к нулю! Сплошное размарывание логики которое никому не нужно.Где ты увидел допил сервера? Читай внимательно!
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802166
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где ты увидел размазываение логики? Какой логики? Реальный пример будет?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802178
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIКто требует модель на клиенте?
Клиент

EDUARD SAPOTSKIКому она там нахрен вперлась?
Всем потребителям. Скиана уже всё на пальцах объяснил, не вижу смысла мусолить очевидное.

EDUARD SAPOTSKIКлиенту нужны гридики, формочки, кнопочки, графики! Какая нах модель?
Причем тут UI? Речь о модели данных, не тупи. С кубами когда-нибудь работал в экселе, крутил вертел измерениями / мерами? Вот это и есть модель на клиенте, каждый под себя её подстраивает. Разграничение доступа - на сервере.

EDUARD SAPOTSKIГы, а OData сама решение рожает когда клиент чихнул? При чихе будет тот же допил и сервера и клиента, только основная логика ляжет на клиента. Вот это и есть говнокод-стаил.
У тебя каша в голове.

EDUARD SAPOTSKIЕще Заказчик очень настоятельно рекомендовал сделать так что бы рядовые менеджеры ни коим образом не узнали о заказах стоимостью выше 1 млн. руб!
Приплыли?
Десятый раз повторяю, роли и прочая секурность живет в OData сервисе на сервере. Даже если клиент с ролью "Рядовой менеджер" запросит у OData сервиса заказы стоимостью > 1 млн, OData выдаст пустой ответ.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802198
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПро "шаг влево - расстрел" понравилось, это преимущество SOAP.
Это его недостаток, увы. В процедурном стиле OData тоже может работать. А вот SOAP не может работать в стиле модели. То есть OData уже на голову выше.

Алексей КМСУЭто как вариант, практически любой BI имеет такую архитектуру. Датаварехаус и ETL. Куда ж без оного.Какой-то там протокол передачи данных диктует архитектуру. Я отказываюсь что-либо понимать...
Что тебя смущает? Не понимаешь, что такое ETL для транспорта данных из базы в DMZ зоны в безопасную зону? Ну это ж десткий сад вроде как

Алексей КС IEnumerable так же можно работать и доставлять к нему фильтры. Но с IQueryable лучше, да.Таки нужен пример OData без IQueryable. Будет?[/quot]
Никакой разницы, можно и с IEnumerable. OData умеет применять фильтры и прочие выборки как к IQueryable, так и к IEnumerable. Да и что ты этими IEnumerable мыслишь? Помимо коллекций там есть много всего, POST, PUT, PATCH, DELETE запросы. Полноценный CRUD для всей модели, что может быть лучше? Причем тут IEnumerable?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802206
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Критинический взгляд на OData в действии
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802207
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKIskyANAКуда приплыли? Ты реально думаешь, что в случае с OData кто-то разграничение прав реализует на клиенте?
Да это кагбэ две недели уже вдолбить пытаюсь.
Любое ограничение приводит к допилу сервера! А в ентерпрайзе такие ограничения нужны чаще чем свобода которую дает клиенту OData! Поэтому и профит от OData стремится к нулю! Сплошное размарывание логики которое никому не нужно.
Причем тут допил сервера? Если нужна безопасность, роли - значит нужно отдавать данные в соответствии с этими ролями. А как иначе? Есть какая-то Security архитектура (да тот же Membership или AD), значит нужно отдавать данные именно так. Какую-то ты ахинею несешь, извини.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802210
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКритинический взгляд на OData в действии
Причем тех людей, которые абсолютно не знакомы с OData
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802222
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУhVosttКритинический взгляд на OData в действии
Причем тех людей, которые абсолютно не знакомы с OData

Я подозреваю, что кому-то просто тупо-лень изучать что-то новое. Или для них подобное умственное усилие совершить настолько тяжело, что они будут продолжать до посинения мудохаться с когда-то с великим трудом осиленный SOAP, пока руководство не решит списать их на свалку
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802247
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЯ подозреваю, что кому-то просто тупо-лень изучать что-то новое. Или для них подобное умственное усилие совершить настолько тяжело, что они будут продолжать до посинения мудохаться с когда-то с великим трудом осиленный SOAP, пока руководство не решит списать их на свалку
Именно поэтому я и пытаюсь предостеречь Лёшу от списания на помойку, ведь молодой ещё, 35-и даже нету :) А вот Эдик уже потерянная душа, да и к тому же предприниматель... Дед Сахават мыслит часто верно, вот некоторым неофитам объясняет, что модель клиенту обязательно нужна
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802359
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ... не вижу смысла мусолить очевидное.Тогда будем мусолить неочевидное.
МСУАлексей КПро "шаг влево - расстрел" понравилось, это преимущество SOAP.
Это его недостаток, увы. В процедурном стиле OData тоже может работать. А вот SOAP не может работать в стиле модели. То есть OData уже на голову выше.Вспоминаем ООП. Данная задача решается базовым классом объекта входных параметров + расширяющие методы для IQueryable. Dynamic LINQ в помощь.
МСУАлексей Кпропущено...
Какой-то там протокол передачи данных диктует архитектуру. Я отказываюсь что-либо понимать...
Что тебя смущает? Не понимаешь, что такое ETL для транспорта данных из базы в DMZ зоны в безопасную зону? Ну это ж десткий сад вроде как Не понимаю, почему ради протокола предлагается менять архитектуру: добавить ещё одну БД. Надеюсь, что я чего-то не понимаю, иначе моё разочарование окружающим миром будет бесконечно.
МСУАлексей КТаки нужен пример OData без IQueryable. Будет?Никакой разницы, можно и с IEnumerable. OData умеет применять фильтры и прочие выборки как к IQueryable, так и к IEnumerable.Где посмотреть про OData + IEnumerable?
МСУДа и что ты этими IEnumerable мыслишь?Чтобы проверить, как будет вести себя предлагаемая технология в моём мире.
МСУПомимо коллекций там есть много всего, POST, PUT, PATCH, DELETE запросы.PUT, PATCH, DELETE не нужны.
МСУПолноценный CRUD для всей моделиМы научились делать КРУД. Браво!
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802364
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКритинический взгляд на OData в действии Это объяснимо - не надо пихать OData куда не надо. У SOAP своё применение, у OData своё. Утверждать, что OData заменит SOAP не разумно.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802370
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе понимаю, почему ради протокола предлагается менять архитектуру: добавить ещё одну БД.

Где ты её нашёл?
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802386
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУЭто его недостаток, увы. В процедурном стиле OData тоже может работать. А вот SOAP не может работать в стиле модели. То есть OData уже на голову выше.Вспоминаем ООП. Данная задача решается базовым классом объекта входных параметров + расширяющие методы для IQueryable. Dynamic LINQ в помощь.
Причем тут ООП, что за бред?
1. Задача на стороне клиента. Как ты научишь SOAP транслировать IQueryable и во что?
2. Вторая задача на стороне сервера. Как ты научишь SOAP принимать транслированные "во что-то" клиентские запросы?
3. Третья задача на стороне сервера. Как ты научишь SOAP делать новую трансляцию обратно в IQueryable?

Что это будет за велосипед, мне страшно представить. Такое даже в страшном сне не приснится.

Алексей КНе понимаю, почему ради протокола предлагается менять архитектуру: добавить ещё одну БД. Надеюсь, что я чего-то не понимаю, иначе моё разочарование окружающим миром будет бесконечно.
Кто сказал, что надо менять архитектуру и добавлять еще одну БД? Можешь вообще без БД работать Можешь с одной БД работать. А можешь хоть сотню БД использовать. Причем тут OData? Какое разочарование?

Алексей КГде посмотреть про OData + IEnumerable?
В документации? http://msdn.microsoft.com/ru-ru/library/jj890228(v=vs.111).aspx

Алексей КМСУДа и что ты этими IEnumerable мыслишь?Чтобы проверить, как будет вести себя предлагаемая технология в моём мире.
Ну так дождись моего концепта сегодня и делай свои IEnumerable.

Алексей КPUT, PATCH, DELETE не нужны.
Еще как нужны. Без них не будет круда.

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

Где ты её нашёл? Тут МСУ подтвердил добавление БД. Но я понимаю, что можно отдавать наружу проекции и выборки.

Так же я понимаю, что ещё проще дать клиентам коннект к БД, пусть делают с ней что хотят, хоть в Excel, хоть ещё в чём. Даём права только на Views: будут им и проекции, и выборки, и row level security, и всё остальное.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802409
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Вспоминаем ООП. Данная задача решается базовым классом объекта входных параметров + расширяющие методы для IQueryable. Dynamic LINQ в помощь.
Причем тут ООП, что за бред?
1. Задача на стороне клиента. Как ты научишь SOAP транслировать IQueryable и во что?Ну пишу ведь: базовый класс для parameter object.
МСУ2. Вторая задача на стороне сервера. Как ты научишь SOAP принимать транслированные "во что-то" клиентские запросы?Схема возвращаемых данных вроде как не меняется.
МСУ3. Третья задача на стороне сервера. Как ты научишь SOAP делать новую трансляцию обратно в IQueryable?Писал ведь: Dynamic LINQ в помощь.
МСУЧто это будет за велосипед, мне страшно представить. Такое даже в страшном сне не приснится.Бойся меня.
МСУАлексей КНе понимаю, почему ради протокола предлагается менять архитектуру: добавить ещё одну БД. Надеюсь, что я чего-то не понимаю, иначе моё разочарование окружающим миром будет бесконечно.
Кто сказал, что надо менять архитектуру и добавлять еще одну БД? Можешь вообще без БД работать Можешь с одной БД работать. А можешь хоть сотню БД использовать. Причем тут OData? Какое разочарование?Ну слава Богу, теперь я спокоен.
МСУАлексей КГде посмотреть про OData + IEnumerable?
В документации? http://msdn.microsoft.com/ru-ru/library/jj890228(v=vs.111).aspx Ок, посмотрю.
МСУАлексей Кпропущено...
Чтобы проверить, как будет вести себя предлагаемая технология в моём мире.
Ну так дождись моего концепта сегодня и делай свои IEnumerable.Ок.
МСУАлексей КPUT, PATCH, DELETE не нужны.
Еще как нужны. Без них не будет круда.Фи....
МСУАлексей КМы научились делать КРУД. Браво!
В SOA? Да. А раньше умели? В WCF сложнее - он не умеет generic-контракты в базовых классах/интерфейсах. MVC/WebAPI в этом отношении намного лучше: функционал типового круда без труда выносится в generic-базовые классы контроллеров.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802414
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу пишу ведь: базовый класс для parameter object.
Я не понимаю тебя. Как базовый класс для parameter object поможет решить 3 задачи выше?

Алексей КСхема возвращаемых данных вроде как не меняется.
Ты не ответил на вопрос. Опиши архитектуру, как ты в SOAP реализуешь то, о чем я говорю.

Алексей КПисал ведь: Dynamic LINQ в помощь.
Что будет делать и из чего DLINQ? Не надо отвечать невнятными отрывками, распиши подробно, что нужно делать. По пунктам.

Алексей КНу слава Богу, теперь я спокоен.
Не бойся OData, она не сделает тебе вреда

Алексей КВ WCF сложнее - он не умеет generic-контракты в базовых классах/интерфейсах. MVC/WebAPI в этом отношении намного лучше: функционал типового круда без труда выносится в generic-базовые классы контроллеров.
WCF хорош для своих задач, которые на базируются на HTTP байдингах. А так да, увы - эти байдинги заняты в другой нише (Web API и OData)
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802419
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУпропущено...

В документации? http://msdn.microsoft.com/ru-ru/library/jj890228(v=vs.111).aspx Посмотрел. DataContractAttribute на PageResult<T> особенно порадовал. Вероятно, WCF где-то рядом.

Не увидел, как делать запросы к произвольному IEnumerable.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802423
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТак же я понимаю, что ещё проще дать клиентам коннект к БД, пусть делают с ней что хотят, хоть в Excel, хоть ещё в чём. Даём права только на Views: будут им и проекции, и выборки, и row level security, и всё остальное.
Предлагаешь поворачивать базу жопой в интернет? Аццко Да и уже жевали тему 2-tier, посадят твою базу в лужу. Блокировки, открытые транзакции и прочие ужастики. И причем тут вьюхи? У нас CRUD, не забывай. Клиенты не только смотрят, они еще и пишут.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802432
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе увидел, как делать запросы к произвольному IEnumerable.
Не понимаю тебя. Напиши контроллер, в нем Get метод, в нем выплевывай IEnumerable. В чем проблема? Или напиши функцию.

Вот пример фишек, которые с помощью IQueryable не сделать на клиенте. Приходится писать функции.

Код: 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.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
public class FunctionsController: BaseController
    {
        [HttpGet, ODataRoute("GetAggregatedShopSales(SiteId={siteId},PeriodId={periodId})")]
        public IEnumerable<Sale> GetAggregatedShopSales(int siteId, int periodId)
        {
            var ss = Context.Sales
                .Where(s => s.SiteId == siteId && s.PeriodId == periodId)
                .GroupBy(s =>
                    new { s.DayOfWeek, Hour = s.Hour < 9 ? 9 : s.Hour > 22 ? 22 : s.Hour },
                    s => s.Qty,
                    (key, sales) => new
                    {
                        Hour = key.Hour,
                        DayOfWeek = key.DayOfWeek,
                        SiteId = siteId,
                        PeriodId = periodId,
                        Qty = sales.Sum()
                    })
                .AsEnumerable()
                .Select(g => new Sale()
                {
                    Hour = g.Hour,
                    DayOfWeek = g.DayOfWeek,
                    SiteId = g.SiteId,
                    PeriodId = g.PeriodId,
                    Qty = g.Qty
                });
            return ss;
        }

        [HttpGet, ODataRoute("RecalcWorkload(SiteId={siteId},PeriodId={periodId})")]
        public RecalcPosWorkloadResult RecalcWorkload(int siteId, int periodId)
        {
            var recalc = new RecalcItem(Context, siteId, periodId);
            return recalc.RecalcWorkload();
        }

        [HttpGet, EnableQuery, ODataRoute("GetInstancesWithOrderedZones(SiteId={siteId},DateId={dateId})")]
        public IEnumerable<RoleInShopInstance> GetInstancesWithOrderedZones(int siteId, int dateId)
        {
            var instances = Context
                .RoleInShopInstances
                .Include("Employee")
                .Include("RoleInShop")
                .Include("RoleInShop.Role")
                .Include("Zones")
                .Include("Zones.Zone")
                .Where(i => i.SiteId == siteId && i.DateId == dateId).ToList(); // IEnumerable

            foreach (var instance in instances)
            {
                instance.Zones = instance.Zones.OrderBy(z => z.SortOrder).ToList(); // сортировка вложенной коллекции, OData такого не умеет
            }

            return instances;
        }
    }
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802464
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНу пишу ведь: базовый класс для parameter object.
Я не понимаю тебя. Как базовый класс для parameter object поможет решить 3 задачи выше?

Алексей КСхема возвращаемых данных вроде как не меняется.
Ты не ответил на вопрос. Опиши архитектуру, как ты в SOAP реализуешь то, о чем я говорю.

Алексей КПисал ведь: Dynamic LINQ в помощь.
Что будет делать и из чего DLINQ? Не надо отвечать невнятными отрывками, распиши подробно, что нужно делать. По пунктам.Не знаю как ещё объяснить. Верь мне: у меня типовой механизм для пэйджинга прекрасно работает без всяких OData. Есть класс, аналогичный PageResult<T>, на который ты дал ссылку. Были тогда мысли: делать через OData или не заморачиваться. Решил не заморачиваться.

Впрочем, если не нравится "способ лучше" для 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, она не сделает тебе вреда Доверие нужно заслужить.

МСУАлексей КВ WCF сложнее - он не умеет generic-контракты в базовых классах/интерфейсах. MVC/WebAPI в этом отношении намного лучше: функционал типового круда без труда выносится в generic-базовые классы контроллеров.
WCF хорош для своих задач, которые на базируются на HTTP байдингах. А так да, увы - эти байдинги заняты в другой нише (Web API и OData) Посмотрим...
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802484
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУпропущено...

Я не понимаю тебя. Как базовый класс для parameter object поможет решить 3 задачи выше?

пропущено...

Ты не ответил на вопрос. Опиши архитектуру, как ты в SOAP реализуешь то, о чем я говорю.

пропущено...

Что будет делать и из чего DLINQ? Не надо отвечать невнятными отрывками, распиши подробно, что нужно делать. По пунктам.Не знаю как ещё объяснить. Верь мне: у меня типовой механизм для пэйджинга прекрасно работает без всяких OData. Есть класс, аналогичный PageResult<T>, на который ты дал ссылку. Были тогда мысли: делать через OData или не заморачиваться. Решил не заморачиваться.

Впрочем, если не нравится "способ лучше" для 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);
}



Эпический велосипед, которому место в зоопарке. А как же 16817958

МСУ1. REST
2. Полноценная EDM модель (!) в SOA
3. Полноценный контекст на клиенте, который трачит (!) изменения



Особенно понравился "string Filter" и "string Sort" в QueryParameters. Династия нетипизированных динозавров в действии

А как же CRUD? Или на каждый чих писать свой велосипед? Короче, хватит уже погремушки демонстрировать, возьми нормальную технологию от нормального вендора и прекращай изобретать поломанные педали к велосипеду. Ну бред же эпический.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802498
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КНе увидел, как делать запросы к произвольному IEnumerable.
Не понимаю тебя. Напиши контроллер, в нем Get метод, в нем выплевывай IEnumerable. В чем проблема?Ну я понял. Только тут нужно возвращать myList.AsQueryable() . Но всё равно не нравится.
...
Рейтинг: 0 / 0
OData сцуко не радует своими завихрениями
    #38802511
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей Кпропущено...
Не знаю как ещё объяснить. Верь мне: у меня типовой механизм для пэйджинга прекрасно работает без всяких OData. Есть класс, аналогичный PageResult<T>, на который ты дал ссылку. Были тогда мысли: делать через OData или не заморачиваться. Решил не заморачиваться.

Впрочем, если не нравится "способ лучше" для 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);
}



Эпический велосипед, которому место в зоопарке. А как же 16817958

МСУ1. REST
2. Полноценная EDM модель (!) в SOA
3. Полноценный контекст на клиенте, который трачит (!) изменения

Мне это не надо.
МСУОсобенно понравился "string Filter" и "string Sort" в QueryParameters. Династия нетипизированных динозавров в действии OData параметры в URL типизированы, ага.
МСУА как же CRUD? Или на каждый чих писать свой велосипед? Короче, хватит уже погремушки демонстрировать, возьми нормальную технологию от нормального вендора и прекращай изобретать поломанные педали к велосипеду. Ну бред же эпический.Банальный метод void Save(Entity obj) вышел из моды?
...
Рейтинг: 0 / 0
25 сообщений из 187, страница 5 из 8
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / OData сцуко не радует своими завихрениями
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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