QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

ASP.NET 里的支架:Dynamic Data Support

  • 2007-12-23
  • 本文字数:1997 字

    阅读完需:约 7 分钟

ASP.NET Dynamic Data Support 是上周已发布的 ASP.NET 3.5 Extensions CTP 版的一部分,它提供了一个支架(Scaffolding,译者注:在建筑界称为脚手架)框架,通过使用这一框架,开发者可以基于 ASP.NET 进行快速应用开发。

“支架”的概念起源于建筑和建造领域,是指一个临时的框架,用在建造或修复建筑物时的早期阶段。在编程领域里,支架代码被用来提供临时的支撑结构,直到找到永久的解决方案。其实支架方法在 Rails 的 MVC Web 框架中已经开始流行了。

Scott Guthrie 的博客中,他这样描述 ASP.NET Dynamic Data Support

简单地说,ASP.NET Dynamic Data 可以让你非常快速地创建基于 LINQ to SQL(以及未来的 LINQ to Entities)对象模型工作的数据驱动型网站,使用它,你甚至可以在无须手动创建任何页面的情况下完成工作。

David Ebbo 还发布了一个视频演示,“从头到尾展示了在创建使用 Northwind 数据库的简单站点的过程中,应用 ASP.NET Dynamic Data 的基本场景”。在对 Dynamic Data 的介绍中,他概括性地给出了快速开发一个 ASP.NET 应用的基本步骤:

  1. 定义你的模型:这一步不是特别针对 Dynamic Data 的,但这是一切的起点。你有一个数据库,就需要为它创建一个模型,现在,这一步可以由 LINQ to SQL 来完成,不久后 LINQ to ENtities 也可以完成同样的工作。
  2. 测试应用的支架版本:无需额外的工作量,Dynamic Data 就可以让你的支架版本的 Web 应用运行在你的数据方案之上。尽管这个支架版本只有一些简单“标准”的 UI,但是已足够让你对数据表进行所有 CRUD 的操作(译者注:C 即创建 -Create,R 即读取 -Read,U 即更新 -Update,D 即删除 -Delete),而且它全面支持数据表关系。以 Northwind 为例,假设在产品页中可能允许你浏览产品的类别信息,而编辑产品类别名称可能会是在一个下拉框中进行,那么它将显示类别名称,而不是 ID。
  3. 定制共享页面视图:接下来就可以修改显示支架视图的页面模板,你所做的改变将会影响到所有与此表相关联的视图。
  4. 定制详细的页面:下一步就是对一些具体的页面进行相应的制定,例如,你可以让一个页面显示产品,而用另一个页面来显示类别。在这一步,你可以按照你自己的步调来创建具体的页面,以保证每个点都能体现应用功能。
  5. 注解你的模型:可以通过为你的模型增加属性的方式来为某些字段增加一些额外的信息。例如,你可以为产品的 UintInStock 字段设置一个取值范围,只允许该字段取值在 0 至 50 之间,UI 就会自动获取这一信息,并对输入进行校验。这一点的好处就在于你只需要将这些信息保存在你的模型中,而无需让你的页面为此变得杂乱。
  6. 创建定制的字段模板:Dynamic Data 中的所有字段都是通过字段模板提供的,一般是一些基础的用户控件,你也可以创建定制的模板,这一功能非常强大,例如,在前面的例子中,你可以创建一个字段模板,通过一个限定取值范围的 Slider 控件来替文本框,页面会自动提取并呈现这一变化,而无需自己去打开 aspx 文件定制 UI。

ASP.NET 3.5 Extensions CTP 版为 Dynamic Data Web 站点和 Web 应用项目提供 Visual Studio 2008 的模板。在创建了一个基于模板的 Web 站点或 Web 应用后,简单地添加 LINQ to SQL 数据模型,你就可以运行这个项目,并开始浏览和编辑数据模型中的实体。如果你对此似曾相识,那可能是因为你对那个已中止、曾为支持 ASP.NET Dynamic Data 而努力的 Blinq 项目还有些印像。

Quickstart 论坛和David Ebbo 的 FAQ 提供了更多的帮助和指导。FAQ 上的第一个问题就是:“它能与 ASP.NET 的 MVC 一起工作吗?”,答案是肯定的,但你要下载 MVC-Toolkit 并仔细查看其中打包的 Blog 示例。

