置顶随笔
摘要: “文章分类”栏目的内容都不是原创的,多为转贴,如果在转贴时有原出处及作者,我会加以注明,但有些文章出处及作者不详的,会加上[转贴]字样,且版权都归原作者所有,如果您发现那篇文章是您的而没有署名,请与我联系,我会第一时间加上署名或应您要求进行删除。 “随笔分类”中的文章为原创内容,采用许可:署名,非商业。阅读全文
posted @ 2008-01-23 12:55 三千 阅读(696) 评论(1) 编辑
  2007年5月29日
作者:ai829 (80s.net.cn)

在以前的一篇 文章中我已经说明了Adobe和Microsoft在presentation layer的竞争关系。根据一些资料总结的功能,我针对Flash以及silverlight做了一个比较的图表,后面我会针对每一个横向对比做出说明。由于国内外对Flash和silverlight的比较文章几乎没有,因此没法作为参考,文章中一些东西我不太确定的,请大家指出。


1 丰富的二维动画/图形和视音频表现 Rich 2D animation/graphics with audio and video
这点毋庸置疑,两个公司的产品都对这块做出的很大的努力,但是还有有席位差别的。用过Blend和Flash这两个软件的朋友一定会发现两个软件的不同,比如Flash独有的timeline形式和Blend强大的interaction面板等,从这一点可以看出,Bland对自己的interaction application develop tools的定位还是比较准确的,而Flash则是从basic到Professional版本涵盖了动画制作到RIA开发领域。

2 行业标准的视频解码器Industry standard video codec
先来介绍一下什么是视频解编码:视频压缩是所有令人振奋的、新型视频产品的重要动力。压缩-解压(编解码)算法可以实现数字视频的存储与传输。
典型的编解码器要么采用行业标准,如 MPEG2、MPEG4、H.264/AVC 与 AVS,要么采用专有算法,如 On2、Real Video等,而这两个公司分别位于不同的阵营。
从资料中得知微软的视频解码标准是:
SMPTE Society of Motion Picture and Television Engineers。而微软则在此基于WMV 进行了标准化修改,现在则以 VC-1 的新名称在业界实现了标准化—WMV9。
而Flash则是采用on2 VP6视频编码标准,虽然没有基于所谓的业界标准,但是on2是自己的专有算法,也是可以在文件大小和画面质量间找到平衡。
因此是否采用行业标准的视频编码器,也就变得不那么重要了。

3 硬件辅助解决方案Hardware-assisted editing and encoding solutions
这点不太清楚silverlight是如何进行硬件辅助的,但是Flash似乎是没有的,不过Adobe的同门师兄弟DIRECTOR则支持硬件辅助的功能,不知道Adobe会不会做这方面的移植。

4 以XML为基础的表现层有利于搜索引擎优化XML-based presentation layer for SEO
众所周知silverlight是基于XAML的,而所有的silverlight程序都是用户下载后在客户端由runtime来解释并执行的,也就是所在客户端可以看到程序的源代码,这样搜索引擎就可以索引其中的内容了。
而Flash则是在导出时生成swf格式的二进制文件,并由用户下载到本地由runtime执行,因此搜索引擎很难对其进行索引。

5 标准的高性能编程语言 Choice of standards-based and high-performance languages
新版的silverlight已经支持使用javascript C# 以及VB进行开发,新版的Flash CS3则支持使用ActionScript 1 ActionScript 2 ActionScript 3 进行开发。虽然as3的出现使得ActionScript在效率上有了很大的提升,但是较之C#这样的编程语言还是有比较大的差距。

6 端到端的服务器和应用平台 End-to-end server and application platform
这点silverlight有着天然的优势,其服务器和应用平台经过这么多年的发展已经具有了很大的垄断优势,而Flash相比较之下就显得不尽如人意了,只是在最近今年有所进展(ColdFusion Jrun),但是对于微软还没有什么优势可言。

