Vs.net 2008 sp1新特性之Dynamic Data Web Site

Vs.net 2008 sp1新特性之Dynamic Data Web Site

介绍

asp.net的动态数据,是一个web site开发框架,可让您很容易建立数据驱动的asp.net的Web应用程序。通过自动获取数据模型元数据在运行时产生的用户界面和行为。在这个框架内提供了一个查看和编辑数据的网站。您可以轻松地自定义控件和页面元素或建立新的预设的行为。同时创建的应用能够轻松集成数据和页面中的元素绑定。

功能

  1. 通过读取数据库的结构或是数据模型,生成标准的asp.net web UI表单
  2. 支持数据表新增,删除,修改,查询操作(CRUD),支持有关联关系的表操作和数据字段的验证
  3. 可以自动实现对有外键关联关系的表生成相应关联的UI操作界面和视图
  4. 允许自定义创建特殊的UI控件用于帮定显示和编辑数据字段
  5. 允许自定义对特殊字段的验证逻辑

原理

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页的框架内对数据模型的动态展示。棚架提供下列能力:

  1. 极少或根本没有的代码创建一个数据驱动的Web应用程序
  2. 快速发展
  3. 在数据库模型的基础上内置的数据验证
  4. 自动对每个数据字段创建外键或布尔类型类型等

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数据模型的字段验证,不能为空,外键约束,或是自定义验证逻辑

一个自动生成的网站截图

下面所有的操作,所有的页面都无需写一行代码和修改一行配置。

所有需要操作的表

其中选择浏览一个表中的记录

浏览记录明细

新增一条记录

修改一条记录

或是删除

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏米扑专栏

Node.js 安装与开发

4778
来自专栏知晓程序

开发 | 只需 10 分钟,教你做一款查询类小程序

在全局配置文件中,我们定义了一个页面。保存之后,将会自动生成 index 页面的基本目录。

1203
来自专栏java相关

非常全面的vim配置文件

1983
来自专栏前端vue

Vue+SessionStorage实现简单的登录

我是基于vue脚手架cli做的,没用过cli的可以看下我之前写的cli脚手架搭建

5.6K3
来自专栏有趣的django

Django搭建blog网站(一)

一、前言 1.1.环境 python版本:3.6 Django版本:1.11.6 1.2.预览效果 最终搭建的blog的样子,基本上满足需求了。框架搭好了,至于...

9188
来自专栏JetpropelledSnake

Python入门之PyCharm的快捷键与常用设置和扩展(Mac系统)

1. 快捷键 2 . PyCharm的常用设置和扩展 -----------------------------------------------------...

1.5K8
来自专栏软件开发

Node.js开发Web后台服务

一、简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/...

1.4K9
来自专栏lgp20151222

tar包和jar包和war包的区别?

tar:tar是*nix下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx....

1112
来自专栏超然的博客

URL中的#

作者:阮一峰   http://www.ruanyifeng.com/blog/2011/03/url_hash.html

1061
来自专栏从零开始学自动化测试

Fiddler抓包7-post请求(json)

前言 上一篇讲过get请求的参数都在url里,post请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。 一、body数据类...

3047

扫码关注云+社区

领取腾讯云代金券