Toolbox

数据集成工具和资源

Terrence Dorsey

image: Terry Dorsey
除了那些最无足轻重的应用程序,似乎当今的所有应用程序都在处理数据。通常是许许多多的数据。所以我猜测,作为一个开发人员,您需要在您的许多头衔之外再加上一个“数据库专家”。可能您还不是:那有没有一些工具和资源可以助您一臂之力,令您实现巨大的提升呢?

MSDN 数据开发人员中心 (msdn.microsoft.com/data) 是一个很好的起点,您可以在这里找到在应用程序中集成数据访问方面的大量 Microsoft 工具与技术的链接。从 SQL Server 到 ADO.NET 再到 MSXML,您在这里可以一网打尽。

事实上,这是一个如此完备的资源,所以我觉得不用再过多的讨论。快乐地绑定数据吧!

但是等等!还有更多的资源 ...

数据基础知识

这是什么?您还不是很了解 SQL Server 的工作方式吗?表、行和记录听起来是不是更像聚会计划,而不是开发术语?如果您刚开始进行以数据为中心的开发,或需要一个刷新器,那么这里有一些资源可以加快您的上手速度。

Geekgirl 的简明英语计算数据库指南 (geekgirls.com/category/office/databases) 提供了一系列的“数据基础知识”教程,说明了数据库设计和使用的核心概念。如果您是从头开始,不会做得比这个还好。

了解了基本概念之后,稳妥的下一步将是阅读代码项目文章“开发人员 SQL:基本数据检索”(bit.ly/gurX8Y) 之类的内容。您将在这里学习,如何使用简单的 SQL 查询从数据库中获取选定的数据和在应用程序中引入选定的数据,您可以在这里用查询做一些有用的操作。(这个任务留给读者 ...但请继续阅读下面的一些提示。)

要深入了解与 SQL Server 2008 这样的数据库引擎进行通信的语法,您可以查看 SQL Server 联机丛书中的 Transact-SQL 参考 (bit.ly/hDhdvz)。

开始编码后,您可能要不断地查看 程序员 SQL (bit.ly/ejD7Zg) 上的提示和技巧,它是 .NET Answers 的 SQL 编程提示档案。

LINQ

语言集成查询 (LINQ) 是 Microsoft .NET Framework 的一项功能,它使用 C# 和 Visual Basic(以及某种程度上的 F#)中的本机语言构造来扩展数据访问。要了解有关它的更多信息,请访问 LINQ 开发人员中心 (bit.ly/fl9xpg)。

LINQ 的能力之一是使您可以使用强类型语法编写类似 SQL 的查询。其次,LINQ 提供程序,如 LINQ to SQL 或 LINQ to Objects,可以处理实际数据源的详细信息。有关其工作方式的实用概述,请参见 John Papa 的数据点专栏“LINQ 的标准查询操作符”(bit.ly/huKhxa)。

LINQPad (linqpad.net) 已成为开发人员学习 LINQ、原型查询或交互式查询各种数据源的不可或缺的工具。LINQPad 是由 Joseph Albahari (albahari.com) 编写的免费工具,并且得到了一个大型程序员和数据专家社区的有力支持。

Image: LINQPad

LINQPad

如果您刚开始使用 LINQ,可以查看 Dan Wahlin 的博客文章“用 LINQPad 学习如何使用 LINQ”(bit.ly/hlOyMh) 和 Al Tenhundfeld 的文章“使用 LINQPad 掌握 LINQ”(bit.ly/fSUij4)。这两篇文章能让您迅速地开始使用。

LINQPad 不仅是 LINQ 查询方面的优秀工具,它还能让您交互地运行和验证 C# 和 Visual Basic 中的函数。Rich Strahl 在其文章“代码段执行引擎 LINQPad”(bit.ly/eCD60C) 中演示了这个方便的功能。

Entity Framework

ADO.NET Entity Framework 是 .NET 对象关系映射 (O/RM) 框架,旨在简化从代码对关系数据库的访问。简而言之,Entity Framworok 让您可以将数据库架构映射到可通过属性查询的编程实体。要了解有关 Entity Framework 的更多信息,请参见 ADO.NET Entity Framework 开发人员中心 (bit.ly/eOmtC1)。

如果您刚开始接触 Entity Framework,可以通过 Microsoft 针对 WebForms 的“Entity Framework 入门”教程 (bit.ly/gcrXyU) 加快上手速度。如果您喜欢使用 ASP.NET MVC,这里还有“使用 Entity Framework创建模型类”教程 (bit.ly/dXJAjx)。

