|
|
Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Останнє повідомлення 30-11-2006, 5:59 від Mike Chaliy. 13 відповіді.
-
-
20-11-2006, 9:14 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Ні, воно ближче до веб-сервісів.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
21-11-2006, 5:15 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
У меня в Remoting использовалась фабрика бизнес объектов. Около сотни несвязанных классов, которые возвращались одной функцией по их типу или имени. Как это лучше всего реализовать в WCF? Не делать же 100 сервис хостов?
|
|
-
21-11-2006, 6:19 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Швидше за все тобі потрібно буде якийсь проміжнний формат, наприклад XML. Можливо правда щось можна буде поприкручувати атрібутами, але всеодно мабуть нічого путнього не вийде, бо WCF все одно повинен усе знати про класс. Тобто для того щоб опубліковати якийсь контракт WCF повинен знати про нього все.
Якщо ніхто не відповість, розкажи що саме тобі потрбіно на більш абстрактному рівні, може є інший шлях.
До речі, а ці твої "бізнес об"єкти" щось роблять чи просто інформацію зберегають?
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
21-11-2006, 9:35 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Для каждой таблицы в базе я сделал свой класс, который запускает разные stored procedures и возвращает однотипные данные. И может ли WCF работать с DataTable?
|
|
-
21-11-2006, 10:05 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Як завжди, якщо правильно зрозумів...
Ось таке рішення, як на мене цікаве, але не випробуване (до речі, ні в якому разі не треба це рішення використовувати як приклад, воно тільки для того щоб мінімізувати проблеми саме системи xierty, в більшості випадків назовні повнинні стирчати не CRUD операції, а саме інтерфейс до бізнес логіки, а їх в більшості випадків менше, так що всеодно краще давати можливість адмінам конфігурувати ці сервіси).
1) Декорувати усі бізнес об"екти за допомогою стандартних атрибутів WCF сервіса, якщо можна то краще ще винести інтерфеси(хоча можливо воно вже так, але тоді деорувати потрібно саме інтерфейси);
2) Подивитись сюди http://msdn2.microsoft.com/en-gb/library/ms731758.aspx як хостять сервіси, занйти код де вони додають end pointи і додати. Зрозуміло що це можно якось автоматизувати (якось же в тебе пошук виходить?).
3) Можливо додати метод для пошуку цих сервісів. На кшталт того що ти маєш.
Стосовно DataTable, можна, як і датасет, і все що може серіалізуватися.
Ще одно, якщо в тебе воно повинно хоститсь у IIS, то мабуть потрібно буде всеж таки згенерувати svc файли. Нажаль Microsoft вирішила HttpHandler зробити internal. Хоча можливо вдасться це зробити за допомогою HttpModule. Якщо будуть питання, запитуй, мені це цекаво, навіть коли буде час я це відпрототипізую.
Оффтоп: Якщо інформація однотипна, можливо краще зробити один метод, який беде отримувати класс який поністю буде описувати потреби. А далі щось на кшталт Command, і вуаля. Тоді і всього іншого не потрібно.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
22-11-2006, 1:22 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
У меня трехзвенное приложение, я хочу между бизнес логикой и asp.net сервером вставить WCF, как это делать лучше всего? Посоветуйте стандартную архитектуру. А то я, видимо, не туда копаю совсем. И студия на методы, возвращающие datatable, сгенерировала мне клиентские классы, которые возвращают собственный новый тип с полями Any и Any1, это ошибка или так надо?
|
|
-
22-11-2006, 1:41 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Як на мене то в цьому ланцюгу зовсім не потрбіно WCF чи чогось іншого. Тобто Web Service потрбіно розглядати як ще один інтерфейс.
1) Database - Table Data Gateway (те що в тебе зараз) - бізнес логіка - Інтерфейс;
2) Database - Active Row - Інтерфейс;
Тут под Інтерфесом мається на увазі будь що, і в будь якій кількості. Наприклад це може бути Presentation у вигляді MVP, чи веб сервіс для того щоб цими данними можна було користовутися з інших додатків, чи ремотінг, чи інший додаток для інтеграції данних, чи все це разом. Тобто я маю на увазі що воно не повинно бути розподіленим, усе повинно виконуватись у домені самого додатка.
Ось тут більше: http://www.martinfowler.com/eaaCatalog/serviceLayer.html
Перд інтерфейсом можно додади Application Server, який може тримати інформацію в пам"яті, обробляти і таке інше, але якщо ти використовував майже прямі виклики збережені(?) процедури, то швидше за все тобі цього шару не потрбіно.
Якщо усе таки хочеш додати WCF, то певне тоді краще зробити вже все типізованим, там все потрібно правильно декорувати, і все буде працювати. Але ти собі достатно багато хлопот додаси. Ще потрібно буде випробувати динамічний біндінг, я його ще не дивився, але принаймні мені цікаво.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
22-11-2006, 5:22 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
А если интерфейс у меня в XBAP файлах, он может обращаться к данным из БД только через WCF? По этому я и решил разорвать цепочку.
|
|
-
22-11-2006, 5:47 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
1) Ти можеш змінити налаштування пермішенів;
2) Так потрібно щось базоване сервері, хоча можливо що цим чимось може будь що;
3) Використовувати ClickOnce;
Головна ідея в тому що я казав в попередньому пості про те, що якщо тобі зараз не потрібно поширювати інформацію, то на це і час не потрібно витрачати, просто потрібно розробляти так щоб потім, коли знадобиться, було легко додати Remote Facade. Хоча можно вже і зараз. Але як на мене саме для Presentation у вигляді ASP.NET це не потрібно. Розподіл робити необхідно, але це повинен бути логічний розподіл, а не фізичний.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
22-11-2006, 23:41 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Вот в такой ситуации, когда у меня интерфейс в XBAP, а удалённый клиент не имеет доступа к Sql серверу? Тот же интернет. Click Once тут как-то поможет?
|
|
-
23-11-2006, 1:17 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Так ClickOnce дпопоможе, але я цьго не можу порекомендувати, бо якщо ти будеш усю бізнес логіку за собою тягати то це дуже не красиво.
Спочатку ти ж питав про асп.нет? Саме для асп.нет краще немати нового тіера. А ось якщо ти вирішив робити на XBAP, чи WinForms чи щось інше що працює на клієнті, то тоді потрібно. Тобто тобі потрбіно вирішити що ти робиш. Якщо асп.нет, то тоді робиш усе в одному домені, якщо з тонким кліентом, то тоді WCF, якщо і то і інше, то тоді робиш бізнес логіку, далі для асп.нет її використовуєш у тому самому домені, а для тонкого клієнта робиш ремот фасад за допомогою тогож WCF. Як на мене це оптимальний варіант.

Можеш спробувати повністю розповісти, що там в тебе, можливо тобі щось потрбіно.
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
-
30-11-2006, 0:25 |
-
xiety
-
-
-
Зареєстрований 19-11-2006
-
-
Повідомлення 41
-
Бали 930
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
WCF не даёт использовать в XBAP :( Нужен Full Trust. Зато можно WebServices использовать.. А как хотелось бы объеденить эти технологии (WCF+XBAP). Как то можно решить это недоразумение?
|
|
-
30-11-2006, 5:59 |
-
Mike Chaliy
-
-
-
Зареєстрований 16-11-2006
-
Ukraine, Kharkiv
-
Повідомлення 758
-
Бали 13,847
-
|
Re: Можно ли в WCF работать с объектами на сервере по ссылке, как в Remoting?
Так тут ти прав, і справді WCF не може працювати з Partial Trasted Callers. Прикро, обіцяли полагодити.
Можливо тобі таке рішення підійде:
Так чи інакше доведеться додавати прав. На вкладці Security в Properies проекта можно поставити This is full trust application. Я ще первірю що будуть дивитсь кліеєти, але на локальній машині воно вже працює ;).
Ввечері подивлюсь ще, може щось надивлюсь...
MCPD(Web,Windows,Enterprise), MCTS (WPF, WCF)
|
|
|
|
|