应该受是JDBC,DAO,Entity...等java领域的数据层思想的影响,至今,我都很难理解ADO.NET. ADO.NET以DataSet为核心,我问过一些人,都说应用的的各个层次之间传递的是DataSet对象(作为数据的容器). 我不禁要问: 1.当DataSet到达表示层的时候(如果没有绑定的话),还要程序员去关心数据是哪个表,哪个行,哪个列的,这样的设计好吗? 至少我觉得不好,在表示层关心的应该是数据的本身,而不是通过DataSet.Tables["tableName"].Rows[1].Columse[0]的方式访问数据,显然,这种方式与表名,列名严重耦合,恶果就不必说了. 2.以DataSet为核心,事务怎么处理? 3..Net程序,如果我写的是没有web界面,没有桌面窗口的win service,数据层应该怎么写? 在我看来DataSet只是在绑定界面的时候有用罢了. 请斧正,指教.
解决方案 »
- asp怎么下载xml文件,弹出保存窗口,并不是显示在浏览器上。
- C# httpwebrequest 登录 www.weibo.com 求助
- C# listView更新数据问题
- 搭键三楼楼长OA遇到了奇怪问题
- 200分求Crainiate ERM Diagram 4.0的注册码,一个画流程的及形状的.NET组件。求到后另开贴送分。
- 如何用C# 获取内嵌在html中的xml
- 格式(弱弱):怎样才能在richtextbox或者label里显示表格
- :::::::::DataGrid问题,大家帮忙:::::::::::
- 高手请进:一个关于WinForm反射的超难问题。(见里面)
- 服务端怎么对客户机进行锁定控制?
- 会的大神帮忙注释以下
- ClickOnce发布问题
Main Component 和 major component
2.DataSet也是ado.net的精华所在,
DataSet是对数据的统一描述,是高度抽象的,他几乎就是xml,json,
具体功能参见MSDN:
http://msdn.microsoft.com/zh-cn/library/system.data
http://msdn.microsoft.com/zh-cn/library/system.data.dataset
http://msdn.microsoft.com/zh-cn/library/27y4ybxw(v=vs.110).aspx
1.在分层开发中,DataSet不会到达View层,而是通过ViewController动态渲染,
也就是说,不仅view层不知道数据细节,就连Controller也是数据无关的,
只有Model层才有可能(不是一定)直到数据细节 以下是摘自程序中的代码片段,仅供参考:
//根据model,动态创建视图
return (ViewDrv.MethodViewDrv.CreateView(this.BusinessModel.MethodSearchById));
//根据View,更新model
ViewDrv.MethodViewDrv.UpdateParams(this, this.BusinessModel.MethodSearchById);
//调用ado.net(DAL),获取数据
return DAHelper.GetDataRow(this.BusinessModel.MethodSearchById);
//根据Model,用DataRow中的数据填充视图(在这里,程序渲染了一个DetailView)
ViewDrv.DataKeyViewDrv.UpdateView(_dr
, this.BusinessModel.MethodSearchById.DataKeys);
2.不仅支持事务,还支持约束,关系,触发器等等系统事务
3.ado.net不仅提供数据描述的抽象,还提供了数据访问的抽象,
还是以代码举例:
//调用ado.net,提交一个insert或者update的数据访问,和界面没有任何关系,程序员也不知道什么字段
DAHelper.ExecuteMethod(this.BusinessModel.MethodSave);
以前并没有考虑这个问题,只是应用DataSet查询数据而已。当然主要应用于winform,现在看来Ado.net还有很多其他功能可以开发。
在底层当然会与表名,列名耦合,但是到了表示层代码还有表名,列名耦合,就不好了吧你不觉得这们写DataSet["table_name"],这个"弱类型的"字符串容易出错吗?
ORM框架在大数据量快速访问的时候,往往是一种障碍。
2,DataSet 仅仅是数据集啊 是ado的五个重要的对象之一。
3,一模一样。