• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

LINQ:展望未来数据库发展趋势

发布: 2008-5-07 14:02 | 作者: 网络转载 | 来源: 本站原创 | 查看: 121次 | 进入软件测试论坛讨论

领测软件测试网 对于LINQ而言,现在说它能成为数据库发展趋势的代表真的还为时过早,它的全面使用还需要通过几道坎,但是它确实提供了很多吸引人的亮点。对于SQL开发者和BDAs,LINQ是值得我们学习的一门新技术。

  LINQ的优点

  LINQ的主要优点体现在它是一种标准,不但可以在一个关系数据库中进行查询操作,而且可以在文本文件、XML文件以及使用同一语法的数据源中查询数据。此外,任何.NET兼容的语言,比如C#,VB.NET等都可实现LINQ标准。

  查看与体会LINQ

  以下代码段(在C#中)使用Northwind数据库演示了一个简单的LINQ代码块。为了能全面看到LINQ的工作过程,我们以一段简单C#3.0程序为开始,这段程序使用标准查询操作符处理一个数组的内容。
using System;   using System.Query;   using System.Collections.Generic;   class app { static void Main() {   string[] names = { "Alpha", "Brian", "Connie", "David",   "Frank", "George",   "Harry", "Inigo" };   IEnumerable expr = from s in names where s.Length == 5   orderby s   select s.ToUpper();   foreach (string item in expr) Console.WriteLine(item);   }   }
  程序的输出为:
ALPHA   BRIAN   DAVID   FRANK   HARRY   INIGO
  以上范例程序演示了LINQ代码风格以及将代码转移到前端的过程。然而在我看来,这一代码段应该放置在后端中(尽管前端的代码整洁且比较透明)。

  我对前端与后端的观点

  我将论述一下客户端服务配置前端与后端的关系。后端为处于服务器的数据库本身,而前端为客户应用程序,即包括任何以常用开发语言编写的程序(比如Visual Basic,C++以及PHP)。当提及前端时,我们通常也包括微软的Access,Excel以及Word等程序。

  在一个少于100台电脑的小型组织中,我以上提到的观点(即LINQ程序放在台端)看似很理论性,但后端的LINQ相比于放置在前端则更具有逻辑性。比如在一个程序段中,建立一个记录集,使用一个或多个参数限定选择规则,然后以一列或多列排列它们。如果我将程序的逻辑判断部分放置在任一给定的前端中,那么在下几周或几个月内,我必须在新增加的前端程序中复制这一LINQ程序段。尽管我们可以认为这些逻辑判断是独立存在的语言,但实际操作起来却并非如此。

  开发过程通常从典型的客户-服务器过渡到三层架构(DLL-hell,SOAP等)的各种形式。在这些架构中,前端程序告诉一个中间架构,这一中间架构包含很多逻辑,并以前端关键内容作为地址。中间架构的作用是实现数据库的匹配。这种交流过程因使用的前端语言和中间架构的不同而不同,中间架构可以与数据库服务器相互通讯,前端程序只负责与中间架构的联系。我的观点是,前端程序负责的部分要尽量减少。你可使用一个中间架构,然后将所有逻辑转移到中间架构,并把所有设计部分和逻辑判断转移到后端程序。

  我的观点可能有点乐观

  我始终遵循这样一条原则:后端可完成的事情,它就应该完成。基于这一原则,你可以理解我不愿将数据库逻辑判断放置在前端的原因。

  为何我对这一原则如此坚定?因为以我的经验,很多不同的前端程序只和一个数据库连接,这些前端程序可能是Web程序、Visual Studio程序、Delphi程序等。如果将这些代码从后端移动到前端,你必须复制并编译这些代码成为每一前端程序。这对于Visual Studio.NET是有用的,但你或你的老板可能会要求使用其它编程语言?或者,如果你将逻辑判断部分导入到其它数据库,此时该怎么办?

  我的观点也并非得到同行的认可。我知道有些开发者会提出,这种做法是否适合特定的动态查询的程序。我认为,这种情况现在还没有彻底分析清楚,但我认为在这一点上,以上的原则是不合适的。所以我们可以看看其它方法并证明它的正确:在N台电脑中,在前端中建立一个合法的SQL语句,然后将这一语句传递到数据库引擎。

  无论以上的观点是否正确,很多开发者都喜欢将SQL命令放置在前端而不是后端。这一群开发者一般都对LINQ感兴趣。如果此时你也同意我的原则,在开发过程中可能会碰到各种困惑。

  现在定论尚早

  现在定论LINQ是否成为未来数据库发展的趋势还为时尚早。LINQ还需要数据库和应用程序开发的进一步考验。我确实认为LINQ的多数据源功能非常棒,但正如我开始所提到的,我觉得将代码从后端转移到前端是一个错误。

  只有时间能够说明一切。尽管当LINQ的所有优点被得以证明时,我还是坚持我的原则:后端可完成的事情,它就应该完成。

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: LINQ Linq 发展 趋势 数据库 展望


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网