Я пытаюсь разобраться во многих вариантах развертывания приложений, которые Microsoft предлагает в настоящее время.
В ходе небольшого исследования появилось множество запутанных терминов:
- "Приложение WPF"
- "Приложение ClickOnce"
- "Приложение WPF ClickOnce"
- "Приложение MSI"
- "Приложение XBAP"
- "Приложение XBAP развернуто с помощью ClickOnce"
- "Установленное приложение ClickOnce"
- "WPF Web App"
- "Веб-приложение ASP.NET"
- "ASP.NET MVC Web App"
- "Приложение Silverlight"
- "Полное приложение WPF"
- "ClickOnce с поддержкой фреймворка синхронизации
Я очистил свои результаты до семи отдельных подходов ниже. Поблагодарили бы обратную связь:
-
"Приложение WPF, развернутое с помощью MSI" (разрешает множество параметров установки)
- Время выполнения MSI на целевом компьютере.
- с параметрами
- может указывать для каждого пользователя или для машины
- может изменять файлы и реестр на конечном компьютере, ограничиваясь только правами доступа, установленными администратором
- может размещать ярлык на рабочем столе
- замена системных файлов и т.д. позволяет легко попасть в аддон DLL на целевом компьютере.
- обновление является большим отрицательным: обнаружение доступных обновлений требует дополнительных инструментов/пользовательского программирования, а не встроенных
- Пользователь не должен быть в сети, чтобы использовать приложение.
-
"Приложение WPF, развернутое с помощью ClickOnce": (полезно, если вы хотите автоматическое обновление, но работает в песочнице)
- требуется два клика (нажмите гиперссылку, нажмите "Да" ), нет ввода пользователем
- только для текущего пользователя, без установки для каждой машины.
- нет ярлыков на рабочем столе
- появляется в списке программ, например, в обычных приложениях
- файлы приложений всегда копируются в. /My Documents/My Applications
- ярлык для вашего приложения будет помещен в меню "Пуск" /название вашей компании
- не может изменить целевой компьютер, изолированный от операционной системы
- автоматически обнаруживает и обновляет более новую версию
- публикуется просто, помещая их на веб-сервер (где клиенты обнаруживают и получают их)
- требуется .NET 2.0 или новее
- сопоставим с Java Web Start
- решает четыре проблемы: (1) простое развертывание, (2) легкое обновление, (3) низкое воздействие на целевой компьютер, (4) отсутствие прав администратора.
- считается "низким воздействием"
- Если два пользователя имеют одно и то же приложение ClickOnce, установленное на одном компьютере, они не будут ломаться друг с другом.
- использует CAS для обеспечения безопасности
- Пользователь не должен быть в сети, чтобы использовать приложение.
- автономные приложения ClickOnce не работают на Firefox и Mac с Firefox теперь, так как ему требуется среда выполнения .NET.
- ограничено приложениями с одним окном, так как они запускаются в браузере
- создание манифеста ClickOnce намного проще, чем Silverlight и т.д., так как IDE будет делать почти все для вас; вам просто нужно разместить файлы где-нибудь (может быть веб-URL, может быть сетевой UNC).
-
"Приложение XBAP": xcopy развертывание .xbap файла, IE и Firefox мгновенно отображает его как веб-страницу.
- Реальная цель модели XBAP заключается в создании эквивалента WPF для традиционного веб-сайта HTML и JavaScript (или Flash-апплета)
- целевой компьютер просто запускает приложение без установки через Интернет в своем веб-браузере (IE или Firefox).
- Они хороши для приложений Intranet, где вы хотите очень простое развертывание, полную платформу .NET Framework (в отличие от Silverlight) и навигационную модель браузера.
- 99% возможностей WPF (в отличие от подмножества Silverlight от функций WPF)
- CAN может быть автоматически развернут с помощью ClickOnce, но XCOPY более распространен
- YourApp.xbap действительно манифест развертывания ClickOnce
- запустить в песочнице
- пользователь должен быть в сети, чтобы использовать приложение
- Это должны быть приложения на основе страниц, а не приложения на основе Windows
- "XBAP, похоже, запускается внутри пользователя, просто потому, что он отображает весь его контент в окне браузера. Это отличается от модели, используемой элементами управления ActiveX (и Silverlight), которые загружаются внутри процесса браузера".
- XBAPs предлагает "беспроблемный" опыт, пока .NET 3.5 установлен, он просто отображается в браузере, как веб-страница.
- XBAPs не могут использовать элементы управления WinForm через Interop
- не позволяет использовать перетаскивание окон
- самые продвинутые функции WCF НЕ разрешены, и XBAP не может связываться с любым сервером, отличным от того, на котором размещен XBAP.
- ", если ваше приложение требует полного доверия, вам следует рассмотреть возможность создания автономного приложения WPF и его развертывания с помощью ClickOnce" (Pro WPF в С# 2008)
- трюк: вы можете встраивать несколько приложений xbap в несколько iframe на одной странице HTML.
-
"Приложение Silverlight": выполняется в браузере клиента и использует загруженный 4MB подмножество .NET framework, т.е. нет 3D)
- кросс-браузер (приложения могут также использоваться Opera и Safari)
- Обновление приложения так же просто, как с помощью ClickOnce или XBAP
- приложения с одним окном
- приложение находится в песочнице, конечно.
- только async
-
"ASP.NET MVC с JQuery/AJAX": новая платформа разработки, равная разработке в WPF с точки зрения RAD и TDD
- Этот подход стоит рассмотреть вместе с подходами WPF/Silverlight.
-
"Приложение ASP.NET": классическое веб-приложение с ViewState и т.д., вероятно, будет использоваться все меньше и меньше, поскольку ASP.NET MVC получает признание
-
"Приложение WinForm": классическое приложение для Windows будет использоваться все меньше и меньше, поскольку WPF получает признание
Я был бы особенно благодарен за отзывы:
- Как многократно использовать элементы управления (например, если мы разрабатываем Silverlight, можем ли мы повторно использовать наш код/элементы управления в XBAP?)
- Каков наилучший подход к клиентам, которые иногда находятся в автономном режиме, иногда в сети? И нужен доступ к WCF (возможно, нажмите на приложения, которые я бы подумал).