惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - InFuture

变成百万富翁的二十五种方法 今天终于测试解决了WCF传递大数据量的问题 - InFuture 关于工作流设计方面的一些经验总结 Telnet客户端 字符串表达式求值(转) - InFuture silverlight DataGrid模板列的动态生成 - InFuture 关于事件处理的完整框架Event,delegate,event args,无图有真相。 关于树形结构父类查子类,子类查父类的方法 - InFuture 最近准备整理一下手头资料,开发一个工作流和表单管理系统 今天装好了window 7 Silverlight 客户端如何访问WCF 如何让用户控件占满全部页面,silverlight用户控件开发问题 - InFuture wpf 数据绑定有关讲解 ASP.NET 3.5 Extensions: Dynamic Data Web Site 要點整理(转载) 免费的微软OneCare防病毒软件 - InFuture Visual Studio 2008 SP1: EntityDataSource Where Clause(转载) Visual Studio 2008 SP1: EntityDataSource for ASP.Net (转载) - InFuture 今天装了VS2008 Sp1!真是非常激动!(VS2008 sp1下载地址) - InFuture VS2008的黑色皮肤
ASP.NET里的支架:Dynamic Data Support(转载)
InFuture · 2008-08-22 · via 博客园 - InFuture

ASP.NET里的支架:Dynamic Data Support

作者 Hartmut Wilms译者 张海龙 发布于 2007年12月23日 下午10时44分

.NET 主题 .NET框架, Web框架 标签 脚手架, Ruby on Rails, ASP.NET

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应用的基本步骤:

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