Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497513
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:34:53

下载本文示例代码
             推荐:我的IE,我来建  最近一段时间,经常与朋友们探讨与浏览器相关的技术问题,多少年来,浏览器的问题一直是软件界的热点,无论是体验、操作习惯、安全,还是技术等问题,一直都是这样,毋庸置疑,现在的人们已经离不开这个东西了。1996年,在IE 3.0与Navigator 3.0激战正酣的时候,我在一次Microsoft的技术会议上领略了后来被称为IE4的Microsoft浏览器预览版本,那种震撼,一直延续到今天,老实说,今天的IE7,比起当年的IE4,个人觉得还是10年前的震撼更为强烈。想起1996年,今天我们真的感觉自己十分幼稚,如果真的会思考软件的话,也许今天的情形就大不相同了……。   浏览器方面的开发,一直是我的业余爱好,多少年来从来没有当回事,也很少关心这方面的话题。2005年年中,一个偶然的事情改变了我对浏览器开发的看法,当时CSDN的袁德俊先生在我家里谈到他关于协同开发平台的“雕塑”架构时,设想希望将架构实现在Windows的资源管理器之上,在与他的交流过程中,我在努力的揣摩他的构思,技术上我认为不是问题,但软件行为方面,还有许多想法不清晰,那一次交流,基本停留在探讨层面,第二天,我给他看了一张软件截图,他感觉很兴奋,匆匆的赶到我这里,以后的多次交流,使我重新将浏览器方面的开发列入视线……。当我在网络上搜索这方面的信息时,才感觉到自己恍如隔世之人,全然不知外面世界的喧嚣、热闹,身居斗室,真是孤陋寡闻。兴趣回归之后,一直在考虑应该做点什么,一时之间,我下载了几款第三方浏览器,想看看,除了IE默认的功能之外,大家都在做什么?这是一个比较有意思的问题,几天以前,Maxthon的Jeff与我谈了类似的话题,中国国内不缺乏好的技术开发者,真正缺的是“点子”,一个创意一旦出现,立刻就被挖掘得缝隙全无,我与其他浏览器开发者交流,也有类似的感想。在与几位很有经验的开发者的交流过程中,我一直在思考的问题是,浏览器为什么会如此的重要?浏览器给开发者带来了什么?对大众用户而言,浏览的目标、对象会如何改变他们的工作、学习、生活以及交流方式?浏览器会改变我们所开发软件的行为吗?一系列的问题,一直在困扰着我。学会思考,是我最大的收获,不断的交流,使我几乎每天都在坚定一个想法,也促使我重新认识许多过去被我忽视的问题,……。在WWW上,有许多心交已久的朋友,我考虑不到的问题,就是他们中某一位所擅长的,一个狭窄的想法是,从他们的思考中学会什么、吸收什么,这一点应该是交流带来的收获吧,当一个人的思维不够的时候,其他人及时补充你的想法,使得你的想法得以延续,这就是今天的WWW,潜移默化的过渡中,我们都在不自觉地改变着自己。   从第一个大众化的浏览器诞生至今,HTML一直是浏览器的主要浏览对象,在我们热衷于C语言的时候,HTML进入了我们的视线,一种文本的表达方式,牵动着这个世界,我们中的大多数人最初是看不起这类东西的,因为,没有技术含量,然而,历经十几年的变迁,这种看上去没有技术含量的东西,就像地球上的水一样,充满着WWW世界的每一个角落,可以说,HTML就是今天WWW海洋里的水分子,如果HTML是水,那么浏览器是什么?浏览器是船!据说,地球有水以后,经过漫长的进化,才导致生命的出现,今天的WWW也许就是在另一个宇宙里再现这个历程。从许多方面看,我们今天的船还是很初级的,这个海洋越大,这样的船就显得越小、单薄、脆弱,……,也许,今天的WWW海洋,总共只有有限的几类船舶,最大的船东,应该就是Microsoft,此外还有Firefox、Opera、Maxthon、……、以及各种第三方的浏览器,随着时间的徐徐流逝,这些舰船也在悄然的改进,人们的胃口也越来越挑剔。如果世界是一个湖泊,也许我们可以享受到湖面的平静,但WWW是海洋,短暂的平静之后,就是风暴、巨浪,也许还有更厉害的震荡。WPF,对今天的开发者而言,不应该是一个陌生的词汇,尽管还没有正式面世,但我们已经感觉到这一轮冲击的震荡,从形式上看,HTML具有有限的“标记”以及简单的脚本描述引擎,WPF完全建立在XML基础之上,而且带有可编程的脚本语言,二者对比,给人以“河水”向“海水”变迁的感觉,正像地球曾经有过的海洋生命爆发的时代一样,今天的WWW会不会也在上演着这一幕?   今天的开发者也许非常不幸,对我们这一代而言,这种不幸更甚!我们面对的是积累十年的技术,很可能被无情的抵消,一个结构十分复杂、综合的GUI框架,在过去,也许是一个很大的C 工程才能胜任,在今天,完全可以归结为一段简单的XML描述,这是一种变迁吗?如果是,应用软件页面化,就是这场变迁的开始!我们看一个XML段落: <configuration><appSettings> </appSettings><runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><probing privatePath="bin;usercontrol;component;doctemplate"></probing></assemblyBinding></runtime><!-- --><Tangram MainAssemblyLib="TangramMainFrame" MainFrameAssembly="TangramMainFrame.Application" ExternalAppCOMComponent="" Tag="officexp"> <Caption>Welcome To Tangram World!</Caption> <WorkSpace > </WorkSpace> <Background Type="html">background.htm</Background> <Registry Key="TgmExDotNetMainFrame2" StdProfileSettings="4"></Registry> <Skin>Merlin ENI\Merlin ENI.uis</Skin><TangramToolBar><MenuList> <MenuItem Caption="ksks" Name="menu1" ID="33" Icon="c:\a.ico"> <MenuItem Caption="kk&Menu" Name="file1" ID="31" Icon="c:\a.ico"> <MenuItem Caption="oooChildMenu1" Name="file1child1" ID="57600" Icon="c:\a.ico"></MenuItem><MenuItem Caption="extendmenu1" Name="file1child1" ID="19010" Icon="c:\a.ico"></MenuItem><MenuItem Caption="extendmenu2" Name="file1child1" ID="19010" Icon="c:\a.ico"></MenuItem><MenuItem Type="separator"></MenuItem><MenuItem Caption="ChildMenu2" Name="file1child2" ID="33" Icon="c:\a.ico"><MenuItem Caption="oooChildMenu1" Name="file1child1" ID="57600" Icon="c:\a.ico"></MenuItem><MenuItem Type="separator"></MenuItem><MenuItem Caption="ChildMenu2" Name="file1child2" ID="33" Icon="c:\a.ico"></MenuItem></MenuItem></MenuItem><MenuItem Caption="NewFile" Name="file2" ID="57600" Icon="c:\a.ico"><MenuItem Caption="ChildMenu2" Name="file2child1" ID="33" Icon="c:\a.ico"></MenuItem><MenuItem Caption="ChildMenu2" Name="file2child2" ID="33" Icon="c:\a.ico"></MenuItem></MenuItem></MenuItem></MenuList><ImagelistList> <ImageList Name="list1" ImageHeight="32" ImageWidth="32"> <Image File="d:\KuGooMusic.ico" ID="1" Type="icon"></Image> <Image File="d:\icon\0.ico" ID="1" Type="icon"></Image> <Image File="d:\icon\1.ico" ID="1" Type="icon"></Image></ImageList><ImageList Name="list2" ImageHeight="16" ImageWidth="16"> <Image File="d:\yy.bmp" ID="1" Type="bmp"></Image> <Image File="d:\icon\7.ico" ID="1" Type="icon"></Image></ImageList></ImagelistList><ToolBarList> <ToolBar Name="toolbar1" ButtonWidth="40" ButtonHeight="40" IconWidth="32" IconHeight="32" ImageList="list1"> <Button Caption="new file" Name="newfile" ID="30" Type="Button" Icon="0"></Button> <Button Caption="new file" Name="newfile" ID="30" Type="separator" Icon="1"></Button></ToolBar><ToolBar Name="toolbar2" ButtonWidth="19" ButtonHeight="22" IconWidth="32" IconHeight="32" ImageList="list2"> <Button Caption="new file" Name="newfile" ID="57600" Type="Button" Icon="0"></Button> <Button Caption="new file" Name="newfile" ID="5760" Type="Button" Icon="1"></Button> <Button Caption="new file" Name="newfile" ID="5760" Type="separator" Icon="2"></Button></ToolBar></ToolBarList></TangramToolBar><Window> <TangramNode Name="sp1" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Width="" Heigh="" Tag="" Style=""> <Row>  <TangramNode Name="fm1" ID="mscomctllib.listviewctrl.2" CnnID="" Caption="fm1" Width="86" Heigh="483" Tag="" Style=""></TangramNode><TangramNode Name="sp2" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Caption="sp2" Width="514" Heigh="483" Tag="" Style=""><Row> <TangramNode Name="fm2" ID="TangramUserCtrl#TangramUserCtrl.TangramLitePropertyGridCtrl" Width="514" Heigh="152" Style=""> </TangramNode></Row><Row> <TangramNode Name="tb1" ID="TangramLiteTabWnd.CTangramLiteTabbedFormView" Width="514" Heigh="324" Tag="" Style="" > <Pages>  <TangramNode Name="fm3" ID="testvbctrl.ctrl" Caption="fm3" Width="229" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="fm4" ID="forms.form.1" Caption="fm4" Width="457" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="fm5" ID="forms.form.1" Caption="fm5" Width="229" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="MDI2" ID="MDIView" Caption="MDI" Width="457" Heigh="224" Tag="" Style=""></TangramNode> </Pages> </TangramNode></Row></TangramNode></Row></TangramNode></Window><TangramDoc></TangramDoc></Tangram><TangramControlBar> <ControlBar Name="Bar1" Caption="Bar1"> <TangramNode Name="Name0" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Width="100" Heigh="150">  <Row>   <TangramNode Name="Name1" ID="wmplayer.ocx.7" CnnID="" Width="210" Heigh="267">   </TangramNode>   <TangramNode Name="Name2" ID="forms.form.1" CnnID="" Width="89" Heigh="267">   </TangramNode>  </Row>  <Row>   <TangramNode Name="Name3" ID="forms.form.1" CnnID="" Width="210" Heigh="247">   </TangramNode>   <TangramNode Name="Name4" ID="TangramLiteTabWnd.CWndSliderView" Width="89" Heigh="247" ActivePage="0">    <Pages>     <TangramNode Name="Name5" ID="forms.form.1" Caption="xxxxx66666xxyyyyyyyy" Width="100" Heigh="150">     </TangramNode>     <TangramNode Name="Name6" ID="forms.form.1" Caption="xxsssssssxxyyyyyyyy" Width="100" Heigh="150">     </TangramNode>    </Pages>   </TangramNode>  </Row> </TangramNode></ControlBar></TangramControlBar></configuration>   上面这段XML代码,完全可以在运行时将其解释为一个真正的桌面软件:    共4页。 1 2 3 4 :              推荐:我的IE,我来建  最近一段时间,经常与朋友们探讨与浏览器相关的技术问题,多少年来,浏览器的问题一直是软件界的热点,无论是体验、操作习惯、安全,还是技术等问题,一直都是这样,毋庸置疑,现在的人们已经离不开这个东西了。1996年,在IE 3.0与Navigator 3.0激战正酣的时候,我在一次Microsoft的技术会议上领略了后来被称为IE4的Microsoft浏览器预览版本,那种震撼,一直延续到今天,老实说,今天的IE7,比起当年的IE4,个人觉得还是10年前的震撼更为强烈。想起1996年,今天我们真的感觉自己十分幼稚,如果真的会思考软件的话,也许今天的情形就大不相同了……。   浏览器方面的开发,一直是我的业余爱好,多少年来从来没有当回事,也很少关心这方面的话题。2005年年中,一个偶然的事情改变了我对浏览器开发的看法,当时CSDN的袁德俊先生在我家里谈到他关于协同开发平台的“雕塑”架构时,设想希望将架构实现在Windows的资源管理器之上,在与他的交流过程中,我在努力的揣摩他的构思,技术上我认为不是问题,但软件行为方面,还有许多想法不清晰,那一次交流,基本停留在探讨层面,第二天,我给他看了一张软件截图,他感觉很兴奋,匆匆的赶到我这里,以后的多次交流,使我重新将浏览器方面的开发列入视线……。当我在网络上搜索这方面的信息时,才感觉到自己恍如隔世之人,全然不知外面世界的喧嚣、热闹,身居斗室,真是孤陋寡闻。兴趣回归之后,一直在考虑应该做点什么,一时之间,我下载了几款第三方浏览器,想看看,除了IE默认的功能之外,大家都在做什么?这是一个比较有意思的问题,几天以前,Maxthon的Jeff与我谈了类似的话题,中国国内不缺乏好的技术开发者,真正缺的是“点子”,一个创意一旦出现,立刻就被挖掘得缝隙全无,我与其他浏览器开发者交流,也有类似的感想。在与几位很有经验的开发者的交流过程中,我一直在思考的问题是,浏览器为什么会如此的重要?浏览器给开发者带来了什么?对大众用户而言,浏览的目标、对象会如何改变他们的工作、学习、生活以及交流方式?浏览器会改变我们所开发软件的行为吗?一系列的问题,一直在困扰着我。学会思考,是我最大的收获,不断的交流,使我几乎每天都在坚定一个想法,也促使我重新认识许多过去被我忽视的问题,……。在WWW上,有许多心交已久的朋友,我考虑不到的问题,就是他们中某一位所擅长的,一个狭窄的想法是,从他们的思考中学会什么、吸收什么,这一点应该是交流带来的收获吧,当一个人的思维不够的时候,其他人及时补充你的想法,使得你的想法得以延续,这就是今天的WWW,潜移默化的过渡中,我们都在不自觉地改变着自己。   从第一个大众化的浏览器诞生至今,HTML一直是浏览器的主要浏览对象,在我们热衷于C语言的时候,HTML进入了我们的视线,一种文本的表达方式,牵动着这个世界,我们中的大多数人最初是看不起这类东西的,因为,没有技术含量,然而,历经十几年的变迁,这种看上去没有技术含量的东西,就像地球上的水一样,充满着WWW世界的每一个角落,可以说,HTML就是今天WWW海洋里的水分子,如果HTML是水,那么浏览器是什么?浏览器是船!据说,地球有水以后,经过漫长的进化,才导致生命的出现,今天的WWW也许就是在另一个宇宙里再现这个历程。从许多方面看,我们今天的船还是很初级的,这个海洋越大,这样的船就显得越小、单薄、脆弱,……,也许,今天的WWW海洋,总共只有有限的几类船舶,最大的船东,应该就是Microsoft,此外还有Firefox、Opera、Maxthon、……、以及各种第三方的浏览器,随着时间的徐徐流逝,这些舰船也在悄然的改进,人们的胃口也越来越挑剔。如果世界是一个湖泊,也许我们可以享受到湖面的平静,但WWW是海洋,短暂的平静之后,就是风暴、巨浪,也许还有更厉害的震荡。WPF,对今天的开发者而言,不应该是一个陌生的词汇,尽管还没有正式面世,但我们已经感觉到这一轮冲击的震荡,从形式上看,HTML具有有限的“标记”以及简单的脚本描述引擎,WPF完全建立在XML基础之上,而且带有可编程的脚本语言,二者对比,给人以“河水”向“海水”变迁的感觉,正像地球曾经有过的海洋生命爆发的时代一样,今天的WWW会不会也在上演着这一幕?   今天的开发者也许非常不幸,对我们这一代而言,这种不幸更甚!我们面对的是积累十年的技术,很可能被无情的抵消,一个结构十分复杂、综合的GUI框架,在过去,也许是一个很大的C 工程才能胜任,在今天,完全可以归结为一段简单的XML描述,这是一种变迁吗?如果是,应用软件页面化,就是这场变迁的开始!我们看一个XML段落: <configuration><appSettings> </appSettings><runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><probing privatePath="bin;usercontrol;component;doctemplate"></probing></assemblyBinding></runtime><!-- --><Tangram MainAssemblyLib="TangramMainFrame" MainFrameAssembly="TangramMainFrame.Application" ExternalAppCOMComponent="" Tag="officexp"> <Caption>Welcome To Tangram World!</Caption> <WorkSpace > </WorkSpace> <Background Type="html">background.htm</Background> <Registry Key="TgmExDotNetMainFrame2" StdProfileSettings="4"></Registry> <Skin>Merlin ENI\Merlin ENI.uis</Skin><TangramToolBar><MenuList> <MenuItem Caption="ksks" Name="menu1" ID="33" Icon="c:\a.ico"> <MenuItem Caption="kk&Menu" Name="file1" ID="31" Icon="c:\a.ico"> <MenuItem Caption="oooChildMenu1" Name="file1child1" ID="57600" Icon="c:\a.ico"></MenuItem><MenuItem Caption="extendmenu1" Name="file1child1" ID="19010" Icon="c:\a.ico"></MenuItem><MenuItem Caption="extendmenu2" Name="file1child1" ID="19010" Icon="c:\a.ico"></MenuItem><MenuItem Type="separator"></MenuItem><MenuItem Caption="ChildMenu2" Name="file1child2" ID="33" Icon="c:\a.ico"><MenuItem Caption="oooChildMenu1" Name="file1child1" ID="57600" Icon="c:\a.ico"></MenuItem><MenuItem Type="separator"></MenuItem><MenuItem Caption="ChildMenu2" Name="file1child2" ID="33" Icon="c:\a.ico"></MenuItem></MenuItem></MenuItem><MenuItem Caption="NewFile" Name="file2" ID="57600" Icon="c:\a.ico"><MenuItem Caption="ChildMenu2" Name="file2child1" ID="33" Icon="c:\a.ico"></MenuItem><MenuItem Caption="ChildMenu2" Name="file2child2" ID="33" Icon="c:\a.ico"></MenuItem></MenuItem></MenuItem></MenuList><ImagelistList> <ImageList Name="list1" ImageHeight="32" ImageWidth="32"> <Image File="d:\KuGooMusic.ico" ID="1" Type="icon"></Image> <Image File="d:\icon\0.ico" ID="1" Type="icon"></Image> <Image File="d:\icon\1.ico" ID="1" Type="icon"></Image></ImageList><ImageList Name="list2" ImageHeight="16" ImageWidth="16"> <Image File="d:\yy.bmp" ID="1" Type="bmp"></Image> <Image File="d:\icon\7.ico" ID="1" Type="icon"></Image></ImageList></ImagelistList><ToolBarList> <ToolBar Name="toolbar1" ButtonWidth="40" ButtonHeight="40" IconWidth="32" IconHeight="32" ImageList="list1"> <Button Caption="new file" Name="newfile" ID="30" Type="Button" Icon="0"></Button> <Button Caption="new file" Name="newfile" ID="30" Type="separator" Icon="1"></Button></ToolBar><ToolBar Name="toolbar2" ButtonWidth="19" ButtonHeight="22" IconWidth="32" IconHeight="32" ImageList="list2"> <Button Caption="new file" Name="newfile" ID="57600" Type="Button" Icon="0"></Button> <Button Caption="new file" Name="newfile" ID="5760" Type="Button" Icon="1"></Button> <Button Caption="new file" Name="newfile" ID="5760" Type="separator" Icon="2"></Button></ToolBar></ToolBarList></TangramToolBar><Window> <TangramNode Name="sp1" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Width="" Heigh="" Tag="" Style=""> <Row>  <TangramNode Name="fm1" ID="mscomctllib.listviewctrl.2" CnnID="" Caption="fm1" Width="86" Heigh="483" Tag="" Style=""></TangramNode><TangramNode Name="sp2" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Caption="sp2" Width="514" Heigh="483" Tag="" Style=""><Row> <TangramNode Name="fm2" ID="TangramUserCtrl#TangramUserCtrl.TangramLitePropertyGridCtrl" Width="514" Heigh="152" Style=""> </TangramNode></Row><Row> <TangramNode Name="tb1" ID="TangramLiteTabWnd.CTangramLiteTabbedFormView" Width="514" Heigh="324" Tag="" Style="" > <Pages>  <TangramNode Name="fm3" ID="testvbctrl.ctrl" Caption="fm3" Width="229" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="fm4" ID="forms.form.1" Caption="fm4" Width="457" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="fm5" ID="forms.form.1" Caption="fm5" Width="229" Heigh="224" Tag="" Style=""></TangramNode>  <TangramNode Name="MDI2" ID="MDIView" Caption="MDI" Width="457" Heigh="224" Tag="" Style=""></TangramNode> </Pages> </TangramNode></Row></TangramNode></Row></TangramNode></Window><TangramDoc></TangramDoc></Tangram><TangramControlBar> <ControlBar Name="Bar1" Caption="Bar1"> <TangramNode Name="Name0" ID="TangramLiteTabWnd.CTangramLiteSplitterWnd" Width="100" Heigh="150">  <Row>   <TangramNode Name="Name1" ID="wmplayer.ocx.7" CnnID="" Width="210" Heigh="267">   </TangramNode>   <TangramNode Name="Name2" ID="forms.form.1" CnnID="" Width="89" Heigh="267">   </TangramNode>  </Row>  <Row>   <TangramNode Name="Name3" ID="forms.form.1" CnnID="" Width="210" Heigh="247">   </TangramNode>   <TangramNode Name="Name4" ID="TangramLiteTabWnd.CWndSliderView" Width="89" Heigh="247" ActivePage="0">    <Pages>     <TangramNode Name="Name5" ID="forms.form.1" Caption="xxxxx66666xxyyyyyyyy" Width="100" Heigh="150">     </TangramNode>     <TangramNode Name="Name6" ID="forms.form.1" Caption="xxsssssssxxyyyyyyyy" Width="100" Heigh="150">     </TangramNode>    </Pages>   </TangramNode>  </Row> </TangramNode></ControlBar></TangramControlBar></configuration>   上面这段XML代码,完全可以在运行时将其解释为一个真正的桌面软件:    共4页。 1 2 3 4 : 下载本文示例代码


让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一让IE成为你的软件集成平台之一
阅读(174) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~