Asp.net源码交流论坛 Asp.net交流讨论区Asp.net技术文章将VS2005的项目转换到VS2008—使 LINQ能够使用

1  /  1  页    1  跳转
发表新主题 回复该主题

标题: 将VS2005的项目转换到VS2008—使 LINQ能够使用

身份:董事长

 
  • UID:2
  • 来自:北京
  • 精华:27
  • 积分:1696
  • 帖子:1507
  • 注册: 2007-05-17
  • 状态: 离线
  • 威望:54.00
  • 金钱:268.95 元
 
源码发布专家

将VS2005的项目转换到VS2008—使 LINQ能够使用

升级到Visual Studio 2008,来个飞跃。如果您有任何先前版本的.NET Framework 3.5或Visual Studio 2008,那么这些软件都必须在安装Visual Studio 2008 RTM之前被卸载。由于Visual Studio 2008的解决方案文件和工程文

[原文作者]: Benth Massi
[原文链接]: Converting VS 2005 Projects to VS 2008 - Enabling LINQ



        假如现在你有一个用Visual Studio 2005 开发的应用程序你想进一步挖掘和转换它,并开始使用VS2008中的 LINQ功能。那么在这里,我打算简单介绍下使LINQ正常工作, 你需要什么步骤, 这些步骤也同样取决于你需要用到LINQ的什么功能。
        在Visual Studio 2008 中,有多种的对象特性使你能够用.NET 2.0, 3.0 或者3.5框架来在2008的环境中编写程序。Scott Gu的文章 和Rick Strahl的对此都有介绍。这就意味着你不需要为了正常运行先前版本的程序而去安装多个版本的Visual Studio IDE在你的电脑上(注意,但是如果你先前用.NET 1.0 或 1.1开发的,那么还是需要安装2002或2003IDE的)。这是个好消息, 因为它不但节省了磁盘空间和省去了前后的转换,还能够使你获得更多的有利条件像调试和编辑而不需要冒着升级项目文件的风险。但是如果你希望把项目升级成3.5的版本去使用LINQ功能,你需要自己添加一些新的命名空间。
        当你第一次在Visual Studio 2008 中打开一个Visual Studio 2005的项目时,系统会提示升级你的项目。实际上这样做是为了升级了你的项目文件(.vbproj) 和解决方案 (.sln) 使其和2008兼容。而这个项目仍然可以用2005打开,它是向下兼容的。但是解决方案文件是单一的,因此如果你是个团队开发项目并且混合有2005和2008 两种版本IDE时,你需要保留两个解决方案,不过幸运的是,你的项目文件(比解决方案要有更多的变化)是可以共享的。
      如今所有的这些升级过程所做的是同时升级项目文件和解决方案,你的程序仍然以.NET2.0的平台为对象,为了升级你的程序去使用新的特性比如LINQ功能,你需要去改变到需要的Framework版本和添加一些新的引用。你也希望根据那些特性打开新的推断特性的选项,这允许编译器通过估计右值表达式去推测出局部变量的申明类型。这将对编写LINQ的查询非常有用。为了支持它,在解决方案资源管理器中双击我的项目打开项目属性,选择编译标签,选择下方的“On”按钮。
      现在去改变目标Framework,点击"Advanced Compile Options..."

 附件: 您所在的用户组无法下载或查看附件
      选择Framework 3.5,按ok,项目就会被关闭后重新开启。如果你再次打开项目看引用标签你会发现System.Core.dll 3.5的版本被自动的引用了。但是为了能使用LINQ,还需要引入两个命名空间和一些和LINQ有关的引用,为了完全支持Linq to Objects,需要添加 System.Linq的引用。现在你可以编写查询对象的代码如下:

Dim currentFiles = From File In My.Computer.FileSystem.GetFiles(CurDir) _
                  Select My.Computer.FileSystem.GetFileInfo(File)


为了能编写出作用于DataSet数据集的查询,你需要添加System.Data.DataSetExtensions的引用, 之后你要重新运行与你想编写的LINQ程序相关的DataSet的生成器。右键DataSet 选“Run Custom Tool”,  如此会重新产生DataSet 编码,这个编码可以使DataTables  继承位于System.Data.DataSetExtension 命名空间里 的一个叫做TypedTableBase的LINQ-ready 的类。  接下来你就可以在已经被定义的DataSet上编写程序了,例如:

Dim total = Aggregate Products In Me.CategoryProductDataSet.Products _
            Where Products.CategoryID = 1 AndAlso _
                  Products.Discontinued = False _
            Into Sum(Products.UnitPrice * Products.UnitsInStock)   


如果你要开始使用LINQ 对XML 支持,你需要添加向System.Xml.Linq.dll的引用以及加入 System.Xml.Linq 命名空间,之后你就可以编写作用于xml的语句了 如:


Dim survey = XElement.Load(CurDir() & "\questions.xml")
Dim questions = From q In survey...<question> Select q


最后,如果你想要在你最新升级的项目中使用LINQ to SQL,那也是相当简单的。只要右键选择添加新的项目并选择“LINQ to SQL”类模板,它将会开启一个新的O/R设计器并且自动的为你添加System.Data.Linq.dll的引用。这允许你编写类似下面的查询(依靠SQL-server):

Dim countryList = From Customer In Db.Customers _
                  Where Customer.Country <> "" _
                  Order By Customer.Country _
                  Select Customer.Country Distinct


希望我已经清楚的呈现了怎么把你当前的项目中转换到VS2008使用LINQ的第一步, 那么你还等什么呢。


本文Tags: VS2008 | LINQ | vb.net | 查看所有>>
- Framework 3.5 下载地址 (2007-11-17 17:29:00)
- Visual Studio 2008 ISO文件下载 (2007-11-18 12:14:00)
- VS2008针对VS2005的性能改进 (2007-11-27 18:04:00)
- LINQ是个啥东西? (2007-11-27 18:08:00)
- 用vb.net创建access数据库 (2007-11-29 15:05:00)
- VS2008 TeamSuite 初试 (2007-11-29 15:14:00)
51aspx 最后编辑于 2008-03-06 10:59:23
 
技术问题请直接发布到论坛,合作及咨询请加技术支持QQ:793095132
问题搜索请点击
引用 回复
 
1  /  1  页    1  跳转
发表新主题 回复该主题

现在时间是:2009-01-08 03:56:06 京ICP备06046876号