此列表是否正确理解了Microsoft当前的应用程序部署选项?

Edw*_*uay 18 silverlight wpf xbap

我试图了解Microsoft目前提供的许多应用程序部署选项.

做了一些研究,发现了数十个令人困惑的术语:

  • "WPF App"
  • "ClickOnce App"
  • "WPF ClickOnce App"
  • "MSI App"
  • "XBAP App"
  • "使用ClickOnce部署的XBAP应用程序"
  • "已安装的ClickOnce应用程序"
  • "WPF Web App"
  • "ASP.NET Web App"
  • "ASP.NET MVC Web App"
  • "Silverlight App"
  • "完整的WPF应用程序"
  • "具有同步框架支持的ClickOnce"

我将我的发现清理成以下七种不同的方法.希望得到反馈:

  1. "使用MSI部署WPF应用程序"(允许大量安装选项)

    • 目标计算机上需要MSI运行时
    • 带选项的向导
    • 可以指定每用户或每台机器
    • 可以修改目标计算机上的文件和注册表,仅受管理员设置的访问权限的限制
    • 可以在桌面上放置快捷方式
    • 替换系统文件等使得在目标计算机上轻松进入DLL地狱
    • 更新是一个很大的负面因素:检测可用更新需要额外的工具/自定义编程,而不是内置的
    • 用户不必在线使用应用程序
  2. "使用ClickOnce部署的WPF应用程序":(如果您想要自动更新但在沙箱中运行,则很好)

    • 需要两次单击(单击超链接,单击是),无需用户输入
    • 仅适用于当前用户,不适用于每台机器的安装
    • 桌面上没有快捷方式
    • 出现在程序列表中,如正常应用程序
    • 应用程序文件始终复制到../My Documents/My Applications
    • 应用程序的快捷方式将放在"开始"菜单/公司名称中
    • 无法修改目标计算机,与操作系统隔离
    • 自动检测并更新较新版本
    • 简单地将它们放在网络服务器上(客户端检测并获取它们)
    • 需要.NET 2.0或更高版本
    • 与Java Web Start相当
    • 解决了四个问题:(1)易于部署,(2)易于更新,(3)对目标计算机影响小,(4)无需管理员权限.
    • 被认为是"低影响"
    • 如果两个用户在同一台​​计算机上安装了相同的ClickOnce应用程序,则它们不会相互破坏
    • 使用CAS来保证安全
    • 用户不必在线使用应用程序
    • 独立的ClickOnce应用程序现在不能在Firefox和Mac上使用Firefox,因为它需要.NET运行时
    • 限制为单窗口应用程序,因为它们在浏览器中运行
    • 构建ClickOnce清单比Silverlight等更容易,因为IDE几乎可以为您完成所有这些操作; 你只需要在某处托管文件(可以是一个网址;可以是一个网络UNC).
  3. "XBAP App":.xbap文件的xcopy部署,IE和Firefox会立即显示为网页

    • XBAP模型的真正目标是创建一个等同于传统HTML和JavaScript网站(或Flash applet)的WPF
    • 目标计算机只需运行应用程序而无需通过Web浏览器(IE或Firefox)在Web上安装
    • 它们适用于需要非常简单部署的Intranet应用程序,完整的.NET Framework(与Silverlight相对)和浏览器的导航模型.
    • 99%的WPF功能(与Silverlight的WPF功能子集相对)
    • 也可以通过ClickOnce自动部署,但XCOPY更常见
    • YourApp.xbap实际上是ClickOnce部署清单
    • 在沙箱中运行
    • 用户必须在线才能使用应用程序
    • 这些必须是"基于页面"的应用程序,而不是"基于Windows"的应用程序
    • "XBAP似乎只是因为它在浏览器窗口中显示所有内容而在brwoser中运行.这与ActiveX控件(和Silverlight)使用的模型不同,后者在浏览器进程中加载​​."
    • XBAP提供"快速免费"体验,只要安装了.NET 3.5,它就像网页一样显示在浏览器中.
    • XBAP不允许通过Interop使用WinForm控件
    • 不允许使用Windows拖放
    • 不允许使用最高级的WCF功能,并且XBAP无法与托管XBAP的服务器之外的任何服务器进行通信
    • "如果您的应用程序需要完全信任,您应该考虑构建一个独立的WPF应用程序并使用ClickOnce部署它"(C#2008中的Pro WPF)
    • 技巧:您可以在一个HTML页面上将多个xbap应用程序嵌入到多个iframe中.
  4. "Silverlight App":在客户端的浏览器中运行并使用下载的4MB .NET框架子集,即没有3D)

    • 跨浏览器(Opera和Safari也可以使用应用程序)
    • 更新应用程序就像使用ClickOnce或XBAP一样简单
    • 单窗口应用程序
    • 应用程序当然是在沙箱中
    • 仅限异步
  5. "使用JQuery/AJAX的ASP.NET MVC":一个新的开发平台,相当于RADF和RADD的开发

    • 这种方法值得考虑与WPF/Silverlight方法一起考虑
  6. "ASP.NET App":随着ASP.NET MVC获得认可,可能会越来越少地使用ViewState等经典Web应用程序

  7. "WinForm App":经典的Windows应用程序,随着WPF获得认可,将越来越少地使用

我特别感谢有关的反馈:

  • 如何重用控件(例如,如果我们在Silverlight中开发,我们可以在XBAP中重用我们的代码/控件吗?)
  • 什么是客户的最佳方法,有时离线,有时在线,需要访问WCF(可能是我认为的clickOnce应用程序)

小智 1

应用启动体验:

MSI = 仅 Windows。很多点击。使用前安装。适合非常庞大且资源密集型的应用程序。应用程序可以通过 DVD 形式分发。应用程序可以做一切。无技术限制。

ClickOnce = 仅 Windows。可以从网页激活。下载一次。保留有关其来源(服务器)的信息并可以自动更新。应用程序受到限制。需要.NET

Silverlight = 在 Windows/Max/Linux(即将)和未来的移动设备(计划)上运行。是一个网页或者可以嵌入到html中。代码位于服务器上,永远不会被安装。需要 Silverlight 运行时。提供 WPF 的子集

XBAP = 类似于 silverlight,但仅适用于 Windows。没有人会需要那个。银光更好

编程技术:

Silverlight = 在客户端机器上运行。使用 WPF*

ASP.NET = 在 .NET 中的服务器机器上运行,但在客户端机器上运行 Javascript/html。

WinForms = 旧技术

WCF = 不适用于基于浏览器的应用程序。适用于分布式应用程序。人们可以打开客户机器的所有大门。使用 WCF = 需要 MSI。

WCF为服务器提供了一个很好的框架。当您使用 REST 进行接口时,您将永远不需要客户端上的 WCF。客户端可以在 ClickOnce 和 MSI 安装的应用程序中连接/断开连接。您必须连接到 silverlight 和 ASP 中的 appstart 网页。

XAML 可重用于 silverlight/wpf/xbap。wpf/silverlight 中的微小变化。据我所知,wpf/xbap 没有变化。