Visual Studio 11 Platform Tooling Advances

Through my last several blog posts, I’ve highlighted some of the new features in Visual Studio 11 Developer Preview released in September.  All of these posts have concentrated on various advancements that span multiple application types: whether you’re building apps for the client or cloud, such language, framework, and IDE productivity improvements are all applicable.

There is a class of improvements we’ve made to Visual Studio, however, that are specific to particular platform technologies.  Whether you’re building apps for Windows 8, Windows Phone, Windows Azure, Microsoft Office, or beyond, Visual Studio provides platform-specific tooling to build best-in-class experiences. In this post, I want to highlight just a few of the many such improvements that have come in Visual Studio 11 Developer Preview.  We’ve previously talked at length about building apps for Windows 8 and the facilities Visual Studio provides in support of that.  Here I’ll help bring to light a few areas we’ve not covered as much: DirectX and SharePoint.

DirectX

It will come as no surprise to many readers that video games are a huge industry, and on Microsoft platforms, DirectX is the foundation for building games. In Visual Studio 11, we worked on improving the game development experience, specifically in three areas: shaders, assets, and debugging.

The first area of improvement centers around making it easier for developers to build “shaders.”  A shader is a piece of code that runs on the GPU to calculate rendering effects, and with DirectX, shaders are typically written in High-Level Shader Language (HLSL).  Visual Studio 11 includes much improved support for HLSL, from writing and compiling code, to colorization, indenting, and outlining in the editor, to build integration:

Beyond the textual experience, however, is a visual designer that allows you to graphically create effects without having to write the pixel shader code explicitly.  This enables experimentation, such that you can see at each stage of the graph what the output is. Here, I’ve graphically created a very simple shader that just takes two constant color values and adds them together:

Visual Studio then supports exporting this graph into HLSL:

You can build some very sophisticated effects in this editor, which also supports a real-time mode that enables viewing effects that change over time.  Here’s an example that this feature’s development team used as a test case.  While you can’t tell from this still screenshot, many of the nodes in this graph are animating based on the “Time” nodes I’ve highlighted that feed into the graph.

The second area of improvement is around game assets. One of the differentiating factors between developing games and developing many other kinds of apps is that games typically have large numbers of assets that aren’t code.  Historically, these files have been largely opaque to developers.  If a developer wanted to inspect an image, or tweak a model, the developer would typically need to switch to a completely different toolset or enlist the assistance of the artist/designer.  Now with Visual Studio 11, many of these assets (such as .FBX 3D models or .DDS images) can be viewed and manipulated directly in the IDE.  While Visual Studio is not meant to be a robust asset creation tool, this support can aid developers in understanding how these assets fit into their games.

The third area of improvement is around debugging.  When developing applications with DirectX, traditional CPU-oriented debuggers are often insufficient, as developers need tools to understand the behavior of the GPU rendering pipeline. For example, developers may need to understand why a particular entity is being obscured from view, or why a particular pixel rendered with the wrong color.  Visual Studio 11 comes with a set of tools to help debug such errors in code that uses DirectX, tools that enable capturing DirectX frames, getting a history of all of the commands sent to the GPU, seeing all of the events that occurred as part of a specific pixel's rendering, and more.

You can learn more about this debugging experience from the Visual C++ team’s blog.

All in all, game developers should find that Visual Studio 11 Developer Preview provides them with a powerful toolset for improving their time-to-solution and the quality of their results. 

SharePoint

SharePoint is a very successful business at Microsoft.  As was stated in the keynote of the Microsoft SharePoint Conference 2011 in October, Microsoft has sold over 125 million licenses for SharePoint.  Moreover, whereas previously SharePoint was often viewed as a departmental solution, now over 67% of enterprise customers have deployed it for use by everyone in their organizations.  Given SharePoint’s success, we strive to ensure that Visual Studio provides a premier experience for developers building custom solutions for the platform.

Visual Studio 2010 saw the introduction of many features that significantly improved development with SharePoint: “F5 debugging” for SharePoint applications, support for IntelliTrace, templates for projects and project items, integration of SharePoint into Server Explorer, and more.  Visual Studio 11 keeps this trend going by further enabling this important platform.

One of the more common tasks in SharePoint development is creating lists to store information.  In Visual Studio 2010, creating a new list definition involves manually editing XML files to define the details of the list, including its fields, how the list should appear in various views, and so on.  In Visual Studio 11 Developer Preview, you can still edit these files manually if you choose to, but that’s no longer required.  Instead, the release includes a new List Designer that makes it trivial to define and configure these lists.  Here I’m defining an example that would help me track my gift-purchasing for my family and friends this holiday season:

After creating my list from the Add New Item dialog, the new list is added to my solution, and I’m able to configure it with the designer.

Of course, debugging my solution from Visual Studio allows me to see the result of my effort in SharePoint:

Now that I have my solution the way I want it, I can take advantage of another new feature in Visual Studio 11: the ability to publish to remote SharePoint sites (including SharePoint Online in Office 365), and a wizard that makes it easy to do so.

Once published, my solution is available for activation in my SharePoint Online account:

This is just a glimpse into some of the new SharePoint development functionality included in Visual Studio 11.  With support for developing web parts in a sandboxed environment, performance and reliability improvements, simplified templates, improved JavaScript Intellisense, and more, Sharepoint development in Visual Studio 11 is that much easier and more enjoyable.

Namaste!