Является ли этот список правильным пониманием текущих параметров развертывания приложений Microsoft? - PullRequest
18 голосов
/ 20 января 2009

Я пытаюсь разобраться со многими вариантами развертывания приложений, которые в настоящее время предлагает Microsoft.

Проведение небольшого исследования выявило десятки запутанных терминов:

  • "WPF App"
  • "Приложение ClickOnce"
  • «Приложение WPF ClickOnce»
  • "MSI App"
  • "Приложение XBAP"
  • «Приложение XBAP, развернутое с ClickOnce»
  • «Установленное приложение ClickOnce»
  • "WPF Web App"
  • «ASP.NET Web App»
  • "ASP.NET MVC Web App"
  • «Приложение Silverlight»
  • «Полное приложение WPF»
  • «ClickOnce с поддержкой инфраструктуры синхронизации»

Я разбил свои выводы на семь отдельных подходов ниже. Буду признателен за отзыв:

  1. «Приложение WPF, развернутое с MSI» (допускает множество вариантов установки)

    • Требуется время выполнения MSI на целевом компьютере
    • мастер с опциями
    • можно указать для пользователя или для машины
    • может изменять файлы и реестр на целевом компьютере, ограничиваясь только правами доступа, установленными администратором
    • можно разместить ярлык на рабочем столе
    • замена системных файлов и т. Д. Облегчает попадание в ад DLL на целевом компьютере
    • обновление является серьезным недостатком: обнаружение доступных обновлений требует дополнительных инструментов / пользовательского программирования, а не встроенного
    • пользователь не обязан быть в сети, чтобы использовать приложение
  2. «Приложение WPF, развернутое с ClickOnce»: (хорошо, если вы хотите автоматическое обновление, но запускается в песочнице)

    • требуется два клика (нажмите гиперссылку, нажмите да), пользовательский ввод не требуется
    • только для текущего пользователя, без установки на машину
    • нет ярлыков на рабочем столе
    • появляется в списке программ как обычные приложения
    • файлы приложений всегда копируются в ../Мои документы / Мои приложения
    • ярлык для вашего приложения будет помещен в меню Пуск / название вашей компании
    • не может изменить целевой компьютер, изолированный от операционной системы
    • автоматически обнаруживает и обновляет более новую версию
    • публикуется просто путем помещения их на веб-сервер (где клиенты обнаруживают и получают их)
    • требуется .NET 2.0 или более поздняя версия
    • сопоставимо с Java Web Start
    • решает четыре проблемы: (1) простое развертывание, (2) простое обновление, (3) незначительное влияние на целевой компьютер, (4) отсутствие необходимости в правах администратора.
    • считается "слабым воздействием"
    • если у двух пользователей на одном компьютере установлено одно и то же приложение ClickOnce, они не сломают друг друга
    • использует CAS для безопасности
    • пользователь не обязан быть в сети, чтобы использовать приложение
    • автономные приложения ClickOnce теперь не работают на Firefox и Mac с Firefox, поскольку для них требуется среда выполнения .NET
    • ограничено приложениями с одним окном, так как они запускаются в браузере
    • создание манифеста ClickOnce намного проще, чем Silverlight и т. Д., Поскольку IDE сделает почти все за вас; вам просто нужно где-то разместить файлы (это может быть веб-URL; может быть сетевой UNC).
  3. «Приложение XBAP»: xcopy развертывание файла .xbap, IE и Firefox мгновенно отображают его как веб-страницу

    • реальная цель модели XBAP - создать WPF-эквивалент, эквивалентный традиционному веб-сайту HTML-и-JavaScript (или апплету Flash)
    • целевой компьютер просто запускает приложение без установки через Интернет в своем веб-браузере (IE или Firefox)
    • Они хороши для интранет-приложений, где требуется действительно простое развертывание, полная .NET Framework (в отличие от Silverlight) и навигационная модель браузера.
    • 99% возможностей WPF (в отличие от подмножества функций Silverlight WPF)
    • МОЖЕТ также автоматически развертываться через ClickOnce, но XCOPY встречается чаще
    • YourApp.xbap действительно является манифестом развертывания ClickOnce
    • запустить в песочнице
    • пользователь должен быть в сети, чтобы использовать приложение
    • это должны быть приложения на основе страниц, а не приложения на основе окон
    • "XBAP, по-видимому, запускается внутри brwoser просто потому, что отображает все его содержимое в окне браузера. Это отличается от модели, используемой элементами управления ActiveX (и Silverlight), которые загружаются внутри процесса браузера."
    • XBAPs предлагает возможность «без подсказок», если установлен .NET 3.5, он просто отображается в браузере, как веб-страница.s
    • XBAP не разрешено использовать элементы управления WinForm через Interop
    • не разрешать использовать окна перетаскивания
    • большинство расширенных функций WCF НЕ разрешены, и XBAP не может связываться ни с одним сервером, кроме того, на котором размещена XBAP
    • «если вашему приложению требуется полное доверие, вам следует подумать о создании автономного приложения WPF и его развертывании с использованием ClickOnce» ( Pro WPF в C # 2008 )
    • хитрость: вы можете встроить несколько приложений xbap в несколько фреймов на одной HTML-странице.
  4. «Приложение Silverlight»: запускается в браузере клиента и использует загруженное подмножество платформы .NET Framework размером 4 МБ, т. Е. Без 3D)

    • кросс-браузер (приложения могут также использоваться Opera и Safari)
    • Обновление приложения так же просто, как с ClickOnce или XBAP
    • приложения в одном окне
    • приложение находится в песочнице конечно
    • только асинхронный
  5. «ASP.NET MVC с JQuery / AJAX»: новая платформа разработки, равная разработке в WPF с точки зрения RAD и TDD

    • этот подход стоит рассмотреть вместе с подходами WPF / Silverlight
  6. "ASP.NET App": классическое веб-приложение с ViewState и т. Д., Вероятно, будет использоваться все реже и реже, поскольку ASP.NET MVC получает признание

  7. "WinForm App": классическое приложение для Windows, будет использоваться все реже, так как WPF получает признание