7 媒体服务器license(无限频宽) Media server licensing (unlimited bandwidth)
虽然具体的价钱不太清楚,但是Flash Media Server确实比我们想像中的贵,而 Windows Media Server就显得平易近人多了。
这点没什么可说的 Adobe对Media Server的策略不是很成功,不过对于这个刚刚踏入2.0的服务器端软件来说,还需要给他一些时间。

8 客户端广告播放插入 Client side playlists for ad-insertion
这点两家都有各自的技术实现,比如在视频中加入提示点等多种插播广告的方式。

9 视频出版工具 Robust video publishing tools
在Flash中的视频出版工具叫做Flash Media Encoder 提供了很多视频编辑功能 相似的还有 微软的expression中Media 也提供了很多视频编辑的功能

10 高性能的客户端 High-performance, multi-core enabled client
虽然我不太清除高性能的标准是什么,但是我相信silverlight和FlashPlayer都是我们期待依旧的High-performance client

11 可调整全屏幕高清视频(720p)Scalable full screen video up to HD (720p)
虽然Flash也支持全屏观看,但是视频的质量确实还是稍弱一些,而silverlight可以同时播放多段HD视频的能力确实不容小看,再加上silverlight的video brush功能,确实比Flash视频略胜一筹。

12 离线文件操作Offline, document support
可以在本地存储文件,在Flash中是类似shareobject的功能,在silverlight中则还没有提供类似功能,但是可以借助javascript对cookie的操作来完成。

13 文件格式是二进制或者文本格式Binary or Text Format
两种文件格式各有优势,二进制的swf格式有利于源文件的保护,而文本的xaml则对seo有很大的好处。

14 开发制作工具 Tools
Flash后端有Adobe强大的CS3系列套件的支持,从网页三剑客到PhotoShop等图形类软件,在广大设计和开发人员中有着非常好的口碑。
而silverlight拥有后来居上的expression套件,也是不容小视。

15 工具操作复杂性 Tools complex operation
这点我要单独提出来是因为很多开发和设计人员已经习惯了Adobe的软件操作以及工作方式,而让他们一夜之间转到微软的expression上来确实有难度,而让从业者习惯expression的操作和工作方式更是摆在微软面前的难题

16 3D支持 3D Support
针对3D的支持,两个player都没有涉及,但是并不是说我们不能做3D的尝试,Flash阵营中很多第三方开发者基于ActionScript开发出了很多3D 引擎,而silverlight也可以让用户用微软提供的开发语言进行3D引擎的开发。

17 客户端大小(所需下载的安装文件大小)Client size
两个player都是寄生于浏览器的插件,因此安装文件的大小就是一个比较敏感的问题,但是两个公司在这方面做的都很好,基本上使用户可以很快下载并安装。

18 所支持的操作系统 Supported operating systems
FlashPlayer支持的操作系统基本上囊括了所有操作系统甚至连带手机的很多操作系统都有支持,这点是Flash一个很大的优势,让开发人员可以不必针对操作系统进行程序的修改。
Silverlight支持的操作系统相对Flash就少的多了,如果要让WPF真的Everywhere,还有很多路要走。

总的来说,两个公司的平台还是各有千秋的,还有很多细小的功能没有进行详细的对比,比如对Alpha通道视频的支持,以及对文字的渲染等。两个公司各自有各自的优势,Adobe在player的占有率,对各个操作系统的支持以及工具的普及率上有着很长时间的积累。而微软在操作系统和应用软件以及服务器端软件的垄断地位则让微软有机会赶超。
posted @ 2007-05-29 13:34 三千 阅读(372) 评论(0)  编辑
  2007年4月16日

ContentType 属性指定服务器响应的 HTTP 内容类型。如果未指定 ContentType,默认为 text/html。
在ASP中使用它:

 <% Response.ContentType = "text/HTML" %>
<% Response.ContentType = "image/GIF" %>
<% Response.ContentType = "image/JPEG" %>
<% Response.ContentType = "text/plain" %>
<% Response.ContentType = "image/JPEG" %>

