How-To's

Windows Runtime Support in ReSharper 7

The forthcoming release of Windows 8 introduces the new Windows Runtime programming model (also known as WinRT). Since WinRT can be programmed in languages that ReSharper already supports (C#, VB.NET and JavaScript), it’s only natural that ReSharper 7 comes with comprehensive support for WinRT development.

C#, VB.NET and XAML Support

ReSharper continues its support of C#/VB.NET and XAML files with the following features:

  • Code completion is provided in both code and XAML files. In XAML, ReSharper is aware of the new namespaces and URL formats, and is capable of offering correct completion options depending on context:

  • Code inspections continue to provide developers with early warnings of potential problems in code:

  • Quick-Fixes are, as always, used to offer quick ways of fixing a particular problem.

  • Context navigation lets you quickly move around your solution. This mechanism is acutely aware of WinRT-specific structures such as variant resource naming conventions:

  • Reference optimization support is provided for C# and VB.NET projects:

JavaScript Support

Unlike the C#/VB.NET WinRT development, which clings to its WPF/Silverlight roots, the JavaScript WinRT development model (also known as WinJS) is entirely different. Nonetheless, ReSharper 7 supports it too with the following:

  • Code completion is supported in HTML, CSS and JavaScript parts of the application, and even in JSON attributes within HTML:

  • Completion is also available for imported WinRT components. For example, importing this class:

    …results in the following completion list in JavaScript:

  • Naturally, navigation and search functionality works accross WinRT projects. In the above example, searching for uses of Person in a C# project will take you to the WinJS project:

  • Create from Usage also works in cross-project scenarios. For example, if you create a property for an imported component in a JavaScript project…

    … it will be automatically created in the project where the component is defined:

  • Refactorings such as Rename also correctly support cross-project scenarios. Performing a refactoring on the projected property offers the chance to rename the property in the referenced component:

    Performing the renaming changes the C# property to FullName while adjusting the projected property to fullName.

And, of course, most of the existing features supporting C#, VB.NET, XAML, CSS, HTML and JavaScript are fully available to WinRT developers.

image description