In-Depth

In and Out of Orcas

Now that Microsoft has released the first betas of its widely anticipated next generation of Visual Studio, code-named "Orcas," pieces are already falling by the wayside.

The early verdict by those who have looked at the first beta in the few weeks since its release is that Orcas raises the bar of Visual Studio by offering programmers more productivity and important integration capabilities. But typical of any beta, Orcas will thrill many with new features and disappoint others with flaws and key omissions.

At least one feature that made the cut in the current beta but was missing critical components -- the ADO.NET Entity Framework -- is being dropped from Orcas, Microsoft officials announced just nine days after it released the beta. Microsoft will ship the ADO.NET Entity Framework as an extension to Orcas.

Also unclear at this point is to what extent Orcas will ultimately support Silverlight, Microsoft's cross-browser plug-in for rich Internet applications (RIAs). Microsoft last month announced its plans to add the .NET Common Language Runtime to Silverlight, formerly code-named Windows Presentation Foundation/Everywhere, or WPF/E.

In spite of the omitted features, this first beta is a key milestone that provides a broad view of what corporate architects and development teams can expect from Visual Studio. Code-named after an island in the Pacific Northwest, Orcas is designed to provide the tooling for Microsoft's numerous platform advances since Visual Studio 2005 launched in November two years ago.

"The core value proposition is latest platforms, better productivity features and better tools for the application lifecycle management space," says S. "Soma" Somasegar, corporate vice president of Microsoft's developer division.

Feedback Loop
The Orcas beta also offers developers the opportunity to give Microsoft feedback that could help determine what ultimately makes the final release and, for that matter, when Orcas will be released to manufacturing. Microsoft certainly won't lack for opinions. According to Somasegar, 250,000 developers downloaded Orcas Community Technology Previews (CTPs).

Rockford Lhotka, who is the principal technology evangelist at application lifecycle vendor Magenic Technologies Inc., has worked with key Orcas features, including the Windows Presentation Foundation (WPF) Designer and Windows Communication Foundation (WCF) functionality in beta 1. He's also worked with the Language Integrated Query (LINQ) designers in the March 2007 CTP. He says the most obvious changes in beta 1 centered around stability and turning on features "that were visible but didn't quite work."

Rockford Lhotka "WPF Designer for me is a disappointment. I wish it were a more powerful tool, but Microsoft has put its money into Expression Blend, so at least for a while that will be the tool."
Rockford Lhotka, Principal Technology Evangelist, Magenic Technologies Inc.

"There's not a lot of visible difference between the March CTP and beta 1," observes the Microsoft regional director and MVP. "Really it was only about a month and a half of work time." The CTP shipped Feb. 28, the first public betas on April 19. "The way it looks to me," he says, "is that a lot of the work they did was working on stability and completing features that were already visible but maybe didn't quite work, that sort of thing."

Roger Jennings, a developer and technology writer at OakLeaf Systems who is working with LINQ and the ADO.NET Entity Framework, reports similar findings. "It works, it's mostly missing features," Jennings says. "Visual Basic is still missing some of the LINQ keywords that I would've expected to be in beta 1."

The first public betas of Orcas -- Visual Studio Professional and Visual Studio Team System (VSTS) -- include beta 1 of .NET FX 3.5, an interim upgrade to .NET 3.0, which shipped with Windows Vista last November. The .NET 3.0 framework added four subsystems to the .NET 2.0 core: WPF, WCF, Windows Workflow Foundation (WF) and Windows CardSpace. The 3.5 framework takes it a step further, introducing LINQ, AJAX support for ASP.NET and WCF, full tooling support for the .NET 3.0 subsystems and additional base class libraries in areas like cryptography.

"The WF tool has actually been out," explains Thom Robbins, director of .NET Platform Product Management at Microsoft. "When we were releasing 3.0 we didn't feel that the tools for WCF and WPF were ready for primetime, so we did release a beta set of tools. Those tools and a lot of visual enhancements to the WF tool are included as part of the 3.5 release."

In addition, the WCF model in .NET 3.5 will support several Web Services (WS-*) standards that OASIS ratified after .NET 3.0 shipped: Web Services Automated Transactions, Reliable Messaging, Secure Conversation and Web Services Coordination.

