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!
Comments
Anonymous
December 15, 2011
VS 11 sounds exciting! mainly the DirectX. The game foundation in VS is a much needed change. The 3D graphics posted here looks cool :) JScript (interactive) advancements are also welcome. Developer's life will be much easier with VS 11 & .Net Fx4.5. Regards http://www.techno-pulse.com/Anonymous
December 15, 2011
I have 3 questions: What about XAML advances? How does VS 11 improve XAML development and design? Also, where is the Expression team in this endeavor? Will ASP.NET 4.5 contain HTML 5 support/output? Will VS.NET 11 provide emulators for iPhone/iPad along with Windows 8 tablets for at least HTML 5 development and testing?Anonymous
December 16, 2011
The comment has been removedAnonymous
December 16, 2011
I have said it before but all these advances are pointless if the same upgrade pricing policies continue that existed from 2008 to 2010. I am currently using a pirated copy of 2010 purely because of the pricing madness and vs 2011 will go the same way.Anonymous
December 17, 2011
Thanks Stephen. It would be very nice to have all those emulators.Anonymous
December 18, 2011
This is off topic but some of your pictures reminded me how much I hate this. Please go through every dialog in Visual Studio and LET THEM BE RESIZED! Many dialogs will need to change the Anchoring of their elements but there are so many complex screen (Like Options) which contain so much information and you don't let us resize it to see more of it at once. Microsoft years ago made a really bad decision with dialogs - they viewed them as more related to the simple confirmation dialog than a form. As such the view was - Dialogs should by default not be resizable. It would be much better if you took the view to take away the ability to resize and maximise should be justified.Anonymous
December 18, 2011
Chris, the feedback is welcome even if off-topic. Which dialogs in particular do you find most troubling in this regard in Visual Studio 11 Developer Preview? (In the future, you might also share these thoughts on the Connect site.)Anonymous
December 18, 2011
Would love to hear more about the new SharePoint related features in VS 11.Anonymous
December 19, 2011
@Stephen Toub I haven't tried the preview yet but one that irritates me in 2010 is the "Configuration Manager" (Where you set solution/project configuration & platform) It shows 12 projects at a time, but in a solution with lots of projects it's just annoying. As for connect, I once logged a resize request for the DataGridView Column editor (it could be resized but the default was too small & it didn't remember what size you changed it to & it didn't have a maximise btn), and the response was "Will not fix". Connect is great for bug reports, but improvements seem to go on deaf ears.Anonymous
December 19, 2011
Chris, I'll make sure the right folks see your concerns. (As an aside, "won't fix" doesn't mean the feedback wasn't heard, though I do understand it can be frustrating to submit such a request and then not have it addressed.) Thanks for taking the time to share your thoughts.Anonymous
December 22, 2011
What is this new XML technology??? Is it something that I can use with my Xaml???Anonymous
December 31, 2011
Dinosaur, to what XML technology do you refer?Anonymous
January 02, 2012
Hi! Is Silverlight edit-and-continue debugging supported in VS 11? Thanks, ScottAnonymous
January 03, 2012
Hi Scott- Unfortunately, no, EnC is not supported with Silverlight.Anonymous
January 04, 2012
The comment has been removedAnonymous
January 05, 2012
Is there any information as to when VS11 will be released? Also, is there any information about which versions will be offered (Express, Pro, Premium, Ultimate, etc)? Finally, are there any feature matrices available? Often premium features from one version migrate to the lower priced tools in the next version. I'm probably asking questions that cannot be answered yet. NB I echo the comment about the upgrade pricing introduced for 2008 > 2010. I chose to stop developing with the latest tools at home when the Standard edition was axed. I couldn't justify the cost of Pro for some home projects.Anonymous
January 06, 2012
Hi Max- Thank you for the additional feedback on upgrade pricing. The right folks here have seen your feedback, along with that from SAPaleAle2. Your questions are all good ones, but we don't yet have that information to share. Thanks!Anonymous
January 09, 2012
Hi Stephen!!! This new XML technology I refer to is in the screenshots of this blogpost!!! There are files named with .xml and it looks REALLY INTERESTING! I have been learning Xaml for years now but it looks like I have wasted my time!!! It is a wonderful technology but now it looks like this NEW XML technology being used by Microsoft is EVEN BETTER!!! IT'S SLEEKER AS IT HAS ONE LESS PESKY LETTER TO WORRY ABOUT, TOO!!! I cannot wait to use this NEW XML technology and get rid of Xaml FOREVER!!! Lead the way, Microsoft masters!!!Anonymous
January 09, 2012
Hi Dinosaur- Assuming you're referring to the "Schema.xml" and "Elements.xml", those are not related to nor a replacement for XAML. Those are definition files for a SharePoint list; for more information, see msdn.microsoft.com/.../gg276355.aspx. The point Soma was making in this blog post is that Visual Studio 11 now provides a designer that lets you design these lists and have Visual Studio generate the definition XML for you, rather than having to manually craft that XML yourself. I hope that helps.