.net中的数据访问框架比较

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: Windows平台上数据访问技术飞速发展,在现在的项目中该如何选择合适的技术且该技术能有比较长的持续周期呢? 通过查询和汇总了网上的一些资料,希望能够为我们在开发中架构选型提供帮助。 发展方向 微软官方的一个说明。

Windows平台上数据访问技术飞速发展,在现在的项目中该如何选择合适的技术且该技术能有比较长的持续周期呢? 通过查询和汇总了网上的一些资料,希望能够为我们在开发中架构选型提供帮助。

发展方向

微软官方的一个说明。

http://www.infoq.com/cn/news/2010/07/Top-10-Questions-on-Data

http://msdn.microsoft.com/en-us/data/bb525059.aspx

微软宣称“会继续开发这些技术”,但不会继续使用“Oslo”这个代号,而是改名为SQL Server Modeling CTP。由于与SQL相关技术的紧密联系,特别是Quadrant(译注:用来查看和修改数据库中数据的工具)和Repository(现在叫做SQL Server Modeling Services),这些技术将来会被集成到SQL Server中。

微软还解释了SQL Server Modeling和.NET之间的联系:它使得创建模型驱动的应用程序更加容易。

ADO.NET Data Services和.NET RIA Services ADO.NET Data Services变成了WCF Data Services,而.NET RIA Services则变成了WCF RIA Services,目的是使WCF成为创建服务和多层应用的一站式框架,ADO.NET Data Services和.NET RIA Services在此方面完善了WCF。

WCF Data Services / WCF RIA Services比较

http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/

WCF Data Services vs WCF RIA Services

 

WCF RIA Services

http://www.silverlight.net/getstarted/riaservices/

http://www.fydir.com/Home/article/160/1.aspx?RouteExistingFiles=False&Count=26

 

Silverlight要操作数据库,本身却不支持ADO.NET(无法引入System.Data.SqlClient),需要Web服务(WCF+LINQ),用Web服务挺麻烦的,就有了个简化版ADO.NET数据服务(类似WCF,但简单了许多),而ADO.NET数据服务在Silverlight上还是比较繁琐,于是就有了.NET RIA Services -- 更简化版的WCF RIA Services

在一个三层架构的应用程序中,中间层介于表示层和数据层之间,你所写的业务逻辑和数据验证都将在中间层出现。创建拥有良好用户体验RIA应用,你需要客户端和服务端有着相同的业务规则,因此在客户端和服务端保证同步的中间层变得至关重要。WCF RIA Services可以让你在中间层用.NET框架编写逻辑应用,下面将讲述如何使用Domain Services以共享代码、数据实体来创建中间层。

DomainService类是所有服务端domain services类的基类,另外WCF RIA Services也提供了LinqToEntitiesDomainService和LinqToSqlDomainService两个继承自DomainService的抽象类。

 

  为什么WCF RIA Service 对于 Silverlight 如此重要,最主要的原因在于,Silverlight 是一种客户端执行的环境,它无法如同 ASP.NET一样,直接与后端数据源进行沟通,数据存读取和保存全都必须跨越网络,我们就必须使用N-tier架构才能让 Silverlight 顺利的存取远程数据,这是一种很好的实践,在技术层面让开发者遵守现代软件开发的最佳实践,但是对于小项目来说并不是一项简单的事,微软一贯的作风就是为开发者提供开发者傻瓜式的开发模式,WCF RIA Services 让整个Silverlight 平台能够拥有如同 Web Form 或是 Win Form 一般同等级的数据库应用程序开发能力。

  WCF RIA Service 让开发多层式架构的过程就如同传统 2 层式架构应用程序一般自然。因为 WCF RIA Service 的导入,让这第 4 版的 Silverlight 足以成为相关技术发展的一个重大里程碑,而这也是我们跳过 Silverlight 2 与 Silverlight 3,全心等待 Silverlight 4 来临最重要的原因之一。

  在 Silverlight 3,我们通过WCF 或是ADO.NET Data Service 来实践所需的功能,WCF RIA Service 则是完全为了解决这一方面的问题而发展出来的相关服务,也是基于WCF服务,WCF支持各种通讯协议,目前WCF RIA Service只使用HTTP的绑定,而且Silverlight 4支持tcp绑定,参见InfoQ Silverlight 4中的高速通信,对于企业业务系统来说我会选择tcp的绑定。当然这只是beta版本,之后的版本肯定会改变,WCF RIA Services不仅仅是支持Silverlight,将来还会支持asp.net/ajax等等。

  我们知道WCF 使用EndPoint(Address, Binding 和 Contract),可以通过配置文件和编程方式进行配置,WCF RIA Service默认使用自己的ServiceHost,叫DomainServiceHost,DomainServiceHost 通过编程方式添加了三种EndPoint,用于REST接口的WebHttpBinding, BasicHttpBinding 和 BinaryHttpBinding,所有的绑定都设置了MaxReceivedMessageSize 为 ”2147483647”。缺省的Address的三种Binding如下:

  绑定 Address 说明

  WebHttpBinding baseAddress REST with JSON Endpoint

  BasicHttpBinding baseAddress” + “/soap“ SOAP with XML Endpoint

  BinaryHttpBinding baseAddress” + “/binary” SOAP with Binary Endpoint

  基于WCF的高度灵活性,可以自定义DomainServiceHost的来更改相关的配置来满足自己的需要,如果这些是微软来做的话会更加有影响力。期望WCF RIA Service能够继承WCF的灵活性为我们的提供强大的解决方案。

 

