Vs.net 2008 sp1新特性之Dynamic Data Web Site
Vs.net 2008 sp1新特性之Dynamic Data Web Site
介绍
asp.net的动态数据,是一个web site开发框架,可让您很容易建立数据驱动的asp.net的Web应用程序。通过自动获取数据模型元数据在运行时产生的用户界面和行为。在这个框架内提供了一个查看和编辑数据的网站。您可以轻松地自定义控件和页面元素或建立新的预设的行为。同时创建的应用能够轻松集成数据和页面中的元素绑定。
功能
- 通过读取数据库的结构或是数据模型,生成标准的asp.net web UI表单
- 支持数据表新增,删除,修改,查询操作(CRUD),支持有关联关系的表操作和数据字段的验证
- 可以自动实现对有外键关联关系的表生成相应关联的UI操作界面和视图
- 允许自定义创建特殊的UI控件用于帮定显示和编辑数据字段
- 允许自定义对特殊字段的验证逻辑
原理
Dynamic Data的本质就是通过数据库的框架(Schema)在运行时状态,推断出这些字段栏位的表现形式和操作行为(appearance and the behavior),加上提供的默认页面(page template),标准的字段模板(field template)和自定义控件设计,来实现这样一个动态框架。
Data Model(数据模型)
数据模型代表的信息是在一个数据库中,以及在一个数据库项目中彼此相关的关系。
动态数据支持LINQ-to-SQL数据模型和ado.net实体框架数据模型。您可以包括多个实例的数据模型在Web应用程序,但模式中使用的动态数据必须是同一类型。
将需要使用的数据模型在web应用程序的Global.asax文件中注册,经过注册的数据模式,可以在数据库层实现执行自动验证,和实现控制外观和行为
Scaffolding(棚架)
棚架是一种机制,就是 asp.net页的框架内对数据模型的动态展示。棚架提供下列能力:
- 极少或根本没有的代码创建一个数据驱动的Web应用程序
- 快速发展
- 在数据库模型的基础上内置的数据验证
- 自动对每个数据字段创建外键或布尔类型类型等
Page Templates(页面模板)
将任何数据库表中提供的动态数据显示在这个经过配置的web页面中,可以显示(列表视图) ,显示主/详细表(详细检视) ,编辑资料(编辑视图) ,等等。默认情况下,动态数据是设定为只能使用列表视图页模板。你可以为不同的目的去改变默认页模板或变更的动态数据使用不同的页面模板。
Field Templates(字段模板)
为数据字段提供显示格式或是编辑格式的控件,比如,日期类型的字段实现需要datetime.ascx等等
这些标准的模板在你创建的项目DynamicData\FieldTemplates目录下
当然你也可以通过自定义来实现特殊的现实或是编辑需要
Enhancing Existing Data Controls(增强现有的数据控件)
detailsview和gridview控件可以显示数据的动态使用预定义的动态数据模板而不是要求您在每一页重新建立相同的标记和代码数据控制。您可以自定义这些模板来改变用户界面显示和编辑数据领域。通过改变一个模板,实现整个项目的改变。
formview和listview的行为类似为detailsview和gridview控件使用dynamiccontrol控制在他们的模板和所指明哪些领域中的连续显示。
Linq-to-Sql/Entity frameowk数据模型的字段验证,不能为空,外键约束,或是自定义验证逻辑
一个自动生成的网站截图
下面所有的操作,所有的页面都无需写一行代码和修改一行配置。
所有需要操作的表
其中选择浏览一个表中的记录
浏览记录明细
新增一条记录
修改一条记录
或是删除