".*"="application/octet-stream"
".001"="application/x-001"
".301"="application/x-301"
".323"="text/h323"
".906"="application/x-906"
".907"="drawing/907"
".a11"="application/x-a11"
".acp"="audio/x-mei-aac"
".ai"="application/postscript"
".aif"="audio/aiff"
".aifc"="audio/aiff"
".aiff"="audio/aiff"
".anv"="application/x-anv"
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".au"="audio/basic"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".c4t"="application/x-c4t"
".c90"="application/x-c90"
".cal"="application/x-cals"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".cer"="application/x-x509-ca-cert"
".cg4"="application/x-g4"
".cgm"="application/x-cgm"
".cit"="application/x-cit"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".cot"="application/x-cot"
".crl"="application/pkix-crl"
".crt"="application/x-x509-ca-cert"
".csi"="application/x-csi"
".css"="text/css"
".cut"="application/x-cut"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dcd"="text/xml"
".dcx"="application/x-dcx"
".der"="application/x-x509-ca-cert"
".dgn"="application/x-dgn"
".dib"="application/x-dib"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dtd"="text/xml"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".dxb"="application/x-dxb"
".dxf"="application/x-dxf"
".edn"="application/vnd.adobe.edn"
".emf"="application/x-emf"
".eml"="message/rfc822"
".ent"="text/xml"
".epi"="application/x-epi"
".eps"="application/x-ps"
".eps"="application/postscript"
".etd"="application/x-ebx"
".exe"="application/x-msdownload"
".fax"="image/fax"
".fdf"="application/vnd.fdf"
".fif"="application/fractals"
".fo"="text/xml"
".frm"="application/x-frm"
".g4"="application/x-g4"
".gbr"="application/x-gbr"
".gcd"="application/x-gcd"
".gif"="image/gif"
".gl2"="application/x-gl2"
".gp4"="application/x-gp4"
".hgl"="application/x-hgl"
".hmr"="application/x-hmr"
".hpg"="application/x-hpgl"
".hpl"="application/x-hpl"
".hqx"="application/mac-binhex40"
".hrf"="application/x-hrf"
".hta"="application/hta"
".htc"="text/x-component"
".htm"="text/html"
".html"="text/html"
".htt"="text/webviewhtml"
".htx"="text/html"
".icb"="application/x-icb"
".ico"="image/x-icon"
".ico"="application/x-ico"
".iff"="application/x-iff"
".ig4"="application/x-g4"
".igs"="application/x-igs"
".iii"="application/x-iphone"
".img"="application/x-img"
".ins"="application/x-internet-signup"
".isp"="application/x-internet-signup"
".IVF"="video/x-ivf"
".java"="java/*"
".jfif"="image/jpeg"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
".jpeg"="image/jpeg"
".jpg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x-javascript"
".jsp"="text/html"
".la1"="audio/x-liquid-file"
".lar"="application/x-laplayer-reg"
".latex"="application/x-latex"
".lavs"="audio/x-liquid-secure"
".lbm"="application/x-lbm"
".lmsff"="audio/x-la-lms"
".ls"="application/x-javascript"
".ltr"="application/x-ltr"
".m1v"="video/x-mpeg"
".m2v"="video/x-mpeg"
".m3u"="audio/mpegurl"
".m4e"="video/mpeg4"
".mac"="application/x-mac"
".man"="application/x-troff-man"
".math"="text/xml"
".mdb"="application/msaccess"
".mdb"="application/x-mdb"
".mfp"="application/x-shockwave-flash"
".mht"="message/rfc822"
".mhtml"="message/rfc822"
".mi"="application/x-mi"
".mid"="audio/mid"
".midi"="audio/mid"
".mil"="application/x-mil"
".mml"="text/xml"
".mnd"="audio/x-musicnet-download"
".mns"="audio/x-musicnet-stream"
".mocha"="application/x-javascript"
".movie"="video/x-sgi-movie"
".mp1"="audio/mp1"
".mp2"="audio/mp2"
".mp2v"="video/mpeg"
".mp3"="audio/mp3"
".mp4"="video/mpeg4"
".mpa"="video/x-mpg"
".mpd"="application/vnd.ms-project"
".mpe"="video/x-mpeg"
".mpeg"="video/mpg"
".mpg"="video/mpg"
".mpga"="audio/rn-mpeg"
".mpp"="application/vnd.ms-project"
".mps"="video/x-mpeg"
".mpt"="application/vnd.ms-project"
".mpv"="video/mpg"
".mpv2"="video/mpeg"
".mpw"="application/vnd.ms-project"
".mpx"="application/vnd.ms-project"
".mtx"="text/xml"
".mxp"="application/x-mmxp"
".net"="image/pnetvue"
".nrf"="application/x-nrf"
".nws"="message/rfc822"
".odc"="text/x-ms-odc"
".out"="application/x-out"
".p10"="application/pkcs10"
".p12"="application/x-pkcs12"
".p7b"="application/x-pkcs7-certificates"
".p7c"="application/pkcs7-mime"
".p7m"="application/pkcs7-mime"
".p7r"="application/x-pkcs7-certreqresp"
".p7s"="application/pkcs7-signature"
".pc5"="application/x-pc5"
".pci"="application/x-pci"
".pcl"="application/x-pcl"
".pcx"="application/x-pcx"
".pdf"="application/pdf"
".pdf"="application/pdf"
".pdx"="application/vnd.adobe.pdx"
".pfx"="application/x-pkcs12"
".pgl"="application/x-pgl"
".pic"="application/x-pic"
".pko"="application/vnd.ms-pki.pko"
".pl"="application/x-perl"
".plg"="text/html"
".pls"="audio/scpls"
".plt"="application/x-plt"
".png"="image/png"
".png"="application/x-png"
".pot"="application/vnd.ms-powerpoint"
".ppa"="application/vnd.ms-powerpoint"
".ppm"="application/x-ppm"
".pps"="application/vnd.ms-powerpoint"
".ppt"="application/vnd.ms-powerpoint"
".ppt"="application/x-ppt"
".pr"="application/x-pr"
".prf"="application/pics-rules"
".prn"="application/x-prn"
".prt"="application/x-prt"
".ps"="application/x-ps"
".ps"="application/postscript"
".ptn"="application/x-ptn"
".pwz"="application/vnd.ms-powerpoint"
".r3t"="text/vnd.rn-realtext3d"
".ra"="audio/vnd.rn-realaudio"
".ram"="audio/x-pn-realaudio"
".ras"="application/x-ras"
".rat"="application/rat-file"
".rdf"="text/xml"
".rec"="application/vnd.rn-recording"
".red"="application/x-red"
".rgb"="application/x-rgb"
".rjs"="application/vnd.rn-realsystem-rjs"
".rjt"="application/vnd.rn-realsystem-rjt"
".rlc"="application/x-rlc"
".rle"="application/x-rle"
".rm"="application/vnd.rn-realmedia"
".rmf"="application/vnd.adobe.rmf"
".rmi"="audio/mid"
".rmj"="application/vnd.rn-realsystem-rmj"
".rmm"="audio/x-pn-realaudio"
".rmp"="application/vnd.rn-rn_music_package"
".rms"="application/vnd.rn-realmedia-secure"
".rmvb"="application/vnd.rn-realmedia-vbr"
".rmx"="application/vnd.rn-realsystem-rmx"
".rnx"="application/vnd.rn-realplayer"
".rp"="image/vnd.rn-realpix"
".rpm"="audio/x-pn-realaudio-plugin"
".rsml"="application/vnd.rn-rsml"
".rt"="text/vnd.rn-realtext"
".rtf"="application/msword"
".rtf"="application/x-rtf"
".rv"="video/vnd.rn-realvideo"
".sam"="application/x-sam"
".sat"="application/x-sat"
".sdp"="application/sdp"
".sdw"="application/x-sdw"
".sit"="application/x-stuffit"
".slb"="application/x-slb"
".sld"="application/x-sld"
".slk"="drawing/x-slk"
".smi"="application/smil"
".smil"="application/smil"
".smk"="application/x-smk"
".snd"="audio/basic"
".sol"="text/plain"
".sor"="text/plain"
".spc"="application/x-pkcs7-certificates"
".spl"="application/futuresplash"
".spp"="text/xml"
".ssm"="application/streamingmedia"
".sst"="application/vnd.ms-pki.certstore"
".stl"="application/vnd.ms-pki.stl"
".stm"="text/html"
".sty"="application/x-sty"
".svg"="text/xml"
".swf"="application/x-shockwave-flash"
".tdf"="application/x-tdf"
".tg4"="application/x-tg4"
".tga"="application/x-tga"
".tif"="image/tiff"
".tif"="application/x-tif"
".tiff"="image/tiff"
".tld"="text/xml"
".top"="drawing/x-top"
".torrent"="application/x-bittorrent"
".tsd"="text/xml"
".txt"="text/plain"
".uin"="application/x-icq"
".uls"="text/iuls"
".vcf"="text/x-vcard"
".vda"="application/x-vda"
".vdx"="application/vnd.visio"
".vml"="text/xml"
".vpg"="application/x-vpeg005"
".vsd"="application/vnd.visio"
".vsd"="application/x-vsd"
".vss"="application/vnd.visio"
".vst"="application/vnd.visio"
".vst"="application/x-vst"
".vsw"="application/vnd.visio"
".vsx"="application/vnd.visio"
".vtx"="application/vnd.visio"
".vxml"="text/xml"
".wav"="audio/wav"
".wax"="audio/x-ms-wax"
".wb1"="application/x-wb1"
".wb2"="application/x-wb2"
".wb3"="application/x-wb3"
".wbmp"="image/vnd.wap.wbmp"
".wiz"="application/msword"
".wk3"="application/x-wk3"
".wk4"="application/x-wk4"
".wkq"="application/x-wkq"
".wks"="application/x-wks"
".wm"="video/x-ms-wm"
".wma"="audio/x-ms-wma"
".wmd"="application/x-ms-wmd"
".wmf"="application/x-wmf"
".wml"="text/vnd.wap.wml"
".wmv"="video/x-ms-wmv"
".wmx"="video/x-ms-wmx"
".wmz"="application/x-ms-wmz"
".wp6"="application/x-wp6"
".wpd"="application/x-wpd"
".wpg"="application/x-wpg"
".wpl"="application/vnd.ms-wpl"
".wq1"="application/x-wq1"
".wr1"="application/x-wr1"
".wri"="application/x-wri"
".wrk"="application/x-wrk"
".ws"="application/x-ws"
".ws2"="application/x-ws"
".wsc"="text/scriptlet"
".wsdl"="text/xml"
".wvx"="video/x-ms-wvx"
".xdp"="application/vnd.adobe.xdp"
".xdr"="text/xml"
".xfd"="application/vnd.adobe.xfd"
".xfdf"="application/vnd.adobe.xfdf"
".xhtml"="text/html"
".xls"="application/vnd.ms-excel"
".xls"="application/x-xls"
".xlw"="application/x-xlw"
".xml"="text/xml"
".xpl"="audio/scpls"
".xq"="text/xml"
".xql"="text/xml"
".xquery"="text/xml"
".xsd"="text/xml"
".xsl"="text/xml"
".xslt"="text/xml"
".xwd"="application/x-xwd"
".x_b"="application/x-x_b"
".x_t"="application/x-x_t"

 
posted @ 2007-04-16 11:16 三千 阅读(278) 评论(0)  编辑
  2007年2月14日
 
