S. Somasegar is Vice President of the Developer Division at Microsoft. Somasegar frequently shares his thoughts with the developer community via his blog at blogs.msdn.com/somasegar.
DDJ: From your perspective, what's the biggest improvement of Visual Studio 2008 over Visual Studio 2005?
SS: That's a hard question to answer because it's a little bit like asking me to name my favorite child. However, there are quite a few significant improvements in Visual Studio 2008 and I've detailed a number of them in my blog in the past few months. A few I'll mention here include tool support for Windows Presentation Foundation (WPF), enhancements to MSBUILD including multiple processor support, debugging and profiling features, enhancements to ASP.NETincluding ASP.NET AJAX now shipping as part of Visual Studioand support for developing and consuming Windows Communication Foundation (WCF).
DDJ: What is "Visual Studio 2008 multitargeting support" and why is it important?
SS: Multitargeting enables developers to build solutions using the latest and greatest IDE, but which target multiple platforms. One of the biggest feature requests we've received from customers is the ability to migrate to the newest version of Visual Studio and still be able to build code targeting older versions of the .NET Framework. You can use Visual Studio 2008 and build applications targeting .NET FX 2.0, 3.0, and 3.5. With multitargeting, we not only enable developers to build solutions for older versions of the Framework, but we also guide them in using the right APIs and libraries so that they don't inadvertently attempt to use nonexistent features for the version of the Framework they have chosen. We hope that multitargeting support will alleviate some of the anxiety our customers may have about migrating to Visual Studio 2008.
DDJ: With the inclusion of Silverlight development into the Visual Studio 2008 IDE, are thereor will there beany cross-platform debugging tools available to facilitate Silverlight application testing on platforms other than Windows?
SS: First off, we expect to ship the Silverlight Add-In for Visual Studio 2008 a few months after the release of Visual Studio 2008 (an early preview of this is already available). This will enable developers to build Silverlight 1.0 solutions from within Visual Studio and will provide:
- Templates for Silverlight 1.0 and 1.1.
- Source-level editing for Silverlight XAML 1.0 and 1.1 files.
- Ability to build Silverlight 1.1 components using .NET (VB/C#).
- IntelliSense and debugging in VB/C# code for Silverlight 1.1 objects.
- Creation and consumption of web services for Silverlight 1.1.
The add-in provides cross-platform debugging capability for Silverlight, enabling developers to easily attach to a MAC and step through code to identify issues.
DDJ: What about LINQ? What sort of improvements can we see with it in Visual Studio 2008?
SS: Obviously, LINQ is brand new in Visual Studio 2008 and the .NET Framework 3.5. LINQ is an exciting evolution in data programming that provides common query capabilities within the programming language itself. LINQ closes the gap between programming objects and data by providing a common query facility for in-memory and external data (external sources of data plug into LINQ by implementing a common query interface). Integrating query capabilities into the C# and VB programming languages provides a simple, natural way to build strongly typed queries that benefit from design-time features like IntelliSense.
Typically, building data-driven solutions requires developers to learn multiple distinct languages with vastly different semantics. For example, application logic is written in an imperative programming language, but queries are written in SQL or, if accessing XML data, in XPath/XQuery. Furthermore, because of the lack of integration between the languages, queries have to be written inside string literals without statement completion or compile-time verification and cannot span data from different domains. This results in brittle code that is difficult to write, maintain, and debug.
With the LINQ Project, we are removing this additional step by integrating the programming experience, providing C# and Visual Basic users with a common programming framework for querying objects, databases, and XML. From a business value perspective this helps to further break down silos and open up data access within applications. This will enable developers to build better, more innovative applications, faster.