AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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

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

关注

评论

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

Illustrator 2024中文激活版 ai2024下载安装教程 附破解工具

Rose

MySQL 9.0 悄悄上线,支持面向AI的向量数据库

NineData

MySQL 体验 NineData MySQL9.0 上线

性能测试:主流压测工具介绍

霍格沃兹测试开发学社

Databend 开源周报第 151 期

Databend

探索哈希函数:数据完整性的守护者

天津汇柏科技有限公司

哈希函数

2023年央企安全威胁盘点

芯盾时代

身份安全 国企 央企

在iPhone / iPad上轻松模拟GPS位置 AnyGo for Mac中文破解资源

Rose

Datadog Dash 2024 新功能解析

观测云

可观测性

软件测试学习笔记丨JUnit5并行策略

测试人

软件测试

低代码组件扩展方案在复杂业务场景下的设计与实践

百度Geek说

npm 企业号2024年7月PK榜

Memory Clean 3 for Mac 苹果电脑内存清理工具

Rose

FL Studio怎么提取伴奏 FL Studio怎么给伴奏升降调 flstudio教程

阿拉灯神丁

编曲宿主 编曲软件 水果FL Studio FL Studio 21 音乐软件

数据资产的价值变现及管理规划(AMT企源)

AMT企源

数据资产 数据管理 数据要素

什么是圈子论坛系统,圈子论坛系统具备哪些基本功能,社交圈系统

DUOKE七七

重大丨深中通道今通车!继港珠澳大桥后,三思再度点亮世界工程

电子信息发烧客

智能商品计划系统:品牌商不可或缺的利器

第七在线

服务端性能测试:行业流行性能压测工具介绍

测试人

软件测试

如何打造开放领先的可观测性数据底座

乘云数字DataBuff

office 365 for mac破解版附激活工具

Rose

【HDC.2024】云原生中间件,构筑软件安全可信的连接桥梁

云计算 云原生 软件开发 华为云

3个企业级最佳实践,教你ByteHouse云数仓这么用

字节跳动数据平台

数据库 大数据 云原生 Clickhouse 数仓

Quick BI站稳Gartner ABI挑战者象限,打造“人人能用的BI”

ToB行业头条

AE红巨人特效合成插件:Red Giant VFX Suite Mac/win 激活版

你的猪会飞吗

AE插件 AE粒子特效插件

关键帧功能怎么使用 关键帧控制视频特效怎么用 会声会影视频剪辑软件教程

阿拉灯神丁

教程分享 软件包 会声会影2023 视频剪辑软件

【HDC.2024】探索无限可能:华为云区块链+X,创新融合新篇章

云计算 软件开发 华为云

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