发表时间:2006-12-26 20:53:28   楼主:azurebz  [转自架构师]
微软的DotNet开发绝对是属于那种入门容易提高难的技术。而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的。特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此       RUP方法论也认同以架构为核心,体现4+1视图在整个软件开发过程中的重要作用。架构人员既要精通技术,又要熟悉业务,而且基本对软件生命周期各阶段的相关技术都需要有相关的积累和知识储备,而这些不经过多年的磨练是很难达到这个高度的。  

要成为一个合格的架构师首先必须是一个合格或优秀的编码人员,对于开发来讲编码始终都是最重要的一项技能,在编码过程中只要自己善于去思考和分析问题,就可以多学到很多相关的知识和技术。所以我们在开发过程中一定要注意新知识和新技术的学习,前人经验和成果的学习。编码过程中应该去思考的一些问题有:  

1.在编码过程中自己是否做单元测试,是否使用相关工具做单元测试,如果没有的话是什么原因无法把单元测试做起来?  
2.自己编码的泄露率情况,编码泄露的BUG的原因分析  
3.是否有意识的对代码进行重构,重构过程中是否引入了相关设计模式的思想?  
4.是否对C#语言的一些高级特性进行学习,如反射调用,异步处理等。  
5.是否对Remoting和WebService两种分布式技术做过研究和对比分析?  
6.是否经常研究开源项目和开源代码,如Duwamish,PetShop,NUnit,Enterprise       Library,Nant等  
7.是否对对象持久化机制和O/R       Mapping等相关技术做过相关的研究  
8.平时在编码过程中是否注重公用组件和公用类的复用和抽取  
9.自己在平时工作和学习中是否经常开发些小工具提高工作效率,巩固学习知识  


