2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:442848
用户头像

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

关注

评论

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

接口工具使用对比(apipost、jmeter、postman、swagger等)

测试人生路

Jmeter Postman 接口测试

2020中国系统架构师大会活动回顾:ZEGO实时音视频服务架构实践

ZEGO即构

架构设计 RTC

C 语言实现一个简单的 web 服务器

C语言与CPP编程

c c++ socket C语言 HTTP

首个通用安全技术行业标准发布适用于区块链技术架构 但监管仍待完善

CECBC

金融 安全技术

Appium常用操作之「元素定位、swipe 滑屏操作」

清菡软件测试

作为打工人,如何正确的选择自动化测试工具(完全指南)

软测小生

软件测试 测试 软件自动化测试 测试工具 测试开发

“绝影”机器狗如何利用ModelArts强化学习算法更改导航轨迹

华为云开发者联盟

人工智能 机器狗 导航

人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!

华为云开发者联盟

技术 运维 后端

花费6个月的时间,五面阿里java岗,最后竟然差点倒在最后HR面?

Java架构追梦

Java 学习 编程 架构 面试

【Java面试官】我管你什么P7、P8?答不出这十道题你就是渣!

Java架构师迁哥

苏州高铁新城打造区块链发展聚集地

CECBC

区块链 智能合约 金融

打破内卷化,AppGallery Connect的全生命周期赋能方案

脑极体

【JSRC小课堂】Web安全专题(四)SRC漏洞挖掘技术之命令执行漏洞

京东科技开发者

WEB安全

架构师训练营 -week06-总结

大刘

极客大学架构师训练营

架构师训练营第二周作业

李日盛

架构

架构训练营 - 第6周课后作业 - 学习总结

Pudding

年末成功上岸腾讯T3-2,全凭这份业内跪求的Java核心笔记

小Q

Java 学习 架构 面试 程序猿

Java-技术专题-JDK8新特性之Stream流

码界西柚

十个写代码的小技巧,保你在面试过程中脱颖而出

Java架构师迁哥

技术实践丨PostgreSQL插件之pg_dirtyread "闪回查询"

华为云开发者联盟

数据库 后端

训练营第二周总结

大脸猫

极客大学架构师训练营

数字货币交易所系统开发技术

薇電13242772558

区块链 数字货币

阿里P8大牛2020年总结整理的心血之作:17W字操作系统、网络协议教程、面试真题(附导图+笔记)

Java架构之路

Java 程序员 架构 面试 编程语言

产品资讯 | mPaaS 适配 targetSdkVersion 29

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

训练营第二周作业

大脸猫

极客大学架构师训练营

一周信创舆情观察(10.19~10.25)

统小信uos

架构师训练营 - 第 6 周课后作业(1 期)

Pudding

Java-技术专题-Stream流详解

码界西柚

2020年了,终于有大佬把Java程序员必学知识点总结整理出来了!

Java架构之路

Java 程序员 架构 面试 编程语言

阿里技术四面+交叉面+HR面成功拿到offer,谁说双非本科进不了大厂?

Java架构之路

Java 程序员 架构 面试 编程语言

区块链将与人工智能、物联网、云计算技术形成互补

CECBC

人工智能 物联网

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