最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

WonderPen妙笔 for Mac(文本写作工具)v2.4.0中文激活版

iMac小白

许多朋友问我有没有好用的海外代理IP

Geek_bf375d

ROLA-IP海外IP代理全球动态ip代理用途分析

Geek_bf375d

如何基于IM SDK从零开发移动端IM聊天功能

音视频开发_AIZ

IM 实时音视频 音视频开发 即时通讯IM 直播间

软件测试 | Neo4j图数据库在人工智能应用中的实战技术与应用

测吧(北京)科技有限公司

测试

如何选择最佳独立服务器提供商?加速你的在线业务成功之路

一只扑棱蛾子

独立服务器

500种专业级Lut调色集合包

彩云

lut调色预设 LUTMASTER

人工智能知识图谱设计技术点解析

测吧(北京)科技有限公司

测试

软件测试 | 金融平台封控模型实战技术:人工智能在金融风控中的应用

测吧(北京)科技有限公司

测试

Royal TSX for Mac(强大的远程管理软件)v6.0.2激活版

iMac小白

Default Folder X for Mac(Mac专业搜索优化工具)v6.0.2激活版

iMac小白

Wireshark的捕获接口设置

小魏写代码

CQ 社区版 V2.6.0 发布 | SQL闪回、权限看板、新增数据源人大金仓等

BinTools图尔兹

sql 数据库管控 人大金仓 南大通用 数据安全运维

五种在 JavaScript 中创建对象的方法

树上有只程序猿

JavaScript

六个开发者必知必会的Git命令

高端章鱼哥

git

ProPresenter 7 for Mac(多屏演示软件)

展初云

Mac 演示文稿制作软件 ProPresenter

基于 Flink CDC 打造企业级实时数据集成方案

阿里云大数据AI技术

开源

为什么一再建议企业要做谷歌广告投放?

九凌网络

如何有效解决UDP协议传输问题实现快速安全的文件传输

镭速

UDP协议 UDP传输

实例讲解基于Sermant快速开发服务治理插件

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

云电脑的运行原理是什么?如何实现

青椒云云电脑

云桌面 云电脑 云电脑平台

ShareMouse for Mac(鼠标键盘共享) v6.0.59永久激活版

mac

sharemouse 苹果mac Windows软件 共享鼠标的工具

谷歌Freshness新鲜度算法:如何利用它提升网站排名?

九凌网络

如何最大化客户生命周期价值?APMDR 模型在袋鼠云的落地实践

袋鼠云数栈

大数据 数字化转型 用户生命周期 用户运营 智能标签

ProPresenter for Mac(现场分屏演示工具)v7.15汉化版

iMac小白

全球代理HTTP的使用范围?罗拉ROLA-IP表现突出

Geek_bf375d

AE真实辉光特效插件:Real Glow for Mac汉化版

彩云

AE插件 Real Glow

听说90%的人都没搞定手撕协程池这道面试题!

王中阳Go

Go golang 面试题 Go进阶 协程池

大模型训练中的学习率调整策略

百度开发者中心

人工智能 深度学习 大模型

【ps破解版软件下载】Photoshop 2024 for Mac,全新升级,打造极致图像处理体验

晴雯哥

ROLA-IP在HTTP海外IP代理市场的优势

Geek_bf375d

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