|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... И вообще, IQueryable - это специфичная дотнетная возможность. Как оно может претендовать на кроссплатформенный кроссязыковой стандарт? Это ты спроси у консорциума OASIS, а не у меня.Там есть у кого спрашивать? Уровень идиотизма на планете в последнее время просто зашкаливает... МСУДа и причем тут IQueryable? Сервис OData на .NET, клиенты могут быть любые. И им не нужны IQueryable. В .NET клиенте может появиться IQueryable, если ты используешь это https://www.nuget.org/packages/Microsoft.OData.Client А если дергать OData сервис через обычный HttpClient, то никаких IQueryable.Можно-то можно, но какой от этого профит на других платформах? IQueryable в них нету. Какой мне профит от ОДата в JS? Стандартные имена параметров, чтобы на них натянуть какой-нибудь ДатаГрид из KendoUI? Мне это не надо... Получется: 1. В кроссплатформенных интеграциях ОДата не нужен. 2. Для внутренних взаимодействий нужность ОДата тоже под сомнением. Офигенная технология! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 16:22 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... И вообще, IQueryable - это специфичная дотнетная возможность. Как оно может претендовать на кроссплатформенный кроссязыковой стандарт? Это ты спроси у консорциума OASIS, а не у меня. Да и причем тут IQueryable? Сервис OData на .NET, клиенты могут быть любые. И им не нужны IQueryable. В .NET клиенте может появиться IQueryable, если ты используешь это https://www.nuget.org/packages/Microsoft.OData.Client А если дергать OData сервис через обычный HttpClient, то никаких IQueryable. Если дергать через HTTP, то исчезают все преимущества кодогенерации => строгой типизации. Лесом :) А вот вижу пример вызова OData-службы из Java: Код: java 1.
Опять же, в компайл-тайме никаких проверок. В-общем, в корпоративе не взлетит. По крайней мере, не в ближайшее время... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 16:24 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУАлексей КПартнёров много. Там дикое переплетение вебсервисов различной сложности, написанных неизвестно кем, неизвестно на чём, неизвестно когда, неизвестно зачем. Ага, то есть льём дальше гавно в навозную бочку? Я понял твою философию. Алексей КВ документации контракт сервиса как будем описывать? Ссылка из технического задания в туда будет смотреться достаточно глупо. :-) https://developers.facebook.com/docs/javascript/reference/FB.api Офигенно! Чтобы потом звонили: "Посмотрите наши JSON пакеты, не понятно, почему ваш сервер их не принимает". Было уже, проходили. В случае с SOAP все неудачники отсылаются к стандарту. В итоге коллеги открывают для себя кодогенерацию и всё налаживается. МСУАлексей КБывают нормальные партнёры? Бывают.Видимо, на какой-то другой планете и в другое время. МСУАлексей Кпропущено... И такое бывает. Ну от идиотов никто не застрахован. Тут даже SOAP не поможет.Говорю же - помогает. МСУАлексей КВ WSDL любую модель не описать, да? :-) В WSDL нельзя описать модель, это процедурный протокол. Методология разработки в WDSL сервисно-ориентированная, в REST- ресурсно-ориентированная. Два полярных знаменателя.ООП-модель происходящего в обоих случаях одинаковая. Есть классы сервисов, содержащие логику, и есть DTO, содержащие данные. Сервисы и DTO могут наследоваться. DTO могут инкапсулироваться. Сервисы могут иметь полиморфизм. ОДата всего лишь добавляет стандартные интерфейсы для сервисов, не более того. МСУАлексей КНекоторые считают, что IQueryable не должен покидать рамки репозитария, а ты предлагаешь тащить его на клиента. Это жесть просто, учитывая тот факт, что задачи вроде пэйджинга прекрасно решаются банальным ООП-наследованием. Никакие "новые технологии" тут не нужны. Причем тут OData? Делай свой репозитарий, в котором внутри будешь использовать OData и IQueryable, а на выходе отдавать IEnumerable. Какие-то глупости ты пишешь...ОДата используется для межпроцессного взаимодействия. Как я могу: "Делай свой репозитарий, в котором внутри будешь использовать OData"? Предполагаю, что мы тут друг друга не понимаем. Ничего страшного. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 16:34 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КМожно-то можно, но какой от этого профит на других платформах? IQueryable в них нету. Какой мне профит от ОДата в JS? Стандартные имена параметров, чтобы на них натянуть какой-нибудь ДатаГрид из KendoUI? Мне это не надо... Получется: 1. В кроссплатформенных интеграциях ОДата не нужен. 2. Для внутренних взаимодействий нужность ОДата тоже под сомнением. Офигенная технология! Гы... А как ты SOAP Envelope в JS собираешь? Olingo OData Client for JavaScript Breeze.js OData Libraries ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 16:40 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУТы же сам определяешь в ODataConventionModelBuilder, какие таблицы будут доступны, какие поля можно вообще скрыть и многое другое. ACL можно подключить, вообщем всё гибко конфигурится. Это плохо? Мне всегда казалось, что это очень хорошо. Не нужно изобретать велосипед. Вот тебе классический OData CRUD контроллер над сущностью в двумя ключами, минимум кода - максимум возможностей на клиенте для выборок, фильтров, условий, вычислений. Это плохо? Да это просто чудесно, SOAP'у такого и не снилось! Нужно где-то что-то ограничить, проанализировать OData параметры, всё это делается на один чих. Что тебя смущает? Давай спустимся с небес на землю грешную. Есть ООО "Рога и копыта", есть таблица категорий и таблица продукции, клиентам А и В должна быть предоставлена вся инфа о продукции кроме категории "интимные принадлежности", клиенту С только нужны интимные принадлежности и матрацы. Директор может менять любые цены, бухгалтерша Иванова специалист по интиму, Петрова имеет доступ ко всему остальному. Выдавать клиентам должно не больше 100 записей только с продукцией которая есть на складе. И конечно хакер виртуозно владеющий GET запросами не должен узнать ничего лишнего! Удиви реализацией на OData и сравним с реализацией на SOAP ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:02 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
ДиезЕсли дергать через HTTP, то исчезают все преимущества кодогенерации => строгой типизации. Лесом :) А не всем нужна кодогенерация. Более того, всем она не нужна. Написал или сгенерил 10 классов руками на основе json, примапил их к выхлопу и готово. ДиезА вот вижу пример вызова OData-службы из Java: Код: java 1.
Опять же, в компайл-тайме никаких проверок. В-общем, в корпоративе не взлетит. По крайней мере, не в ближайшее время... java всегда отличалась унынием: вот тебе на .NET Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:11 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIМСУТы же сам определяешь в ODataConventionModelBuilder, какие таблицы будут доступны, какие поля можно вообще скрыть и многое другое. ACL можно подключить, вообщем всё гибко конфигурится. Это плохо? Мне всегда казалось, что это очень хорошо. Не нужно изобретать велосипед. Вот тебе классический OData CRUD контроллер над сущностью в двумя ключами, минимум кода - максимум возможностей на клиенте для выборок, фильтров, условий, вычислений. Это плохо? Да это просто чудесно, SOAP'у такого и не снилось! Нужно где-то что-то ограничить, проанализировать OData параметры, всё это делается на один чих. Что тебя смущает? Давай спустимся с небес на землю грешную. Есть ООО "Рога и копыта", есть таблица категорий и таблица продукции, клиентам А и В должна быть предоставлена вся инфа о продукции кроме категории "интимные принадлежности", клиенту С только нужны интимные принадлежности и матрацы. Директор может менять любые цены, бухгалтерша Иванова специалист по интиму, Петрова имеет доступ ко всему остальному. Выдавать клиентам должно не больше 100 записей только с продукцией которая есть на складе. И конечно хакер виртуозно владеющий GET запросами не должен узнать ничего лишнего! Удиви реализацией на OData и сравним с реализацией на SOAP А смысл сравнивать? Наш абрикос официально trusted by 14,182 small associations, clubs, nonprofits. До фига рогов и копыт, не правда-ли? В каждой такой некомерческой организации есть свои "директор", "бухгалтерша Иванова", "Петрова" со своими правами и "клиенты". Данные всех организаций лежат в одной базе. И ни члены соседней по базе организации, ни "хакер виртуозно владеющий GET запросами" не могут "узнать ничего лишнего". А ссылку на описание я тебе давал. Иди и сравнивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:15 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КТам есть у кого спрашивать? Уровень идиотизма на планете в последнее время просто зашкаливает... А там нет у кого спрашивать? Ну про уровень идиотизма давай не будем. Если есть в чем обвинить, выкладывай. А так это всё пук в воздух. Алексей КМожно-то можно, но какой от этого профит на других платформах? IQueryable в них нету. Какой мне профит от ОДата в JS? Стандартные имена параметров, чтобы на них натянуть какой-нибудь ДатаГрид из KendoUI? Мне это не надо... А какой профит тебе от SOAP на других платформах? Да и это проблемы платформы, есть ли там IQueryable или нету. А профит от одаты на js самый прямой, честный REST и только. Да и я тебе уже говорил про js, твоя архитектура - это худшее, что можно взять от MVC. На помойку. Алексей КПолучется: 1. В кроссплатформенных интеграциях ОДата не нужен. 2. Для внутренних взаимодействий нужность ОДата тоже под сомнением. Офигенная технология! Вот и получаем: 1. В кроссплатформенных интеграциях ОДата будет использоваться как обычный REST трансфер. Зато для .NET решений открывается лес возможностей. 2. Для внутренних приложений - то, что доктор прописал. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:15 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КОфигенно! Чтобы потом звонили: "Посмотрите наши JSON пакеты, не понятно, почему ваш сервер их не принимает". Было уже, проходили. В случае с SOAP все неудачники отсылаются к стандарту. В итоге коллеги открывают для себя кодогенерацию и всё налаживается. Так весь мир работает, есть сервис, есть дока, есть сообщение об ошибке. В 99.9% случаев этого достаточно. Не нужно кривые административные проблемы и неумение поддерживать решения перекладывать на OData. Она тут непричем. Алексей КВидимо, на какой-то другой планете и в другое время. А может ты сам с другой планеты? Вопрос однако :) Алексей КМСУпропущено... Ну от идиотов никто не застрахован. Тут даже SOAP не поможет.Говорю же - помогает. Чем? Искуственный интеллект в SOAP? Алексей КООП-модель происходящего в обоих случаях одинаковая. Есть классы сервисов, содержащие логику, и есть DTO, содержащие данные. Сервисы и DTO могут наследоваться. DTO могут инкапсулироваться. Сервисы могут иметь полиморфизм. ОДата всего лишь добавляет стандартные интерфейсы для сервисов, не более того. Да нахрен мне твои DTO не нужны, я отдаю в OData сразу готовые классы по edmx модели. И они же генерятся на клиенте. За пару кликов - чистое приложение. Алексей КОДата используется для межпроцессного взаимодействия. Как я могу: "Делай свой репозитарий, в котором внутри будешь использовать OData"? Предполагаю, что мы тут друг друга не понимаем. Ничего страшного. Ты разницу понимаешь между OData и OData клиентом? :) Вижу, что не совсем, от этого все сложности. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:20 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIДавай спустимся с небес на землю грешную. Есть ООО "Рога и копыта", есть таблица категорий и таблица продукции, клиентам А и В должна быть предоставлена вся инфа о продукции кроме категории "интимные принадлежности", клиенту С только нужны интимные принадлежности и матрацы. Директор может менять любые цены, бухгалтерша Иванова специалист по интиму, Петрова имеет доступ ко всему остальному. Выдавать клиентам должно не больше 100 записей только с продукцией которая есть на складе. И конечно хакер виртуозно владеющий GET запросами не должен узнать ничего лишнего! Удиви реализацией на OData и сравним с реализацией на SOAP Задача так же решается, как в SOAP. Та же бизнес логика в контроллере. Какие проблемы? Есть ACL, есть роли, есть пользователи, есть анализ продуктов, есть ограничение выборки результата. По поводу менять цены - это уже PATCH запрос, в нем пишем анализ, какой пользователь, можно ли менять, если нельзя, пробрасываем исключение. Всё как в детском саду. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:23 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
skyANAА ссылку на описание я тебе давал. Иди и сравнивай. Да мне нафиг твое описание не нужно, я прекрасно понимаю что на OData это сделать можно! Вопрос - какой ценой?! Прекрасно представляю какой говнокод получается на практических задачах, тонны атрибутов, валидаторов и прочих левых приблуд. На SOAP в методах все чисто чинно и прозрачно. В этом и профит! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:24 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAА ссылку на описание я тебе давал. Иди и сравнивай. Да мне нафиг твое описание не нужно, я прекрасно понимаю что на OData это сделать можно! Вопрос - какой ценой?! Прекрасно представляю какой говнокод получается на практических задачах, тонны атрибутов, валидаторов и прочих левых приблуд. На SOAP в методах все чисто чинно и прозрачно. В этом и профит! Смешно. Покажи мне реализацию настраиваемого фильтра, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:30 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Хочешь сравнить SOAP с OData, так давай, покажи! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:30 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKIskyANAА ссылку на описание я тебе давал. Иди и сравнивай. Да мне нафиг твое описание не нужно, я прекрасно понимаю что на OData это сделать можно! Вопрос - какой ценой?! Прекрасно представляю какой говнокод получается на практических задачах, тонны атрибутов, валидаторов и прочих левых приблуд. На SOAP в методах все чисто чинно и прозрачно. В этом и профит! Ну что опять за бред? Методы OData контроллеров - такие же .NET методы, как и в веб сервисах. Там можно так же писать свою логику, анализ, усечение выборки и всё остальное. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:33 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, сколько раз мне нужно это повторить? odata actions, transient actions, functions] http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/odata-actions-and-functions ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:36 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
EDUARD SAPOTSKI, сколько раз мне нужно это повторить? odata actions, transient actions, functions ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:37 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
skyANAАлексей КМожно-то можно, но какой от этого профит на других платформах? IQueryable в них нету. Какой мне профит от ОДата в JS? Стандартные имена параметров, чтобы на них натянуть какой-нибудь ДатаГрид из KendoUI? Мне это не надо... Получется: 1. В кроссплатформенных интеграциях ОДата не нужен. 2. Для внутренних взаимодействий нужность ОДата тоже под сомнением. Офигенная технология! Гы... А как ты SOAP Envelope в JS собираешь? Я не хожу в SOAP из JS. Там речь шла про REST + OData. skyANA Olingo OData Client for JavaScript Breeze.js OData Libraries Да зачем это всё надо? Для локальных web-потребностей мне WebAPI + JSON хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:39 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУАлексей КТам есть у кого спрашивать? Уровень идиотизма на планете в последнее время просто зашкаливает... А там нет у кого спрашивать? Ну про уровень идиотизма давай не будем. Если есть в чем обвинить, выкладывай. А так это всё пук в воздух.Прямо не знаю с чего начать. Тема глобального идиотизма достойна отдельного топика. МСУАлексей КМожно-то можно, но какой от этого профит на других платформах? IQueryable в них нету. Какой мне профит от ОДата в JS? Стандартные имена параметров, чтобы на них натянуть какой-нибудь ДатаГрид из KendoUI? Мне это не надо... А какой профит тебе от SOAP на других платформах? Да и это проблемы платформы, есть ли там IQueryable или нету. А профит от одаты на js самый прямой, честный REST и только. Да и я тебе уже говорил про js, твоя архитектура - это худшее, что можно взять от MVC. На помойку.Ещё раз, профит SOAP - это количество поддерживаемых платформ + наличие схемы. МСУАлексей КПолучется: 1. В кроссплатформенных интеграциях ОДата не нужен. 2. Для внутренних взаимодействий нужность ОДата тоже под сомнением. Офигенная технология! Вот и получаем: 1. В кроссплатформенных интеграциях ОДата будет использоваться как обычный REST трансфер. Зато для .NET решений открывается лес возможностей. 2. Для внутренних приложений - то, что доктор прописал.1. Для интеграции нет схемы. 2. Внутренние клиенты написаны на JS. Пользы тоже ноль. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:45 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
skyANAСмешно. Покажи мне реализацию настраиваемого фильтра, а? Ты снова тупишь или прикидываешься? Так пойдет? Код: sql 1. 2. 3. 4. 5. 6. 7.
Как дернуть из шарпа рассказать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:48 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУАлексей КОфигенно! Чтобы потом звонили: "Посмотрите наши JSON пакеты, не понятно, почему ваш сервер их не принимает". Было уже, проходили. В случае с SOAP все неудачники отсылаются к стандарту. В итоге коллеги открывают для себя кодогенерацию и всё налаживается. Так весь мир работает, есть сервис, есть дока, есть сообщение об ошибке. В 99.9% случаев этого достаточно. Не нужно кривые административные проблемы и неумение поддерживать решения перекладывать на OData. Она тут непричем.В случае с SOAP, если вызов не дошёл до моего прикладного кода в сервисе - можно смело списывать проблему на нарушение формата данных и отправлять коллегу в документацию по стандарту. МСУАлексей КВидимо, на какой-то другой планете и в другое время. А может ты сам с другой планеты? Вопрос однако :)Ну я из заМКАДа, да. У нас тут свои законы. :-) МСУАлексей Кпропущено... Говорю же - помогает. Чем? Искуственный интеллект в SOAP?Наличием схемы. МСУАлексей КООП-модель происходящего в обоих случаях одинаковая. Есть классы сервисов, содержащие логику, и есть DTO, содержащие данные. Сервисы и DTO могут наследоваться. DTO могут инкапсулироваться. Сервисы могут иметь полиморфизм. ОДата всего лишь добавляет стандартные интерфейсы для сервисов, не более того. Да нахрен мне твои DTO не нужны, я отдаю в OData сразу готовые классы по edmx модели. И они же генерятся на клиенте. За пару кликов - чистое приложение.Ну переходи на Access, там за один клик готовое приложение. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:51 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
МСУСмотри, вот базовый класс контроллеров, поставляющих данные для форм, имеющих сохраняемый фильтр и список: Идеальный код Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 17:59 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КСмотри, вот базовый класс контроллеров, поставляющих данные для форм, имеющих сохраняемый фильтр и список: Хм. Ну вот я про это и говорил. Вот ещё один пример велосипеда для работы с фильтрами. Как-то из одного, доставшегося мне "по наследству" проекта ел-еле выпилил подобную (очень похожую на приведённый код) бодягу с фильтрами, сортировкой и пейджингом. Дышать стало намного легче, не нужны теперь никакие нафиг "базовые" контроллеры, а параметры фильтрации/пейджинга/сортировки хранятся, управляются и живут полностью независимой своей жизнью. Надо, повесил. Не надо, убрал. Зашибись. Даже не золотое, а платиновое правило: предпочти аггрегацию наследованию . В рамочку из алмазов на стену каждому разработчику. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 18:17 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КskyANAпропущено... Гы... А как ты SOAP Envelope в JS собираешь? Я не хожу в SOAP из JS. Там речь шла про REST + OData. skyANA Olingo OData Client for JavaScript Breeze.js OData Libraries Да зачем это всё надо? Для локальных web-потребностей мне WebAPI + JSON хватает.Ну вот опять мы пришли к тому, что ты оцениваешь технологию сугубо со своей колокольни. При чём тут тогда какие-то кроссплатформенные интеграции? На JS можно писать кросплатформенные мобильные клиенты, а используя OData Client for JavaScript вполне себе кросплатформенно интегрировать их с сервером :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 18:36 |
|
Asp.Net vs WCF
|
|||
---|---|---|---|
#18+
Алексей КЕщё раз, профит SOAP - это количество поддерживаемых платформ + наличие схемы.По ссылке выше перечисленны сл. платформы, где реализована поддержка OData: .NET, Java, JavaScript, C++, Other Platforms, - тебе мало? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2014, 18:39 |
|
|
start [/forum/topic.php?fid=18&msg=38791059&tid=1354875]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 285ms |
0 / 0 |