写点什么

用 Roslyn 项目分析代码

  • 2012-04-27
  • 本文字数:620 字

    阅读完需:约 2 分钟

微软这个月在 Redmond 召开了 Lang.NEXT 大会,会上有一个演讲,演示了 Roslyn 项目这个代码分析工具。Dustin Campbell 的演讲“更深入了解 Roslyn 项目”对它做了介绍,并以一个示例项目代码的构建作为结束。

Roslyn 框架并没有打算用来作为可定制的编译器,它的目的是将 C#和 Visual Basic 的使用尽可能最大化。这两个语言的编译器都已经全部重新编写,这样 Roslyn 的 C#编译器用 C#开发,Roslyn 的 VB 编译器用 VB 开发。Campbell 发现:这让原来的编辑器中很多不合理的地方和 bug 都有机会修正。

Roslyn 的设计特性包括:

  • 不可变:对象不能改变,要想改变,只能在原来版本上创建新对象。
  • 完整:源代码重新表示,包括空格、注释、错误等等。
  • 弹性:用容错来处理错误。比如:失败的代码上几乎总是会做到完成语句,这样让分析器必须可以处理。
  • 高效:项目在构建快照上体现了效率,而且能够增量分析代码。

当 Roslyn 环境打开后,存在两个活跃的工作空间实例。第一个是传统工作空间,存留现在加载的 VS 解决方案。另一个实例是交互窗口(REPL)。这种分离有助于语句完成,并让 IntelliSense 在开发环境中的代码提示更为正确。

Campbell 指出:Roslyn 在 10 月份会以 Beta 版本提供,发布版本代码(1.0)不会与 Visual Studio 11 一同交付。实际上,它会作为未来 VS 的一部分发布。尽管 Campbell 没有明确说明:考虑到 Beta 版本支持 VS2010,看来微软会将其独立于正式的 VS 发布进行部署。

查看英文原文: Code Analysis with Project Roslyn

2012-04-27 11:092037
用户头像

发布了 479 篇内容, 共 168.4 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试/测试开发/全日制 |从Git到Jenkins:Python全栈开发中的版本控制与自动化

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发实战:利用Redis提高系统性能

测吧(北京)科技有限公司

测试

博通集成在其Wi-Fi芯片组上集成Alexa Connect Kit

财见

创业清华人丨 乔嘉林:破茧成蝶,时序数据库赋能工业物联网

Apache IoTDB

当浏览器能够自动隐藏用户IP地址,“IP数据库”的出路在哪里?

郑州埃文科技

IP

软件测试/测试开发/全日制 | Python全栈开发中的自动化部署与持续集成实践

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发:构建基于RESTful API的微服务

测吧(北京)科技有限公司

测试

云渲染适合什么场景下使用?

Renderbus瑞云渲染农场

云渲染 渲染农场 动画渲染 效果图渲染

2024效果图渲染用什么配置的电脑?效果图网络渲染

Renderbus瑞云渲染农场

云渲染 渲染农场 Renderbus瑞云渲染 效果图渲染

软件测试/测试开发/全日制 | 深入学习React:Python全栈开发中的前端框架精要

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |构建智能Web应用

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |使用Django构建高效的Web应用

测吧(北京)科技有限公司

测试

2024第十届上海国际智慧工地展览会

AIOTE智博会

智慧工地展览会 智慧工地展会 智慧工地展

软件测试/测试开发/全日制 |Python全栈开发中的缓存技术应用与性能优化

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发:利用RabbitMQ构建高效的消息队列系统

测吧(北京)科技有限公司

测试

SQL 解析与执行流程

KaiwuDB

数据库 sql

软件测试/测试开发/全日制 | Python全栈开发实战:构建安全可靠的Web应用

测吧(北京)科技有限公司

测试

软件测试 /测试开发/全日制|Python全栈开发:使用AJAX进行前后端数据交互

测吧(北京)科技有限公司

测试

博通集成发布BK3633 Apple Find My网络配件解决方案

财见

软件测试/测试开发/全日制 | Python全栈开发:安全防范与Web应用的漏洞预防

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |从Flask到FastAPI:Python全栈开发中的后端框架比较

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发:构建基于GraphQL的现代Web应用

测吧(北京)科技有限公司

测试

2024年CoinList上第一个项目Subsquid

币离海

Coinlist Subsquid SQD

2023 IoTDB Summit:华润电力技术研究院副院长郭为民《新型时序数据库在智能发电领域的应用探索与展望》

Apache IoTDB

物联专栏丨物模型,设备对话基础

inBuilder低代码平台

开源 低代码 物联网

软件测试/测试开发/全日制 | 理解深度学习在图像识别中的应用

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 | Python全栈开发:学习使用Nginx配置Web服务器

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发:利用OAuth与JWT实现身份验证

测吧(北京)科技有限公司

测试

软件测试/测试开发/全日制 |Python全栈开发实战:搭建强大的Web应用服务器

测吧(北京)科技有限公司

测试

用Roslyn项目分析代码_.NET_Jeff Martin_InfoQ精选文章