Буду особенно признателен за отзыв:

  • насколько многократно используются элементы управления (например, если мы разрабатываем в Silverlight, можем ли мы повторно использовать наш код / ​​элементы управления в XBAP?)
  • каков наилучший подход к клиентам, которые иногда находятся в автономном режиме, иногда в сети и нуждаются в доступе к WCF (вероятно, я щелкнул бы на приложениях)

Ответы [ 6 ]

2 голосов
/ 20 января 2009

Отличное резюме, Эдвард.

Большая часть кода в Silverlight может напрямую использоваться в приложениях WPF и WPF XBAP, поскольку Silverlight является подмножеством WPF. Для XAML вам придется изменить URI пространства имен и, вероятно, сделать небольшую ручную настройку.
Для преобразований XAML в Silverlight вам также потребуется изменить URI пространства имен, но может потребоваться рефакторинг, если используются элементы WPF, которых нет в Silverlight. WPF и Sync Framework - отличные варианты для онлайн / офлайн приложений. См. Starder Kit для Syndicated Client Experience для примера приложения WPF / Sync Framework. Кроме того, Silverlight + Windows Live Mesh обеспечит возможность подключения к сети / офлайн.

1 голос
/ 22 января 2009

Я бы не стал так быстро отклонять XBAP как «Silverlight для Windows». Поскольку он использует полный набор WPF, можно использовать одну и ту же кодовую базу как для приложения WPF, так и для XBAP, если вы работаете в рамках ограничений частичного доверия, наложенных на XBAP.

Кроме того, начиная с .NET 3.5, WCF работает в XBAP при частичном доверии. Вы не можете сделать столько же, сколько в приложении WPF с полным доверием, но оно все еще полезно.

