zoukankan      html  css  js  c++  java
  • ASP.NET Dynamic Data Part.1(创建动态数据应用程序)

           ASP.NET 动态数据让我们能够以少许的努力快速构建以数据为中心的 Web 应用程序。它通过解析数据模型架构中的类型信息填充模板页面,这完全不需要代码或仅需要极少量的代码。15 分钟的工作足以让人获得深刻的印象,而在创建这些基础的功能后,还可进行大量自定义。

           了解 ASP.NET 动态数据程序的最佳起点是创建一个示例网站,只有这样你才能知道它的设置和运行是多么容易,以及有多少现成的功能可用。ASP.NET 动态数据网站的核心是数据库模型。可以使用 LINQ to SQL 或者实体框架来生成数据库模型。本文会使用 LINQ to SQL 。

    创建动态数据网站

    • 创建一个新的 ASP.NET 动态数据项目。在 Visual Studio 中新建 ASP.NET Dynamic Data Linq to SQL 网站
    • 新增一个 LINQ to SQL 类,你会被提示将它放入 App_Code 目录中
    • 将 Northwind 数据库中的 Customer、Order、Order_Detail、Product 表拖放到 Northwind.dbml 文件的设计器窗口

           此时的 Visual Studio 的情况应类似于这样:

    image image

           将这个数据模型注册到 ASP.NET 动态数据系统。打开 Global.aspx 文件,反注释 RegisterRoutes 方法中调用 DefaultModel.RegisterContext 的行,如下:

    image 

           在这一行上执行 2 处修改,见红色:

    DefaultModel.RegisterContext(typeof(
    NorthwindDataContext
    ), 
        new ContextConfiguration() { ScaffoldAllTables = true });

           修改类型是为了注册数据模型。修改 ScaffoldAllTables 属性的值是让 ASP.NET 动态数据系统暴露我们添加到 Web 应用程序数据模型的全部 4 张表(以后我们会做更严格的控制)。

    检验动态数据网站

           现在运行程序会看到如下的基架界面,ASP.NET 动态数据系统从数据模型中取得了这 4 张表并根据它们构建了页面结构,你可以看到 Default.aspx 页面上有每个表的链接:

    image

           单击 Customers 链接,可以看到一个包含了 Northwind.Customers 表前 10 条记录的页面:

    image

    image

           ASP.NET 动态数据系统根据数据模型创建了表,你可以看到网页上的表格列和数据库表 Customers 的列相对应。

           创建好的基架可以做很多有趣的事情:

    • 页面的下方可以修改分页的记录数,也可以在页面间切换或跳转到指定的页
    • 每行左端的 3 个按钮可以完成相应操作
    • 最右侧,ASP.NET 动态数据系统识别出了 Customers 表和 Orders 表之间的外键关系,并未每个记录自动添加了导航的链接

           单击其中任意一个链接,就会看到显示某个选中客户的全部订单的页面:

    image

           注意页面最右侧,ASP.NET 动态数据系统通过数据模型识别出 Orders 表有两个外键关系:

    image

           返回主页,单击 Orders 链接,注意这里有个 Customers 下拉列表框(怎么用,你懂的):

    image

    深入理解动态数据项目

           通过生成数据模型并修改了一行代码,我们就创建了一个暴露数据库表的 Web 应用程序,并且以智能且实用的方式实现了它。我们得到了完整的 CRUD 支持并灵活的使用外键进行记录的导航,你不觉得这很酷吗?

           现在,该看看项目自身并理解其中主要的部分了。ASP.NET 动态数据系统并不是你可能期望的那个代码生成功能。它其实是一个非常灵活且可配置的模板系统。下面我们就对项目进行一下剖析,看图:

    image

    • App_Code 目录包含程序代码,现在只有数据模型类。不过后续为了对网站进行自定义,我们将陆续添加一些代码
    • DynamicData 目录中,展开 PageTemplates 目录,你会看到 5 个模板(它们都是用富数据控件构建的用户控件)。
    • Filters 目录包含了用于过滤记录列表的控件
    • FieldTemplates 目录用于显示不同数据字段的控件
    • EntityTemplates 目录支持 ASP.NET 4 新增的名为实体模板的动态数据特性,是 DynamicData 控件用来格式化数据元素的标记
    • CustomsPages 目录支持自定义 ASP.NET 动态数据网站的某种机制。你可以把自定义的模板放到这里以自定义数据显示的方式
    • Content 目录包含呈现使用的静态元素以及用于翻阅记录列表的控件
    • Global.aspx 在 ASP.NET 动态数据项目里非常非常的重要,它用于注册数据模型,还用于注册路由
  • 相关阅读:
    几种归一化方法的概念及python实现
    python 中几种基本的矩阵操作应用
    exec 命令简单用法 和 find 搭配用法示例
    使用git在github上创建新工程
    gcc编译参数详解概述
    此心不明,能有何为
    多个文件目录下Makefile的写法
    《高效能程序员的修炼》读后思考之写作的重要性
    音频格式RAW和PCM区别和联系
    SWIG 基本概念和入门
  • 原文地址:https://www.cnblogs.com/SkySoot/p/2975767.html
Copyright © 2011-2022 走看看