知识大全 ASP.NET数据库编程快速入门之技术慨述

Posted

篇首语:旧书不厌百回读,熟读精思子自知。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET数据库编程快速入门之技术慨述相关的知识,希望对你有一定的参考价值。

ASP.NET数据库编程快速入门之技术慨述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  大约有将近一百万名开发人员使用 Framework的第一个版本来开发网站 所以在 年的夏天 当从Microsoft传出将有新版本发布的传闻时 许多人的耳朵都竖了起来 这个新的版本将使得创建ASP NET页面所需的代码行数减少 % 像这样大规模的提高生产效率在程序设计中是不多见的 当ASP NET 的代码样例在 年秋的Microsoft专业开发人员大会(Microsoft Professional Developer s Conference)上演示时 结果比预计的还要好 以前使用ASP NET的第一个版本程序员需要花费几个小时才能做出的页面 现在使用ASP NET 只需要几分钟就完成了 简单来说 在 NET Framework 最终版本发布之后 任何继续使用第一个版本创建ASP NET页面的程序人员都将花费大量的额外时间才能达到相同的结果

  也许就像其他任何领域一样 ASP NET 所提供的优势是能够方便地将数据集成进页面 程序员不再需要知道详细的连接 命令以及数据阅读器和数据适配器对象 就能执行普通数据任务了 对于初学者掌握能力 ASP NET 使得基本数据的使用简单易学 并且有能力进行更复杂的数据应用

   NET Framework

  Microsoft开发出了作为基本原理的 NET和一系列技术 用于在互联网中让计算机共同工作 总的目标就是让信息和进程在大范围的系统和设备之间顺畅地交流 NET不是一种语言 也不是一个特别的产品 更确切地说 它是一套标准和规范 并已经应用于自 年以来Microsoft发布的所有产品中

   NET包含了一种使用开放标准的XML格式交换信息的标准化格式 可扩展标记语言(Extensible Markup Language XML)不需要请求者具备任何有关数据存储如何保存信息的专门知识—— 数据都以自描述的XML格式取出 同样地 目前几乎所有的数据存储都可以用XML来提供信息 这对于所有 NET数据客户都具有吸引力

   NET支持软件的Web Services标准 可请求在使用了开放平台标准的简单对象访问协议(Simple Object Access Protocol SOAP)和XML的远程软件上运行代码 NET网站可以从另外一个网站上找到该网站所提供的服务 并使用这些服务 这样可以使得网站从其他的网站上获得HTML 计算后的结果或者数据集

  作为 NET开端的一部分 Microsoft发布了一套运行时编程工具和应用编程接口(API) 称为 NET Framework 让开发团队能够创建 NET应用程序和XML Web Services NET Framework由公共语言运行库(Common Language Runtime CLR)和一套统一的类库组成

  CLR为运行的应用程序提供了一个完全管理的执行环境 其中包括几个服务 例如程序集装载和卸载 进程和内存的管理 安全实施以及即时编译等 CLR名称的意思就是指能够用多种语言编写应用程序 并且将源代码编译成CLR能够读懂并运行的中间语言 而无需考虑原来所使用的语言 这种 语言独立性 就是CLR的关键特性(也是ASP NET的特性) 它允许开发人员使用自己喜欢的语言工作 比如C# VB或者Cobol 都能够获得 NET Framework的常用特性

   NET Framework还包括了一套类库 这套类库提供了每一个应用程序所需的常用功能 可以使用 NET Framework支持的任何语言来访问这些类库 由这些类库提供的服务(以及相应的命名空间)如下

  · 基本类型(System)

  · 输入/输出(System IO)

  · 数据访问(System Data)

  · 安全(System Security)

  · 数据结构(System Collections)

  · 配置(System Configuration)

  · 连网(System Net)

  · 反射(System Reflection)

  · 全球化(System Globalization)

  · 绘画和制图(System Drawing)

  · 跟踪和诊断(System Diagnostics)

  · 窗口(客户端)应用程序模型(System Windows Forms)

  · Web应用程序模型(System Web)

  注意 NET Framework包含了两个应用程序编程模型 一个用于客户端应用程序(System Windows Forms) 另一个用于基于Web的应用程序(System Web) 本书着重讲解后一个模型 NET Framework中的System Web命名空间是 NET Framework的一部分 它提供了ASP NET功能 换句话说 ASP NET就是构建应用程序的所有 NET Framework的一部分

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

  ADO NET   是 NET Framework中的一套类库 它将会让您更加方便地在应用程序中使用数据 Microsoft收集了过去几十年中最佳的数据连接的实践操作 并编写代码实现这些实践 这些代码被包装进了一些对象中 以便其他软件可以方便地使用   ADO NET中的代码处理了大量的数据库特有的复杂情况 所以当ASP NET页面设计人员想读取或者写入数据时 他们只需编写少量的代码 并且这些代码都是标准化的 就像ASP NET一样 ADO NET不是一种语言 它是对象(类)的集合 在对象(类)中包含了由Microsoft编写的代码 可以使用诸如Visual Basic或者C#等编程语言来在对象外部运行这些代码   可以将ADO NET看作是一个介于数据源和数据使用者之间的非常灵巧的转换层 ADO NET可以接受数据使用者语言中的命令 然后将这些命令转换成在数据源中可以正确执行任务的命令 但是 就像您将会看到的那样 ASP NET 提供了服务器端数据控件 可以更方便地与ADO NET交互工作 所以有的时候这基本上减少了直接使用ADO NET对象的需求   很多读者已经有使用ASP NET早期版本的经验了 这一小节将回顾一下这种模式 目的是演示您需要通过ADO NET对象将数据引入Web页中的这一过程 对那些从来都没有使用过早期版本的读者来说 可以将本小节作为一个新奇的故事 类似于在发现乙醚之前进行的外科技术研究 在以前 创建一个简单典型的ASP NET x版本的页面需要如下代码 <script runat= server > Sub Page_Load(ByVal sender As Object ByVal e As System EventArgs) BulletedList DataSource = GetAuthorsByState( CA ) BulletedList DataBind() End Sub Shared Function GetAuthorsByState(ByVal state As String) As System Data DataSet Dim connectionString As String = server=(local); database=pubs; trusted_connection=true Dim dbConnection As System Data IDbConnection = New System Data SqlClient SqlConnection(connectionString) Dim queryString As String = SELECT [authors] [au_id] [authors] [au_fname] [authors] [au_lname] [authors] [state] FROM [authors] WHERE ([authors] [state] = @state) Dim dbCommand As System Data IDbCommand = New System Data SqlClient SqlCommand dbCommand CommandText = queryString dbCommand Connection = dbConnection Dim dbParam_state As System Data IDataParameter = New System Data SqlClient SqlParameter dbParam_state ParameterName = @state dbParam_state Value = state dbParam_state DbType = System Data DbType StringFixedLength dbCommand Parameters Add(dbParam_state) Dim dataAdapter As System Data IDbDataAdapter = New System Data SqlClient SqlDataAdapter dataAdapter SelectCommand = dbCommand Dim dataSet As System Data DataSet = New System Data DataSet dataAdapter Fill(dataSet) Return dataSet End Function </script> <><head runat= server ><title>Untitled Page/title></head> <body> <form id= form runat= server ><div> <asp:BulletedList ID= BulletedList DataTextField= au_lname Runat= server /> </div></form> </body></>   以上示例对数据库执行了一条简单的SQL SELECT语句 并将结果与一个BulletedList控件绑定 页面中有一个名为GetAuthorsByState的方法 该方法创建了用来完成这个任务的几个ADO NET对象   · SqlConnection对象表示与数据库服务器进行连接   · SqlCommand对象表示要执行的SQL SELECT命令   · SqlParameter对象代表了一个将被命令中的标记代替的值   · SqlDataAdapter表示填充命令中的DataSet对象的能力   · DataSet表示命令结果 可以与BulletedList进行绑定   在Page_Load事件中 调用GetAuthorsByState方法并生成DateSet结果 然后将这个结果赋给BulletedList的DataSource属性 接着 调用DataBind()使得BulletedList用这个数据结果将自己同步 我们在页面执行生存期中的适当的时候调用DataBind() 这样的做法是ASP NET 在一般情况下寻找并消除的一个关键步骤 实际上 在大多数情况下 ASP NET 根本不需要与ADO NET进行交互操作 但是 理解上述ADO NET对象之间的关系是非常有用的 这样我们就可以讨论 ASP NET 是如何改进这个模式的

cha138/Article/program/net/201311/12506

相关参考

知识大全 ASP.NET编程入门随想之宽容

ASP.NET编程入门随想之宽容  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  古老的山谷中村民

知识大全 ASP.NET编程入门随想之信客

ASP.NET编程入门随想之信客  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 ASP.NET数据库编程之处理文件访问许可

ASP.NET数据库编程之处理文件访问许可  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一个MDB

知识大全 ASP.NET2.0数据库入门之SQL Server

ASP.NET2.0数据库入门之SQLServer  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 ASP.NET 2.0页面框架简要慨述

ASP.NET2.0页面框架简要慨述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET

知识大全 ASP.NET入门教程 7.2 ASP.NET 2.0的数据控件

ASP.NET入门教程7.2ASP.NET2.0的数据控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 ASP.NET入门教程 7.1 数据库

ASP.NET入门教程7.1数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 ASP.NET入门教程 14.1.2 数据库连接

ASP.NET入门教程14.1.2数据库连接  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET入门随想之抽象的力量

ASP.NET入门随想之抽象的力量  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  小时看过一故事

知识大全 ASP.NET入门教程 7.4 数据绑定控件

ASP.NET入门教程7.4数据绑定控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!