Visual Studio 2008 is the primary development tool for .NET developers and ships in version targetted at the differing roles on a development team. Lars Powers and Mike Snell authored Visual Studio 2008 Unleashed, published by Sam's Publishing. Along with the following dialogue, InfoQ has been provided the following chapter excerpt: Chapter 10 - Debugging.
InfoQ: What are the main goals of your book, Visual Studio 2008 Unleashed?
Lars: I think the main goal of our book is to simply educate developers about the huge breadth and depth of capabilities of Visual Studio. I personally work inside of Visual Studio most every day, and I am still finding little feature gems that I never knew existed, or features that I never quite knew how to exploit to their fullest potential. The hope is that someone can either dive deep into a subject that interests them (such as refactoring, debugging, or maybe one of the Visual Studio Team System modules), or read the book cover to cover to get the best sense for everything this tool has to offer. Put simply: we want developers to have the knowledge necessary to really wring out every last ounce of productivity from this IDE.
InfoQ: Which chapter was the most difficult to author? Why?
Mike: Chapter 20, Embedding Workflow in Your Application, was a challenging chapter for me to write. This is a new topic for Visual Studio developers. It is also a big topic. It was clear from the start that like chapters on ASP.NET, working with databases, and Windows forms, an entire book could be dedicated to this single topic. However, the challenge with a book like this is to get enough useful information packed in a single chapter to get developers producing applications using this technology. Therefore I focused this chapter on answering the questions I had when first exploring Windows Workflow, like, “How does this work? What are the pieces of a workflow application and how do they work together to form a solution?” Once that was established I simply dug into the Workflow toolbox and built out a couple real-world scenarios for workflow applications. I think this gets developers well over the hurdle of building applications with Windows workflow. From here, they should have enough of a foundation to know how to fill in any gaps that are specific to their actual scenario.
InfoQ: Recently J# was dropped as a first class language in Visual Studio, thoughts?
Mike: I am not sure people appreciate the costs that go into supporting a language for Visual Studio. Typically this means a team of people to manage and support the language. It also means writing example code, help file code, and more. In addition, given the rich set of templates and code-generators that ship with Visual Studio, developers expect that first-level languages each have a similar experience. This means templates and code generators for things like ASP.NET, Windows Workflow, WPF, WCF, WinForms, and more. In addition, this means an eco-system for training, certification, user forums, and more. It starts to add up. As a developer you have to ask yourself if you would prefer to see this money invested in pushing .NET development forward or trying to keep up with multiple languages. The same is true for having to support both C# and VB—you have to do everything twice.
Microsoft has indicated support for the existing J# through 2015. In addition, the usage of J# has declined significantly. It was good tool for moving between Java and .NET. However, new development done in .NET is being done in either C# or VB. This data coupled with the costs to support J# makes Microsoft’s decision a sensible one to me.
InfoQ: Where are you expecting enhancements in regards to compatibility of Visual Studio and the Expression line of products?
Lars: I’m not sure compatibility is the right word to use here; after all, Expression Blend and Visual Studio already use the same project file system, render/edit the same XAML files, etc. This is all working great today. Going forward, I think we’ll see the Visual Studio WPF designer (previously known as “Cider”) get a lot better in terms of WYSIWYG development, and we’ll hopefully see some of the rough edges get a bit more polish. For instance, I for one will be happy to see the designer be a little more forgiving with XAML and child control changes so I’m not constantly treated to “Click here to reload” messages. And hopefully, we’ll see Expression Blend start to mature a bit in terms of its XAML editing (Intellisense, formatting options, etc.) and participation in the developer/designer workflow (can we please have version control integration?)
InfoQ: ASP.NET has received numerous minor version additions since the initial release of version 2.0, when can we expect a new major release?
Mike: I think there have been some big advances with ASP.NET since 2.0. The strong support for AJAX programming is one of the biggest. However, you can add to that support for building better SOA solutions using WCF, integration of Windows Workflow and ASP.NET, LINQ support, and much more. In addition, the ASP.NET ecosystem of control tool vendors has never been stronger. If you are building browser-based web applications it’s hard to find a better platform. That said, I think you already can see the next major push for Microsoft and their web strategy (ASP.NET or otherwise). It’s called WPF and Silverlight. This is a new, exciting model for the web developer needing to build very rich user interfaces that work with web servers. There may indeed be another major revision of ASP.NET, however, I look for new technologies like Silverlight to have a bigger overall impact on web development for the next few years.
InfoQ: Compare and contrast the value of RIAs vs. Windows applications built in WPF, which do you prefer?
Lars: RIA is an overloaded term now-a-days. Is it a web-site that embraces AJAX? A web-site built using Flash or Silverlight? What about an application that runs locally outside of the browser but uses services in the cloud for storage and computing? The web world and the client world both have their strengths, and I think we have seen both of them gradually grow towards one another in term of capabilities. For instance, the RIA of today looks a lot more like a client application in terms of user experience, and client applications have gotten more resilient in terms of deployment and compatibility, which are core strengths of a web application. For me, I will always choose software that provides me the best user experience, and that would include seamless offline capabilities. A good example here is Outlook Web Access: they’ve done some amazing work with AJAX to get OWA to look and behave just like Outlook. But there is no *way* that I would ever ditch Outlook, even with all of its install requirements and occasionally finicky behavior. For one thing, I don’t care how ubiquitous broadband access is, there is still a portion of every week where I am working “offline”. And for another, the local resource interaction, responsiveness, and pure feel of the application is exponentially better on the client. And I think this is an analogy that holds true for the vast majority of web/client applications today.