"[W]e're including in Orcas a set of WCF opportunities for doing REST and POX programming, and then using that same channel in WCF, [so] you can continue to add options in your configuration file and then move into the higher end WS-* standards support," Robbins says. In the same WCF model, Microsoft is building RSS and Atom syndication APIs, and adding JavaScript Object Notation (JSON) hooks for AJAX-style applications.

Also new to Visual Studio Orcas is the ability to use one version of the IDE to target multiple .NET platform releases (.NET 2.0, 3.0, 3.5).

"Multi-targeting is huge," says Jeffrey Hammond, an analyst at Forrester Research Inc. "It's just so important for development organizations because otherwise you have to line your release schedules up with the release schedules of Windows."

Decade of Development
Prashant Sridharan, Microsoft's senior product manager for Visual Studio, understands the evolution of Redmond's IDE better than most. He joined Microsoft as the J++ product manager, in the weeks before the first Visual Studio launched in San Francisco 10 years ago.

"All features in Orcas are public," Sridharan told attendees during his VSLive! keynote in his hometown of San Francisco in late March. Starting with Visual Studio 2005, the Developer Division no longer cared about hiding features, he explained. "When we release a product ... we're going to show you everything up front, and you're going to tell us what works and what doesn't work, and we're going to fix it and we're going to ship a great product."

After the Visual Studio 2005 release to manufacturing (RTM), Microsoft released multiple toolkits that enabled developers to start to take advantage of some of the functionality that now appears in Orcas. Integration of Visual Studio 2005 extensions is a key promise of the next-generation IDE. Visual Studio Tools for Office, ASP.NET AJAX and the WPF Designer (code-named Cider) are all integrated into beta 1.

Ready for .NET 3.0 or Not?
Many developers will depend on these design surfaces and other VS tools to take advantage of functionality promised by the WPF, WCF and WF subsystems. "The biggest thing is that Microsoft came out with .NET 3.0 in November and most people frankly don't even know it's there," says Lhotka of Magenic, a Microsoft partner. "And those that do are ignoring it because there are no tools, so using it is very difficult. I think what we'll see is that once Visual Studio Orcas comes out, in most people's minds that's the point when .NET 3.0 will be available, which is funny because it's also the time that .NET 3.5 shows up with LINQ."

Lhotka has used the WPF Designer in every CTP (when it was available) and in beta 1. "It's not comparable to the Windows Forms or Web Forms Designers," he says. "And most of the work that I'm doing is in fact typing the [Extensible Application Markup Language] XAML in by hand and using the designer as a way of seeing visually if what I'm typing in the XAML is really what I wanted to get. In general, it looks to me like you're going to have to do a lot of the XAML by hand or use Expression Blend."

Expression Blend is the new IDE from Microsoft that targets professional Web designers who are creating Web UIs using XAML. Developers can access the same XAML files and libraries in Visual Studio Orcas, so that designers and developers can work together on Web projects. Blend is part of Microsoft's new Expression Studio suite of products -- version 1 shipped last month.

Lhotka is creating a WPF user interface for a data-intensive, line-of-business reference app. "I've got almost everything working in WPF at a level of interactivity and functionality that's comparable to what you get in Windows Forms, which is pretty exciting, and even in its current state, in terms of VB or C# code, I'm probably writing about half of what I would in Windows Forms. But I'm having to write a lot more XAML, so it's definitely a tradeoff."

He's also setting up the data binding in XAML. WPF Designer will not support data binding in version 1, according to Microsoft. Users can still use Windows Forms, .NET 3.0 and XAML to build applications in Orcas.

"WPF Designer for me is a disappointment," says Lhotka. "I wish it were a more powerful tool, but Microsoft has put its money into Expression Blend, so at least for a while that will be the tool."

More enhancements to the Cider functionality in Orcas will appear in beta 2.The changes in between the March CTP and beta 1 were primarily bug fixes, according to MSDN forum postings by Marco Goertz, a developer on the Cider team. For example, the ability to add event handlers from the design surface is expected in beta 2.

