Я використовував SignalR
для досягнення функцій обміну повідомленнями в реальному часі у кількох своїх проектах. Здається, працює надійно і дуже легко навчитися користуватися.
Спокуса, принаймні для мене, - відмовитися від розробки сервісу Web API і використовувати його SignalR
для всього.
Я відчуваю, що цього можна досягти продуманим дизайном, і якби це було, це означало б набагато менше клієнтського коду. Що ще важливіше, це означало б, що існував би єдиний інтерфейс для служб, а не розділений інтерфейс, і в гіршому випадку, що можна було б це зробити, не замислюючись про те, коли все буде надано тощо.
Отже, я хотів би знати:
- Чи є якісь інші причини не використовувати SignalR замість усіх веб-сервісів, окрім продуктивності?
- Чи достатньою є ефективність SignalR, щоб цього не було сенсу?
Вже давно мріють мати можливість перекладати визначення об’єктів і службових визначень на стороні сервера до коду доступу на стороні клієнта без чогось нерозумного node.js
. Наприклад, якщо я визначаю цікавий об'єкт InterestingObject
і послугу для CRUD
об'єкта InterestingObjectService
, я можу визначити стандартний маршрут URL до служби - скажімо, "/ {serviceName} / {methodName}" - але мені все одно потрібно написати клієнтський код для доступу сервіс. Оскільки об'єкт буде передаватися від клієнта до сервера і назад, немає ніякого практичного підстави матичітко визначити об'єкт у коді на стороні клієнта, а також не потрібно чітко визначати маршрути для виконання операцій CRUD. Я відчуваю, що повинен бути спосіб стандартизувати все це, щоб можна було записати клієнта за умови, що сервіс доступ працює від клієнта до сервера і назад так само прозоро, як це було б, якби я писав WinForms або Java Applet або Native App чи що у вас є.
Якщо SignalR досить хороший для використання замість традиційного веб-сервісу, це може бути життєздатним способом досягти цього. SignalR вже включає функціональність, щоб змусити хаб працювати як службу, яку я описую, тому я міг би визначити загальну базу (CRUD) послугу, яка б запропонувала всю цю функціональність поза коробкою з деяким відображенням. Тоді я майже міг прийняти як належний доступ до послуги, врятувавши мене від роздратування переписування коду, щоб отримати доступ до чогось, до якого можна отримати доступ за умовами, і що ще важливіше, час, який мені доведеться витратити на написання коду, щоб визначити, як це оновлено в ДОМ.
Після прочитання моєї редакції я відчуваю, що це може бути трохи безглуздо, тому, будь ласка, не соромтесь запитати мене, чи є у вас питання щодо того, що я отримую. В основному я хочу, щоб доступ до сервісу був максимально прозорим.