产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

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

关注

评论

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

Llama3 AI应用开发实战指南

陆通

Teams Phone System遵循的规则

cts喜友科技

通信 通讯 云通讯

如何选择LED显示屏型号以满足使用需求

Dylan

LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家 户内led显示屏

Spring Boot3集成iText实现PDF导出功能

江南一点雨

Photomator for mac 技术领先的照片编辑工具

Rose

Navicat Charts Creator for Mac(Navicat图表创建器) v1.2.14激活版

Rose

第69期 | GPTSecurity周报

云起无垠

免费试听 | 深圳测试开发线下周末班,从自动化到测试平台开发

测试人

软件测试

Mosaic for Mac 自定义窗口布局,提升效率!

Rose

零信任身份安全如何做到安全防护

芯盾时代

身份安全 零信任模型

Chroma for Mac(颜色编辑器) 使用教程

Rose

解锁电商精准营销新境界:深入解析亚马逊国际商品详情API的返回值

代码忍者

API 测试 pinduoduo API

VMware ESXi 8.0U3b macOS Unlocker & OEM BIOS 2.7 Dell HPE 定制版 9 月更新发布

sysin

esxi

App Cleaner & Uninstaller:苹果电脑深度清理卸载工具

Rose

万恶的Deepfake,为什么百禁不绝?

脑极体

AI

希望成为一名 API 安全专家吗?

NGINX开源社区

读书笔记 最佳实践 API Gateway

AI与消费电子的双向奔赴,2024世界消费电子展值得一探!

AIOTE智博会

消费电子展 消费电子展会 消费电子展览会

数字样机:惯性导航系统控制单元仿真

DevOps和数字孪生

数字样机

“软件定义汽车”下的软件虚拟化技术

DevOps和数字孪生

从0到1:多服务厅预约小程序开发笔记(上)

CC同学

“探索端智能,加速大模型应用” 火山引擎边缘智能x扣子技术沙龙圆满落幕!

火山引擎边缘云

边缘计算 机器人 物联网, 智能IoT边缘服务 #大模型

如何利用 Milvus 实现多模态搜索

Zilliz

Milvus Zilliz 向量数据库 多模态搜索

鸿蒙 Next 实战: 烟花模拟器

北桥苏

HarmonyOS 鸿蒙Next

Tipard FixMP4 for Mac 非常实用的视频修复软件

Rose

Lock-It for Mac应用程序加密工具,保障数据安全!

Rose

BricsCAD 24 for mac v24.1.05 注册密钥 及bricscad详细安装教程分享

Rose

1688电商数据化运营新篇章:深度解析阿里巴巴商品详情API返回值的应用

代码忍者

pinduoduo API API 性能测试

tomcat里web.xml中load-on-startup参数含义

百度搜索:蓝易云

Autodesk Flame 2025:功能强大的视觉特效制作解决方案

Rose

nuke15最新安装包 附NUKE 15破解补丁及安装教程

Rose

Medis for Mac Redis 数据库管理工具 v2.13.0

Rose

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