Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "толстый" контракт WCF 
V
    Опции темы
Экскалупатор
Дата 23.5.2011, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



всем доброго дня. интересует такой вопрос. предположим что есть сервер и клиентская часть программы. на сколько я понимаю, что чем больше логики будет сосредоточено на сервере, то тем тоньше будет клиентская часть, но тем большее количество методов надо описать/реализовать в контракте между сервером и клиентом. можно ли как то избежать распухания интерфейса определяющего контракт и как следствие самих классов реализующих интерфейс контракта? или единственный способ это переместить больше логики в клиентскую часть? или я все же что то не так понимаю? просветите в этом вопросе плиз. заранее всем спасибо.
PM MAIL ICQ   Вверх
jonie
Дата 23.5.2011, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



сделай несколько интерфейсов, логически разбивая большую логику на части. Например: сервис ввода заявок, сервис получения информации по сделкам, сервис авторизации и т.д.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 23.5.2011, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



jonie, разбить на несколько это понятно. но можно ли как то сократить суммарное количество методов? или все же - чем тоньше клиент тем толще интерфейсы? и от этого никуда не деться?
PM MAIL ICQ   Вверх
likegift
Дата 23.5.2011, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



smile если так расстраивают интерфейсы, то можно от них отказаться
PM MAIL   Вверх
jonie
Дата 23.5.2011, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Экскалупатор, ну можно другой подход сделать - типа IdeaBlade Dev Force - один метод вообще на весь сервис, куда передается что делать и как делать (expression сериализованный).


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Экскалупатор
Дата 23.5.2011, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



likegift, интерфейсы как раз не расстраивают, расстраивают их объемы, получается что на каждое действие нужно делать по методу.


jonie, думал над этой идеей, но сдается мне что проблем будет больше.
PM MAIL ICQ   Вверх
-Mikle-
Дата 23.5.2011, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 1
Всего: 59



Я не думаю, что сильно разрастется. Нужно все таки понимать, бизнес-логика и логика клиента. Валидация у тебя может быть в самих бизнес объектах (должна работать и на сервере и на клиенте). Бизнес-логика на сервере, логика клиентов - на клиенте. Интерфейс сервиса должен показывать только сами бизнес задачи, а не их детальное представление. Допустим, при сохранении чего-то нужно проверять введенные данные с чем-то находящимся на стороне сервера. Так вот, не нужно делать в интерфейсе метод проверки и отдельно метод сохранения, нужно сделать только метод сохранения, а в имплементации вызывать проверку. В итоге, ты собираешь все бизнес-логику и ее возможные комбинации в разных контекстах в сервисе, а клиент всегда дергает только методы, между взыовами которых только небольшая логика на клиенте (как правило простая секвенция на паре условий). Конечно, все зависит как всегда от задачи. Я уже как-то раз говорил, что видел контракт с почти 500 методами (не в пример конечно привожу), но вот им было так удобно по их словам.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Экскалупатор
Дата 23.5.2011, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: нет
Всего: 24



-Mikle-, со всем полностью согласен. сам склоняюсь к такому же подходу, просто иногда довольно сложно удержаться... )))
PM MAIL ICQ   Вверх
-Mikle-
Дата 25.5.2011, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 1
Всего: 59



Да, понимаю smile


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.