设计和编码其实是密切而不可分的,对于严格将设计和编码分开的瀑布模型一般也仅仅在大型项目中应用。而及时编码和设计分离,也不是将编码人员不需要思考,编码活动始终是一项创造性的劳动,如果否定这个观点那就代表编码过程完全不需要人员介入而可以完全自动化。因此在这里谈设计主要还是指设计人员的系统化思维能力,设计人员应该比开发人员站高一个层次来分析和思考问题。设计人员最重要的一个技能就是现实-   >抽象的转换,而这个就需要谈到方法论的问题了,技术人员需要积累面对对象分析和设计或结构化分析知识的积累,需要有较强的数据库分析和设计能力。一个设计能否成为很好的架构师关键就在这种积累的深度和广度上面了。  

因此在设计过程中应该考虑的问题有:  
1.你现在分析和设计能力能否胜任大中型的应用系统还是只是独立功能分析和设计?  
2.设计过程中是否有意识的考虑到组件的复用和相关接口设计准则。是否能够很自然的将分析模式,设计模式的相关内容应用到自己的设计过程中。  
3.是否对XP,RUP,面向对象,结构化等方法论都有过较系统化的学习和思考。  
4.是否真正理解系统功能需求和非功能需求对系统设计的不同的指导作用。  
5.对自己设计的功能是否会根据后期的变更来反思自己的设计为何不能很好的适应变更?  
6.是否在设计过程中经常自己开发些原型来对自己的设计思路进行验证?  
7.是否专注技术的同时开始专业业务流程的分析,关注业务建模?  


