LINQPad是一个强大的客户端/服务器应用程序。而对于大多数客户端/服务器应用程序,有许多客户端和一个服务器,LINQPad有一个客户端和许多服务器!使用可立即测试任何C#/ F#/ VB片段或程序,在LINQ(或SQL)中查询数据库 – SQL / Azure,Oracle,SQLite,Postgres和MySQL。享受丰富的输出格式,可选的自动完成和集成调试以及使用您喜欢的.NET语言编写脚本并自动化。对于每个查询,LINQPad创建一个单独的服务器,该服务器在其自己的进程中运行并单独执行查询。此隔离可防止查询相互干扰(或UI),并允许LINQPad安全地取消查询而不会污染其他应用程序域。过去,LINQPad使用内存中的Remoting通道与服务器进程通信。现在它使用在Windows共享内存上运行的自定义编写通信层(是的,有很多指针!)这提供了更快,更可靠和完全异步的通信层。使用Microsoft Roslyn库编译您的查询(过去它使用.NET的CSharpCodeProvider和VBCodeProvider)。因为C#和VB是静态类型的,所以您引用的任何数据库对象都需要支持类型化的DataContext。为了提高性能,LINQPad动态构建了类型化的DataContexts,使用Reflection.Emit或者生成和编译源代码。LINQPad的转储命令提要输出到其显示使用嵌入式的Web浏览器的HTML流(您可以通过右键单击一个查询结果,然后选择“查看源文件”,转化为HTML通过做看这个叫Hyperlinq库。该单击超链接时,延迟扩展结果和延迟获取其他数据通过JavaScript工作。这意味着大多数HTML通常在查询完成执行后预先填充.lambda窗口使用自定义表达式树访问者填充(只需调用ToString on表达式树不好,因为它将整个输出放在一行上。LINQPad的查询编辑器使用Actipro的SyntaxEditor控件(非常精致的产品)。语法高亮,红色波浪下划线和自动完成等功能要求您在词法和语义上解析源代码。词法分析意味着读取原始文本流并将其分解为令牌流; 然后,语义解析器读取这些令牌并找出它们在上下文中的含义,从而发出代码DOM(称为抽象语法树)。最后一步是将AST中的节点解析为.NET类型和成员(绑定)。
功能特色
1、适用于C#、F#和VB的终极暂存器
LINQPad不仅适用于LINQ查询,还适用于任何C#/F#/VB表达式、语句块或程序。结束数百个Visual Studio控制台项目使源文件夹混乱,并加入LINQPad脚本编写程序和增量开发人员的革命。
引用你自己的程序集和NuGet包。在LINQPad中对想法进行原型设计,然后将工作代码粘贴到Visual Studio中。或者直接从命令行调用脚本。
想要测试脚本的变体吗?只需按一下键盘即可克隆您的查询!
体验LINQPad丰富的输出格式、可选的调试器和自动完成功能,以及动态开发和即时反馈的魔力!
2、现代查询语言中的查询数据库
使用LINQPad,可以直接在LINQ(以及SQL)中以交互方式查询数据库。LINQ的一大优势是为所有关系自动生成关联属性(从外键约束推断),因此无需联接即可访问相关行!LINQPad在后台使用自定义的高性能基架引擎,并包括SQL Server、SQL Azure和Oracle、SQLite、PostgreSQL和MySQL。
转储时,关联属性显示为延迟超链接,只需单击它们即可展开。您可以以交互方式遍历整个数据库!
当您需要时,您仍然可以使用老式的SQL进行查询。使用LINQPad查询SQL Server、SQLite、Oracle、MySQL或PostgreSQL—无需安装任何客户端软件!
3、缓存结果以供后续使用
使用LINQPad,可以使用Util.Cache缓存中间数据。编辑并重新运行查询无需重新计算以前的结果。
这提供了REPL(读取-评估-打印-循环)的性能优势,同时可以轻松跟踪您正在做的事情。
4、体验传奇的垃圾场!
LINQPad的Dump方法以其几乎可以吃任何东西的能力而闻名!
它通过多种启发式方法进行调整,可智能地遍历对象图以获得最佳输出。它甚至可以将懒惰的对象变成超链接并将异步值转换为占位符,其内容将来会实现!
图像和位图呈现为图像和位图,并且来自Reactive Extensions和Dataflow的类型完全动画化。
转储任何WPF或Windows窗体对象,它实际上将呈现。
调用.图表扩展方法,使用LINQPad的内置图表引擎将数据输出为图表。
当您需要传统的数据网格或调试器监视窗口时,它也在那里。
5、一个严肃的快速编码工具
凭借其对高级C#功能(如async/await和unsafe)的支持,LINQPad能够进行严肃的快速编码工作。
比如从头开始编写神经网络!
使用该指令导入其他查询或文件。.cs#load
引用Visual Studio解决方案中的项目程序集,并使用LINQPad作为交互式测试工具。或者使用LINQPad提供解决方案任何部分的即时入口点。
使用LINQPad生成脚本并自动执行云管理任务。LINQPad包括用于安全存储API密钥的集成密码管理器,以及MSAL/OAuth前端用于在执行中保留令牌的多重身份验证。
使用轻量级调试器单步执行代码,并使用符号导航、大纲和书签快速移动。
LINQPad也是学习C#的好方法:它附带了本书中的所有1300个示例,简而言之,C#12以及Jon Skeet的C#in Depth中的交互式示例。
6、一把 .NET 瑞士军刀
曾经需要对你的代码进行基准测试吗?现在,您只需按一下键即可完成!LINQPad 使用工业级 BenchmarkDotNet 获得准确的结果,并通过可自定义的图形实时可视化工具呈现结果。无需再编写样板设置代码,也无需再挖掘基于文本的日志!
需要编写正则表达式吗?按 Ctrl+Shift+F1,将出现交互式正则表达式赋值器!这实际上完全是作为 LINQPad 查询实现的 它使用 LINQPad 的 HTML 控件。您可以对此查询进行更改,也可以将其用作编写自己的交互式查询的模板。
需要生成 Excel 文件吗?LINQPad 包括一个自定义的高速 Excel 导出引擎,该引擎使用自动筛选器和表生成本机.xlsx文件 — 只需一行代码。 还有一些用于创建多工作表工作簿的选项,您甚至可以逐个单元格填充电子表格
7、LINQPad 易于学习
LINQPad 附带了一个集成的教程/参考,其中包括交互式示例查询。浏览树或按 Ctrl+F1 进行搜索 — 您会找到一个 演示 LINQPad 的几乎所有功能和应用程序的示例。