A Lap Around Visual Studio 11


Published on

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • As with every previous Visual Studio version, Microsoft has pack a lot of changes in. This listing is the product HIGHLIGHTS for Visual Studio 11.
  • The first thing you will notice right away is that the Visual Studio interface has been updated to use the Metro paradigm. If you have been following any of the blogs and user feedback about VS11, you know that people have been upset with the lack of color and all the shouting.
  • Here you can see the default look in the current Visual Studio 11 beta. As you can see there is very little color and the dialog titles and such are in all CAPS.One thing that Microsoft did include was Color themes. This is the Light color theme.
  • And here is the Dark theme.
  • This image shows what we will be getting in the Release Candidate.
  • In the past, changes to Visual Studio prevented projects from being opened in previous versions of Visual Studio. For example, if I had a project that was started in Visual Studio 2008 and I then opened it in Visual Studio 2010 I would no longer be able to open it in Visual Studio 2010. This has been a big bummer, especially if you live on the bleeding edge like I do. With Visual Studio 11 this problem has finally been fixed.In order to provide seamless round-tripping, Microsoft did have to place two constraints on the feature: <click>Round-tripping will only work between Visual Studio 2010 SP1 and Visual Studio 11All projects targeting .NET 2.0 to 4.0 and Silverlight 4 to 5 can round-trip.Once the constraints were in placed, Microsoft determined that there would be four categories of projects.
  • Category 1 – Round-trips seamlesslyThe majority of projects fall into this category. These are projects that will just open in Visual Studio 11 and behave exactly the same as they did in Visual Studio 2010 SP1. You can reopen them in Visual Studio 2010 SP1 where you will find that the modifications you made in Visual Studio 11 are persisted, and the project continues to behave as it did in Visual Studio 11.Within this category there are two types of projects:Require no modifications at all: these projects will not be touched at all when loaded in Visual Studio 11. An example is a Windows Form project.Require modifications that won’t change project behavior: these projects have a hard-coded Visual Studio version in their build targets path which needs to be replaced with a Visual Studio version property in order to enable round-tripping. Visual Studio 11 will automatically do the modifications upon project load and backup the modified files in the solution directory. If these projects are under source control, they will be automatically checked out and edited. These modifications enable round-tripping while not affecting your project behavior. An example is an MVC 3 project.Category 2 – Requires behavioral modifications to round-tripIn order to load these projects in Visual Studio 11, modifications are required which will change project behavior. However, after the modifications, these projects will seamlessly round-trip with Visual Studio 2010 SP1.When you load these projects in Visual Studio 11, you will see the Review Projects and Solutions Changes dialog <click>. For example, when loading a Silverlight 3 project in Visual Studio 11, the Review Projects and Solution Changes dialog will appear as Visual Studio 11 does not support Silverlight 3, and hence the project needs to be retargeted to Silverlight 5.Once migration is complete, the project will open back in Visual Studio 2010 SP1 without any issues. In the case of this Silverlight project, it will be retargeted to Silverlight 5 and will continue to round-trip seamlessly with Visual Studio 2010 SP1 as long as the Silverlight 5 tools are installed on the Visual Studio 2010 SP1 machine.
  • Category 3: Does not round-tripThese projects cannot exhibit the same runtime and design-time behavior when open in Visual Studio 2010 SP1 and Visual Studio 11. When these projects are opened in Visual Studio 11, the Review Projects and Solution Changes dialog will appear <click> informing you that a one-way upgrade is needed. For example, since VS SDK projects are utilized to create extensions for a particular version of Visual Studio, it follows that the projects themselves need to be run in the targeted Visual Studio version.<Click>After migration, these projects will not round-trip and opening them in Visual Studio 2010 SP1 will result in failure to load and an ‘incompatible’ message will be shown.
  • Category 4: Deprecated projectsThese project types are not supported by Visual Studio 11. Opening deprecated projects will launch the migration report in the web browser.<CLICK>In this example, each deprecated project is reported as an error. The links will take you to the help project for that project type which will help you migrate your assets in the deprecated projects to Visual Studio 11.
  • Here are some of the major project types and the round-tripping category they fall in. For the most part, no real big surprises. For more project types, look up Visual Studio 11 Compatibility in MSDN.Couple of comments:MVC 2 is not supported by VS11, so you will have to allow it to automatically upgrade those projects.There is no SharePoint 2007 automatic upgrade to SharePoint 2010, so you have to manually do the upgrade.You’ll notice that the Windows Phone project is no longer supported by VS11. This might seam strange until you read into the rumors of a new Windows Phone programming model based upon WinRT.I’m a bit disappointed by the support for the Visual Studio Database projects. If you have not used these, these are a great way to manage the schema of you database by separating all of the schema objects into SQL files. You note that it is listed as a category 3 (or does not round-trip).
  • With Visual Studio 2010 SP1, Microsoft quietly launched the Microsoft SQL Server Data Tools. Basically, this was brought about as Microsoft was working on SQL Server 2012 to help provide a new interface for the SQL Server Management Tools (which is now Visual Studio). Honestly, I didn’t even hear about this until just recently when I was opening a solution that had a VS Database project. The nice part is that VS11 will automatically convert the project for you, but anyone not on VS11 will need to not only be using Visual Studio 2010 SP1 but have the Microsoft SQL Server Data Tools installed.As you can see, there are a couple of artifacts not supported by the SQL Server Data Tools. For the most part this makes sense as very few were using them. The one that upsets me is the <CLICK> the non-support for database unit tests. These were a great way to test you database objects – especially stored procedures – without having to concern yourself with other layers. In other words, I could have a unit test ensure that the stored procedure actually worked like I wanted to so when I mocked the database call in my business layer testing I was confident things would work correctly all the way through.
  • The primary reason for Visual Studio 11 is to support Windows 8 development. We can easily go through a whole session just talking about the new Windows 8 project templates, so that will have to be another time. My only complaint is that you must be on Windows 8 box to do Windows 8 development, even though Visual Studio has a Windows 8 tablet simulator.
  • Microsoft has really gone out of their way to improve the Solution Explorer. While most of these changes are evolutionary, I’m so glad to see them there. First you’ll notice that there is a bunch of new menu items.<Click> First we have the navigation buttons that make it easier to get back and forth as you do search and such.
  • Next, Microsoft has finally built a collapse all function into the Solution Explorer
  • The Sync with Active Document button allows you to synch the selected item within the Solution Explorer with the one file that you are currently in.
  • Microsoft has really gone out of their way to improve the Solution Explorer. While most of these changes are evolutionary, I’m so glad to see them there. First you’ll notice that there is a bunch of new menu items.<Click> First we have the navigation buttons that make it easier to get back and forth as you do search and such.<Click> Next, Microsoft has finally built a collapse all function into the Solution Explorer<Click> The Sync with Active Document button allows you to synch the selected item within the Solution Explorer with the one file that you are currently in.<Click> This button turns on and off the Preview Selected Items feature. When this feature is on, click on the file in the Solution Explorer will open the file in preview mode. What makes this really sweat is that if I click on a method within class, the preview window will be opened directly to that method.
  • You can now right-click on a method and easily look up information like what other methods it calls, what other methods call it, and what other methods use it.
  • The new search feature provides another handy way to search for files and classes. In this example, I had the solution completely collapsed and I can easily find the file or class I was looking for.
  • Another nice addition to the Solution Explorer is the image previews; hover the mouse over an image and a little thumbnail pops up. Not much to it, but does make it easy to find the image you are looking for.
  • In the past, finding things deep in the IDE has been a challenge. VS11 introduces search abilities at almost every level of the project. Perhaps the biggest change is the introduction of Quick Launch which specifically addresses how to dig inside Visual Studio to find features you need. Let’s take a look.<CLICK>You can find Quick Launch in the upper right corner of the IDE.This is a lot like the Windows key in Windows 7; hit it, type whatever you want then it will find it for you.The most basic scenario for using Quick Launch is finding an item that you have forgotten or don’t know the location of. Let’s say you are interested in something deep in the menu system like viewing your white space. You know what it’s called but you cannot remember where it is at. Go to to Quick Launch and enter the word white. <CLICK>
  • All searches are contains operations so the results will show anything that has the word white anywhere in it. The results are grouped into categories and you simply either select the item from the list using your keyboard, mouse or, if there is a keyboard shortcut listed, take advantage of the shortcut. In this case, you could press CTRL+R, CRTRL+W to show the white space and then go on with your work.
  • We’ve all seen the Find and Replace window in Visual Studio 2010, this is good and all but it takes a lot of real estate and gets in the way. VS11 goes a long way to make the dialog more compact and too the point <click>. If you need some of the options you simply click <click> the drop down and there are the options you’re looking for. If you still want the old style dialog, just click <click> CTRL-SHIFT-F and there it is.
  • Can’t remember all that crazy regex syntax, well there is now a bunch of help built into the Find and Replace dialog.
  • While previous versions had a way to open your project in alternate web browsers, it never worked very well and was difficult to deal with. Now its just as simple as clicking the down arrow and selecting which browser you want.
  • Page Inspector is a new tool that brings browser diagnostics tools into Visual Studio and provides an integrated experience between the browser, ASP.NET, and source code. Using Page Inspector, you can inspect elements in the integrated browser and see exactly which file and lines of code generated that element (HTML literal content and server-side code). It also comes with a DOM Visualizer and CSS Tools in which you can modify the properties and see the changes in the browser in real team.
  • When we debug a web project using Page Inspector, we see the site running in the top left panel; in this example, <CLICK>I have selected part of the Configure ASP.NET Membership heading. We then see this selection in the bottom left panel <CLICK>. We can even see the CSS that has been applied to that element in the next panel <CLICK>.At this point your saying don’t we have all the functionality with the IE9 developer tools? Why yes we do. But this is where this new feature gets really cool, <CLICK> as you will see that the element is selected in the page’s source code. But even more important, is that I can make changes and see those right away in the browser pane.The Page Inspector is really cool, but I do not have time to fully demonstrate it here. I highly recommend looking into this more. There is a really good Channel 9 video you can check out.
  • First Chance ExceptionsIn previous Visual Studio versions, you could only break on unhandled exceptions when debugging JavaScript code. Now there is an option to break on exception whenever its is thrown. Even better, this is set for a given exception type. This is done by going to the Exceptions settings which is accessible through the Debug -> Exceptions menu option. <click> From here you can specify the JavaScript runtime exceptions to break on.The default settings enable first chance exceptions for certain error types, like Object doesn’t support this property or method. When the whole JavaScript Runtime Exceptions category is checked under Thrown, the debugger will break on all runtime errors even if they are not listed in the dialog.First chance exceptions is an important tool when debugging Windows Metro style apps with asynchronous code that users promises. An exception thrown in a function passed to the then method in a promise is normally “swallowed” by the promise and may not be seen by the developer, especially if there is no error handler passed to the promise chain. With first chance exceptions on, this will now be caught by the debugger and you will break at the thrown statement. <click>
  • In this example, the element ID is misspelled so document.getElementById returns null which returns in an “Object expected” exception for which first chance is enabled by default.
  • You can disable fist chance exceptions for that particular error type right from the exception thrown dialog by unchecking the checkbox that says “Break when this exception type is thrown”. That way debugger won’t break next time when that exception type is thrown. The Debug Output window will still contain the information about all thrown exceptions.<CLICK>When breaking on an exception, the Locals window shows the thrown exception object as {exception} which you can expand to see its properties. The number property is what defines the exception type in the debugger exception settings.
  • JavaScript Metro style apps and web apps running in IE10 can us web workers for running JavaScript code in the background. VS11 has complete debugging support for web workers. When breaking in the Page context or a worker context, other contexts also stop running. The current context where a break event occurred is shown in the Debug Location toolbar. Page context is shown as the Main Thread whereas a worker context shows the URI of its source document in the thread name.Switching to a different context while in break mode is not possible: other contexts are suspended but their location is undefined. You can break in a different context by stepping or hitting a breakpoint or exception there.
  • Some other enhancements:Stepping through code during JavaScript debugging shows a significant performance improvement compared to Visual Studio 2010Remote JavaScript debugging is now supported (both on x86/amd64 and ARM remote devices): you can launch JavaScript Metro style apps on a remote device or attach to remote processes running JavaScript codeDOM Explorer and JavaScript Console are two new tool windows, similar to those found in Internet Explorer’s F12 Developer Tools, accessible through Debug -> Windows menu. These windows allow you to work with a running app and try out modifications to styles, the DOM, or code against the running app through the console. In addition, you could make use of the JavaScript APIs for console.log, to record specific events to the console, as you debug.The Call Stack window includes more information such as the line and source file information, giving you more context as you debug without the need of frequently switching to other frames.
  • A common piece of feedback Microsoft received was to make it easier to find and acquire bug fixes and updates. A better way of saying this is that Microsoft needed a way to bring more improvements to developers more promptly, and more easily. There are many factors to balance here, ranging from the kinds of updates Microsoft should offer, how frequently they should offer them, and how exactly VS should tell you something is available. To help frame their thinking, they looked at a lot of updating mechanisms for the kinds of things that work and what doesn’t work – ranging from technologies like Windows Update through to the update mechanism they have for extensions for Visual Studio today. Looking at all of that, Microsoft chose to focus first and foremost on improving the discoverability of updates that they make to VS, focusing on enabling the developer to stay at the tip of quality.<CLICK>The outcome of this work is a service in VS11 called Visual Studio Update or VSUpdate, which alerts you when updates are available. When an update is available, you will get a notification <CLICK> much like when you have an update to an installed extension ready. If you click the notification, the Extension Manager will open, and the update will be visible in the Updates -> Product Updates section. All you have to do is to click on the update button to download the update and start the installation.
  • So should you upgrade now? Couple of things to consider:<CLICK> Microsoft was confident enough with the current beta that they have provided a Go Live License with it.<CLICK> The Release Candidate (maybe called a Release Preview) is coming the first week of June<CLICK> The one gotcha to watch out for is creating new projects using .NET 4.5
  • A Lap Around Visual Studio 11

    1. 1. A Lap Around Visual Studio 11 Chad GreenA Lap Around Visual Studio 11 5/13/2012 1
    2. 2. About Chad Green• HP Enterprise Services o Product Delivery Manager • Identity Management System (IMS) • Information Technology Acquisition Support System • Electronic Leads Management Offline (ELMO) o .NET Technology Leader• Code PaLOUsa o Conference Chairman & President• Louisville .NET Meetup o Organizer• Contact Information o Blog: chadgreen.com o Twitter: @chadgreen o Email: chadgreen@chadgreen.com A Lap Around Visual Studio 11 5/13/2012 2
    3. 3. What’s New in Visual• Visual Studio IDE Studio 11 o Introduce additional run-time constraints and error-checking into your code application performance o Projects and Solutions o Handle binary data from sources such as network protocols, binary file o Networking • Project and solution backward compatibility formats, and raw graphics buffers • New programming interface is provided for HTTP applications • Browser code in Solution Explorer o Use the Windows Runtime in Metro style apps o Windows Communications Foundation (WCF) o Window Management o Add background workers that run in parallel with the main page • New features make it simpler to develop and maintain WCF • Access frequently used files more easily • Visual F# applications • Preview files in the Code Editor o Information-Rich Programming • New asynchronous streaming support is provided • Enhanced multi-monitor support • Debugger and Quality Tools o Windows Workflow Foundation o Search o Debugger • Designer has several enhancements • Search across the IDE • Remote debugging • Can create state machine workflows • Search in Tool windows o IntelliTrace o Windows Presentation Foundation (WPF) • New regular expression syntax • Collecting IntelliTrace data with the stand-alone utilities • You can implement a ribbon user interface using the new o Code Editor for C++ o Code Analysis Ribbon control • Semantic colorization • Code Analysis window • You can display large sets of grouped data faster. • Reference highlighting • New C++ concurrency warnings • List Members • C++ rule sets • C++/CLI IntelliSense • C++ one-click suppression • C++ code snippets • Data Application Development o Code Editor for JavaScript o SQL Server Object Explorer • IntelliSense o New Table Designer • Support for ECMAScript 5 and the HTML 5 DOM o SQL Server Express LocalDB Engine • Parameter Helper • ASP.NET 4.5 and Web Development • Signatures in statement completion o ASP.NET Core Services • Immediate feedback o Visual Web Developer Enhancements • Implicit references • Multi-browser support • Breakpoints • Page Inspector • Script Load • HTML editor • Brace matching • CSS editor • Outlining • JavaScript editor • Go To Definition o Data-Related Enhancements • Drag-and-drop references o Multi-Version Support• Visual Basic and C# Languages o IIS Express o Async Feature • SharePoint Development o Caller Infromation o New designers for lists and content types o Visual Basic o Site Column project item template • Iterators o Silverlight Web Part project template • Call Hierarchy o Remote publishing • Global keyword o Support for ALM Features• Visual C++ o Sandboxed visual web parts o Improved Support for C++ 11 Standards o Improved support for sandboxed solutions • Standard Template Library o Support for JavaScript debugging and IntelliSense for JavaScript • Stateless lambdas • Graphics Tools • SCARY iterators o Asset Viewers and Editors • Range-based for loops • Imaging and texture editing • Scoped enumerations support • 3D models o Metro Style App Development Support o DirectX Programmable Shaders (HLSL) • Native XAML-based UI model • Edit and build supprot for HLSL • Visual C++ Component Extensions • Visual Shader designer • DirectX Metro style games o DirectX Graphics Debugger • XAML and DirectX interoperability • Parallel Computing • Windows Runtime Component DLL development o C++ Accelerator Massive Parallelism o Visual C++ Compiler and Linker o Parallel Debugging • Auto-vectorizer o Concurrency Visualizer • Auto-parallelizer o TPL Dataflow o Code Quality Tools • .NET Framework • Updated unit test framework o Core Improvements • Architecture dependency graphs • System restarts are reduced during installation of the .NET • Architecture Explorer Framework • Code coverage • Asynchronous file operations are provided that use the new Async feature in C# and Visual Basic• JavaScript • Background JIT compilation on multi-core processors improves A Lap Around Visual Studio 11 5/13/2012 3
    4. 4. Metro, Metro, MetroA Lap Around Visual Studio 11 5/13/2012 4
    5. 5. A Lap Around Visual Studio 11 5/13/2012 5
    6. 6. A Lap Around Visual Studio 11 5/13/2012 6
    7. 7. A Lap Around Visual Studio 11 5/13/2012 7
    8. 8. Round-Tripping• Only works between Visual Studio 2010 SP1 and Visual Studio 11• Projects targeting .NET 2.0 to 4.0 and Silverlight 4 to 5 can round-trip A Lap Around Visual Studio 11 5/13/2012 8
    9. 9. Round-Tripping• Category 1: Round-trips seamlessly o Require no modification at all o Require modifications that won’t change project behavior• Category 2: Requires behavioral modifications to round-trip A Lap Around Visual Studio 11 5/13/2012 9
    10. 10. Round-Tripping• Category 3: Does not round-trip A Lap Around Visual Studio 11 5/13/2012 10
    11. 11. Round-Tripping• Category 4: Deprecated projectsA Lap Around Visual Studio 11 5/13/2012 11
    12. 12. Round-TrippingType of Project 1 2 3 4Silverlight 4 or 5 Application or Class LibrarySilverlight 3 Application or Class LibraryWebform or WinformMVC 3 or 4SharePoint 2007SharePoint 2010Unit TestsWindows PhoneVisual Studio 2010 Database A Lap Around Visual Studio 11 5/13/2012 12
    13. 13. Round-Tripping• Visual Studio 2010 Database projects  SQL Server Data Tools Database projects• No longer supported o Unit tests o Data-generation plans o Data-comparison files o Custom rule extensions for static code analysis o Server.sqlsettings o .sqlcmd files o Custom deployment extensions o Partial projects A Lap Around Visual Studio 11 5/13/2012 13
    14. 14. Windows 8 ReadyA Lap Around Visual Studio 11 5/13/2012 14
    15. 15. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 15
    16. 16. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 16
    17. 17. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 17
    18. 18. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 18
    19. 19. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 19
    20. 20. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 20
    21. 21. Solution Explorer ImprovementsA Lap Around Visual Studio 11 5/13/2012 21
    22. 22. Quick LaunchA Lap Around Visual Studio 11 5/13/2012 22
    23. 23. Quick LaunchA Lap Around Visual Studio 11 5/13/2012 23
    24. 24. Find & Replace ImprovementsA Lap Around Visual Studio 11 5/13/2012 24
    25. 25. Find & Replace ImprovementsA Lap Around Visual Studio 11 5/13/2012 25
    26. 26. Web Browser ChooserA Lap Around Visual Studio 11 5/13/2012 26
    27. 27. Page InspectorA Lap Around Visual Studio 11 5/13/2012 27
    28. 28. A Lap Around Visual Studio 11 5/13/2012 28
    29. 29. JavaScript Debugging Enhancements• First Chance Exceptions A Lap Around Visual Studio 11 5/13/2012 29
    30. 30. JavaScript Debugging EnhancementsA Lap Around Visual Studio 11 5/13/2012 30
    31. 31. JavaScript Debugging EnhancementsA Lap Around Visual Studio 11 5/13/2012 31
    32. 32. JavaScript Debugging Enhancements• Debugging Web WorkersA Lap Around Visual Studio 11 5/13/2012 32
    33. 33. JavaScript Debugging Enhancements• Performance Improvement• Remote JavaScript Debugging• DOM Explorer and JavaScript Console• More information in Call Stack window A Lap Around Visual Studio 11 5/13/2012 33
    34. 34. Improved Visual Studio Updates• Visual Studio Update (VSUpdate)A Lap Around Visual Studio 11 5/13/2012 34
    35. 35. Should You Upgrade?• Go Live License• Release Candidate coming soon• .NET 4.5 ProjectsA Lap Around Visual Studio 11 5/13/2012 35