我们定期专栏“数据点”的专栏作家 Julie Lerman 是一位 Entity Framework 专家,她编写了一本综合全面的“Programming Entity Framework, Second Edition”(O’Reilly,2010)。要了解其作品的更多信息,请访问 learnentityframework.com。想尝试可以用 Entity Framework 实现的一些高级任务吗?请阅读 Lerman 在 2010 年 12 月的专栏文章“分析实体框架中的数据库活动” (bit.ly/flLwdw)。

image: Julie Lerman’s Book

Julie Lerman 的书籍

当然,LINQPad 也是学习 Entity Framework 的好工具。有关完整的教程,您可以查看“结合使用 LINQPad 和 Entity Framework”(bit.ly/hUBRu0)。

WCF 数据服务和 OData

WCF 数据服务(以前称为 ADO.NET Data Services)让您可以使用 OData 协议 (odata.org) 通过 HTTP 共享、使用和更新数据。和 Entity Framework 一样,WCF 数据服务也使用实体数据模型 (EDM) 来连接数据源和程序实体。您可以从 bit.ly/hnuvwv 阅读 MSDN 上有关 WCF 数据服务的更多信息。

为了帮助您入门,Shayne Burgess 在文章“通过开放数据协议构建富 Internet 应用程序”中介绍了使用 OData 和数据服务的基础知识,这篇文章发表在 MSDN 杂志 2010 年 6 月刊 (bit.ly/gPZGDc) 上。

不确定要在您以数据为中心的应用程序中使用哪个 WCF?Tony Sneed 撰写了一篇深度评论 WCF 数据服务对 WCF Soap 服务 (bit.ly/icbLnR),可以帮助您了解每种方法的长处。

要不要将这些技术一起放入一个有趣的示例中?Shawn Wildermuth 在他的文章“WCF 数据服务和 jQuery”(bit.ly/hVCMWd) 中构建了一个 Web 应用程序,该应用程序使用 jQuery 检索 JSON 格式的数据,通过 Entity Framework 将数据公开为实体,然后使用 WCF 数据服务通过 REST 公开这些实体。我想我们这还有一位“Buzzword Bingo”获奖者。

在了解数据源方面,Visual Studio 2010 Open Data Protocol Visualizer 扩展 (bit.ly/dWt19X) 是一款得到高度评价的工具,它以简化图表的形式显示由 WCF 数据服务提供的类型和关系。要了解它的工作方式,请阅读 Audrey Petit 的博客文章“Visual Studio 2010 的 Open Data Protocol Visualizer 扩展”(bit.ly/hKSKRx)。

image: Open Data Protocol Visualizer

Open Data Protocol Visualizer

NHibernate

NHibernate (nhforge.org) 是一个开源 O/RM 框架,用于使用 .NET Framework 的开发。和 Entity Framework 一样,NHibernate 使您可以将数据库映射到实体,并允许对数据进行简化的编程访问。

因为它是社区驱动型的成果,所以您会找到许多有关学习 NHibernate 和在项目中使用它的有用资源。投入进来然后开始编码是一种很好的方法。Gabriel Schenker 发表在 dotnetslackers.com 上的系列文章“您的第一个 NHibernate 应用程序”(直接链接: bit.ly/exFATb)就是这种类型的教程。另一个是 Mitch Fincher 关于 Nhibernate 的“通过代码示例学习”(bit.ly/e91Nzv)。

您是不是更喜欢观看视频?那好,您可以观看 Nhibernate 之夏 (summerofnhibernate.com) 系列截屏视频,它将会引导您逐步完成从开始编写第一行查询到编写建模继承和管理会话状态这样的高级查询。有许多可供观看的内容,所以准备好爆米花和几个晚上的学习时间吧。

Zentity

许多商业和社会应用程序依靠数据运行,但研究人员正不断地从临床研究、实验结果甚至是天体观察中创建和整理着大量的数据源。作为对这种情况的回应,Microsoft Research 发布了 Zentity 2.0 (bit.ly/fiFPb3),这是一个数据库框架,可用于使用 SQL Server 2008 进行数据的存储、访问和分析。新版 Zentity 利用 .NET Framework 4,支持 WCF 数据服务和 OData、LINQ、Entity Framework、Windows PowerShell 和其他功能。

Terrence Dorsey MSDN 杂志 *的技术编辑。*您可以在 terrencedorsey.com 上阅读他的博客,或通过 Twitter 关注他:@tpdorsey