Announcing the Microsoft “Roslyn” June 2012 CTP

Announcing the Microsoft “Roslyn” June 2012 CTP

Rate This
  • Comments 15

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.

  1. The main changes in the June CTP are: Support for Visual Studio 2012 RC
  2. Updated language support
  3. Updated APIs based on feedback from users
  4. 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
  • Queries
  • Events
  • Indexers
  • 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.
    • Formatting
    • 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.

Please try out this new Roslyn CTP, and give us feedback.  You can ask questions on our forum, enter bugs on our Connect website, or feel free to reach out on Twitter using the #RoslynCTP hashtag.

Thanks,
Kevin Pilch-Bisson
Development Lead (Microsoft “Roslyn”)

KevinPilch-Bisson-200x200Kevin 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.

Leave a Comment
  • Please add 2 and 6 and type the answer here:
  • Post
  • Awesome!! I am looking forward to using Roslyn June 2012. Keep up the great work!

  • P.S.  Is "Roslyn" still a codename or is it the real name?

    P.S.S.  Is there going to be a full release of Roslyn (Roslyn 1.0)?

  • @Nevin -- Roslyn is a code name. When we eventually ship, "Roslyn" will be the new C# and VB compilers and editing experiences for Visual Studio.

  • @Dustin -- Thanks!

  • Great stuff!  How do I go about adding my own assembly ( DLL ) to the C# Interactive Window?  Meaning, I can add a basic one provided... using System;, but what about one I created... using MyClass;?

    Thanks again and great job!

  • @shaggygi:

    The Interactive Window supports #r directives. So, you can reference assemblies in the Interactive Window like so:

    #r "System.Drawing"

    #r "System.Windows.Forms"

    In addition, if you want to "seed" the Interactive Window with a project that your working on, just open your solution, right-click on the project in the Solution Explorer and choose "Reset C# Interactive from Project". That will build your project and reset the Interactive Window with the references from your project and your built assembly.

  • Thanks @Dustin.

    I was able to get the assembly to work using the #r statement.  However, when trying to "seed" in the Solution Explorer I get an "Invalid assembly name" popup error.  Did I do something wrong or are others seeing this error?

    Thanks again.

  • Its a pity that this little gem has been so over shadowed by CAPS.

    This is truly a feature that I have been eagerly waiting for :)

  • Kudos! In light of the other changes in Visual Studio 2012, I expect Roslyn to be a very important component, with one of the first full-scale uses being an open-source project to reimplement VS2010's IDE.

  • So does this mean that we would be able to use Roslyn in Silverlight to get some #r "System.Data" action going in there?

  • @Joe Johnston: No, that has nothing to do with the compiler. That was a purposeful choice made by the SL architects.

  • I was really looking forward to “Improve C# Performance” but I guess this is something that will never happen, for the time being, the only think that constantly improves in performance every 8 weeks is the Google Chrome JavaScript Engine.

  • Thanks for the release! I've used it in my code documentation checkin policy ( http://cdcp.codeplex.com ) and until now I have not got any problems.

  • Roslyn, ya hice mi primer sistema con roslyn y todo mi codigo y pantallas son guardados en sql server

    al que le interese le puedo enviar un demo de todo lo que se puede hacer con roslyn, esto lo hice hace 13 años con visual foxpro y lo llame sistema de arquittectura abierta

  • Take a look at qinjection.codeplex.com

    I'm developping it using Roslyn API.

    There is still work to ... so any comments will be accepted.

Page 1 of 1 (15 items)