WPF微软的UI革命

上次我写了一篇《WPF简介》,当时我仅仅是对WPF有初步认识,但通过近期的学习之后,我开始逐步领会WPF的真正意义,它不仅仅是一项技术而已,它给我们带来的将是一场UI革命。

回顾过去

在过去几十年里,Windows的用户界面在不断的改进,特别是Windows XP的推出,给人眼前一亮的感觉。在过去的日子里,有许多程序员和公司为了实现类似于、甚至优于Windows XP的用户界面,大量制作了基于Windows Forms的自定义控件,通过重写OnPaint来对控件做彻头彻尾的美容。随着Web 2.0的不断流行,Web界面也逐步开始仿造Windows Forms的路线,开始制作类似于Windows Forms的界面,这些控件它们可以像Windows Forms一样拖动、有相当漂亮的外观,再加上AJAX,一切都似乎和Windows Forms没什么差别了。但这只是用户的看法,对于程序员来说,如今要完成一个类似于Windows Forms的Web界面谈何容易,你必须精通JavaScript, AJAX, XML, XSLT等,这些技术每一样都需要太多的磨练,特别是JavaScript,还要考虑浏览器兼容性,工作量会更加显著。

在以上的Windows Forms和Web Forms开发中有一个很明显的特点,程序员永远要承担一部分美工的工作,即使美工帮你把一些图片都设计好了,你还是不得不用GDI或者HTML Table来帮这些图片拼凑起来,这是很寻常的事,相信每一个有过UI开发经历的程序员都体会过。

在这里我不得不提一下Adobe Flash。在Adobe收购Macromedia之后,Flash开始走专业化开发路线,相继出现了可以用于开发商业级Flash应用程序的软件包,这个如今几乎可以运行在任何一台计算机上的矢量图形软件的确做的很不错,它很好地解决了速度和漂亮的关系,使得在Internet上运行及其漂亮的界面成为可能。但到目前为止,使用Flash的人大部分是美工,这就决定了即使开发应用程序,很多也是半路出家的美工们在做开发,我并不是看不起这些美工,但术业有专攻,美工能力强,不等于编程能力强。这就导致目前市面上大部分的Flash应用程序停留在一个初级阶段,无论是OO还是架构设计,都无法达到成熟商业应用的等级。

WPF带给我们什么

最让人熟悉的肯定是WPF的XAML语言,这一语言自从Avalon阶段就被炒得沸沸扬扬,很多人都说这是一种全新的语言,它可以如何如何如何。。。但有多少人知道它的真正意义。XAML在WPF中的真正用途是界面描述,当然它也可以用来写代码。XAML将有效地把界面从代码中分离出来,使得程序员和设计师可以更好地合作,创造出更加优秀、漂亮的应用程序,这是以前人们无法想象的。虽然使用xml作为界面载体并不是什么新技术,但微软把它作为一个战略来推广自然将大大增加它的使用范围,通过微软的一系列开发工具,可以让初级程序员也可以基于这一架构开发出优秀的软件产品来,这就是微软开发工具的魅力

正因为XAML可以做界面描述,而且微软正在打造一个全新的基于XAML的开发架构,在未来的某一天我们将看到大量的调用XAML的WPF程序,在1-2年内,我们的浏览器中将大量安装WPF浏览器插件,我们将看到许多不可思议的漂亮应用程序,这些都是WPF带给我们的。

XAML本身的灵活性是很好的,从理论上讲它可以描述任何想要描述的东西,这里面自然也包括矢量图形。

目前微软正在加紧开发一整套基于XAML和WPF的矢量图形解决方案,并将包括在一个叫做Microsoft Expression Studio软件套装中,在这个软件套装中有Expression Web, Expression Blend, Expression Design, Expression Media。详细的信息,大家可以去看看http://www.microsoft.com/products/expression/en/default.mspx。在这里我先对这四款软件做一下简介:

Expression Web
类似于原来的Microsoft FrontPage,增加了不少.net的元素在里面,但总体界面看起来还是像FrontPage的升级版

Expression Blend
专门用来设计界面级XAML的软件,这款软件是专门供界面设计人员使用的,而WPF编码可以在Visual Studio中完成。

Expression Design
专门用来设计矢量图形的软件,也是基于XAML的,因此设计出来的东西都是可以嵌入WPF界面中的

Expression Media
专门用于做媒体编辑、管理、播放的工具,估计会与Microsoft Media Foundation捆绑起来。

其中的Microsoft Expression Blend和Microsoft Expression Design就是专门为WPF和XAML设计的。从软件功能上看,Microsoft Expression Design是专门为了与Flash的矢量图形编辑软件竞争而开发的,至于Microsoft Expression Blend+Visual Studio Orcas则更像Flash的Apollo。从这些迹象来看,微软已整装待发,准备进入矢量图形领域,如果不出意外地话,在未来2-4年里,WPF将占据至少30%的市场份额,成为矢量图形领域可以与Adobo相抗衡少数几家公司之一。

继续>>下一页[第1页][第2页]

时间: 2024-08-04 04:16:45

WPF微软的UI革命的相关文章