如果我们在设计和开发过程中经常关注这些知识和技能的话,成为一个合格的架构师是早晚的事情。平时能够胜任工作开发用到的知识和技能是微不足道的,如果自己不是有意识的去学习这些知识的话,那技能是很难得到进一步提高的。我参加过两次微软的架构师培训,在北京的微软架构峰会上也有机会专门参加了P&P       Workshop的学习,培训老师是微软总部SmartClient       Architecture       and       Design       Guide一书的作者Edward       A.Jezieski,让我感受最深是老外深刻的技术底蕴,对程序开发的执著。  

对于DotNet架构经常用到的知识和技能储备有  
1.RUP方法论,4+1视图。用例驱动业务建模-   >分析模型-   >设计模型  
2.用例模式-   >分析模式-   >设计模式  
3.常用的分布式技术  
4.对安全,异常,日志,性能等非功能性需求的关注  
5.对应用系统整体业务的关注  

相关的一些参考书籍(微软网站和电驴都可以下载到)  

微软网站提供的参考书籍  
Enterprise       Solution       Patterns       Using       Microsoft       .NET  
.NET       Data       AccessArchitecture       Guide  
Application       Architecture       for       .NET:Designing       Applications       and       Services  
Caching       Architecture       Guide       for       .NET       Framework       Applications  
Designing       Application-Managed       Authorization  
Smart       Client       Architecture       and       Design       Guide  

