In Soma’s previous blog post, we announced the first CTP of the Roslyn project. Roslyn is a forward looking project that enables the C# and VB compilers to be used as a service. Today, as Jason Zander discusses in more detail, we’re excited to announce the second Roslyn CTP – with full support for Visual Studio 2012 RC. You can get the CTP from http://msdn.com/Roslyn/, or go directly to the download. We’ve also released a NuGet Package that includes the Roslyn Compiler APIs and pieces that do not have a dependency on Visual Studio.
- The main changes in the June CTP are: Support for Visual Studio 2012 RC
- Updated language support
- Updated APIs based on feedback from users
- For more details on what is contained in the CTP release, see our previous post.
Support for Visual Studio 2012 RC
This version of the Roslyn CTP supports both Visual Studio 2010 and the Visual Studio 2012 Release Candidate. At install time, the Roslyn CTP will determine what versions of Visual Studio you have installed, and add support for them.
NOTE: For VS2010 you need to have SP1 and the VS SDK, and for VS2012 RC you also need to have the VS SDK.
Updated language support
Since the last CTP, the team has been working hard on implementing new language features to reach parity with the existing set of features as quickly as possible. We’ve made a ton of great progress and have filled in a significant number of language features. Some significant new features include:
- Anonymous types
- Named and Optional Parameters
- Additional statements and expression types (using, lock/SyncLock, etc)
Feedback on API changes and additions
In response to feedback from our first CTP, we’ve made numerous changes and additions to our API to make it easier to understand and work with the APIs. Some significant examples include:
- Introduction of “With()” and “Add()” methods on many Syntax types to facilitate easier modifications.
- SemanticModel.GetSemanticInfo() has been replaced by a set of targeted methods that provide information specific to the type of syntax node being bound.
- Several APIs have been moved down a layer so that they can be called from command line tools, on web servers, etc., without a dependency on Visual Studio.
- Find All References
- Name simplification
- A new set of APIs has been introduced to allow generation of types of members in a language agnostic way.
Feedback and Expectations
The primary goal of the Roslyn CTP is to gather feedback on the public APIs and give you an early look at the Interactive window feature. The CTP is intended for preview-use only. Please use it to build rich code tools and extensions so that you can learn about the APIs and provide feedback. This is only a technology preview, and there are known issues and bugs. While the shape of the public API surface is complete for the compilers, we are in the process of implementing the full C# and Visual Basic languages.
Development Lead (Microsoft “Roslyn”)
Kevin is the Development Lead for the IDE Services team in Roslyn. Before joining the Roslyn project in 2009, he was a member of the C# IDE team for 7 years, working on features like IntelliSense, Colorization, Refactoring, and Formatting. Kevin has a degree in computer engineering degree from the University of Waterloo, a beautiful wife and three children. You can find him on Twitter at http://twitter.com/pilchie.