WCF Data Services

http://msdn.microsoft.com/en-us/library/cc668792.aspx

开放数据协议(OData)是一个查询和更新数据的Web协议。OData是基于诸如HTTP和AtomPub的国际标准创建的,它提供了一个跨平台的数据通信的方案。OData应用了web技术如HTTP、Atom发布协议(AtomPub)和JSON等来提供对不同应用程序,服务和存储的信息访问。SharePoint 2010, SQL Server 2008 R2, PowerPivot, Windows Azure Table Storage, 和第三方的产品像 IBM’s WebSphere eXtreme Scale都使用OData。

首先,WCF Data Services是WCF服务,所以你可以使用所有现有的WCF知识。其次,WCF Data Services已经实现了OData拓扑,于是你可以致力于你的数据格式在你的程序中的表示,而不是AtomPub/JSON这些真正在网络上传递的数据格式。再有,WCF Data Services致力于数据传输,而不是数据存储。你的数据可以存放在任何位置:本地的数据库,云端的数据库,外部的web services,xml文件,等等。无论数据是怎么来的,你都可以用同样的方式来发布/使用它们。

 

http://zh.wikipedia.org/zh-cn/WCF_Data_Services

WCF Data Services,旧称ADO.NET Data Services Framework(代号Astoria,以下简称WCF DS)是基于 ADO.NET Entity Framework 上的一个简单数据供应服务 (Data Provisioning Services),也是微软的 REST (Representational state transfer) 的解决方案之一。特别为 AJAXSilverlight以及Mashup应用程序提供数据服务所设计。

Entity FrameWork

Ado.net基础上抽象的基础功能,为WCF ** Services提供支持。

 

RoadMap

http://blogs.msdn.com/b/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx

http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/eee21881-1056-4ac3-b100-fb06e79658db

相对而言,EF比linq to sql提供了更高层次的抽象和功能

官方建议最好使用EF

MSDN和参考

http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx

A primary goal of the upcoming version of ADO.NET is to raise the level of abstraction for data programming, thus helping to eliminate the impedance mismatch between data models and between languages that application developers would otherwise have to deal with. Two innovations that make this move possible are Language-Integrated Query and the ADO.NET Entity Framework. The Entity Framework exists as a new part of the ADO.NET family of technologies. ADO.NET will LINQ-enable many data access components: LINQ to SQL, LINQ to DataSet and LINQ to Entities.

http://www.cnblogs.com/snowdream/tag/ADO.NET+Entity+Framework/

 

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
数据可视化 网络协议 C#
C#/.NET/.NET Core优秀项目和框架2024年3月简报
公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍、功能特点、使用方式以及部分功能截图等(打不开或者打开GitHub很慢的同学可以优先查看公众号推文,文末一定会附带项目和框架源码地址)。注意:排名不分先后,都是十分优秀的开源项目和框架,每周定期更新分享(欢迎关注公众号:追逐时光者,第一时间获取每周精选分享资讯🔔)。
|
1月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
13 0
|
18天前
|
开发框架 JavaScript 前端开发
分享7个.NET开源、功能强大的快速开发框架
分享7个.NET开源、功能强大的快速开发框架
|
18天前
|
SQL JavaScript NoSQL
.NET有哪些好用的定时任务调度框架
.NET有哪些好用的定时任务调度框架
|
1天前
|
编译器 C# Windows
一个基于Net Core3.0的WPF框架Hello World实例
一个基于Net Core3.0的WPF框架Hello World实例
|
25天前
|
开发框架 .NET C#
使用C#进行.NET框架开发:深入探索与实战
【5月更文挑战第28天】本文探讨了C#在.NET框架中的应用,展示了其作为强大编程语言的特性,如类型安全、面向对象编程。C#与.NET框架的结合,提供了一站式的开发环境,支持跨平台应用。文中介绍了C#的基础知识,如数据类型、控制结构和面向对象编程,以及.NET的关键技术,包括LINQ、ASP.NET和WPF。通过一个实战案例,展示了如何使用C#和ASP.NET开发Web应用,包括项目创建、数据库设计、模型和控制器编写,以及视图和路由配置。本文旨在揭示C#在.NET开发中的深度和广度,激发开发者探索更多可能性。
|
18天前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
1月前
|
人工智能 自然语言处理 算法
分享几个.NET开源的AI和LLM相关项目框架
分享几个.NET开源的AI和LLM相关项目框架
|
1月前
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
1月前
|
算法 BI API
C#/.NET/.NET Core优秀项目和框架2024年1月简报
C#/.NET/.NET Core优秀项目和框架2024年1月简报
103 2