📄 intraweb开发指南.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0048)http://hubdog.csdn.net/UpdateList/ul20030206.htm -->
<HTML><HEAD><TITLE>IntraWeb开发指南</TITLE><!-- #BeginTemplate "/Templates/detail.dwt" --><!-- DW6 -->
<META content="text/html; charset=gb2312" http-equiv=Content-Type><!-- #BeginEditable "doctitle" --><!-- #EndEditable --><!-- #BeginEditable "head" --><!-- #EndEditable -->
<META content="MSHTML 5.00.3502.5390" name=GENERATOR></HEAD>
<BODY bgColor=#ffffff text=#000000>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=740>
<TBODY>
<TR align=middle>
<TD height=100>
<P><IMG height=81 src="IntraWeb开发指南.files/logo.gif" width=707></P>
<P><IMG border=0 height=36 src="IntraWeb开发指南.files/Detail.gif" useMap=#Map
width=765></P></TD></TR>
<TR>
<TD>
<TABLE border=0 cellPadding=0 cellSpacing=0 height="100%" width="100%">
<TBODY>
<TR>
<TD>
<DIV align=center>
<SCRIPT language=JavaScript1.2 type=text/javascript> //用escape函数对referer进行html编码,这样才能作为querystring传给连接 f=""+escape(document.referrer) t="&Title="+document.title function pr(n) {document.write(n,"\n");} r="Referer="+f //pr("<script language=\"javascript\" src=\"http://www.agyy.com/junpeng/hubdog/counter.asp?"+r+"\"><\/script>") pr("<script language=\"javascript\" src=\"http://www.agyy.com/junpeng/hubdog/counter.asp?"+r+t+"\"><\/script>")</SCRIPT>
</DIV></TD></TR>
<TR>
<TD><!-- #BeginEditable "edit" -->
<DIV class=Section1 style="LAYOUT-GRID-LINE: 15.6pt">
<P align=center style="TEXT-ALIGN: center"><SPAN
style="FONT-FAMILY: 宋体; FONT-SIZE: 18pt; Times: ">真正所见即所得的</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 18pt">Delphi Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; FONT-SIZE: 18pt; Times: ">开发利器</SPAN><SPAN
lang=EN-US style="FONT-SIZE: 18pt">-</SPAN></P>
<P align=center style="TEXT-ALIGN: center"><SPAN lang=EN-US
style="FONT-SIZE: 18pt">IntraWeb</SPAN><SPAN
style="FONT-FAMILY: 宋体; FONT-SIZE: 18pt; Times: ">开发指南[<A
href="http://hubdog.csdn.net/Download/intraweb.zip?t=27&id=1399">下载例子程序</A>]</SPAN></P>
<P align=center style="TEXT-ALIGN: center"><SPAN
style="FONT-FAMILY: 宋体; FONT-SIZE: 14pt; Times: ">作者:陈省</SPAN></P>
<P><B><SPAN style="FONT-FAMILY: 宋体; Times: ">历史回顾</SPAN></B></P>
<P><SPAN lang=EN-US>
</SPAN><SPAN style="FONT-FAMILY: 宋体; Times: ">从</SPAN><SPAN
lang=EN-US>Delphi3</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">起,</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了最早的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发组件</SPAN><SPAN
lang=EN-US>WebBroker</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,</SPAN><SPAN
lang=EN-US>WebBroker</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">应该说有很多天然的缺陷:</SPAN></P>
<P><SPAN lang=EN-US>1. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">首先</SPAN><SPAN
lang=EN-US>WebBroker</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发组件相当少,只有</SPAN><SPAN
lang=EN-US>PageProducer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">和</SPAN><SPAN
lang=EN-US>QueryTableProducer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">几个很少的组件。</SPAN></P>
<P><SPAN lang=EN-US>2. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">组件不支持所见即所得的开发方式,所有</SPAN><SPAN
lang=EN-US>Html</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">页面的设计都要通过</SPAN><SPAN
lang=EN-US>FrontPage</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">和</SPAN><SPAN
lang=EN-US>DreawWeaver</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">等网页开发工具来完成。</SPAN></P>
<P><SPAN lang=EN-US>3. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">动态网页实现的支持也很弱,只支持通过透明标签</SPAN><SPAN
lang=EN-US>OnHtmlTag</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">和</SPAN><SPAN
lang=EN-US>WebModule</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>OnAction</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">事件来实现。</SPAN></P>
<P><SPAN lang=EN-US>4. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">不提供对</SPAN><SPAN
lang=EN-US>Session</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的封装,完全需要自己通过</SPAN><SPAN
lang=EN-US>Cookie</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">来实现。</SPAN></P>
<P><SPAN lang=EN-US>5. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">调试非常不方便,需要通过安装第三方的</SPAN><SPAN
lang=EN-US>WebServer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,如</SPAN><SPAN
lang=EN-US>IIS</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,并且要配置一系列注册表才能完成调试,而且在</SPAN><SPAN
lang=EN-US>ISAPI</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">方式下调试更是一场恶梦,总是要不停的重新启动</SPAN><SPAN
lang=EN-US>WebServer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">。</SPAN></P>
<P><SPAN lang=EN-US>6. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">所有的业务逻辑只能放在一个单元中来实现,不容易实现多人开发,我曾经写过的一个</SPAN><SPAN
lang=EN-US>WebServer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,一个单元里塞下了</SPAN><SPAN
lang=EN-US>1</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">万多行代码,维护非常不方便,不适合编写大型的</SPAN><SPAN
lang=EN-US>WebServer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">。</SPAN></P>
<P><SPAN style="FONT-FAMILY: 宋体; Times: ">从</SPAN><SPAN
lang=EN-US>Delphi5</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开始,</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了一组新的</SPAN><SPAN
lang=EN-US>InternetExpress</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">组件,这套组件同</SPAN><SPAN
lang=EN-US>WebBroker</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的特点:</SPAN></P>
<P><SPAN lang=EN-US>1. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">界面控件增加了许多,而且组件是基于接口来实现的,非常容易扩展,当时我还为</SPAN><SPAN
lang=EN-US>InternetExpress</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">写过</SPAN><SPAN
lang=EN-US>20</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">多个组件。</SPAN></P>
<P><SPAN lang=EN-US>2. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了初步的所见即所得的功能,但是有一个很大的问题是,页面布局通过</SPAN><SPAN
lang=EN-US>LayoutGroup</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">组件来进行格式化,界面的布局非常僵化,不容易实现灵活美观的界面,同时界面设计的修改也仍然很麻烦,需要通过</SPAN><SPAN
lang=EN-US>Web Page Designer</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的树视图和列表视图维护但仍然不能象开发一般程序那样拖放几个控件就能完成界面设计。</SPAN></P>
<P><SPAN lang=EN-US>3. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">增加了对</SPAN><SPAN
lang=EN-US>XML</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的支持,并能和</SPAN><SPAN
lang=EN-US>Midas</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">配合实现基于三层的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发,李维的</SPAN><SPAN
lang=EN-US>Delphi5.x</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">系列书中的电子商务篇对此有着很详细的论述。</SPAN></P>
<P><SPAN style="FONT-FAMILY: 宋体; Times: ">从</SPAN><SPAN
lang=EN-US>Delphi6</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开始,</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了新的</SPAN><SPAN
lang=EN-US>WebSnap</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发框架,这套框架是在</SPAN><SPAN
lang=EN-US>InternetExpress</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">基础上重新设计,特点是</SPAN></P>
<P><SPAN lang=EN-US>1. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">增加了更多的控件,提供了</SPAN><SPAN
lang=EN-US>Session</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的支持</SPAN></P>
<P><SPAN lang=EN-US>2. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了</SPAN><SPAN lang=EN-US>Web App
Debugger</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,可以方便的调试</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序而无须反复重新启动</SPAN><SPAN
lang=EN-US>Web Server</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">了。</SPAN></P>
<P><SPAN lang=EN-US>3. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">提供了多页模块开发方式,使得我们可以将大型的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序分割成小的模块进行开发。</SPAN></P>
<P><SPAN lang=EN-US>4. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">支持</SPAN><SPAN
lang=EN-US>Server</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">端脚本,可以在</SPAN><SPAN
lang=EN-US>Html</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">页面中嵌入</SPAN><SPAN
lang=EN-US>JScript, VBScript</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">等脚本。</SPAN></P>
<P><SPAN style="FONT-FAMILY: 宋体; Times: ">但是在</SPAN><SPAN
lang=EN-US>WebSnap</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">中仍然没有解决的最大问题就是开发方式仍然沿袭了</SPAN><SPAN
lang=EN-US>InternetExpress</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的页面设计方式,而不是大家熟悉的拖放控件的开发方式,另外</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">在</SPAN><SPAN
lang=EN-US>WebSnap</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">中使用了大量的设计模式,组件之间的关系比较复杂,虽然可以开发功能更强大的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序,但是也导致了学习曲线的增高。</SPAN></P>
<P><SPAN style="FONT-FAMILY: 宋体; Times: ">到了</SPAN><SPAN
lang=EN-US>Delphi7</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">这回引进了</SPAN><SPAN
lang=EN-US>atozedsoftware</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">公司的</SPAN><SPAN
lang=EN-US>2002</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">年度</SPAN><SPAN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -