ASP.NET数据库编程的前言,ASP.NET是一种用于创建基于Web的应用程序的编程模型。从本质上来说,运行时和.NET Framework类库集可以用于创建动态Web页。它需要在Web服务器的环境中运行,例如Microsoft Internet Information Server(Microsoft互联网信息服务器,IIS),并且根据服务浏览器请求指示在服务器上执行程序。与直接由Web服务器提供的静态HTML不同的是,ASP.NET页面实际上是在服务器上执行以后再产生结果的。页面的最后生成也许是由许多不同的指令和/或数据源构造的。
ASP.NET数据库编程的支持,ASP.NET页面以.aspx扩展名存储。页面由程序员将文本、标记(例如HTML)以及ASP.NET特定服务器标记和脚本组合在一起,然后存储在Web服务器上。可以将存储后的ASP.NET页面看成是一套描述如何创建一个HTML页面的指令。当该页面被请求浏览时,服务器端程序将会用纯标记来创建一个客户端浏览器可以读懂并能呈现(render)的页面。因为呈现后的输出是纯标记,所以任何浏览器都能够读懂;所有的动态过程都发生在Web服务器端。ASP.NET特定服务器标记非常强大,例如,它可以对用户的动作作出反应,连接至数据存储以及自动创建非常复杂的HTML结构。
ASP.NET数据库编程的原理,正像前面提到的那样,ASP.NET只是.NET Framework的一部分,所以 ASP.NET页面可以利用这个框架提供的所有服务,包括连网、数据访问、安全以及更多其他服务。因为ASP.NET可以使用所有这些服务,所以相比以前,能够创建更加丰富的Web应用程序。只需花少量的时间来构建所有应用程序所需的构建块,而将大多数时间用在应用程序独有的特殊逻辑上。
ASP.NET还在Web编程中引入了一些独特的新技术,可以在典型的动态服务器页面(Active Server Pages,ASP)上极大地改善开发模式:
· 语言独立性——因为ASP.NET是.NET Framework的一部分,所以可以使用您自己选择的语言来构建ASP.NET应用程序,例如C#、VB或J#。而典型的ASP则仅限于JScript或者VBScript页面。
· 编译而不是解释——与典型的ASP在每一次页面请求时都解释编程结构不同,ASP.NET在服务器端动态地将页面编译成可以运行得非常快的本机编程指令。可以很明显地看到典型的ASP页面的性能与相同ASP.NET页面的性能之间相差的数量级别。
· 事件驱动编程模式——在典型的ASP中,页面总是以自顶向下的线性方式执行,并且HTML标记常常与程序指令混合在一起。任何一个有一定ASP经验的人都知道这样会使得页面难以阅读,甚至更加难以维护。ASP.NET引入了事件驱动模型,这个模型允许您将代码与标记内容分离,将代码并入处理专门任务的有意义的单元中,例如响应客户端的按钮单击动作。这个类似VB的事件模型极大地提高了页面的可读性和可维护性。
· 服务器控件——典型的ASP需要动态地将HTML片断代码接合在一起呈现,这样做的结果就是在应用程序中一遍又一遍地编写相同的代码(您需要多少次才能从数据库查询中构建一张表格)。ASP.NET带给Web编程的一个最大的好处就是能够将公共的呈现和行为封装成服务器控件(server control),可以在应用程序中很方便地重复使用。就像HTML标记一样,服务器控件以声明的形式创建,但是表现为一个位于服务器端的可编程对象,它可以与代码进行交互并输出定制的动态HTML呈现。ASP.NET包含了大约80多个服务器控件,这些控件封装了从标准表单元素到复杂控件(如网格和菜单)的所有内容。
· 控件设计时间的改善(当使用Visual Web Developer时)—— 开发人员通过使用设计时间界面可以减少花费在开发复杂页面上的时间,这些界面包括敏捷任务面板、标签级导航栏和可以设置控件属性的向导。 ASP.NET 2.0
ASP.NET的第一个版本(1.0和1.1)在2001年至2003年间迅速风靡了Microsoft的开发阵营。程序人员很快便感觉到他们通过使用强大和灵活的.NET Framework可以大大减少编码时间,而且CIO们也看到当程序员花在解决客户代码的疑难问题上的时间减少时,他们就可以将更多的资源投入到更高级的IT结构的改善上。ASP.NET确实是一个里程碑式的版本,它简化了开发人员的工作。
但是,就在第一个版本发布之前,Microsoft的ASP.NET小组就已经在为开发ASP.NET 2.0而工作了。他们以下面雄心勃勃的目标来开始他们的工作:
· 使创建一个典型的Web应用程序所需代码行数减少70%。
· 提供一套可扩展的应用程序服务,用来为通用应用程序任务提供构建块,例如成员、角色、个人化以及导航等。
· 创建一系列基于任务的服务器控件,这些控件可以调节上述服务,交付完全、可定制的用户接口(UI),以最小的代码量来展示这些服务。
· 当与.NET Framework协同工作提供页面服务时,改善IIS的性能。
· 提供管理功能,以便加强ASP.NET服务器的部署、管理和运行。
· 改善宿主公司所用的工具,以便可以支持多站点并能够将开发人员的项目迁移至公共部署环境。
· 让ASP.NET的几乎所有特性都能够方便地扩展或者用定制的高级任务的执行替换。 在这里,我们有必要再来细细地回想一下第一个目标,也就是使编写一个动态Web应用程序所需的代码量减少70%。这有可能吗?Microsoft的ASP.NET小组已经仔细考虑过各种以定制代码执行的通用任务,并且专门制定了将这些任务封装进构建块(特别是服务器控件)的方式,这样就能够自动地完成这些任务了。例如,大多数Web应用程序都需要安全或者导航或者个性化服务来为用户提供定制的体验。在ASP.NET 2.0中,这些任务是通过一系列可配置的应用程序服务,以及与这些应用程序服务进行对话的服务器控件来实现的,这样可以极大地减少实施这些通用服务所需的应用程序的代码量。但是,在所有这些通用任务当中,有一个任务是绝对独立于其他应用程序的,这就是数据访问服务。数据是驱动所有动态Web应用程序的公用线程,所以毫不奇怪,ASP.NET小组为了减少代码量和在ASP.NET 2.0的应用程序中执行数据访问所需的概念,而制订了一些大胆的目标:
· 在ASP.NET中可以通过声明的(无代码)方式来定义一个数据源。
· 可以通过声明的(无代码)方式用UI控件显示数据,无需在页面的执行生存期中的特定时间进行显式的数据绑定。
· 可以通过声明的(无代码)方式执行通用数据任务,例如排序、分页、过滤、更新、插入以及删除数据。
· 可以使用多种UI控件来显示数据,包括灵活的网格/详细控件,该控件既可以显示又可以操作数据。
· 为创建定制的数据源,启用可扩展的模型来支持新的数据类型。
ASP.NET数据库编程常用的控件,ASP.NET 2.0具有一些程序员可以使用的特定的服务器控件,用于在页面上添加数据交互。这些专门的数据控件分为两组:数据源控件和数据绑定控件。数据源控件创建与数据库的链接。数据绑定控件则从数据源控件获取信息,并在页面上创建呈现。这种简单的双控件模式可用于多种情况。对于多种数据库类型,甚至是非关系型数据源,都有相应的数据源控件。同样地,有多种数据绑定控件可用来在页面上生成表格、树型、列表以及其他数据格式。在前面我们已对ASP.NET进行了介绍,同时讲述了ASP.NET的一些理论,现在开始介绍本书剩余部分的细节内容:数据源控件和数据绑定控件的使用。数据源控件以及附带产品包括如下条目:
· SqlDataSource控件,用于与Microsoft SQL Server和其他数据库进行连接
· AccessDataSource控件,用于与MDB文件连接
· ObjectDataSource控件,用于与中间层对象连接
· XMLDataSource控件,用于XML文件或者数据流
· SiteMapDataSource控件,用于以ASP.NET 2.0站点地图格式存储的XML文件额外的控件已经由第三方开发。
在数据绑定控件中,有很多与ASP.NET 1.x中的相似,有一些则是ASP.NET 2.0全新开发的:
· ListBox、DropDownList和BulletedList、CheckBoxList、RadioButtonList
· AdRotator是实现旧功能的数据绑定控件
· DataList和Repeater以灵活的布局方式提供数据
· DataGrid(与ASP.NET 1.x中的相同)和GridView(第2个版本中的新控件)用于表格数据
· DetailsView和FormView以轻松的导航提供记录的信息
· TreeView用于显示分级数据
总之,数据源控件和数据绑定控件将会是本书重点介绍的对象。
在.NET Framework 2.0公开beta版本发布之前,少数的几个程序组就已经被允许查看工作代码,并希望尽快获得他们的反馈。结果,所有的反应只有一个,那就是热烈,“太好了!”然后就是“什么时候我才能用ASP.NET 2.0替换我的ASP.NET 1.x应用程序?”。现在beta发布版本已经在手边,我们无需再等待了。
ASP.NET数据库编程相关的信息就向你介绍到这里,希望对你了解ASP.NET数据库编程有所帮助。
【编辑推荐】