Multi-Targeting Orcas
[click image for larger view]
Multi-Targeting Orcas

First Exposure to LINQ
Orcas gives many developers their first exposure to the data programmability promised by LINQ, which allows users to access data from structured and unstructured data sources (object, XML, relational) from within VB 9.0 and C# 3.0 (see "Looking to LINQ," April 1, 2007). "LINQ solves some problems that are really hard," says Lhotka. "Over time I think LINQ will fundamentally change how people build software in some ways that most people don't even anticipate today."

Hammond agrees that LINQ is one of the significant new features in Orcas. "The potential downside is that it enables you to mix your business logic and your view logic in the same programming functional block," he says. Similar issues surfaced 10 or 15 years ago in client/server development when people were emitting SQL in their applications, recalls Hammond. "Microsoft needs to make sure that architects are comfortable with what developers are doing with LINQ."

Early on, developers should take some time to make sure that they understand how LINQ works, through educational materials and other resources. For now, Visual Studio Orcas offers little in the way of documentation for some key features, according to Jennings. "In LINQ to SQL for instance, there's very little documentation about the use of stored procedures for updates, so developers have to use the Braille system to figure out how to use the product," he quips.

LINQ is a language enhancement, so designer support for the ADO.NET Entity Framework is much more important, believes Lhotka. "If you don't have designer support you're going to have to write some really complex XML by hand, and I don't think anybody's going to do that," he says.

Microsoft apparently agrees. LINQ figures to be a key part of Orcas, but the ADO.NET Entity Framework has been moved out of Orcas with a new release target in the first half of 2008.

The Entity Framework is a data-access technology that builds on top of ADO.NET 2.0. It uses the Entity Relational Model (the "Entity Data Model" in Microsoft parlance) to create conceptual models of data before the data is mapped into relational schemas. This allows developers to program against a conceptual domain model instead of the relational database layer.

However, the Entity Data Model (EDM) Designer to access that functionality had already slipped beyond the Orca RTM window prior to the beta 1 release. The plan now is to release Entity Framework CTPs and betas that align with Orcas, according to Microsoft blogger Mike Pizzo, an architect with the Data Programmability team.

"The big shocker was the announcement that the EDM Designer wasn't going to make it to RTM," says Jennings. "I'd expected the EDM Designer to be in beta 1. LINQ to SQL's claim to fame is that it has a very good Visual Designer and they're going to need one if the Entity Framework and the Entity Data Model are going to be successful."

Visual Studio Orcas still enables a lot of new data awareness functionality via the LINQ extensions, which require .NET FX 3.5. Microsoft's Pizzo outlines the planned LINQ functionality in a blog posting:

"At the time that Orcas first ships, the .NET Framework will include support for LINQ over in-memory objects, LINQ over XML (XLINQ), LINQ over ADO.NET DataSets (LINQ to DataSet) and LINQ queries directly mapped to Microsoft SQL Server schemas (LINQ to SQL)."