为了定制 ASP.NET Dynamic Data 应用的行为,你还必须为所建立的数据模型提供元数据,现在的 CTP 提供了一种使用.NET 属性来直接在数据模型中添加格式限定或取值范围校验的方法。 Marcin Dobosz 展示了如何在 ASP.NET 3.5 Extension 预览版中定制元数据提供者的方法:

在最近发布的 ASP.NET 3.5 Extensions 预览版中,这种注解是通过在类中宣布代表模型实体的元数据属性的方式实现的,在最初的实现中有一些限制,但不管用怎样的方法,元数据都只能使用 CLR 支持的属性,并且这些属性只能通过类来宣布(即便他们是类的属性也一样)。

Marcin 解释了为什么说 MVC-Tookit“含有一个可选实现”的原因:

这个实现有如下改进: - 一个基于提供者的插入式元数据模型。

  • 新的元数据属性,它可以通过特定元数据的"buddy"类的特性来声明。
  • 一个基于 XML 文件的可选参考提供者实现。

ASP.NET Dynamic Data 提供了一个富支架框架,让开发应用的原型变成得非常快速,这些原型可以很容易地通过添加元数据来进行定制。支架是可以被“真实的解决方案”替换的,当它是与 ASP.NET MVC 框架一起使用时,这种替换就更容易了,并且,ASP.NET 网页和 Dynamic Data 网页可以在同一个 ASP.NET 应用中共存。

查看英文原文 Scaffolding in ASP.NET: Dynamic Data Support

2007-12-23 22:442745
用户头像

发布了 90 篇内容, 共 14.5 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

NetScaler Release 14.1 Build 38.53 (nCore, VPX, SDX, CPX, BLX)

sysin

NetScaler

部署电影收藏管理器Radarr

轶天下事

程序员失业没offer、空窗期长!掌握Java架构核心宝典就能逆袭!

程序员高级码农

Java 编程 程序员 java面试 Java面试题

YouTube视频播放器 Clicker for YouTube mac版

Rose

银翼新境 致态TiPro9000引领个人存储PCIe 5.0新时代

新消费日报

大模型,在内卷中寻找出口

脑极体

AI

云服务器Flexus X实例|MySQL应用加速测试

轶天下事

Windows Server 2016 中文版、英文版下载 (2024 年 12 月更新)

sysin

windows

Windows Server 2019 OVF (2024 年 12 月更新) - VMware 虚拟机模板

sysin

windows

Illustrator 2024下载-AI2024中文破解教程

Rose

京东关键词搜索商品列表数据接口(JD.item_search)

tbapi

京东API接口 京东商品列表接口

一键多开,高效沟通!WechatTweak微信多开神器来袭!

Rose

终于有人从零到精通开始教大模型开发了!基于PyTorch与ChatGLM

程序员高级码农

Python 人工智能 大数据 AI 互联网

Windows Server 2016 OVF (2024 年 12 月更新) - VMware 虚拟机模板

sysin

windows

Qualcomm IPQ9570 and IPQ5312 WiFi 7 Chips Foundation of Future Networks: Comprehensive Analysis

wifi6-yiyi

WiFi7

Windows Server 2025 OVF (2024 年 12 月更新) - VMware 虚拟机模板

sysin

windows

数据库管理利器!Navicat for MySQL,让数据操作更便捷

Rose

Windows Server 2019 中文版、英文版下载 (2024 年 12 月更新)

sysin

windows

半导体未来三大支柱:先进封装、晶体管和互连

E科讯

NetScaler Console Release 14.1 Build 38.53 (ESXi, Hyper-V, KVM, Xen) - 集中管理 NetScaler

sysin

NetScaler

Axure RP 10中文汉化安装包 好用的交互式原型设计工具-mac/win

Rose

Windows Server 2022 中文版、英文版下载 (2024 年 12 月更新)

sysin

windows

Windows Server 2025 中文版、英文版下载 (2024 年 12 月更新)

sysin

windows

cdr平面设计软件下载 CorelDRAW for mac最新中文版附激活秘钥

Rose

Flexus X实例性能测评

轶天下事

MES系统中的生产看板在生产管理中的应用与价值

万界星空科技

数据可视化 mes 万界星空科技 电子看板 生产看板

Windows Server 2022 OVF (2024 年 12 月更新) - VMware 虚拟机模板

sysin

windows

编程必备!sublime text轻盈高效,编程更流畅

Rose

(2024永久密钥JProfiler)JProfiler for mac下载安装

Rose

EndNote 21大客户授权版 v21.2永久激活版

Rose

ASP.NET里的支架:Dynamic Data Support_.NET_Hartmut Wilms_InfoQ精选文章