Мені потрібна допомога у вирішенні питання між Silverlight / Silverlight поза браузером / wpf


10

Я перебуваю на початковій фазі планування проекту переписування і вирішую між Silverlight / Silverlight oob / wpf. TL; DR в кінці.

Це програма LOB, яка обробляє календарі провідної / клієнтів / зустрічей. Не надто складна. Я самостійно досліджую ці варіанти деінде, але думав, що поцікавлюсь. Деякі грубі початкові вимоги / передбачувані проблеми:

Я повинен мати можливість викликати exe в системі за допомогою аргументів командного рядка (sip phone).

Створює проблему SL

База користувачів розповсюджується, і я хочу максимально обмежити трафік, який йде через провід, і уникнути деяких неприємних проблем з одночасністю

Я бачу, що це проблема з використанням WPF

Розгортання / оновлення програмного забезпечення має бути просто мертвим . Деякі користувачі сильно нетехнічні (див.: 70 років, вперше на комп’ютері)

Зараз це не велика проблема із програмою ClickOnce, яку ми замінюємо, і я маю контроль над машинами, до яких вона звикає. Однак для користувачів це простіше, якщо їм навіть не потрібно натискати кнопку «Встановити». Я не знаю, як це вдається з Silverlight OOB.

Компанія планує серйозне розширення протягом 12 місяців, тому розгортання обладнання повинно бути швидким / легким. Ідея полягає в тому, щоб встановити підключення до Інтернету в новому місці, підключити деякі комп’ютери та мати можливість працювати без необхідності спеціалізованих ІТ-людей чи налаштування сервера.

Робить SL привабливим

Інтеграція з іншими службами (фінансовим програмним забезпеченням, сервером asterix) не є найближчою метою, але це можлива мета бути частиною системи. Це робиться набагато простіше / ефективніше, якщо одна служба налаштована на інтеграцію з тими вторинними службами і не потрібно передавати всі ці дані по дроту

Робить SL привабливим

Створення декількох "версій" знаходиться у вікні. Я не знаю, як це підтримувати версію Silverlight + Silverlight oob (якщо є навіть якісь проблеми)

Може зробити WPF кращим варіантом.

TL; DR: З моєї точки зору, додаток Silverlight має найкращий сенс для 90% користувачів - інші 10% не можуть його використовувати, оскільки їм потрібно запустити exe. Silverlight OOB може бути щасливим середнім, але на даний момент я не знаю, як виглядає модель виконання для нього (чи існує ще концепція коду на стороні сервера? Якщо так, це, можливо, буде ідеально), і я не знати, як працює розгортання / оновлення.


Чому ви хочете в першу чергу замінити додаток ClickOnce? ClickOnce має можливість перевірити та завантажити доступне оновлення при запуску програми автоматично. Я зробив це, перегляньте replayer.codeplex.com
Марсель

Відповіді:


6

Ну - цікава проблема. Ви забули згадати, що у вас може бути повна довіра Silverlight від SL4, тому якщо ви думаєте про WPF, ви можете замість цього розглянути. Було б потрібно встановити (ClickOnce), але ви, здається, відходите від цього.

Я ще нічого не робив з OOB, але я майже впевнений, що один і той же двійковий файл може використовуватися як в браузері, так і поза браузером, оскільки це налаштування проекту, а не окрема ціль збірки.

"Увімкнути запуск програми з браузера"

на вкладці Silverlight проекту Silverlight.

Тож там не буде окремого питання технічного обслуговування.

Ви можете створити неабияку кількість коду у веб-додатку, який розміщує додаток Silverlight, та спілкуватися за допомогою служб WCF RIA - знову ж таки, вам доведеться скористатися .NET 4 та SL 4, щоб отримати версію 1.0 цього. .NET 3.5 і SL 4 підтримують лише бета-версію послуг WCF RIA. Це призведе до зменшення а) розміру завантаження та б) кількості коду, який потрібно виконати на клієнті, але збільшить мережевий трафік.

За цим рахунком ви можете розділити ваш код Silverlight на кілька збірок і, використовуючи щось на зразок Prism, встановити їх для завантаження на вимогу. Це означає, що користувач завантажує лише ті частини програми, якими він фактично користується. Ви можете додатково зменшити завантажену суму, перевіривши

"Зменшити розмір XAP за допомогою кешування бібліотеки додатків"

варіант.

Якщо у вас є файл "extmap", який можна використовувати з будь-якими зовнішніми dll (сторонніми або .NET), то це означає, що вони потрапляють у zip-файл і завантажуються окремо для спільного використання всіх файлів xap у вашому проекті. Це зберігає окремі файли xap до мінімального розміру і гарантує, що у вас є лише одна копія цих інших dll на клієнтській машині.


1
+1: Дякуємо за ваш внесок @ChrisF. Я просто хотів би, щоб я знав тебе IRL, щоб я міг забрати твій мозок.
Стівен Еверс

2

Ваш аналіз дуже хороший.

Єдине, що я хотів би зазначити, це те, що не всі рамки доступні вам у додатку Silverlight. Це обмеження МОЖЕ бути нахиленим вашим вибором до WPF, але вам потрібно буде побачити, як це обмеження застосовується чи ні до потреб вашої програми.


Додаток - це в основному сирий додаток, за винятком необхідності дзвонити на SIP-телефон через його exe + arg, тому я не думаю, що я пропущу будь-яку з відсутніх частин фреймворку.
Стівен Еверс

2

Кілька швидких речей:

Розгортання та "код на стороні сервера": Додаток Silverlight - це додаток на базі клієнта, простий та простий. Не дозволяйте лише тому, що він постачається через браузер, збиває з пантелику вас - коли ви запускаєте додаток SL в браузері, ви завантажуєте збірки для цього додатка у пакеті на блискавку, витягуєте їх та запускаєте їх за допомогою плагіна. Silverlight сам по собі не має поняття "код на стороні сервера" - якщо ви хочете, щоб код запускався на віддаленому сервері, напишіть послугу WCF.

Оновлення програми: Це загальний сценарій для програм OOB, і в SL є вбудована підтримка. Google навколо для CheckAndDownloadUpdateAsync.

Редагувати: забути згадати - установка програми здійснюється зсередини програми. За замовчуванням інстальований додаток SL має встановити контекстне меню для його встановлення. Однак установку також можна виконати програмно у відповідь на натискання кнопки користувачем. Стан встановлення також можна виявити програмно, тому те, що я бачив деякі програми SL, які призначені лише для запуску OOB, - це спочатку виявити, якщо вони встановлені. Якщо так, запустіть додаток. Якщо ні, просто покажіть екран заставки за допомогою кнопки, яка встановлює додаток.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.