Profil de ATIFL TeamATIFL Team——Active Think...PhotosBlogListesPlus ![]() | Aide |
|
|
23 juillet 有感于bill的退休最近bill正式退休了,伟大的人将要去做更伟大的事情(让cctv那些酸溜溜的人自个儿酸去吧)。不仅使我想起了很多以前读到的bill的故事,想起了很多曾经在电脑报上的连载,说的是bill的故事。也不知道其中有没有夸大,当时觉得很真实。
其中一个是在4k内存上开发basic解释程序,昏天黑地到最后要去交差了在飞机上还在改代码。
另一个是为ibm开发dos,bill和他的朋友们被“关在”一个连窗子都没有的地方开发,甚至航天飞机发射都不能去看。
有人说世界上有两类人,一类人是创业者,一类人是守业者,各有专长,一般兼具者几乎没有,但bill就是那样的人,说是旷世奇才不为过吧。
相信中国也有这样的人,什么时候德先生和赛先生真正到来,中国的强大指日可待。哈哈 20 juillet 学习软件实现技术课的一些收获不知不觉软件实现技术这门课程已经接近尾声了,从微软的这门课程里我的确学到了不少东西。 首先是对于设计模式的理解,之前没有仔细的研究过,而在和组员一起做课程项目之后,我发现一个好的设计对于一个项目成败与否至关重要。学了一年的嵌入式,发现自己大部分时候是在比较底层次编写程序。一个问题来了,习惯于马上考虑细节,分析逻辑,这样往往难以写出考虑周全的程序代码,在发现了BUG之后往往得做许多修补工作,甚至不得不重写一遍。而软件开发专业的同学往往在设计一个项目的时候思路就很清楚,类的划分,类之间的关系分析的很清楚。看来我在设计模式这方面很欠缺,得好好的补上一课了。 通过这门课程项目我也有了很多感触。要做出一个好的项目,每个组员都需要贡献自己的力量。我看到有的小组分工很合理,配合默契,工作有条不紊的进行。而我们组的工作开展的并不那么理想。做一个好的PM太不容易了。PM需要组织协调所有成员的工作,对于出现的问题需要头脑清楚的予以解决,需要做出正确的判断,需要保证整个项目的开发进度。一个好的PM不仅需要坚实的技术实力,还要有良好的组织协调能力。我感觉自己可能并不适合做PM。 另外,从这门课程里能够接触到非常新颖的技术。比如微软新推出的WPF以及silver light,感觉很好用,容易上手,功能也十分强大。微软的开发模式也很特别,分为PM(program manager),developer,tester,这三者并不存在谁领导谁的关系,是相辅相成的,好像是凳子的三条腿一样。通过这门课我了解了微软的开发、测试、以及团队成员是如何进行协作的,这对我今后的职业生涯很有裨益。 课程里安排的微软亚洲研究院参观之行给我留下了很深的印象。微软的创新很强大,Live search搜出的视频带有预览功能,地图搜索除了搜索最佳路线等功能外还能够实时显示出每条路的路况。给我印象最深的是微软的virtual earth,与google earth最大的区别就是看到的地图是三维建模的,这同二维的贴图在效果上有了相当大的进步,无论从什么角度看都不会失真。此外,微软的virtual earth还有模拟街道的功能,街道上的景观都已保存在数据库中,就像玩极品飞车一样,我们驾驶虚拟的汽车在街道中穿行,非常酷的功能。微软工作环境相当不错,娱乐室里有桌上足球和按摩椅,免费的饮料和零食,最重要的是有那么多优秀的人才,如果能在这里实习一定会有很大的收获。 总的来说,我从这门课里学了不少东西,还能接触到微软的最新技术,体验微软的文化,挺值的。 乔布斯的演讲技巧23. 发声技巧 乔布斯在制造观众情绪高潮方面不仅仅有巧妙的情节设置,还有他语音语调的起伏变化。当他介绍Apple过去的成绩时始终保持着慢速低音,让人有种可敬的感觉,直到他说“今天Apple准备进行手机革命了!”。所以在适当的时候改变语速和语调来吸引你的观众。 4. 平日训练 乔布斯以在产品发布会前花大量时间彩排著称。我知道不少有名的高管演讲前都不怎么准备,这是看得出来的。我总觉得,商业领袖花大把美元请人设计发布会,却几乎不花一点时间彩排,这实在是不可思议。 5. 态度诚恳并表现你的激情 如果你认为你独特的产品或服务可以改变这个世界,那么就告诉大家吧。要对你要表达的内容充满激情。在介绍iPhone时,乔布斯用了许多形容词如“不平凡的”“革命性的”“酷的”来形容它。他开玩笑地说这个具有触摸功能的手机将“带给你魔法般的感觉”并且已经申请了专利。 我想作为讲演者也抱有这样的疑虑,就是过度夸大将要推出的产品可能会带来一些不好的影响,从而他们的演讲变得有些乏味。记住,如果你对这个产品或服务有信心,就应该让你的听众知道。放松自己,相信自己的感觉,并且表达出你的激情! 乔布斯的演讲技巧1快要做项目的最后演示了,哦今天看到一篇Bussinessweek作家Carmine Gallo总结的五条乔布斯在介绍iPhone时的演讲技巧,哦希望对大家有启发,并衷心的希望我们组很好的完成最后的演示,加油。 在做完这些基础铺垫后,乔布斯要开始构建iphone在观众心中的形象了,在这里他和大家开了一个小小的玩笑,“今天,我们要介绍三个具有 革命性的产品。第一个是带触摸屏的ipod,第二个是个移动手机,第三个是个互联网通信装置。”在反复对这三个产品进行多次评论后他才开始展露真正的图,“你们懂了么?我要介绍的不是这3个产品,而是结合了这三种技术的一个产品,Apple将要进行手机革命了!”,接着观众开始为这个设计癫狂了。乔布斯的演说就像一部交响乐,有高低起伏,让人激情澎湃。为你的演说设计一些意想不到的情节吧。 2. 每个幻灯片只放一个主题 一位聪慧的设计者曾告诉我,有效的演讲幻灯片每张里面只能有一个信息,一个要点。当乔布斯在演讲中介绍那三个具有革命意义的产品时,他并没有在一个幻灯片上同时展示这三个产品,而是一张一个产品分别介绍的,每张幻灯片上只有一个相关图片而已。 乔布斯注重图像效应,他的演讲里面的幻灯片没有一张仅仅只是一个观点或者一组数据而已。换句话说,图片就是全部。简单的幻灯片可以保持观众对于讲演者的 注意力 ,因为幻灯片上过多的文字会使观众分心。看来把你的演讲幻灯片设计得更图像化吧,而且要注意每张只能有一个主题。 WPF的一个视频教程由于去参加一个面试,和去微软参观的时间冲突,所以只能取消去微软参观的安排。看到其他小组有关“体验微
软”的博客,感觉没去微软参观实在可惜,期待有机会和微软的近距离接触。
前一段时间忙于WPF,在网狂找相关资料,发现一个不错的WPF教程,是有关WPF演示的视频教程。它包括15个部 分,适用于我这样的初学者,学过之后会对WPF有一个感性的认识。 1. Overview and Installation 2. The Workspace 3. Managing Your Projects 4. Drawing in Blend 5. Appearance 6. Working with Text 7. Using 3D 8. Media Integration 9. Layout Controls 10.Transformations 11.Animation and Interactivity 12.WPF Controls 13.Working with Data 14.Application Deployment 15.Conclusion 具体网址如下:http://movielibrary.lynda.com/html/modPage.asp?ID=384 17 juillet WPF实现三维场景2补充元素:动画效果 如果想让整体的三维模型都能动起来,就需要为三维场景添加动画效果。 看一段可以让三维场景按纵轴(中心轴)旋转的代码: <Viewport3D.Triggers> 填写如上代码之后就完成了一个最简单的三维动画的处理。 WPF实现三维场景1WPF实现三维场景 上个星期苦于WPF的3D建模中,要在WPF中实现3D,首先要准备必备的软件工具。(Microsoft Visual Studio, Expression Blend及一些3D建模工具) 下面将将介绍如何实现一个简单的三维场景,一个三维的空间,包括空间内的三维物体的组合. 首先介绍一下一个三维场景里的基本元素: 先是定义一个简单的三维的场景环境 代码如下: <Viewport3D Name="myViewport"> 以上是定义了一个名称叫做 myViewport 的三维场景,接下来可以在这个三位场景里添加一些元素: 元素一:照相机 照相机是三维场景内用户的视角,当然照相机也是唯一的。 来看如何定义一个简单的照相机代码: <Viewport3D.Camera> </PerspectiveCamera> 这里面描述了照相机在三维场景里的位置,包括它观察的角度,最远的视线,等等这样信息和属性。 元素二:三维模型 三维模型是三维场景内的物体,也就是模型中的元素,不唯一,可以组合,重叠。 来看如何定义一个简单的三维模型组合的代码: <ModelVisual3D x:Name="topModelVisual3D"> 来看一下效果: 到这里就完成了整个的三维场景的建立。 15 juillet 关于MVC设计模式周日的项目代码展示课上,给我留下较为深刻印象的是有个小组使用了MVC的设计模式。 什么是MVC?我的专业是嵌入式,做过的大部分程序都是比较底层的代码实现,对于MVC也不甚了解,今天上网查阅了一下,发现MVC真是个不错的设计模式。 MVC是Model,View,Controller的缩写,MVC是Application开发的设计模式。在MVC的设计模式中,它包括三类对象:(1)模型(Model)对象:是应用程序的主体部分,数据实体,用来存放数据。(2)视图(View)对象:是应用程序中负责生成用户界面的部分。(3)控制器(Control)对象:是根据用户的输入,控制用户界面数据显示及更新Model对象状态的部分。即要求在Application开发中把业务逻辑,界面显示,数据分离。 MVC应用程序总是由三个部分组成.Event(事件)导致Controller改变Model或View,或者同时改变两者.只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新.类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。 和MVC结构相关的是观察者(Observer)的设计模式,即所有的View是Model的观察者,只要Model发生变化,它就要通知它的观察者以更新所有的观察者。 我们比较熟悉的MFC中的文档-视图结构就可以理解为MVC的结构,在这里文档就是Model,它保存真正的数据,视图就是View,它以自己的方式显示文档中的数据,而消息则可以认为是Control。不过MFC中界面与程序结合的还是比较紧密的,很难做到界面与控制逻辑分开设计。 我觉得微软新推出的WPF就很好的体现了MVC的思想。程序界面用XAML描述,可以很方便的做出绚丽的界面;与xaml文件对应有一个cs文件,用c#语言描述程序的逻辑;如果再加上数据库,这就构成了一个完整的MVC的设计架构了。 10 juillet wpf 是怎么来的在学习wpf期间,偶尔发现一篇有关介绍wpf出处的文章,分享一下:
出处和形成原因
2006 年底,微软公司发布.NET Framework 3.0。作为微软精心打造的新一代.NET架构,.NET Framework 3.0默认内置于Vista操作系统中,并担当最主要的应用程序接口。由此可见.NET Framework 3.0与Vista的关系是何等的紧密。 .NET Framework 3.0以2.0版本为基础,同时增加四个重要组件:Windows Presentation Foundation(WPF),Windows Workflow Foundation(WWF)、Windows Communication Foundation(WCF)和Windows CardSpace(WCS)。这些组件是.NET Framework 3.0最具价值的部分。如图1显示了.NET Framework 3.0的组成: 如图1所示,如果分别使用一句话说明.NET Framework 3.0的各个组成部分,那么可以这样来描述: 这答案很简单:使用WPF统一用户界面的呈现,解决现代应用程序中创建用户界面所遇到的挑战。 一直以来,Windows应用程序用户界面的功能都是以不同方式提供的。例如,开发人员使用WinForms创建Windows GUI,使用HTML、Java小程序或JavaScript代码创建运行在浏览器中的Web页面。很明显,开发人员面临着巨大的挑战:为实现不同类型的 应用程序,开发人员必须学习多种开发技术和方法。如果能够有一种技术,可以实现为不同的客户端创建一致的用户界面,将是非常理想的方案。 WPF就是为解决这一难题而设计。简单而言,可以总结为以下三点:(1)WPF为所有的这些用户界面提供一致的技术基础,从而大幅简化开发人员的工作。 (2)WPF采用更为先进的方法,支持视频、动画、二维或三维图形以及各种类型的文档,从而可以让用户以全新的方式处理信息。(3)WPF还为桌面客户端 和浏览器客户端提供了通用基础,这大大简化了二者的应用程序开发工作。 9 juillet 如何编写有效的测试报告?根据我们小组的项目时间进度安排,现在这段时间正处于项目设计和测试的关键阶段,这里结合实践谈谈我对编写测试报告的看法。 既然说到有效,我觉得要有两个特点:完整和实用,突出重点。引用一句广告词就是说“简约而不简单”,重点部分要突出,要细说,非重点部分,一笔带过,只是为了保证一个文档的完整性。 说到一个测试报告,是对测试的过程和结果的汇总描述,所以其核心内容是两个,一个是测试结果的汇总报告,一个是测试过程的汇总总结,前者是针对所测软件本身,是给所测软件一个客观真实的评价;后者则是针对过程改进,回顾测试流程中存在的不足,加以总结改进。具体来说一般一个测试报告有如下部分构成。 1.引言 这个不用多说了,一般包括编写目的,项目背景介绍,参考资料等等,该项基本可以随便写写。(上次的项目展示在设计部分已经提到,所以测试部分并没有再做赘述) 2.测试用例设计 对用例设计做一个简单的描述,包括测试范围阿,测试目标阿,测试重点阿等。(早前的项目需求分析时我们已经分析过了,但为了保持文档的完整性这里可以修改后添上) 3.测试环境 主要描述测试所用环境,包括硬件环境和软件环境,服务端和客户端。(因为条件关系,只写了软硬件的环境^_^) 4.测试方法 主要描述测试过程中自己用到什么测试方法,白盒还是黑盒,用到了哪些测试类型和测试技术,用到多少。(该项比较重要) 6.测试时间安排(执行情况) 主要描述测试过程,每个时间段都做了什么事情。该项必不可少。 7. Bug汇总及分析 这一部分由于项目的设计还没有完成,现在只做了某些假设和分析。但是这部分是绝对重要的,也必不可少的。 7.1 Bug总结 一般按照严重程度,功能模块进行划分。(这部分我们在需求阶段已有划分,但设计阶段还没结束,所以仍有待完善) 7.2 Bug分析 通过上面7.1的总结,对bug进行分析。这项是测试报告的核心所在,一般有Bug功能模块 7.3遗留问题 目前软件残存的已知问题。有些是解决不掉的问题。 7.4测试结论 基于以上分析,给被测软件一个全面客观真实的结论,功能如何,性能如何,稳定性,安全性等等给出一个评价。该项最重要,绝不可少。 8.测试过程改进 对整个测试活动进行一个总结,有哪些得失,测试方法和流程需要哪些改进,测试过程中暴露出哪些问题,有哪些好的地方值得发扬等等。这项也很重要。
7 juillet 关于项目设计的一些感受周日课上进行了项目设计的展示。我们开会讨论之后决定只使用一个类,即自动贩卖机本身所抽象出来的类。类中针对消费者和管理员所能进行的各种操作,以及时钟、红外感应器、电源产生信号所引发的各种操作定义了相应的成员函数。由于只有一个类,就没有画出类图。我们用系统状态图来描述系统的运作。对于每个成员函数,我们使用数据流图来描述其处理流程。 我感觉我们已将整个系统描述的十分清楚了,也花费了不少时间画出了每个函数的数据流图。但是,当我兴冲冲的讲完我们的项目设计,心里正有些释然时,一位同学的提问却让我措手不及。他的问题是:“你们到底用的是面向对象还是面向过程?”。我当时就有些懵了,是面向对象吗?可是我们的设计里有那么多的数据流图。是面向过程吗?可是我们的设计中有类的定义,虽然只有一个类。我不知道该怎么回答了,当时脑子挺乱的,回答的很糟糕。回到座位上我仔细的考虑了一会,终于理出了头绪,其实我们的设计并不混乱。我们的设计方法就是面向对象。虽然只有一个类,但是这个类里的函数可以表示出自动售货机的所有行为。数据流图其实是对于每个成员函数的具体实现的一种描述。也就是说我们的整体设计遵循了面向对象的理念,对于类函数的详细代码实现我们用了面向过程的方法进行描述。 另外一个和我们做同一个项目的组设计了好几个类,我们组之前也考虑过用多个类来表示,可以面向消费者、管理员、信号输入设备分为三个类,但是考虑到这些类所操作的成员变量很多是重复的,不甚合理,故只分一个类。我们这次项目设计没有准备界面设计,这是我们的疏忽。 总的来说,这次的项目设计展示收获还是比较大的,虽然没有回答好同学和老师的提问让我很郁闷,但是也使得我重新思考面向对象的概念,以及在软件的设计过程中需要考虑的问题,比如设计的原则、方法。我感觉我们的设计从一开始就没有明确设计原则,大家的讨论都比较关注细节,导致我也觉得总是在讨论“过程”了。其实,面向对象的方法是非常贴近事物本身的抽象方法,我们通过对自动贩卖机的使用经验已经在脑海里形成了对于自动贩卖机各种操作的抽象,这也正是面向对象设计方法本身的优势所在吧。 5 juillet 关于XAML什么是XAML XAML是微软公司关于Windows Vista WPF开发定义用于描述应用程序表示层的语言工具。它的XAML全名Extensible Application Markup Language,从名字上来看第一感觉和W3C定义的XML很相似(Extensible Markup Language)。在从它们的代码来看,虽然都是标记性语言,但是却有本质的差异,一个是完全自定义的标记,另外一个是依赖WPF的运行时的解析标准来解析的标记(某个角度看更像HTML)。
(提示:XAML的发音为"Zamel",如今在WPF的官方网站上已经提供了一些很实用的工具,可以将其他格式的图形文件转换为XAML文件的形式。例如我们就可以将3DMax制作出的3D动画转换为XAML,这样WPF程序就可以直接通过转换好的XAML文件产生和3DMax制作出的3D动画相一致的效果。) WPF与XAML XAML、程序代码及 Expression Blend 就如同其它的基于XML的标记语言一样,XAML大体上也遵循XML的语法规则。例如每个XAML元素包含一个名称以及一个或多个属性。在XAML中,每个属性都是和某个WPF类的属性相对应的,而且所有的元素名称都和WPF中定义的类名称相匹配。例如<Button>元素就和System.Windows.Controls.Button类对应。 我们可以将逻辑代码直接嵌入到一个XAML文件中,也可以将它保留在一个单独的文件中,即像ASP.NET那样采用代码后置模型,将页面和相应的逻辑代码分别存放在不同的文件中。 Expression Blend 中任何指定文件的 XAML 均储存于 .xaml 档案中。若 XAML 文件有基础程序代码,则该程序代码会储存于文件名称相同但加上 .cs 或 .vb 扩展名的档案中。例如,若 XAML 文件名称为 Window1.xaml 且程序代码的程序设计语言为 C#,则程序代码后置档案的名称是 Window1.xaml.cs。
关于WPF什么是WPF?
WinFX是下一代的Windows API,而WPF将是WinFX的核心一部分,用于处理UI, Document, Media和用户交互。
Windows Presentation Foundation ,缩写为WPF,其原来代号为“Avalon”,因“我佩服”拼音首字母组合一样,国内有人调侃地称之为“我佩服”。
WPF(Windows Presentation Foundation) 是微软.NET Framework 3.0的组成部分之一,它是一套基于XML、.NET Framework、向量绘图(vector graphic)技术的表现层(presentation layer)开发框架。WPF是微软下一代用户界面技术,被广泛用于Windows Vista的界面开发。作为微软下一代的图形表现系统,WPF表现出强大的视觉效果,同时提供了丰富的用户接口,统一了开发人员和设计人员创建、显示和操作文档、媒体和用户界面的方法。
WPF的特色:
首先,它清晰而又有效的将用户界面和程序实现分开。它使得设计可视化的用户界面的设计者和编写内部核心代码的开发人员可以并行工作。这是非常重要的:
·将两者分开,软件开发公司可以使得设计者们集中精力将设计工作做得更好,同时让开发者支持他们。 ·随着软件外包和订购的逐渐风行,WPF使得一些商业的设计者们能够更好的从事界面设计工作,并集成一些简单的功能,而购买的核心代码能够独立的完成内部的一些关键逻辑而不干扰设计过程。 ·它更好的支持应用软件的国际化。不同的独立的界面可以使用不同的本地化方案,而内部的代码是通用的。 ·它支持软件的"空标签":可以为不同的用户采用定制的界面而保持核心的逻辑不变。开发者们创建程序逻辑,然后为不同的用户使用不同的界面并贴上他们的商标等。 WPF使用一种基于XML的语言来定义用户界面从而完成上述的工作。这种语言被称为XAML,XML应用程序标记语言。 其次,WPF使用一种基于向量而不是基于光栅的绘制引擎,这和早期的Windows的绘制引擎是截然不同的。光栅绘制引擎通过在屏幕上绘制象素点来绘制表面。象素只是点;这样的话,如果屏幕分辨率(DPI,每英寸点)增加了,它的效果就会变差。随着现在屏幕都采用超高DPI的分辨率,字体必须使用成百上千个DPI来达到一定的浏览效果。比如微软Word里缺省的英文字体12号的Times New Roman,在现在的普通分辨率情况下效果还可以但是到了超高分辨率的显示器上效果就不行了。管理这些基于光栅的图像的点将会消耗大量的处理能力,同时也是很浪费的。而采用基于向量的方式来替代象素,在一个可扩展的坐标系里绘制字体和其他线型,使得它们可以独立于DPI。想想Windows Metafile(WMF)和位图文件(BMP)之间的差距你就明白了。同时,向量图也使得一些变换如3D,旋转和动画变得更加方便和易于操作。 WPF/E(官方名称SilverLight)和WPF是什么关系? WPF/E(Windows Presentation Foundation/Everywhere=)是WPF的子集,嵌入在浏览器中提供2D绘图、向量动画与影音的效果。 哪些人应该关注WPF
(1)Net Windows Forms开发人员。
在.net 1.0, 1.1或2.0中开发过Windows Forms应用程序的程序员们深有体会,如果需要制作漂亮的界面,我们不得不使用GDI+编写大量自定义控件,里面涉及纷繁复杂的图形绘制,其中的大量的绘制API可能曾让你头痛不已。恭喜你,当你使用WPF来完成这些任务时,一切变得轻轻松松。当然,如果你是GDI+方面的高手,你仍然可以定制你的控件。 (2)使用Win32及MFC开发者。
Win32及MFC开发者也会遇到程序界面绘制的问题,有时为了满足用户“美的享受”,你是否曾经为诸多的类库,复杂的绘制算法而费尽脑细胞?它们是不是让你付出过高昂的时间和精力代价?在WPF里,“一切尽在掌握中”。 (3)图形图像开发人员。
如果你是图形图像开发人员,那么,请留意了!如果你还在为各种2D,3D的图形图像算法而潜心专研时,人家初学者使用WPF,可能轻轻一点,出来的效果已超过你多天冥思苦想的结果。 (4)网站程序开发人员。
知道XBAP吗?知道SilverLight吗?如果不知道,请多关注它们,否则,一年半载之后,你会发现,你落伍了! (5)平面设计人员、Flash开发者。
众所周知,Photoshop可以做出炫彩夺目的图片效果,FLASH动感十足。而号称Flash杀手的SilverLight (“银光”,最终微软将中文字定为什么,不得而知。我倒认为中文名字应该叫“炫光”,我这里还是缘用大多数人的说法吧)一登场, 就引起了无数设计者的目光。它是不是真的Flash Killer?银光闪现,“闪客”们如何应对? PS:
本来想上传一个《WPF、SilverLight、XAML新技术文档》,但是却发现开通不了Live SkyDrvive,原因是Live SkyDrvive没有对中国开放,而且现在Live SkyDrive使用ip来辨别用户是否属于开放地区,如今新用户无法开通使用Live Skydrive,除非使用外国代理才可,很无奈啊,不知道有没有其他的方法。 关于silverlight从网上找了一些资料,总算对silverlight有了一个比较清晰的认识了,下面引用一下网上关于silverlight的一段我认为比较明了的介绍:
SilverLight是Windows PresentATIon Foundation的一个子产品,其利用了跨浏览器Web技术进行设计,以实现多操作系统,甚至是移动设备上的无缝运行。和Flash一样,WPF/E 是作为一个浏览器的插件,可以显示矢量图形、动画和视频。
Silverlight集成了多种现有Web技术和设备,它可以在Windows、Mac平台上运行,支持IE、Firefox,甚至Apple的Safari Web浏览器。而无需对现有的网站设计进行移植,甚至包括利用Adobe Flash设计的内容。 至于SilverLight与Flash的区别,微软的一位高层人士曾这样描述:一个WPF/E程序“并不是传递给Flash播放器的一个编译好的二进制文件。”相反,所有的代码都是基于标准的,且图像都使用了XAML。 同时,与Flash的内容不方便搜索引擎收录不同,SilverLight是以DOM型式公开它的元素树,内容能很好被搜索引擎收录。 附:SilverLight产品介绍 1、Silverlight通过小巧的浏览器插件将视频、交互性内容以及其他应用融合在一起。该解决方案集成了强大的图像及图层技术,支持任何尺寸图像的无缝整合,并提供适合广播的图层技术,可以在图像上添加按钮、标题或是其他交互性内容。 2、 Silverlight允许利用WMV标准从高清设备向移动设备提供高质量视频和音频。此外,该工具通过Expression Media Encoder以及Tarari公司的内建平台,支持15X的快速视频编码及硬件加速。 3、Silverlight支持多种平台,使用户能够方便的进行代码重用,并通过不同平台无缝的连接到Web。 4、Silverlight集成了多种现有Web技术和设备,这意味着它可以在任何服务器和发布平台上使用,而无需对现有的网站设计进行移植,甚至包括利用Adobe Flash设计的内容。 5、Silverlight采用了已在.NET 3.0和Vista中使用的XAML语言,这使得Web内容和桌面内容的开发语言一致,从而降低了开发费用。Silverlight还兼容大量其他标准和 现有技术,包括ASP.NET、AJAX以及.NET 3.0,这使得开发者可以根据现有标准,或是采用微软已成熟技术来开发基于Web的内容。 6、 此外,Silverlight为设计者和开发者提供大量的开发工具和开发环境支持。对设计者来说,Expression Design和Expression Blend软件可以创建可重用界面,Expression Web使得在符合W3C标准的网站开发中可以使用XHTML、XML、XSLT、CSS以及ASP.NET等工具。对开发者来说,基于Visual Studio的Web开发支持包括ASP.NET AJAX在内的技术,并支持JavaScript,C#,VB,Ruby以及Python等多种开发语言。 设计人员可以轻松的拥有使用Expression Studio进行设计、编译和发布Silverlight应用程序。Expression Studio有创建图像、媒体,设计交互和产生体验需要的一切能力。Expression Blend能够生成XAML进行输出,这样使用Visual Studio的程序员和使用Expression Blend的设计人员可以共享同样的文件。 7、 Silverlight浏览器插件的安装程序简单,体积约为2Mb。当用户遇到使用Silverlight开发的网页时,可以迅速的安装这一插件。 Silverlight内建的视频及动画广告解决方案灵活性很高,当传输广播类型的视频或是动画广告时,不会影响视频的质量。而这一问题是现有技术普遍遇 到的问题。 8、通过获艾美奖的Windows Media技术,传输流量可降低46%,并且和现有的Windows Media流量配置方案兼容。如果采用下一代Windows Server系统中的IIS媒体包,流量还将进一步下降。 9、Silverlight支持内容接入保护技术。无论在Windows还是Mac平台上,Silverlight都支持多种商业模型,包括订阅、租用、付费浏览或是预览等。 10、对于JavaScript的扩展。SilverLight提供了对于全球浏览器脚本语言的扩展,从而为浏览器用户界面提供更加强大的控件,包括与WPF元素工作的能力。 11、LINQ。SilverLight包含集成查询(LINQ)语言。 4 juillet Sliverlight和wpf今天微软的老师来给我们讲了一堂课。主要内容是WPF和Silverlight
学校的装备还是显得“老旧”了,投影仪那“朦胧美”,网络那“若即若离”,麦克风那“不见踪影”,总是使得课程效果打了些折扣。真希望学校能重视这些“小地方”,细节往往一样会决定成败。
关于WPF,以前知道的不多,感觉好像是跟着vista一起出现的,网上有人叫“我佩服”,挺有趣的觉得,直观的印象是引入了新的UI设计方法,“用于生成能带给用户震撼视觉体验的Windows客户端应用程序。”还有个xaml的东西,应该是使得UI的设计更加统一,并且可以和程序逻辑合理的分隔开,UI设计人员可以独立完成应用程序界面的设计,程序员专注于程序逻辑部分。
Silverlight 更动人(毕竟现在是web的天下),一看就觉得是用来抗衡flash的。不过目前装机率应该不高,记得上次装它还是在浏览msdn网站的时候被提醒装的。相对如日中天的Flash,即使Silverlight有更优的功能和性能,面对市场的“惯性”,想要从Flash那里分一杯羹还需要很多的努力。虽然Matt老师的flash(注:这里第一次就打错了,应该是Silverlight Demo?可见flash之深入人心)很可惜没能完全演示出来是个遗憾,不过从今天的上座率来看,微软的fans还真不少。
微软出了这么多东西,第一感觉是有些混乱,新概念一个一个,目不暇接,这也是IT的特点吧,吃IT饭的人肯定要能适应这点。 关于如何查找数组中和最大的子序列问题:给定一个数组,如{-1,3,6,-9,2,-5,-1,9,3,-3},求该数组中的和最大的子序列。
思路:最简单的方法,以每个元素作为起点,再考虑1~n所有的子序列元素个数的情况,这样的复杂度就为O(n*n). 之后我们讨论了如何简化数组,比如相邻的正数可以将其绑定,两端的负数可以直接排除,最后数组可以被简化为两端为正数,中间没有相邻正数的形式。然而,这样并没有从根本上降低算法的复杂度,我们的讨论没有切中问题的要害。后来,发现上学期的算法课上已经有了现成的算法,分治策略的复杂度为O(nlogn),动态规划算法的复杂度为O(n).看来一个好算法可以大大的降低解决问题的代价。最后我们采用了动态规划算法。
算法实现:
/*算法思想:使用动态规划算法,
b[i]=max{b[i-1]+a[i],a[i]},i=0,1,2,...,n-1 b[i]表示最后一项为a[i]的序列构成的最大子段和 最优解为b[i]中的最大值 */ int MaxSub(int a[],int n,int& begin,int& end)//a[]是给定的数组,n是数组中元素个数,begin和end分别记录起始项和末项 { int sum=0;//最大子段和 int b=0;//最后一项为a[i]的序列构成的最大子段和 for(int i=0;i<n;i++) { if(b>0) { b=b+a[i]; } else { b=a[i]; begin=i;//记录起始项 } if(b>sum) { sum=b; end=i;//记录末项 } } return sum; } 程序结果:输入数组{-1,3,6,-9,2,-5,-1,9,3,-3}得到最大和子序列{9,3}
感想:我们在讨论问题的时候应该从解决问题的本质出发,课上我们组的讨论似乎偏离了这个方向,看来我这个PM没有做好。动态规划算法很简单,但是没有学过算法的人可能不是那么容易想的到。我想我得好好的把算法这门课补一补了。 |
|
|