`
阿尔萨斯
  • 浏览: 4170256 次
社区版块
存档分类
最新评论

让Internet Explorer成为你的软件集成平台

 
阅读更多

Internet Explorer成为你的软件集成平台(一)

最近一段时间,经常与朋友们探讨与浏览器相关的技术问题,多少年来,浏览器的问题一直是软件界的热点,无论是体验、操作习惯、安全,还是技术等问题,一直都是这样,毋庸置疑,现在的人们已经离不开这个东西了。1996年,在IE 3.0Navigator 3.0激战正酣的时候,我在一次Microsoft的技术会议上领略了后来被称为IE4Microsoft浏览器预览版本,那种震撼,一直延续到今天,老实说,今天的IE7,比起当年的IE4,个人觉得还是10年前的震撼更为强烈。想起1996年,今天我们真的感觉自己十分幼稚,如果真的会思考软件的话,也许今天的情形就大不相同了……。

浏览器方面的开发,一直是我的业余爱好,多少年来从来没有当回事,也很少关心这方面的话题。2005年年中,一个偶然的事情改变了我对浏览器开发的看法,当时CSDN的袁德俊先生在我家里谈到他关于协同开发平台的“雕塑”架构时,设想希望将架构实现在Windows的资源管理器之上,在与他的交流过程中,我在努力的揣摩他的构思,技术上我认为不是问题,但软件行为方面,还有许多想法不清晰,那一次交流,基本停留在探讨层面,第二天,我给他看了一张软件截图,他感觉很兴奋,匆匆的赶到我这里,以后的多次交流,使我重新将浏览器方面的开发列入视线……。当我在网络上搜索这方面的信息时,才感觉到自己恍如隔世之人,全然不知外面世界的喧嚣、热闹,身居斗室,真是孤陋寡闻。兴趣回归之后,一直在考虑应该做点什么,一时之间,我下载了几款第三方浏览器,想看看,除了IE默认的功能之外,大家都在做什么?这是一个比较有意思的问题,几天以前,MaxthonJeff与我谈了类似的话题,中国国内不缺乏好的技术开发者,真正缺的是“点子”,一个创意一旦出现,立刻就被挖掘得缝隙全无,我与其他浏览器开发者交流,也有类似的感想。在与几位很有经验的开发者的交流过程中,我一直在思考的问题是,浏览器为什么会如此的重要?浏览器给开发者带来了什么?对大众用户而言,浏览的目标、对象会如何改变他们的工作、学习、生活以及交流方式?浏览器会改变我们所开发软件的行为吗?一系列的问题,一直在困扰着我。学会思考,是我最大的收获,不断的交流,使我几乎每天都在坚定一个想法,也促使我重新认识许多过去被我忽视的问题,……。在WWW上,有许多心交已久的朋友,我考虑不到的问题,就是他们中某一位所擅长的,一个狭窄的想法是,从他们的思考中学会什么、吸收什么,这一点应该是交流带来的收获吧,当一个人的思维不够的时候,其他人及时补充你的想法,使得你的想法得以延续,这就是今天的WWW,潜移默化的过渡中,我们都在不自觉地改变着自己。

从第一个大众化的浏览器诞生至今,HTML一直是浏览器的主要浏览对象,在我们热衷于C语言的时候,HTML进入了我们的视线,一种文本的表达方式,牵动着这个世界,我们中的大多数人最初是看不起这类东西的,因为,没有技术含量,然而,历经十几年的变迁,这种看上去没有技术含量的东西,就像地球上的水一样,充满着WWW世界的每一个角落,可以说,HTML就是今天WWW海洋里的水分子,如果HTML是水,那么浏览器是什么?浏览器是船!据说,地球有水以后,经过漫长的进化,才导致生命的出现,今天的WWW也许就是在另一个宇宙里再现这个历程。从许多方面看,我们今天的船还是很初级的,这个海洋越大,这样的船就显得越小、单薄、脆弱,……,也许,今天的WWW海洋,总共只有有限的几类船舶,最大的船东,应该就是Microsoft,此外还有FirefoxOperaMaxthon、……、以及各种第三方的浏览器,随着时间的徐徐流逝,这些舰船也在悄然的改进,人们的胃口也越来越挑剔。如果世界是一个湖泊,也许我们可以享受到湖面的平静,但WWW是海洋,短暂的平静之后,就是风暴、巨浪,也许还有更厉害的震荡。WPF,对今天的开发者而言,不应该是一个陌生的词汇,尽管还没有正式面世,但我们已经感觉到这一轮冲击的震荡,从形式上看,HTML具有有限的“标记”以及简单的脚本描述引擎,WPF完全建立在XML基础之上,而且带有可编程的脚本语言,二者对比,给人以“河水”向“海水”变迁的感觉,正像地球曾经有过的海洋生命爆发的时代一样,今天的WWW会不会也在上演着这一幕?

今天的开发者也许非常不幸,对我们这一代而言,这种不幸更甚!我们面对的是积累十年的技术,很可能被无情的抵消,一个结构十分复杂、综合的GUI框架,在过去,也许是一个很大的C++工程才能胜任,在今天,完全可以归结为一段简单的XML描述,这是一种变迁吗?如果是,应用软件页面化,就是这场变迁的开始!我们看一个XML段落:

<configuration></configuration>

<appsettings><span style="mso-tab-count: 1"> </span></appsettings>

<runtime></runtime>

<assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1"></assemblybinding>

<probing privatepath="bin;usercontrol;component;doctemplate"></probing>

<!-- -->

<tangram mainassemblylib="TangramMainFrame" mainframeassembly="TangramMainFrame.Application" externalappcomcomponent="" tag="officexp"></tangram>

Welcome To Tangram World!

<workspace></workspace>

<background type="html">background.htm</background>

<registry key="TgmExDotNetMainFrame2" stdprofilesettings="4"></registry>

<skin>Merlin ENI/Merlin ENI.uis</skin>

<tangramtoolbar></tangramtoolbar>

<menulist></menulist>

<menuitem caption="ksks" name="menu1" id="33" icon="c:/a.ico"></menuitem>

<menuitem caption="kk&amp;Menu" name="file1" id="31" icon="c:/a.ico"></menuitem>

<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>

<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 caption="NewFile" name="file2" id="57600" icon="c:/a.ico"></menuitem>

<menuitem caption="ChildMenu2" name="file2child1" id="33" icon="c:/a.ico"></menuitem>

<menuitem caption="ChildMenu2" name="file2child2" id="33" icon="c:/a.ico"></menuitem>

<imagelistlist></imagelistlist>

<imagelist name="list1" imageheight="32" imagewidth="32"></imagelist>

<imagelist name="list2" imageheight="16" imagewidth="16"></imagelist>

<toolbarlist></toolbarlist>

<toolbar name="toolbar1" buttonwidth="40" buttonheight="40" iconwidth="32" iconheight="32" imagelist="list1"></toolbar>

<toolbar name="toolbar2" buttonwidth="19" buttonheight="22" iconwidth="32" iconheight="32" imagelist="list2"></toolbar>

<window></window>

<tangramnode name="sp1" id="TangramLiteTabWnd.CTangramLiteSplitterWnd" width="" heigh="" tag="" style=""></tangramnode>

<row></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=""></tangramnode>

<row></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=""></tangramnode>

<pages></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>

<tangramdoc></tangramdoc>

<tangramcontrolbar></tangramcontrolbar>

<controlbar name="Bar1" caption="Bar1"></controlbar>

<tangramnode name="Name0" id="TangramLiteTabWnd.CTangramLiteSplitterWnd" width="100" heigh="150"></tangramnode>

<row></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"></tangramnode>

<pages></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>

上面这段XML代码,完全可以在运行时将其解释为一个真正的桌面软件:

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><lock v:ext="edit" aspectratio="t"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 392.25pt; HEIGHT: 429pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/sun/LOCALS~1/Temp/msohtml1/01/clip_image001.png" o:title=""></imagedata></shape>

(一:页面化软件范例,桌面软件是可以用XML描述的)

这一点意味着什么?也许,实现一个类似的软件结构,真的会与现在的Web开发者写一个HTML页面相当。应用软件页面化是指将特定的桌面软件XML化,使得其软件结构可以用十分清晰的XML方式清晰描述,然后在运行时给予复原,这一技术处理,将极大地简化应用软件的写作,并使得动态软件成为可能。如上图所显示的GUI结构,通常的方案就是用代码技术实现,今天,这个传统的软件开发模式就要没落了,WWW进化十年催生的新技术将使得类似的工作完全可以与HTML开发媲美。我们面临的时代,将变迁为以文档为核心的时代,对用户可见的一切,基本上都可以表示为某种类型的文档,二进制为软件主体表现形态的阶段,已经开始渐渐失去其中心地位。

然而,今天的开发者,又是非常幸运的,亲历一个时代的变迁并不是一件容易赶上的事情,Web开发与桌面软件的开发在方式上正在逐步缩小差别,我们即将成为消除差别的见证者。这种差别的消失,将使得WWW上出现大量的有别于HTML的“物种”,因此,软件的定义有可能发生改变以适应WWW的变化。在与几位开发浏览器的朋友多次探讨之后,我意识到,浏览器应用是十分重要的应用,也许,浏览器应该成为一个应用的“起点”,也就是说,在特定意义之下,任何一个软件都可能成为一个“浏览器”。现在的软件开发,还存在很清晰的界线,这种界线的存在使得软件彼此不同,这是传统开发模式带来的固有弊端。浏览器的开发能否成为消除这个弊端,进而促使“柏林墙”倒塌的导火索?大约一周前,我曾经拜访Maxthon,毋庸置疑,在国内众多的第三方浏览器之中,Maxthon是当之无愧的王者,隐约之中,可以感觉Maxthon在酝酿着一些变化,在WWW内容为王的时代,任何人都可能打算尝试变化。曾经有过考虑,也打算开发一个第三方浏览器,当考察几款第三方浏览器后,这个打算被否决了,原因之一是大家的工作相似的地方太多了,尽管“各村有各村的高招”,但除了一支独秀的几款,其他产品很难有所作为,当然,这是个人观点。根据个人的观察,国内的浏览器开发也许陷入了一个“歧路”,大家将侧重点几乎都放在“细节”方面,强调“用户体验”,例如,“鼠标手势”、广告拦截、Flash处理等等,这些东西是Microsoft浏览器的盲点,也许就是这些盲点的存在,使得第三方有了生存的空间。我们习惯了在本土内进行厮杀,在一些细节上,大家彼此的消耗着,几乎在做同样的事情。在今天的硬件条件下,我们将技术细节定位在资源消耗、速度对比等方面,我们没有在观念上产生突破,我认为这是很不可理解的事情。之所以如此,也许是因为我们没有意识到我们是身处大海之中!出于殖民的需要,西方人勇于探索大海,而我们却封疆闭土,没有观念上的突破,导致我们的定制化浏览器彼此越来越像,最终结果可想而知……。

浏览器能否作为一个应用开发的起点?这是我一直在思考的问题,也是一年来为之努力的目标。就软件的可扩展性而言,IE并不比FireFox差,即使今天的IE7,在插件开发的基本方法上依然停留在1996年的SDK水平上,这说明什么?只能说明策略上,IE7之前,Microsoft没有重视这个问题。我认为,绝大多数的第三方特色,在现在的IE框架上,都是可以实现的,从这个方面理解,许多第三方浏览器能够存在,的确是很奇怪的现象。就基础框架而言,IE本身的架构,第三方是无法与之相比的,那么,Microsoft失误了吗?Microsoft插件开发的门槛过高也许是导致IE不容易扩展的关键原因。第三方浏览器并没有在本质的一面增强IE,许多安全方面的问题,还是借助IE本身,因此,基本就是IE的另外一个“壳”。我考虑IE开发的出发点也许与绝大多数浏览器开发者是不同的,IE占据绝大多数的市场份额是不争的事实,因此,如何更好的利用IE,就成了一个思考点。如果能够充分利用IE的好处,使得开发者能够构造更好的网络软件,不失为一个明智的策略。那么,IE有什么值得利用的优势?我认为至少有以下几点:

1、 IE具有最广泛的用户群体,这是最重要的理由;

2、 IEHTML模型可以使得软件得到极大的灵活性;

3、 IE具备一个健壮的脚本描述引擎,这个引擎,明显的优于开发者自身集成的脚本引擎;

4、 IE自身具有健壮的插件体系,对软件开发者而言,是一个天然的资源;

5、 IE框架内,软件功能的“柏林墙”几乎不存在;

6、 可以直接将本地软件提升为WWW风格的软件系统。

基于以上几点,我认为:

1、 建立一个灵活的寄居在IE框架之上的开发环境是十分必要的;

2、 IE以及IE控件提供一个灵活的扩展框架,可以良好的促进IE以及第三方应用的开发;

3、 第三方应用开发与IE的有机集成,会给WWW提供新的活力。

那么,这些目标能否实现呢?答案是肯定的。

在一个月前,Microsoft正式发布了IE7,这是5年来IE的一次重要升级。与IE6相比,IE7明显“漂亮”许多,在这里我们看到,Microsoft不再固执,已经采纳了一些备受用户喜欢的第三方特征,IE7IE6一样,本身是多线程的,只不过显得更紧凑。在许多开发者的视界里,IE是一个浏览平台,大多数情况下,IE是用来浏览网页的。但我们深入其内部的时候,我们可以得出一个结论,那就是,IE7是一个绝好的GUI框架,即使是一个很优秀的技术团队,企图开发一个与IE7相当的软件框架都是相当困难的。我们非常高兴的看到,IE7GUI扩展提供了很广阔的天地:

<shape id="_x0000_i1026" style="WIDTH: 636pt; HEIGHT: 480pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/sun/LOCALS~1/Temp/msohtml1/01/clip_image003.png" o:title="image001"><font size="3"></font></imagedata></shape>

(二:IE7,程序员的软件集成平台)

针对每一个标签页,开发者可以加载完全不同的GUI扩展,看上去很像一个类似“Eclipse”类型的集成环境,因此,以下问题就浮出水面:

1、 我们如何有效的进行针对IEGUI扩展;

2、 一旦扩展成为可能,扩展模型能够与IE的内部机制(例如,内置的脚本引擎)相容吗?

3、 扩展界面能否自然的与HTML交互操作?

4、 我们考虑的扩展技术与主流的开发工具之间的“gape”是否很大?

5、 适合什么样的开发者群体?

6、 能否协调的建立桌面组件与WWW服务之间的桥接?

FireFox针对开发者提供的一个重要工作就是一个基于XML的界面描述引擎,即众所周知的XUL,关于这一点,Microsoft现在没有对应的工作,由于缺乏类似的技术,综合、复杂的GUI扩展就成了IE的一个缺陷,因此,为IE提供一个类似的引擎,就成了解决问题的关键。

考虑到Microsoft平台上开发工具的特点,一个与XUL接近的GUI引擎必须能够充分发挥主流开发工具的效率、生产力,因此,对Visual Studio 6以及DelphiVS2005等的支持就成为一个必须考虑的问题。一般说来,一个GUI框架的轮廓,是很容易被XML清晰描述的,因此,我开发的出发点就选择在GUI框架的XML描述与创建这一点上。通常,人们对平面区域的规划、利用,基本基于两种基本的结构:1Splitter2:分页行为的标签出口,比较综合的GUI架构基本就是如上两类结构的复合,问题的难点是标签窗口,这类窗口的风格比较多,因此,对应的XML节点也就相对复杂一些。一旦框架描述完毕,具体的内容就可以“填充”了。针对MFC开发者,我们考虑其自身的特点,允许这类开发者将“原子”级别的组件实现为C++CView对象,针对VB6开发者,允许开发者直接使用VB6开发的ActiveX控件以及Active Document对象,特别,我们对.NET支持作了大量的工作,允许开发者直接使用大部分.NET User Control对象,如图:

<shape id="_x0000_i1027" style="WIDTH: 768pt; HEIGHT: 8in" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/sun/LOCALS~1/Temp/msohtml1/01/clip_image005.png" o:title="image001"><font size="3"></font></imagedata></shape>

(三:集成COM.NET组件)

为了更加方便开发者在IE基础上打造自己的GUI扩展,一个集成在Office里的Form模型被引入IE的扩展环境,开发者可以直接用于IE的定制化开发,这个思路,受MS OutLook的启发,在OutLook中,其定制化开发的UI设计采用Form设计机制:

<shape id="_x0000_i1028" style="WIDTH: 414.75pt; HEIGHT: 416.25pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/sun/LOCALS~1/Temp/msohtml1/01/clip_image007.png" o:title=""><font size="3"></font></imagedata></shape>

(四:OutLook扩展开发)

我们在IE的个性开发中实现类似的开发技术:

<shape id="_x0000_i1029" style="WIDTH: 555pt; HEIGHT: 495.75pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/sun/LOCALS~1/Temp/msohtml1/01/clip_image009.png" o:title="image001"><font size="3"></font></imagedata></shape>

(五:所见即所得的定制化设计)

由于采用XML技术,使得GUI部分的描述与HTML页面结构极为接近,这样做的结果是:在IE浏览器内部扩展了另一部分内容,这部分内容是针对IE浏览器UI部分的,与HTML不同的是,这部分内容完全是桌面软件组件构成的,这样,浏览器可浏览的内容扩大了,同时也使得浏览器可以灵活的定制,开发者可以自如的在浏览器基础上打造自己的软件集成开发环境。(待续……)




<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
分享到:
评论

相关推荐

    Microsoft Internet Explorer 5程序设计

    把WebBrowser控件作为宿主和使Internet Explorer自动化,以便将Web浏览完全集成到新的或现有的应用程序中。使用Internet Explorer事件和高级宿主接口几用户提供各种功能。开发Web附件,如Explorer Bar、工具栏按钮和...

    Internet Download Manager

    此程序紧密地与Internet Explorer和Netscape Communicator结合,自动地处理你的下载需求。此程序还具有下载逻辑最佳化功能、检查病毒,以及多种偏好设定。  Internet Download Manager 支持所有流行的浏览器,包括...

    国内外主流的三维GIS软件

    空间信息三维可视化技术成为业界研究的热点并以惊人的速度迅速发展起来,首先是美国推出Google Earth、Skyline、World Wind、 Virtual Earth、ArcGIS Explorer等,我国也紧随推出了EV-Globe 、GeoGlobe、VRMap、...

    winscp 5.5.3.4214

    系统最低要求:Pentium® III 700 Mhz / RAM: 128 MB / An active Internet connection 图形用户界面 多语言 与Windows完美集成(拖拽, URL,快捷方式) 支持所有常用文件操作 支持基于SSH-1、SSH-2的SFTP和SCP协议 ...

    啊~真香系列之IDM(下载神器)

    此程序紧密地与 Internet Explorer 和 Netscape Communicator,Opera,Mozilla已及以IE为核心的浏览器集成,自动地处理你的下载需求。此程序还具有下载逻辑最佳化功能、检查病毒,以及多种偏好设定。

    IE工具条聚搜搜索 1.0.23

    聚搜搜索,是一款基于Internet Explorer浏览器功能强大且完善的综合搜索引擎平台,它集成了众多知名的搜索引擎及专业网站。根据搜索内容的不同,聚搜搜索共分为十二个大类,分别是:网页、新闻、音乐、图片、文学、...

    InstallAnywhere v5.5.1--专业、强大的安装工具

    无论应用程序是用Java, C++, PERL, C#编写的,还是用EJB 或.NET Web services配置的,InstallAnywhere都可以将你的桌面、企业或多层Web services软件配置到你的平台上。 更低成本的开发和支持费用,提供最佳的...

    visual source safe 教程

    注:如果用户已经为文件设置了工作文件夹,VSS会将该文件的一个COPY放入你的工作文件夹并打开文件,让用户进行修改和编辑;如果用户还没有为文件设置工作文件夹,VSS系统会提醒用户设置工作文件夹,用户可根据系统...

    IE工具条聚搜搜索

    聚搜搜索,是一个款基于Internet Explorer浏览器,功能强大且完善的综合搜索引挚平台,他集成了众多知名的搜索引擎及专业网站。根据搜索内容的不同,聚搜搜索共分为十二个大类,分别是:网页、新闻、音乐、图片、...

    网络资源下载神器-支持下载各类网页视频音频等多语言 更新6.41 Build 14版本

    更新6.41 Build 14版本 兼容WIN系统 中文汉化界面 如果你是一个经常需要下载各种资源的人,那么你一定会需要一款好用的下载工具。...它无缝集成到Microsoft Internet Explorer、Netscape、MSN Explorer、AOL、Op

    普联架构设计技术方案.pptx

    二、软件开发平台方案 普联软件开发平台概念 数据存储原理 业务模型及业务搭建原理 指标模型及指标搭建原理 分析模型及分析方法 业务流程管理 BIS平台及开发平台外延 普联架构设计技术方案全文共28页,当前为第2页...

    C#程序设计(最新的培训教材)

    Microsoft .NET平台提供创建XML Web Services并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。 1.1.1 Microsoft .net平台的构成 Microsoft .NET平台主要包含底层操作系统、辅助产品(.NET...

    基于ASP.NET的水果电商平台的设计与实现(网银在线支付)附课程设计文档

    在本篇课程设计报告中,我使用的是Visual Studio2012,Visual Studio是目前为止构建ASP.NET Web页面使用最为广泛、功能最为丰富的集成环境(IDE)。 开发环境运行平台为Windows 7; 网站后台数据库采用SQL Server ...

    asp学习相关资料大全

    它一种应用广泛的数据库管理系统,具有许多显著的优点:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等。性能、可伸缩性及可靠性是基本要求...

    计算机基础.docx

    网络通信软件 22、ADSL和电话拨号都通过本地电话网接入因特网 , 前者传输速率高于后者的主要原因是 ADSL采 用了 () 技术。 A . 调制解调技术 B . 信道复用技术 C . 交换技术 D . 编码技术 23、使用计算机进行...

    毕业设计:ASP电子商务网站建设(源代码)

    客户端:Windows 98或者更高,Internet Explorer 4.0以上版本。 服务器端:Windows 2000/XP,IIS 5.0/5.1及其以上版本。 数据库:采用Access数据库,运行于服务器端。 系统设计思想 1 页面模块化 本设计把页面中...

    多媒体播放器 VLC Media Player 3.0.14 + x64 中文多语免费版.zip

    从版本 0.8.2 开始,VLC 亦提供了一个 ActiveX 的扩充包,使用户可以在 Internet Explorer 下,正常显示某些网站上附带的 QuickTime 及 Windows Media 多媒体文件。 从 1.0.5 版本开始 VLC 的 ActiveX 的扩充包已经...

    Visual stdio source safe 教程

    注:如果用户已经为文件设置了工作文件夹,VSS会将该文件的一个COPY放入你的工作文件夹并打开文件,让用户进行修改和编辑;如果用户还没有为文件设置工作文件夹,VSS系统会提醒用户设置工作文件夹,用户可根据系统...

    XML高级编程

    Web站点的开发者能够学到把自己的站点提高一个层次的技术,而编程者和软件系统程序员能够学到XML如何和他们的系统相配合,以及如何使用它来解决应用程序集成中的问题。 XML应用程序天生就具备分布性而且通常是面向...

Global site tag (gtag.js) - Google Analytics