The LINQ to Entities extension, which will enable developers to use LINQ to query relational data stores supported by ADO.NET providers, will ship at the same time as the Entity Framework, according to Pizzo. (Click to read Pizzo's TechBrief on LINQ.)

Key to beta 1, Microsoft is working to improve Team Foundation Server (TFS) performance in VSTS, the client/server offering that marked Microsoft's entry in the crowded application lifecycle management space. The VSTS beta shows support for larger team sizes, continuous integration and unit and load testing enhancements. It also integrates the fourth role-based module Database Professional, which shipped in January. Another key enhancement of TFS not integrated with beta 1 (but available as a separate download) is Web access through browser-based clients. The functionality was provided by devBiz Business Solutions, a company that Microsoft acquired in March. (For more details, go to RedDevNews.com for an expanded version of this story).

'Minor' Upgrade to Team System
devBiz's TeamPlain, available now as a free download, will be rebuilt and shipped as a TFS Power Tool in the Microsoft Tech Ed timeframe (June), according to Sridharan, and integrated into Orcas, although it's not part of beta 1.

Microsoft's Developer Division is self-hosted on Orcas TFS after migrating its servers in March, according to Somasegar. While there are notable improvements in VSTS, the major upgrade -- code-named "Rosario" after a resort on the Orcas island -- is expected to ship about a year after Orcas' RTM. Development on Rosario is going on in parallel to Orcas (see sidebar).

Beyond Orcas

When VS.NET shipped on Feb. 14 in 2002 the objective was to create a single IDE for multiple programming languages, allowing Microsoft developers to be as productive as possible. Visual Studio Team System (VSTS) released in 2005 focused on helping teams of developers work more productivity in collaborative environments. About 25 percent of VSTS users have adopted Team Suite, according to Microsoft.

The next version of Visual Studio, which will be built on Orcas, is a major VSTS upgrade. Code-named "Rosario," it will offer better functionality for requirements management and requirements tracking, says S. "Soma" Somasegar, corporate vice president of the Developer Division.

"We want to expand the focus and to provide a set of tools that work well together and makes the entire IT organization more productive," Somasegar says, noting that the effort may take five years or more. "What we want to do in Rosario is take some baby steps to help us realize that vision."

Rosario will integrate key functionality, such as Microsoft Project and Microsoft System Center, to help developer and operations teams to work together. Microsoft plans to rebuild some of the Visual Studio Team Architect designers, adding support for the DSI Service Modeling Language.

The Redmond team also wants to beef up Quality Assurance and test functionality by adding things like functional UI testing, smart regression testing, test case management and lab management. "We want to do for software testers what we've done for developers," Prashant Sridharan, senior product manager of Visual Studio, told the VSLive! audience in March.

VSTS Orcas allows developers to annotate or add comments to code. Rosario will provide the ability to go backwards and forwards in a stack trace to find out exactly what the code looked like at any given point in time, a feature Sridharan calls, "TiVo for developers."

The Community Technology Preview of Rosario is expected by the end of year in the Orcas release to manufacturing timeframe.

-- Kathleen Richards

Orcas for All
In the next year, Microsoft will continue to invest substantial resources in attracting non-professional developers, says Sridharan. At VSLive! the company reported 10 million downloads of its Visual Studio Express tools, which first shipped with the release of Visual Studio 2005. Microsoft has also created several Web sites targeted at non-professional developers. With Orcas, Microsoft is releasing CTPs of its Express versions for the first time, so that the development team can respond to feedback from users. In recent years, Microsoft has made concerted efforts to embrace their user community and the Developer Division is leading the charge here. "Community Technology Previews are kind of a way of showing continued progress, and then a beta becomes a way of showing better progress," says Robbins. "Beta 1 is a great milestone because really what it means is, we're on the ship path and we're looking for feedback from our customer base."

The .NET FX 3.5 will be available as a separate download when it reaches a beta 2 Go Live license. "Obviously, it gets really interesting when we look at things like Go Live licenses, which allow customers to start building applications and getting support," Robbins says. "This really means that we are getting to the end and we look at our code as kind of code complete -- we just need feedback."

Beta 1 allows developers to install Orcas natively for the first time on Windows Vista and Windows XP and give Microsoft feedback on the end-to-end experience, says Somasegar.

The Road Ahead
Developers can expect significant enhancements when Orcas beta 2 emerges, possibly in June, though Redmond has not committed to a specific timeline. LINQ Data Source for ASP.NET, for building data-intensive Web pages, is an example. Somasegar's team wants to RTM Orcas by the end of 2007, and then plans to roll out the major upgrade to VSTS (Rosario) a year later.

For his part, Lhotka says he's satisfied with the measured approach Microsoft has taken with Visual Studio. "I used Visual Basic version 1," he recalls. "I equate this in some ways to that. There [Microsoft] had this brand new technology and a whole new runtime. It put a lot of work into building that thing and the tooling was sufficient, but it wasn't anything extraordinary. A couple versions later, by the time you get to VB 3, the tooling caught up with what the actual tool could do, and then it really came together."

Microsoft is still old school enough that a beta is a beta, he says. "So the fact that some of this stuff doesn't work in the beta doesn't bother me too much. When we get to beta 2 and then towards the end, [Redmond] will start to ship Release Candidates. If things aren't working, then there's a problem."