当年微软首次推出WindowsPresentationFoundation(WPF)时,它代表了应用程序的设计和开发又向前跨出了巨大的一步。它简化了GUI应用程序的开发,有助于UI和业务逻辑的分离,并且提供了统一的编程模型、语言和框架。真正做到了将界面设计人员与开发人员的工作分离;同时WPF提供了全新的多媒体交互用户图形界面。
自从年WPF作为.NETFramework.0的一部分发布以来,有四个主要的修订版本。第一个是年发布的.NET.5,年发布的.NET.5SP1,接着是年的.NET4.0,最后一个修订是01年的.NET4.5。
许多企业使用WPF创建处理日常业务流程的应用程序和工具。任何开发流程的中断或者工具中存在的风险都会引起开发的不确定性,因此,利益相关者使用似乎要被微软束之高阁的技术而感到不安。主要的担心集中在:
WPF基础技术不再改进,不在增加新的功能。随着时间的推移,将很难维护使用WPF编写的应用程序,以使其符合新的UI标准。
.WPF对开发框架的支持将逐渐减少。尽管微软为他们的工具和服务提供软件支持协议,但他们不可能涉及到所有发生的问题。技术支持主要是解决软件缺陷问题,所以像性能低下,这些不紧迫、不明确的缺陷是不会被软件支持协议所涵盖,因此是不会被支持的。
使用WPF建立关键业务应用程序,似乎从长远来看是不明智的。然而,最近的事态发展给WPF社区带来了希望。
此白皮书总结了WPF的历史,强调了平台的优势,最重要的是,将分析它的前途。
WPF简史技术综述
WindowsPresentationFoundation(WPF)是微软.NETFramework的一个重要组成部分,于年作为.NET.0的一部分首次发布。WPF是一套使用DirectX绘制用户界面的子系统,图形将使用WindowsGraphicsDeviceInterface(GDI)来绘制。WPF在设计时充分利用了当时出现的图形硬件技术和高级别的线程,提高用户体验。
WPF使开发人员将应用程序UI设计从基础代码中分离开来,同时也提供了一套包含综合的应用程序开发功能的统一编程模型。简而言之,WPF有助于开发更好的可视化应用程序。
WPF被广泛认为是对WinForms(一个用于快速应用程序开发的旧平台)的一次重大变革,也因它的蓝灰色UI变得众所周知。虽然WinForms仍然是开发以事件驱动的Windows桌面应用程序最流行的平台,但在个性化定制和灵活性有很多不足。WPF是一个更现代的技术,并且非常灵活。
例如,在WinForm程序中创建对话框,通常按照传统的Windows对话框的形状和样式来设计的。如果需要创建更复杂的对话框是很困难的。然而WPF就非常灵活,在选择颜色、样式及对话框的交互功能时会有更多的控制权。WPF不仅能够轻松创建标准的交互功能,更支持个性化的交互和设计元素。
常用功能和工具开发人员选择WPF开发应用程序有很多优势:?允许开发人员通过数据绑定可将界面显示和业务逻辑分离。这将更易于开发、维护、测试和扩展应用程序。该架构允许在开发中应用一些设计模式,比如ModelViewController(MVC)或者ModelViewViewModel(MVVM)。
?WPF应用程序使用C#和VisualBasic语言开发。这意味着它们在网上具有大量的学习资源,包括大量的示例、论坛和活跃社区。
?UI使用XAML定义,一个强大的对象描述语言,能表示动画、图形、数据绑定和多媒体。开发人员在应用程序中采用这些技术后,使用XAML能显著减少编码工作量。
?WPF允许用户非常简单的创建能适应不同屏幕形状、尺寸和分辨率的界面。
?WPF本身有一个庞大的在线社区和第三方支持。
微软表面上疏远WPF从年到年底,微软没有在它们的WPF博客和其它任何专门的开发者资源中发表新内容。在同一时期也没有重要更新或者新的WPF版本发布。这种沟通的缺乏让许多开发人员怀疑这个平台正在被微软抛弃的过程当中。由于诸如WindowsUniversalApps和Xamarin这些新技术应运而生,社区担心WPF将不再受到微软的重视。
虽然WPF将一定继续被支持,但真正担心的是它将成为一个传统技术。开发人员担心他们使用的是一个没有前途的平台。
然而,年1月1日微软WPF组发表的一篇博客打破了沉默,确认他们实际上从没停止这个平台的工作。此公告承诺受到各个开发者论坛请求的激励,将有一些新的发布和更新。从那以后,WPF组在其博客中发表了若干关于他们持续工作的文章,同时也制作了一些Channel9视频,展示的内容是他们讨论正在开发的主要新功能,比如“WPFLocal”。
.NET、开源和WPF作为一家公司,微软目前在战略和方向上正经历着相当大的变化。作为此方向的一大动作,在年底已经在开源社区开源其.NET的一大部分内容。通过公开其先前内部的源码,微软向开源社区敞开了巨大的拥抱。然而,虽然WPF是.NET框架的一部分,但没有迹象表明要对其开源的计划。
据微软开发平台事业部全球副总裁SomaSomasegar介绍,他们花了整整三年的时间进行开放.NET代码的准备工作。自从年底,每隔几个星期就有新版本发布,并且托管在GitHub上。
到目前为止主要的发布有:
?.NET