Подтвердить что ты не робот

Является ли этот список правильным пониманием текущих вариантов развертывания Microsoft?

Я пытаюсь разобраться во многих вариантах развертывания приложений, которые 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 (возможно, нажмите на приложения, которые я бы подумал).
4b9b3361

Ответ 1

Опыт AppStart:

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

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

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

XBAP = Как и Silverlight, но только для окон. Никто этого не понадобится. Silverlight лучше

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

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

ASP.NET = Работает на сервере maschine в .NET, но Javascript/html на клиентской машине.

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

Clickonce не зависит от WPF.

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

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

Без браузера, на котором размещен clickonce, вероятно, подходит вам.

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

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