PDC Showcases Visual Studio 2010
First Visual Studio 2010 CTP offers IDE upgrades and advancements in tooling designed for .NET Framework 4.0.
The release of the first community technology preview (CTP) of Visual Studio 2010 (VS10) earned heartfelt applause on the second day of the Microsoft Professional Developers Conference (PDC) 2008 in Los Angeles last month.
The early preview of the new tooling was welcome news to developers who had already been regaled with broad pitches about Microsoft's ambitious Windows Azure cloud-based services platform, Windows 7 and Office 14 Web applications.
Visual Studio 2010 promises a facelift of the IDE and advancements in the tooling developers can work with to address emerging trends and access powerful functionality in .NET Framework 4.0. Among the key capabilities that were described in Corporate VP of Microsoft's .NET Developer Division Scott Guthrie's hour-long keynote: tools for enabling code parallelism, extensibility through the Managed Extensibility Framework (MEF), and integration of graphics based on Windows Presentation Foundation (WPF) in the Visual Studio design surface. VS10 will include a fully interactive Silverlight designer that's similar to the WPF designer, said Guthrie, who announced the availability of new WPF controls: a DataGrid, DataPicker, Calendar and Ribbon control. He also announced an update to Silverlight Tools for Visual Studio 2008 SP1, as well as a new Silverlight 2 Toolkit available on CodePlex, which contains many controls at various stages of maturity such as Charting, DockView, TreeView and WrapPanel, among others.
With the prospect of Windows Azure hosted services still a year or so out, the CTP offers developers a point of immediate focus as they return from the show, says Jason Beres, chief technical evangelist for component-maker Infragistics Inc.
"There's a lot of stuff that won't impact developers immediately. A lot of this cloud stuff, Ray Ozzie said is very nascent technology," Beres says. "Honestly, I would have liked to see Scott [Guthrie] talk a little bit more-talk about improvements in what they're doing in VS10. I thought the code-window stuff was neat, but that's kind of just a pain point. I think they're going to do a lot more than fix a couple of pain points."
Guthrie's presentation seemed to indicate Microsoft was working to do just that. The code-window enhancements, for example, are made possible through MEF, which lets developers define extension points in Visual Studio that can then be used to host custom extended functionality.
"This basically provides the ability for you to very easily assemble applications from extensions and to be able to dynamically add extensions within applications," Guthrie said. "It's useful for both client apps as well as Web apps on the server, as well as RIAs [rich Internet applications] via the Silverlight client."
Chris Kinsman, a Microsoft regional director and VP of development for AMS Services, says developers are excited about adding extensions to Visual Studio. "The MEF stuff in the code windows is very cool, and I suspect it will make it much easier for folks to create CodeRush-style visualizations for the IDE," he wrote in an e-mail.
Julian Bucknall is chief technology officer at Developer Express Inc., the company that makes CodeRush. He says the incorporation of WPF technology into the Visual Studio IDE is a major breakthrough. "We have to do various weird and wonderful things to actually get the current editor to display stuff that we want to display inside it," Bucknall said during an interview at PDC. "The VS10 editor, on the other hand, is WPF. We can add adornments and put things inside the editor with very much more ease than we have done before."
Time on your hands? Microsoft delivered "the goods" at PDC last month.
Updates and Final Releases:
- Visual Studio 2010 CTP
- "Oslo" CTP
- Azure Services Platform CTP for the Web tier
- Live Framework CTP (Live Mesh is now in beta)
- Silverlight for Mobile version 2
- Silverlight 2 Controls Toolkit (on CodePlex, MPL)
- Velocity distributed in-memory caching CTP 2
- Silverlight Tools for Visual Studio 2008 SP1 (update to RC1)
- Expression Encoder SP1
VS10 also introduces tooling for enabling parallelism in .NET application code-an increasingly important capability as both server and client processors ship with multiple, independent cores. VS10 taps the new Task Parallel Library and Parallel LINQ (PLINQ) facilities that are part of .NET Framework 4.0, also delivered as a CTP to PDC attendees. The features enable developers to parallelize their managed, .NET code in languages like C# and Visual Basic.
"What we're offering in Visual Studio 2010 is taking executive parallelism into what is traditional sequential programming," says Lynne Hill, general manager of the Parallel Computing Initiative at Microsoft, "really looking at the task- and data-parallelism and integrating that into both the managed and native offerings that we have."
Included in VS10 and .NET Framework 4.0 is support for PLINQ, a parallelized version of LINQ. PLINQ enables queries to be efficiently run across multiple processors and processor cores. The CTP also includes a profiler that lets developers assess their existing code to see where parallelism might be used to best effect to scale performance.
James Reinders, director of software products and multi-core evangelist at Intel Corp., says tools like the profiler should help .NET developers "think parallel."
"On a more tactical level, the two challenges developers will have with parallelism are deterministic correct program behavior and scaling. An incorrectly constructed parallel program will be non-deterministic and incorrect. Debugging that is a nightmare without new tools," Reinders explains. "This is one place developers need to have a plan-rethinking their debug and Q&A processes to handle this. This is absolutely a must, and any team ignoring this will fail."
Also featured at PDC 2008 were the Concurrency and Coordination Runtime (CCR) and Decentralized Software Services (DSS), initially delivered as part of the Microsoft Robotics Developer Studio product. An add-on library that is currently deployed by enterprise customers Tyco International Ltd. and Siemens AG, among others, CCR and DSS provide a way for .NET developers to enable massive parallelism in their apps. George Chrysanthakopoulos, a partner software architect at Microsoft and a co-creator of the technology, says CCR and DSS will find their way into the .NET stack.
"Ultimately, Lynne [Hill] and the .NET group, they are the eventual keepers of this technology, " says Chrysanthakopoulos. "So you can expect this stuff will get integrated into the stuff they're doing. Our goal is to let her integrate what we're doing as much as possible."
Introducing C# 4.0
Peter O'Kelly, principal analyst for O'Kelly Consulting, says Microsoft's parallelism efforts extend to language development.
"Anders Hejlsberg had a great PDC 2008 session on the future of C# in which he explained, among other things, the need to move to exploit multi-core architectures and to support parallelism, in part because multi-core CPU architectures are key to future performance and scalability goals," writes O'Kelly in an e-mail, singling out investments Microsoft has made in Parallel Extensions for .NET Framework. "It's an area in which Microsoft will continue to invest in related technologies, tools and training materials."
In his presentation, Hejlsberg explained that the current C# 3.0 already makes use of functional-programming features like lambdas to enable concurrency. He said C# 4.0, which is supported in the VS10 CTP, will extend those capabilities.
"There's not one single, silver bullet that's just going to fix it and run everything concurrent. It's not like there's just going to be a /parallel switch in the compiler and everything is going to be hunky dory," Hejlsberg told an audience at PDC, drawing laughter.
||"What we need to do as language designers is to find easy and understandable ways for people to, in a sense, decompose their applications into multiple units of work that can then be executed in parallel."
|Anders Hejlsberg, Technical Fellow, Microsoft
"What we need to do as language designers," he continued, "is to find easy and understandable ways for people to, in a sense, decompose their applications into multiple units of work that can then be executed in parallel."
While concurrency is a significant issue, Hejlsberg said that the most significant change with C# 4.0 will be the introduction of dynamic programming to the language under .NET Framework 4.0. Hejlsberg laid out four key themes for C# 4.0: dynamically typed objects, optional and named parameters, improved COM interoperability and co- and contra-variance.
AMS Services' Kinsman welcomes the update: "I think there's some good stuff in C# 4.0. Doing Office interop is a nightmare in C# today, and much easier in VB. The C# 4.0 stuff should level that a bit," he says. "Optional and named parameters I think will also be a welcome addition."
|C# 4.0 at a Glance
The advances in C# 4.0, on view in Visual Studio 2010, center on four main themes:
- Dynamically typed objects
- Optional and named parameters
- Improved COM interoperability
- Co- and contra-variance
Further down the road, Hejlsberg said his team is working to tune C# for meta-programming, making it much more useful for code-generation scenarios-an area where he says Ruby on Rails has excelled. Hejlsberg also announced that Microsoft has been working for over a year to entirely rewrite the C# compiler in managed code. He describes the current compiler as a "black box."
"What we want to do going forward-and the reason that we're rewriting the compiler-is we want to open up the box and give people access to the things that go on inside the compiler," Hejlsberg said, "such that we can make it much easier to embed C# in domain-specific languages like workflow documents and whatever where you have little snippets of code or rules that you want to dynamically evaluate or compile."
Microsoft delivered an enormous load of new technologies, initiatives and announcements at PDC 2008. Not surprisingly, the flood of information produced its share of confusion. Jeff Hansen, general manager for Live Services, says informing the community remains a keen challenge even after PDC. But he says the challenge extends to Microsoft's own communications.
"I just spent the last two days doing non-stop press interviews-and a lot of it was just recapping, let me walk you through all the [announcements]. I think we maybe popped too much. We held too many things and popped it all at once," Hansen said on the third day of the show.
"The other thing is getting everyone singing off the same song book," Hansen added. "It's amazing how what may seem to be a small deviation from the message that we're sending can start confusing people. So we had to spend a lot of time internally at what may seem to be a small deviation."
O'Kelly says it could have been worse. He notes that Office 14, itself a massive product family, wasn't featured at PDC.
"PDCs are often conceptually overwhelming, but I don't think Microsoft is in 'fire all weapons!' mode, deliberately trying to overwhelm PDC attendees," he says. "I think they simply wanted to explain where they're heading with their platform, tool and service strategies, and that they have a lot to talk about."
Like many developers at the show, Developer Express' Bucknall feels there's no such thing as too much information: "This PDC was fabulous, really. The amount of new stuff we heard about, that we'd been hearing rumors about, that we actually saw and heard about and were able to ask people about, it's just been amazing. It's been fabulous, it really has."
Michael Desmond is an editor and writer for 1105 Media's Enterprise Computing Group.