.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/

 

相关文章
|
7月前
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
1259 0
|
10月前
|
C# Android开发 iOS开发
2025年全面的.NET跨平台应用框架推荐
2025年全面的.NET跨平台应用框架推荐
442 23
|
11月前
|
消息中间件 开发框架 监控
NET任务调度框架Hangfire使用指南
Hangfire 是一个用于 .NET 应用程序的开源任务调度框架,支持长时间运行任务、定时任务等。通过简单的安装配置,即可将任务从主线程分离,提升应用性能。支持多种数据库,提供丰富的任务类型如立即执行、延迟执行和周期性任务,并有可视化管理界面 Hangfire Dashboard。还支持安全性配置及扩展插件,如 Hangfire.HttpJob,适合各种复杂场景下的任务调度需求。
1095 1
NET任务调度框架Hangfire使用指南
|
11月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
324 5
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
265 5
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
161 4
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
308 4
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
343 3
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
352 3
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
431 0