代码之家  ›  专栏  ›  技术社区  ›  ChrisV

WPF与Silverlight 3.0

  •  21
  • ChrisV  · 技术社区  · 15 年前

    Silverlight3.0测试版刚刚在拉斯维加斯的MicrosoftsMix会议上宣布。

    新beta的两个特点是3D图形和在浏览器之外运行应用程序的能力,这对我来说似乎是WPF(Windows演示基金会)以前在Silverlight上提供的两个主要特征。

    我目前正在评估WPF和Silverlight在我们公司未来的开发活动中的可能用途,这次发布让我对这两种UI技术的预期方向以及为什么我会选择其中一种技术而不是另一种技术感到困惑。

    最近是否有人使用WPF实现了一个新的应用程序,如果是,是什么驱使您做出这个决定?考虑到Silverlight已宣布的更改,如果您现在进行更改,您的决定是否会发生更改?如果没有,为什么?

    任何建议都将不胜感激。

    10 回复  |  直到 15 年前
        1
  •  13
  •   Klinger    15 年前

    我发现最大的不同是您必须采用的异步模型 在您的Silverlight应用程序中。 这看起来确实是一种优势(而且是可以的),但确实 生活有时很困难。

    还有一些限制可能是真正的挑战,比如缺席 打印支持。

    我建议在以下情况下使用Silverlight而不是WPF:

    -不需要最佳性能(包括图形) -可以解决缺少打印支持的问题(它会出现,我们只是不知道何时出现) -不需要摄像头/麦克风支持 -可以容忍assync应用程序/开发模型 -可以容忍对WCF的限制(此时不支持WS-Security) -不需要在客户机上存储大量数据。 -不需要直接与客户端应用程序(如Office)集成。 -有一个服务器来承载您的应用程序
        2
  •  11
  •   irperez    15 年前

    我想说的主要区别是,WPF要求客户机具有.NET3.0+框架。Silverlight只需要运行时。这就是说,WPF更适合于内部网等受控环境。Silverlight是为公共网络设计的。另一个区别是Silverlight是跨平台的(未来的Windows、Mac、Linux以及跨浏览器)。WPF仅适用于Windows。

    对于某些用户来说,.NET框架可能是一个巨大的下载。Silverlight只有4-5MB。在网络上运行你的应用程序是一个很大的区别,但如果它是你公司的内部应用程序,这不是一个大问题。

    Silverlight是用于Web的沙盒。所以,如果你的应用需要更多的权限,你将需要WPF。

    Silverlight代码和WPF之间也存在一些差异。但据我所知,最终目标是让Silverlight在WPF中运行,只需最少的代码更改。但他们还没到。

        3
  •  6
  •   Fenton    15 年前

    我刚刚在一个WPF项目上工作过,事后我们觉得我们可能选择了Silverlight。了解差异并选择最适合您所做工作的差异可能更重要。

    这是我十分钟的开始,关于一些重要的差异——最初在可用的控件中有一些差异,但现在已经基本上消除了。

    银光

    • 使用Ajax完全在客户机上运行 调用服务器获取数据
    • 可以在任何服务器上运行,包括Windows和Linux/Apache
    • 使用紧凑的.NET框架

    WPF

    • 在客户端上运行…通常调用服务获取数据
    • 在带有.NET 3.5的Windows XP/Vista上运行
    • 利用整个.NET框架
        4
  •  4
  •   17 of 26    15 年前

    Silverlight基本上是一个精简版的WPF,以使运行时libary下载尽可能小。

    因此,WPF在IT中有更多的可用功能,而WPF中简单的任务在Silverlight中往往变得不那么简单。

    如果作为一个网络应用程序运行不是一个要求,那么这个决定是一个无需大脑的WPF。

        5
  •  3
  •   Robert MacLean    15 年前
    • 最近是否有人使用WPF实现了一个新的应用程序,如果有,是什么驱使您做出这个决定的? :好吧,因为WPF只是桌面的(或者基于浏览器的XBAP——但这更像是一个部署系统,而不是一个真正的系统),所以这是一个很好的理由。
    • “如果你现在做出决定,你的决定会改变吗?如果不是,为什么?”-没有Silverlight,即使在v3的桌面上,仍然是高度沙盒化的,因此某些功能将很难/不可能完成,因为沙盒。此外,在WPF中使用DirectX部件的能力仍将提供另一个Silverlight和它的3D无法使用的优化区域。
        6
  •  3
  •   Gordon Mackie JoanMiro    15 年前

    值得注意的是,Silverlight的3D并不是WPF的完全3D支持,而是仅将2D投影到3D中——也就是说,采用二维平面并允许在X、Y和Z方向旋转。WPF具有完整的3D建模,包括材料、视图端口、照明和摄像机位置支持等。

        7
  •  2
  •   Joel Cochran    15 年前

    我一直在开发我们发布的第一个WPF应用程序。Silverlight3看起来不错,但对于这个应用程序,我仍然会选择WPF。该应用程序的核心是展示和处理客户机网络上的中央服务器上托管的非常大的图像集。此外,软件更新/更改率最低。大量从本地驱动器导入新图像,没有互联网连接要求,性能问题等。使这一项目非常适合WPF。

    然而,我们即将进行的一个项目将需要许多远程用户访问我们网络上的单个数据存储。他们使用的数据需要大量的验证和错误处理,因此在本地运行代码是理想的。它们将需要能够在线和离线工作并保持同步(可能与SQL数据服务保持同步)。Sloob(浏览器外的Silverlight)很可能是我们对它的选择,这样他们就可以拥有所有的Silverlight优势,但是像常规安装的应用程序一样使用它,即使没有互联网连接。

    这两种格式都有自己的位置:诀窍是避免使用Silverlight进行任何操作-我们有比1个锤子更多的工具。-)

        8
  •  1
  •   laktak    15 年前

    另一个区别是,使用SL,您只有一个“窗口”,您不能有对话框(它们可以被模拟,但其大小仅限于主窗口),也不能添加多监视器支持。

    如果必须与现有业务应用程序交互(例如,在存档查看器中打开文档),则需要使用WPF。

        9
  •  0
  •   chills42    15 年前

    我最近使用WPF构建了几个内部工具,我之所以选择它,仅仅是因为它对我来说更容易从win32工作中获得。我真的不认为差异很大,而且…我所看到/听到的一切都表明在WPF和Silverlight之间移植非常容易。

        10
  •  0
  •   Artur Carvalho    15 年前

    保管部 :浏览器外只有25MB的独立存储空间。如果我从一些mix09视频中正确记忆,那么如果你的应用程序在浏览器中,这个限制会更低。

    http://bliny.net/blog/post/Out-of-Browser-with-Silverlight-3.aspx

    无流程文件 :所以也有一些限制。