其它架构方面的参考书籍  
Software       Architecture       In       Practice  
Pattern-Oriented       Software       Architecture  
The       Art       Of       Software       Architecture  
Beyond       Software       Architecture  

模式方面的书籍  
Analysis       Patterns  
Design       Patterns       -       Elements       of       Reusable       Object-Oriented       Software  
Applying       UML       and       Patterns  
Design       Pattern*       **plained      


【标签】: 架构,DotNet

---------------------------------------------------------
没搜出原作者的blog,只在csdn上搜出.csdn整合的真是好啊,找不到一点儿原作的链接.
posted @ 2007-02-14 14:45 三千 阅读(286) 评论(0)  编辑
  2006年11月29日
 
文章出处:希赛 作者: 发布时间:2006-09-05

主流软件测试工具介绍

  测试工具一般可分为白盒测试工具、黑盒测试工具、性能测试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用例管理)的工具,这些产品主要是MercuryInteractive(MI)、Segue、IBM Rational、 Compuware和Empirix等公司的产品,而MI公司的产品占了主流。

白盒测试工具

  白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。

  静态测试工具:直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。静态测试工具的代表有:Telelogic公司的Logiscope软件;PR公司的PRQA软件。

  动态测试工具:动态测试工具与静态测试工具不同,动态测试工具的一般采用"插桩"的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。动态测试工具的代表有:Compuware公司的DevPartner软件;Rational公司的Purify系列等。

黑盒测试工具

  黑盒测试工具适用于黑盒测试的场合,黑盒测试工具包括功能测试工具和性能测试工具。黑盒测试工具的一般原理是利用脚本的录制(Record)/回放(Playback),模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。黑盒测试工具可以大大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行回归测试。黑盒测试工具的代表有:Rational公司的TeamTest、Robot;Compuware公司的QACenter。

性能测试工具

  专用于性能测试的工具包括有:Radview公司的WebLoad;Microsoft公司的  WebStress等工具;针对数据库测试的TestBytes;对应用性能进行优化的EcoScope等工具。   MercuryInteractive的LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。

测试管理工具

  测试管理工具用于对测试进行管理。一般而言,测试管理工具对测试计划、测试用例、测试实施进行管理,并且,测试管理工具还包括对缺陷的跟踪管理。测试管理工具的代表有:Rational公司的Test Manager;Compureware公司的TrackRecord;Mercury Interactive公司的TestDirector等软件。

posted @ 2006-11-29 11:43 三千 阅读(370) 评论(1)  编辑
  2006年10月30日
posted @ 2006-10-30 19:17 三千 阅读(351) 评论(1)  编辑
posted @ 2006-10-30 19:07 三千 阅读(2407) 评论(3)  编辑
  2006年10月29日
posted @ 2006-10-29 18:29 三千 阅读(68) 评论(0)  编辑
  2006年9月13日
posted @ 2006-09-13 14:12 三千 阅读(115) 评论(0)  编辑
posted @ 2006-09-13 14:10 三千 阅读(154) 评论(0)  编辑
posted @ 2006-09-13 14:09 三千 阅读(148) 评论(0)  编辑
  • 美国项目管理学会PMP。
  • ★RIA 编程 Q群:18144801
  • MSN:
昵称:三千
园龄:6年8个月
粉丝:19
关注:4
<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类(162)

文章分类(70)

[Flash开发笔记] 系列

积分与排名

  • 积分 - 233982
  • 排名 - 345

最新评论

阅读排行榜

评论排行榜

推荐排行榜