Head of Web Programming
Scott Guthrie shares his views on the new Web and client development tools in Visual Studio 2008.
After 11 years at Microsoft, Scott Guthrie, general manager of the developer division, says, "It's been a fun ride." He joined Microsoft directly out of Duke University, where he earned a computer science degree in 1997, after working as an intern. After stints in Internet Information Server 4 and other product groups, Guthrie developed the first prototype of what would become the Web programming model for Windows Server 2003, today known as ASP.NET.
Today Guthrie is well known, well respected and the visible lead in the Microsoft development community on all things Web-ASP.NET, Internet Information Services (IIS) 7 and Silverlight. (And, if you send him an e-mail, he actually answers it.)
He also runs the dev teams that build the .NET Common Language Runtime (CLR), Windows Presentation Foundation (WPF) and all of the Visual Studio tooling associated with these Web and client technologies. As Visual Studio (VS) 2008 is released to manufacturing (RTM), Guthrie talks about the new tooling and the road ahead.
Originally Visual Studio 2008 was supposed to be part of the February 2008 launch with Windows Server 2008 and SQL Server 2008. Can you explain what's going on with the timing of the release?
Well, our plan was actually always to RTM this calendar year. So we've always been driving toward a November ship date and that's actually been scheduled for at least nine or 10 months. From a launch event perspective, where we have events all over the world and we generate a lot of customer touch events, we'll still be doing that in February as part of the joint launch.
There's some confusion regarding VS 2008 support for SQL Server 2008. Early on SQL Server 2008 was included in the platforms that would be supported and now you don't hear as much about that. Is Visual Studio 2008 the tooling for SQL Server 2008?
Yeah, it will be. SQL Server 2008 hasn't shipped yet. One of the things we're planning is a VS 2008 patch upgrade so that once the final SQL 2008 does ship we'll make sure that everything does work with it, because it's still under development. There are some features there that aren't finalized. The SQL 2005-level features, obviously that all works. But then we'll basically go ahead and provide an update so that once the final SQL 2008 does ship, VS 2008 will fully support it.
The ADO.NET Entity Framework was moved out of VS 2008. What's the timeframe on that release?
The Entity Framework and LINQ to Entity support aren't included in the final .NET 3.5 that was released to manufacturing [last] month. Instead, we'll have a beta in that time frame. Basically, the plan is for the Entity Framework to ship early next year, and obviously once that happens, then we'll also go ahead and make that fully available in VS 2008 and .NET 3.5 in our next service packs.
Right now, the Silverlight tooling is an extension to VS 2008 and there's discussion about waiting for the next 1.1 drop to see what's happening with some of the UI controls. What's the status on that? [After this interview took place, Silverlight 1.1 was renamed 2.0. The 2.0 beta with a Go-Live license is expected to ship in Q1, according to Microsoft.]
Today there's a VS 2008 add-in for Silverlight. Right now we're at beta 2.The update that we shipped the same week as VS 2008 has the same existing features.
You'll see the next major update of the tooling support add all of the major runtime support; things like data binding, layout management, richer controls, styling templates-a bunch of pretty exciting features-will be supported in 2008 in the future. It's going to actually stay in the beta form right now because Silverlight 1.1 hasn't shipped yet. So once it does ship, we'll ship the VS 2008 official supported tools as well.
We shipped Silverlight 1.0 in September. So now that the team shipped 1.0, we're basically going after 1.1 in earnest, and so a lot of features frankly haven't been checked into 1.1 yet; they're just happening now. And the next big public release of 1.1 will have all of those features, and that's where things like data binding, layout, rich controls and text input and a whole bunch of features like that will show up.
Early on there was some belief, partly due to the code-name of Silverlight, which was Windows Presentation Foundation/Everywhere, that there was a lot of commonality between WPF and Silverlight-but it now seems that the commonality is just XAML.
No, I think that's a misconception. People looked at the alpha and said, "Oh, data binding isn't there," or "layout management isn't there," or "rich controls aren't there." That was simply in the alpha that those features weren't there. When you look at the next public preview of Silverlight that we're doing, all of those features that are core to WPF are built-in, and there's more than just the XAML in common. You can actually take your core UI code, working with controls and databinding and things like that, and use that seamlessly in the Windows app and in the Office app and in the RIA [rich Internet application] app.
So does that mean the controls will be interchangeable?
It depends on the control. It depends on how you write the control. But in general, if you're a developer and you build a user control with Silverlight, you should able to, in most cases, use it in a WPF application without having to change the code.
Yeah, the power to do deep-three hardware acceleration integrated in Office, which WPF gives you, and at that same time have that same programming model work on a Mac or on a Linux box inside a browser-that's a pretty powerful thing to do with one language, whether it's VB or C# or Python. And then have one programming model to work against it-that's kind of cool.
There's a lot of interest in building data intensive Web pages or Web apps. Can you talk about little bit about that?
I think that clearly one the things that developers spend a lot of time on is data. And sort of a core part of what we're trying to do with ASP.NET is to make building data-driven apps even easier.
One of the big things that we ship with VS 2008 and with 3.5 is this LINQ or Language Integrated Query. That basically provides a really clean way that you can query data from VB or C#, whether it's from a database or whether it's from an XML file or .NET object. And you'll see a lot of talks, books and articles [about that] over the next couple months. I think this is one of the big things that people will dive into immediately as VS 2008 and .NET 3.5 ship-taking advantage of LINQ because it's going to dramatically improve the productivity of working with data.
And that's for a developer rather than a database type?
We typically think of it in two roles: One is the developer, who's writing code and the other is a database administrator, or DBA, who's kind of managing the database. And there's a delicate balance: Where does one end and one begin? There's a certain degree of overlap, especially in the middle there. And you can be a DBA and use Visual Studio to manage your database and do versioning of your schema and things like that. You can also be a developer and write code in VB or C# that goes against it. There's always a little bit of a handoff there but I think one nice thing about our tooling is that it sort of integrates the two.
In light of Microsoft's investment in Facebook and the new Google initiative, Open Social, do you think corporate developers will eventually need to think about building apps for social networks? What types of skills are they going to need and how does tooling like Visual Studio 2008 help in that effort?
As far as plugging into specific frameworks like the Facebook framework or the new Google Open Social framework, we don't directly have tooling support in VS 2008 specific to those APIs. What we do have for Facebook, though, is Facebook ships a .NET API plug-in that you download, an SDK, so they provide the .NET API hooks that you can use from within VS 2008 and .NET 3.5. And also some of the developers on my team have built an SDK-which is called Facebook.NET-that allows you to build Facebook applications using Visual Studio.
I expect to see more of those types of SDKs and plug-ins in the months ahead. In general, I think this space is moving pretty quickly and so the SDKs and the APIs that are released specific to these platforms tend to be APIs that will change six months from now. From a corporate IT perspective, one thing you may want to be careful of is to be very cognizant of how fast that space is moving. We're making sure with VS 2008 and ASP.NET and .NET [that] you have the core platform that allows you to easily target these APIs and integrate.
Is Microsoft thinking of supporting Open Social-are you having discussions about that?
To be honest with you, our Windows Live team is sort of involved in that space-I personally am not sure what the status is there.
The developer division has indicated that it wants to get the next major Visual Studio Team System (VSTS) upgrade, dubbed "Rosario," out at the end of next year. I've heard similar things about the next version of .NET, which I think people are unofficially calling .NET 4.0. What does that mean from Visual Studio professional standpoint?
Visual Studio 2008 does include a new version of VSTS and TFS [Team Foundation Server]; those products are shipping as far as that release. Rosario is kind of the next wave of support for the enterprise at the application lifecycle management level.
We haven't announced any details about .NET 4.0. But one of the things we're doing with Visual Studio at a high level-and 2008 is the first version to support it-is adding this thing we call multi-targeting. You can target different versions of the framework from within your Visual Studio IDE and IntelliSense; debugging and all the features just work with it. And that gives us some nice options where we can deploy new frameworks fairly agilely and we can respond to business needs on the platform side.
OK, so if I'm still using .NET 2.0, it might make sense to upgrade to VS 2008?
Are you happy with the uptake that you've seen with WPF and Silverlight? Do you expect more momentum as some of this tooling comes online?
Yeah, I'm pretty happy with where we're at right now. WPF is now six months old or seven months old, from when we shipped it early this year for the very first time. VS 2008 is the first release of Visual Studio that has WPF and LINQ support in it. We'll ship a designer and project system support for it, so certainly we expect to see even more uptake once that happens. But if you look at the global ISVs, and you look at the people building the rich LOB [Line of Business] applications today, we're seeing a lot of uptake and a lot of excitement around it. Primarily because it lets you-from a capability perspective-do things that you just can't do today with a pure Win32-based programming model. You can do animation, you can do transparency, you can do rich text flow, you can do a whole bunch of things that you just can't do with other UI client technologies.
So from that perspective, I think we're doing pretty well. And I think next year-as 2008 gets more broadly adopted as well as things like Silverlight come out-I think WPF will become even more compelling.
I think with Silverlight 1.0, when we shipped, if you look at the number of sites that are deployed on it, I feel pretty darn good about it. The World Wrestling Entertainment is on it. Home Shopping network is on it. The Emmys were broadcast live on it. Major League Baseball is on it. The list goes on and on. I feel pretty good that every month we're seeing more uptake in terms of deployment of 1.0. And obviously, I think, with 1.1 coming out next year, you're going to see a broad mass of developers that really start using it in earnest with the rich .NET programming model. So I think I feel pretty good about where we're at. I think any time you launch a new platform, it doesn't happen over night, but I'd say in terms of big customers deploying already, it has definitely surpassed our expectations. When I look at the excitement out there, the buzz out there for Silverlight 1.1, it's pretty high.
The August technology preview of Acropolis is the final CTP. Is some of that technology going to be put into later versions of .NET and Silverlight?
Acropolis was basically a collection of technologies for building client apps and for making client application development better. We learned a lot through that process, and as it came down to shipping it we decided two things. One was there's a set of technologies that people just want to use now, so we're going to release a client application block, or CAB project, which has that technology. As for the next client application block that comes out of our prescriptive architecture guidance group, we'll include that early next year.
And then there's a set of technology that we think is going to take a little bit longer, which is some of the more advanced component model work. And rather than hold the CAB from being done, we're going to basically take that work and roll it into our next release. And so you'll see more about that next year. But we won't be calling it Acropolis per se because Acropolis right now is a combination of all of those things. You'll see parts of Acropolis that will ship as part of the CAB very, very quickly, and then you'll see the rest of the pieces show up next year in a release that doesn't gate the CAB from shipping.