aspnet20入门经典1(编辑修改稿)内容摘要:
第 15章讨论 ) ● 部署 (在第 16章讨论 ): 目前我们并不讨论具体的部署。 然而,应该记住 站点的部署只需几个步骤。 首先将数据库复制到数据服务器上,然后将站点的文件夹及其子文件夹从开发机上复制到新的服务器上。 本节概要地介绍了在阅读本书的过程中将要学习创建的内容。 大多数要研究的功能都只需编写非常少量的代码就可以实现。 具体的行为由一组服务器端控件执行,这些控 件是 的组件, Microsoft 把代码隐藏在这些控件中。 只需将这些控件放置到页面上并设置各种属性即可。 在观察过公开发布的完整站点之后,现在可以开始在开发机上创建自己的站点了。 如果还没有安装 Visual Web Developer Express、 SQL Express、示例数据库和示例站点 (参考附录 B)的话,现在请安装它们。 仔细阅读附录 B 中的介绍,然后按照步骤开始进行安装。 可以在每个小节的后面执行检查以保证安装成功。 本章和第 2 章将在学习怎样使用 VWD 和为站点设置一些设计参数的时候,搭建出本站点的基本架构。 因为 VWD 对大多数任务都提供拖放的解决方案,所以您将以最少的输入创建这个站点。 如果必须进行输入,则可以从在 下载的文本文件中剪切并复制相应的内容。 在下载得到的文件中,所有页面都已完成,但我们坚信,与简单地复制我们给出的参考中的整个页面相比,更好的学习方法是自己创建 ASPX 页面。 人类与动物的一个基本差别在于使用工具的能力。 在编写代码的早期,编程工具都很简陋。 今天,我们可以享受到高级软件开发工具带来的益处。 工程师几乎已经研究了人类所有的弱点 (基本上都与记忆能力和人类 大脑与世界的接口相关 )并创造工具弥补这些弱点。 这些工具组合到一起形成一种称为 Integrated Development Environment(IDE,集成开发环境 )的软件。 本书所使用的 IDE 是 Visual Web Developer Express(VWD)。 VWD 包含了很多开发工具。 首先是一个编辑器,开发人员将在这个编辑器中创建页面。 这个编辑器带有 IntelliSense 功能,这是一个完成命令输入并为开发人员提供恰当选择的工具。 另外,有一个包含图标的工具条,可以将这些图标拖放到编辑器中,这个操作将在 编辑器中自动添加一个代码块。 另一种向页面自动添加代码的方法是使用处理比较复杂的任务时系统提供的向导。 另外, VWD 包含了一个最小化的 File Manager,用于组织 ASPX 和相关的文件以及文件夹。 类似地,可以使用 Data Explorer 浏览 Web 站点的数据源。 VWD 还包含了一组排查问题的工具。 最后, VWD 发布时附带了一个用于测试的 Web 服务器,名称为Cassini,下一节将对其进行介绍。 阅读其他相关书籍时,可以发现其他用于处理更为复杂情况的工具,包括在开发小组的成员之间管理代码版本的工具。 Cassini Cassini是一个 VWD 附带的轻量级的 Web服务器。 Cassini和 IIS(包含在 .NET Framework中 )都可以作为 ASPX 以及相关页面的服务器,所以在部署时不需要对站点进行修改。 但两者之间存在诸多差别。 这两个服务器使用不同的安全模式。 IIS 是一个服务,而 Windows 中的每个服务都需要一个用户。 IIS 的特定用户是 ASPNET。 Cassini 作为应用程序运行,使用当前已登录 Windows的用户账户。 这使得 Cassini 更易于安装,因为不需要在 Windows 中创建 ASPNET 这个特 殊的账户。 事实上, Cassini 在安装 VWD 时就已透明地安装在开发机上了。 Cassini 有 3 个弱点。 首先,它是开发人员在开发机上测试页面的工具,因此只能有一个用户。 其次,由于针对用户模式进行了简化,因此 Cassini 无法支持可靠的安全模式。 Cassini只能在一个封闭的环境中运行,或者能够获得防火墙的保护。 再次,在 Cassini 中运行一个页面时,这个页面在 VWD 中会被锁定。 为了对页面解锁,必须关闭浏览器,这在多次修改和测试站点时是非常不方便的。 因此,很多开发人员即使是在开发机上也使用 IIS,以免在VWD 中 修改页面之前必须关闭浏览器。 这样做的缺点是必须配置开发机以提 供 IIS、设置正确的权限、建立安全控制、并创建一个虚拟的根目录。 附录 B 中给出了进 行这些设置的步骤。 若不想设置 IIS,仍然可以使用 Cassini,只是在修改之间要关闭浏览 器。 VWD 的 Solution Explorer Web 站点以文件簇的形式保存在硬盘上。 开发人员必须能够组织这些文件,包括查看这些文件的名称和它们之间的关系、复制、创建以及删除这些文件。 可以在Windows Explorer 中查看和操作这些文件。 但是在 VWD 和 Windows Explorer 之间切换很不方便,所以 VWD 包含了一个类似资源管理器的工具,称为 Solution Explorer(解决方案资源管理器 ),如图 12 所示。 Solution Explorer 默认情况下显示在窗口的右边,或者可以通过按下 Ctrl+Alt+L 重现该工具。 可以将其看作是 Windows Explorer,其最上层的目录就是 Web的根目录。 注意, Toolbox 可能会位于 Solution Explorer 的后面,图 12 显示了这种情况。 图 12 任何使用过 Windows Explorer 的用户对 Solution Explorer 的布局都会很熟悉。 单击加号或减号可以展开或折叠文件夹。 工具条上的图标,从左边开始第一个用于在 Solution Explorer和属性列表 (本章稍后将进行更多讨论 )之间进行切换。 带有两个水平箭头的图标执行刷新功能。 双文件图标将自动隐藏或展开嵌套的子文件。 接下来的两个 图标用于打开选中的文件并显示其用户界面或代码。 双浏览器图标用于将整个站点复制到部署机上。 最右边带有一个锤子的图标将打开 Web Administrator 工具,该工具管理站点的功能。 在 Solution Explorer 的底部可能有一个小任务栏,用于显示 Solution Explorer、 Toolbox、Data Explorer 和 /或 Properties 窗口。 为了让窗口保留足够的空间显示页面的内容,这几个窗口通常会叠放在一起,而选项卡可以让用户进行快速切换。 例如,在图 12 中, Toolbox 也是打开的 (虽然 是隐藏在 Solution Explorer 窗口的后面 ),单击 Toolbox 选项卡将隐藏 Solution Explorer 窗口并显示工具箱窗口。 这些窗口严格地说并不是 Solution Explorer 的一部分,而是属于装载 4 个叠放在一起的工具的面板。 在 Solution Explorer 的窗口中有一个构成站点的文件列表。 最顶层是根目录,通常位于C:\websites\MyWebSiteName。 对于 WroxUnited 站点我们使用了 C:\BegASPNET2\Wrox United 目录。 文件包含在子文件夹中。 开发人员可以像在 Windows Explorer 中那样展开和折叠文件夹、在文件夹之间剪切、复制和粘贴。 Solution Explorer 能够识别 .ASPX 文件和 . 或 . 文件之间的隐式链接 (第 6 章和第 9 章中将更详细地介绍 )。 如果复制 .ASPX 文件,相应的代码文件会一起移动。 可以右击文件夹并选择 Add Existing Item。 系统弹出的对话框允许开发人员导航到计算机或网络中的任意位置 (包括 FTP 站点 )获取文件。 例如,在创建自己的项目时,有时候需要使用从 站点下载的图片或文本文件。 开发人员可以使用 Solution Explorer 将该图片或文件从下载文件夹中添加到自己的 Web 站点中。 没有包含在部署期间注册文件的系统。 所有文件,包括 ASPX 页面、代码文件、数据文件和图片都存放在一个普通的 Windows 文件夹及其子文件夹中。 如果没有打开 VWD,也可以在 Windows Explorer 中直接剪切、复制和粘贴站点的文件。 与后续小节将要介绍的 Toolbar、 Data Explorer 和 Properties 窗口一样, Solution Explorer在 VWD 中有两种显示模式:浮动模式和停靠模式。 浮动模式允许该窗口停放在屏幕上的任意位置,类似于一个基本大小 (即未最大化 )的普通窗口。 停靠模式意味着该窗口将自动停放在屏幕上的以下 5 个位置之一:顶部、底部、左边、右边或与其他窗口叠放在一起。 选中某个窗口,单击菜单 WindowFloating 或 Dockable 将改变该窗口的显示模式。 在停靠模式下,如果拖放窗口的标题栏,开发人员将看到几个透明的箭头 (如图 13 所示 )。 将标题栏拖向某个箭头,该窗口将自动调节大小并停靠在正确的位置上。 在学习了如何使用 VWD Express IDE 之后,就可以继续学习创建站点和页面的技术了。 图 13 使用 VWD 创建、打开和使用 Web 站点及页面 要创建新站点,只需打开 VWD 并单击 FileNew Site 菜单。 在弹出的向导中,选择 Web Site。 假设将为开发创建一个本地副本,在 File System 中设定位 置并浏览到该目录。 通常设置为 C:\Websites\MyWebsiteName( 我 们 实 际 使 用 的 目 录 是C:\BegASPNET2\WroxUnited,从而与本书以前的版本兼容 )。 可以任意选择 Visual Basic 或C两种编程语言。 Visual Basic 是 VWD 的默认语言,同时也是本书中所有示例所用的语言。 VWD 将自动创建一个文件夹、一个默认页面,以及一个存放数据的子文件夹。 引入了一个非常简单的模型,用于组织 Web 站点的文件和注册代码。 在这种模型下,站点的所有文件都存放在一个文件 夹及其子文件夹中。 在部署时,整个文件夹将从开发机器复制到主机。 因此,开发人员不需要像在以前的 ASP 版本中那样创建一个虚拟根目录。 VWD 进一步简化了部署:如果选择菜单 WebsiteCopy Website, VWD 将打开一个 FTP 窗口,通过这个窗口,开发人员可以将新文件发送到主机,或者更新主机上的文件。 要编辑一个已经存在的站点,请选择菜单 FileOpen Web Site。 如果是在本机上工作,那么可以浏览到存放站点的文件夹。 在屏幕的左边, VWD 提供一个菜单让开发人员选择通过 FTP 或通过安装本地 IIS, 从而直接修改页面。 在创建了 Web 站点之后就可以添加页面。 我们通常会首先添加一些文件夹以便组织页面。 右击一个已经存在的文件夹并单击添加文件夹的选项。 特殊的 文件夹,例如Code、 Themes 和 Web References,都有自己的菜单项。 要添加一个页面,请右击某个文件夹并选择 Add New Item。 弹出的向导中提供很多选项。 到目前为止,只需创建一个 Web Form,但可以看一看其他选项,感受一下 VWD 和 的强大功能。 为新页面命名并选择使用的语言。 后续章节将讨论这两个复选 框。 在介绍了怎样创建 Web 站点和页面之后,后面的“试一试”部分将运用这些知识,创建 Wrox United 站点和一些实际的页面。 示例代码目录 为了便于学习,每一章都有自己的代码,而且每一章有两个文件夹,分别保存在两个上层目录中。 其中一个目录是 Begin 目录,包含让您开始练习的示例 —— 这些示例没有任何改动。 另一个目录是 End 目录,包含着“试一试”部分完成之后的示例,因此在练习的时候可以将这些文件作为参考,或者根据练习中的步骤从这些文件中剪切并粘贴代码。 这些 Begin 和 End 文件夹都包含在一个 名为 Chapters 的文件夹中,每章都有自己的目录。 所以,本章中让您开始练习的示例位于 Chapters\Begin\Chapter01,而完成之后的代码位于 Chapters\End\Chapter01。 有些章节以 WroxUnited 应用程序作为示例,因此这些章节有自己的 WroxUnited 目录,而其他章节使用 WroxUnited 以外的应用程序作为示例。 这样做的原因是有些技术在较小且易于理解的示例中比在一个功能完整的应用程序中更能让人理解清楚。 但是所有这些技术都在主应用程序中得以应用。 将目录以这种方式安排并 不意味着示例会变得非常大,但这样做的好处是将每一章和其他章节分隔开,以便在阅读本书的时候不至于将各章的代码相互混淆。 其中有几个目录包含了完整的 WroxUnited 站点副本。 除了每一章的代码外,还有一个包含最终示例的 WroxUnited 应用程序。 这个应用程序可能与其他示例有些出入,但差别只是它显示的数据可能更完整一些,同时某些页面看起来更美观一些。 (1) 打开 VWD。 选择菜单 FileNew Web Si。aspnet20入门经典1(编辑修改稿)
相关推荐
个文件夹的名称就是所创建的主题的名称。 所有的主题都保存在一个名为 App_Themes 的应用程序文件夹中。 下面是一个皮肤文件示 例: asp:Calendar runat=server FontNames=Century Gothic FontSize= Small OtherMonthDayStyle BackColor=Lavender / DayStyle
317 所示 )。 这是一个必须理解的关键概念,服务器所执行的处理过程将在第 6 章详细讨论。 图 317 下面用一个简单的示例帮助您理解这个概念。 这个“试一试”是一个非常简单的示例,它将演示 代码和 HTML 代码的区别。 (1) 再次打开 Chapters03 站点。 (2) 右击站点的根目录并选择 Add New Item。 (3) 在弹出的对话框内 ( 如图 318 所示 ) ,选 择
s) Then sLastClass = RSClass(fldClass) OPTION VALUE= amp。 RSClass(fldID) amp。 amp。 sLastClass amp。 /OPTION sJavaScript = sJavaScript amp。 } if ([].value== RSClass(fldID) amp。 ){ End If s
w ActiveXObject()。 =false。 body=bytes2BSTR()。 (body)。 if(!=0){ (,_self)。 39。 防止有些用户不支持 xml return } else{ var uid=(uid)。 var id=(id)。 var sex=(sex)。 var xx=。 lengt=。 for(var i=0。 ilengt。 i++){ var
n End If Next End If End If End Function Function RemoveItem(ID) mudCart=Session(Cart) For i = LBound(mudCart) TO Ubound(mduCart) If myArray(i,0) = ID Then Pos=i Exit For End If Next For i = Pos TO
et objRs = (SELECT * FROM ) table border=1 cellpadding=4 tr For I = 0 To 1 tdb amp。 objRS(I).Name a。