LINQBridge让你的LINQ代码可在.NET 2.0下运行
假如你已经喜欢上LINQ,并且已经离不开它,一写代码就会用到扩展方法,Lambda表达式和LINQ;但是恰恰,你无法说服你的客户的机器上都装上.NET 3.5,这时候怎么办呢?这时候,LINQBridge可以让你的问题迎刃而解。
LINQBridge是《C# 3.0 in a Nutshell》的作者开发的一个程序集,它重新实现了.NET 3.5中所有标准的查询操作,以及泛型的Func和Action代理(delegate);通过利用VS2008的多定向(multi-targeting)特性,大家就可以在VS2008中使用C# 3.0的语法编写运行于.NET 2.0上的程序了。LINQBridge支持扩展方法、Lambda表达式和LINQ的基本语法(只能操作LINQ to Objects)。
LINQBridge的工作原理是基于以下几个技术:
- .NET 3.5的CLR还是CLR 2.0,.NET 3.5只是添加一些额外的程序集,以及C# 3.0的编译器(主要针对一些新的语法)
- 在VS 2008中,不管把target设定为那个版本的.NET,都是使用C# 3.0的编译器(对此,我以前有随笔谈到过,在.NET 2.0中还是直接能用自动属性)
- C# 3.0的新特性其实是基于泛型和匿名代理的基础上的
要使用LINQBridge,其实很简单,首先建立一个.NET 2.0的项目,或者把目标框架(Target Framework)改为.NET 2.0;然后把LINQBridge.dll引用进来;最后在代码文件中添加相应的命名空间(LINQBridge使用的命名空间和System.Core的一样),就可以编写LINQ代码了。
以后,如果你要升级你的运行环境到.NET 3.5,只需要把LINQBridge的引用替换为System.Core就行了。无需更改任何代码。
如果,程序运行的目标机器上安装了.NET 3.5的话,使用LINQBridge也不会产生任何冲突。
上面谈到的都是要基于VS 2008来开发,当然在C# 2.0和VS 2005中还是可以使用LINQBridge的,但是没有了扩展方法、Lambda表达式和查询语法,查询操作的编写将变得非常笨拙。
LINQBridge不仅对于无法马上部署.NET 3.5的客户机器有用,对于ASP.NET的程序也同样有用,比如你现在拥有一个ASP.NET 2.0空间,但是希望使用新的C# 3.0语法。不过由于LINQBridge不支持LINQ to SQL,所以要访问数据库的话,只有使用其他数据访问技术,如LINQ to NHibernate、LINQ to LLBLGen或LINQ to DB4O等。
LINQBridge是免费使用的,并提供源代码。下载地址和英文详细说明为:http://www.albahari.com/nutshell/linqbridge.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器