技术开发 频道

Visual Basic 9不完全入门之DLinq进阶

IT168技术文档】

    随着 Beta 2 的发布,无数的新特性涌到程序员的面前。历经千辛万苦,我也安装上了 Visual Studio 2008 Standard Edition Beta 1。这一篇文章随之改变内容,转而描述 Beta 2 中 DLinq 振奋人心的增强。此处仅列出一部分,性能的评估则移交 LINQ 性能分析系列,日后再谈。

    命名空间的更改

   
虽然命名空间的更改不在增强之列,但是由于其重要性(为此我耗费了将近20分钟),还是有必要在此叙述。我建议各位重新创建 dbml 文件,因为文件格式似乎已经不兼容。所有的关于数据映射的属性都被移到 System.Data.Linq.Mapping;一部分接口则转移至 System.ComponentModel 中。如果您是从 Beta 1 迁移,这项问题极其重要。

    更多的谓词支持

   
Beta 1 中的 LINQ 仅仅支持少数常用的谓词,这使得其余复杂的操作难以完成。晦涩难懂的 Union,Join 用法,使人难以忍受。所幸,Beta 2 中的 LINQ 终于对它们提供了完整支持。类似于 Group By,Join 等的谓词可以像 T-SQL 那样工作。从此,DLinq 的 SQL 支持不再仅有 Where 等最基础的功能。

    加强的设计器支持

   
Beta 2 的 DLinq 设计器较 Beta 1 有相当的改进。主要包括增强的自定义功能,如实体类命名空间设置;同时,界面效果也更漂亮了。稳定性和速度都有了大幅提升,这一点在我个人当前的 Soobb 项目中深有体会。编译器也更稳定了,各种奇怪的 BUG 减少了许多。你可以看到,现在的聚合与继承的连接线终于有了区别,并且采用了折线。不过,似乎 Partial 实体类在 IDE 中会出现一个奇怪的错误,提示两个类名称冲突。

    其他的一些特性

    既然这里谈的是新特性,那就多说两句吧。作为完整功能测试版,Beta 2 拥有所有 Visual Basic 9 的新特性,同时包含了 Go-Live 许可证。这意味着未来的 Visual Studio 2008 版本(Beta 3?RC?)将不会作出大的变动。是的,您已经可以将您的项目迁移至 2008,不会有任何问题——.Net Framework 3.5 是完全向下兼容的。CLR 与 2.0 没有变化,所以 ASP.Net 的运行库始终是 2.0(这一点曾令我大惑不解)。

    匿名方法为程序员提供了更高的灵活性,不再需要不停地定义 Private Sub 了;可为空类型语法增强也终于具备了。这个功能似乎是极小的语法糖,但是偶尔也有些作用。

    Visual Basic 的匿名方法

Dim Temp = (Function (()Function(l As Integer) l + 1)(30)   Console.WriteLine(Temp)

    结语

   
最近真是忙得过头,昨天才去安装的服务器,还在配置中... Soobb 开发周期又紧,恐怕中旬以前没有办法再写文章了。顺便预告一下下一个系列:LINQ 性能分析系列,欢迎您对此关注。还有一点提醒一下,就是 Beta 2 中的 DLinq 仍然不支持本地集合查询。

0
相关文章