电视电脑迎来新UI革命

科技企业在CES展会上展示了多种用户界面(UI)技术,新的UI革命似乎正蓄势待发.芝加哥公司Zienon正在开发不直接接触的http://www.aliyun.com/zixun/aggregation/35676.html">手势控制技术(Vimeo视频演示),该公司CEO Derek Li说,用户界面没有跟上时代,他预言未来控制将会变得更直观,可以直接用手控制电视界面,观众不再需要靠遥控器换频道. 微软的语音和手势控制外设Kinect同样让用户拥有了自由控制的能力.瑞典公司Tobii在

搭建 WPF 上的 UI 自动化测试框架

   OEA 1.0-2.0 框架中,界面都是以 WPF 技术作为基础平台开发的.我们需要对开发出来的系统进行自动化测试,而 .NET 平台的自动化测试平台在公司内部还没有其它部门完成,所以我们在 2010 年的时候使用 Ruby + VS UIUnitTest 开发了一个 UI 自动化(UI Automation,以下简称为UIA)框架,估且称其为 UIA 1.0.UIA 1.0 完全由周金根搭建,相关的内容,大家可以参考他写的这几篇文章: <使用VS2010的CodedUI来做自己的自动化测

WPF多线程出现UI卡顿,求救!!!

问题描述 第一次用WPF,被多线程搞死了.写的代码出现了UI卡顿现象,求解救.多线程是从网上找的代码,和WInform用法,完成不同.是不是写的不对,求帮助.intMaxID=0;intMinID=0;ThreadoldThread;ThreadnewThread;DataTableall=newDataTable();publicMainWindow(){InitializeComponent();//this.Title=GetApp.GetValue("Title");oldTh

微软的开发革命:从桌面到云计算

个人电脑的统治时代业已结束,敢于尝鲜的用户已经能通过网络,免费获得诸如谷歌的企业级在线应用服务,微软因此备感压力.特别在经济不景气时期,用户自然会衡量这些选择的优劣,使微软不得不对过去"购买许可"的传统商业模式进行反思. 按照"软件+服务"的战略,微软于2008年11月发布了云计算平台WindowsAzure,这个平台与遍布世界各地的巨型数据中心和网络一起构成全球化的平台基础.微软的客户.合作伙伴以及广大开发人员可以按照"随用随付费"的方式,在A

WPF动画Completed事件里如何获取执行该动画的UI对象

昨天群里有位童鞋提出如何在动画完成事件Completed里获取到执行该动画的UI对象. WPF里动画的Completed的本身并不会返回执行动画的UI对象,但我们可以利用附加属性Storyboard.TargetProperty来达到我们想要的效果. 本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/net/ 步骤: 1 在执行动画前,先附加属性记录对象 DoubleAnimation ani = new Dou

将WPF UI单元复制到剪贴板

大家在日常工作中应该遇到过这样的问题:需要对应用程序界面进行截屏操作,然后将截屏内容拷贝到其他文档中使用.通常情况下我们会使用一些截屏软件或者"Ctrl+PrtSc ",本篇将介绍如何在WPF 程序中将UI 单元直接以图片形式复制到剪贴板,以达到为应用程序界面制作快照(Snapshot)的功能. 以我之前做过的一个"WPF 员工卡"的文章为例.首先,要为程序添加一个自定义命令(Command):CopyUI.该命令的快捷键方式为"Ctrl+U",

一起谈.NET技术,将WPF UI单元复制到剪贴板

大家在日常工作中应该遇到过这样的问题:需要对应用程序界面进行截屏操作,然后将截屏内容拷贝到其他文档中使用.通常情况下我们会使用一些截屏软件或者"Ctrl+PrtSc ",本篇将介绍如何在WPF 程序中将UI 单元直接以图片形式复制到剪贴板,以达到为应用程序界面制作快照(Snapshot)的功能. 以我之前做过的一个"WPF 员工卡"的文章为例.首先,要为程序添加一个自定义命令(Command):CopyUI.该命令的快捷键方式为"Ctrl+U",

将WPF UI单元复制到“.NET研究”剪贴板

大家在日常工作中应该遇到过这样的问题:需要对应用程序界面进行截屏操作,然后将截屏内容拷贝到其他文档中使用.通常情况下我们会使用一些截屏软件或者"Ctrl+PrtSc ",本篇将介绍如何在WPF 程序中将UI 单元直接以图片形式复制到剪贴板,以达到为应用程序界面制作快照(Snapshot)的功能. 以我之前做过的一个"WPF 员工卡"的文章为例.首先,要为程序添加一个自定义命令(Command):CopyUI.该命令的快捷键方式为"上海网站建设Ctrl+U&

8天入门wpf—— 第六天 细说控件

            这篇我们来大概的看一下WPF的各种神马控件,首先我们要知道所有的wpf控件都是继承自Control,从用途上可以分为四种          1:内容控件(Content Controls)          2:条目控件(Items Controls)          3:文本控件(Text Controls)          4:范围控件(Range Controls)   一:内容控件     内容控件的最大的特征就是有一个Content属性,从前面的文章中,我们