1 голос
/ 21 января 2009

Опыт AppStart:

MSI = Только винда. Много кликов. Установите перед использованием. Подходит для очень больших и ресурсоемких приложений. Приложение может распространяться на DVD. Приложение может сделать все. Нет технологических ограничений.

ClickOnce = Только винда. Может быть активирован с веб-страницы. Загружается один раз. Сохраняет информацию о своем происхождении (сервер) и может автоматически обновляться. Приложение ограничено. Требуется .NET

Silverlight = Работает на Windows / Max / Linux (скоро) и будущих мобильных телефонах (планируется). Является ли веб-страница или может быть встроена в HTML. Код находится на сервере и никогда не будет установлен. Требуется Silverligth-Runtime. Предоставляет подмножество WPF

XBAP = Как серебристый свет, но только для окон. Это никому не понадобится. Silverlight лучше

Технология программирования:

Silverlight = Работает на клиентской машине. Использует WPF *

ASP.NET = Работает на сервере сервера в .NET, но Javascript / HTML на клиентском компьютере.

WinForms = старая технология

WCF = не будет работать для приложений на основе браузера. Для распределенных приложений. Можно открыть все двери в клиентскую машину. Использование WCF = требует MSI.

WCF предоставляет хорошую основу для сервера. Вам никогда не понадобится WCF на клиенте, когда вы используете REST для взаимодействия. Клиент может быть подключен / отключен в приложениях ClickOnce и MSI. Вы должны подключиться к веб-странице для appstart в Silverlight и ASP.

XAML можно использовать повторно для silverlight / wpf / xbap. Незначительные изменения в wpf / silverlight. Никаких изменений в wpf / xbap, как я знаю.

1 голос
/ 20 января 2009

Варианты развертывания, поддерживаемые MS для клиентских приложений:

  • MSI (любое приложение Windows)
  • Clickonce (только для клиентских приложений .Net)

Clickonce не относится к WPF.

XBAPS - это развернутые приложения, созданные в браузере, в надежной изолированной программной среде безопасности. Приложения WinForms могут быть развернуты сразу после установки и размещены в браузере.

Silverlight (в основном) совместим с исходным кодом WPF. Вы можете перекомпилировать элементы управления SL в качестве элементов управления WPF.

Clickonce, не размещенный в браузере, вероятно, вам подойдет.

0 голосов
/ 26 февраля 2009

Другой вариант развертывания, предоставляемый Live Framework (Live Mesh vNext), - это веб-приложение с поддержкой Mesh (MEWA). Это позволяет упаковать приложения Silverlight, DHTML и Flash для запуска в режиме онлайн на Live Desktop или в режиме онлайн / офлайн на рабочем столе Windows. Вы можете установить MEWA в вашу Mesh и автоматически развернуть его на всех устройствах вашей Mesh. Если выпущена новая версия приложения, обновление также можно синхронизировать со всеми устройствами.

Есть подсказки, что в дополнение к Silverlight / DHTML / Flash будущие версии Live Framework будут поддерживать упакованные приложения MSI и CAB, предположительно с аналогичными функциями развертывания.

Документация для веб-приложений с поддержкой Mesh: http://msdn.microsoft.com/en-us/library/dd199554.aspx

0 голосов
/ 20 января 2009

Вы перечислили "MSI App". Установщик Windows - это технология Microsoft для установки и обновления программ в Windows. Созданные установочные пакеты имеют расширение «.msi». (Изначально он назывался «Установщик Microsoft». Они изменили его на «Установщик Windows», но сохранили расширение.) Он определяет стандартный способ создания пакетов установки. Пакеты могут быть созданы многими различными инструментами (InstallShield, WiX, Visual Studio и т. Д.). Это не ограничивается приложениями WPF. Вы можете использовать его для установки практически любого приложения.

...