Microsoft’s Dynamic IT initiative focuses on evolving the IT organization from being a cost center to becoming a strategic business driver. At the core of Microsoft’s Dynamic IT strategy lies integration of the company’s products as a platform that enables IT and development professionals to incorporate each other’s requirements into all aspects of the IT life cycle.
From a SQL Server perspective, connecting IT and development is a familiar concept: SQL Server professionals generally span the two worlds, doing both database administration and database development. And application developers, who aren’t usually associated with SQL Server, depend on data to make their code work. Applications’ reliance on data means developers need tools that provide natural access to SQL Server. In this light, the rationale for Microsoft’s joint launch of Windows Server 2008, SQL Server 2008, and Visual Studio (VS) 2008 becomes clear. VS and SQL Server integration is a logical starting point for Microsoft to enable Dynamic IT by bridging the gap between IT and developers.
In the following interview, S. Somasegar (Microsoft Senior Vice President, Developer Division) discusses the launch of VS 2008 and its connection with SQL Server 2008. The conversation covers key VS features that bring code development and data together, and Somasegar discloses the new functionality that he considers to be a key innovation of the VS 2008 release.
Forster: From the strategy of this release, how does VS 2008 relate to SQL Server?
Somasegar: Historically, we always said that data and programming are two islands. They shouldn’t be two islands. They should be deeply integrated. With VS 2005 and SQL Server 2005, we started the integration between SQL Server and VS in a deeper way. We wanted to bring the power of .NET programming to the SQL Server database developer. We took one big step forward with the last version of the products. We wanted to take the next step forward in that journey in VS 2008. We wanted to make sure database developers are a truly integrated part of our application development life cycle, which we didn’t have before.
Forster: Didn’t that integration begin with the release of Visual Studio Team System for Database Professionals (VSTS DB Pro)?
Somasegar: If you go back to VS 2005, that was the first time we delivered Visual Studio Team System \[VSTS\] and Team Foundation Server. We said, “Let’s get into the application life cycle tools space, and let’s think about developers, testers, and architects.” Then we said, “Database developers are also an integral part of application development. Let’s make sure we include a set of tools for database developers.” This is the first time we’re integrating SQL Server with the rest of VS Team System so there is seamless workflow between a designer or architect, a database developer, and a tester.
Forster: For someone who is unfamiliar with VSTS DB Pro, how do you describe it?
Somasegar: There is no application today that doesn’t need access to data in some meaningful way. So SQL Server is an integral part of any application. VSTS DB Pro provides a comprehensive set of tools for somebody who is building data-enabled applications (where the data resides in a database). Think about it as the tools that you as a DBA or database developer need—in addition to the rest of VS and .NET Framework 3.5—to be able to build, manage, and run your enterprise on SQL Server. There is a bunch of functionality that DBAs need, and we wanted to bake that functionality into the VSTS DB Pro product so that we have a comprehensive solution. Previously, in VS, if you wanted a project, you set up a C# project or a VB project. But there is a data project type that people want to build. We think about a data project as a first-class citizen of VS, just like any language project. The second thing we wanted to provide was for the DBA—you may want to do some schema diff’ing, you may want to do rich change management, you may want to do version control.
Forster: Most people don’t think of DBAs as programming in VS. What do DBAs gain?
Somasegar: I want DBAs to be programming in .NET VB or C# from within SQL Server. One reason why we went through this huge integration and getting the .NET programming environment for SQL Server is to enable DBAs to start taking advantage of the .NET programming. What you really want to say is “I have a .NET application. Ignore what my role is. I want to be able to do interesting things with data in my .NET application.” I could be a classic programmer. I could be a database developer. I could be a DBA. Depending on my skill set, do I want to play at the presentation tier? Do I want to play at the data tier? Do I want to play at the back-end tier? We want to get the power of .NET programming across all tiers and say that data is an integral part of .NET applications and enabling rich data features for the .NET developer in a .NET-based application.
Language Integrated Query and Entity Data Model
Forster: What are some examples of this integration?
Somasegar: One is \[Language-Integrated Query\] LINQ. Anybody who writes an application today has to think about data. If you think about it from that perspective, you want the developers who are programming to understand one set of constructs, one set of semantics, and be able to get their job done. You don’t want them to think about VB or C# and think about some data language and figure out how to get the two together. So with LINQ, you can use the same language constructs that you as a developer are already familiar with and are comfortable with—could be VB, could be C#. We want to enable you to query data using the same language constructs. We decided there could be multiple data sources: I could have XML data; I could have relational data stored in SQL Server or some other database; I could think about objects. These are the three data sources that we picked to support in the first version of LINQ. Down the road, we may expand it, or we may provide a provider model and get somebody else to plug into that. But it’s really a platform that enables you to bring the power of data to the developer right in the language they’re familiar with.
Forster: LINQ isn’t the only way that VS 2008 and SQL Server 2008 integrate programming and data. How does the new Entity Framework fit into the picture?
Somasegar: We said there are two ways you could do this: You could have direct LINQ to SQL, and we have tool support that lets you build a LINQ object from within VS. Or, if you are a fancy developer and want to think about a higher set of conceptual data models, we have the Entity Framework. The SQL Server team wants to build a platform that enables data right from the design all the way to operations and business intelligence (BI) and reporting and analysis and all that fun stuff. When you think about data in various forms like BI—could be replication, could be reporting, could be analysis—there are a variety of services that you can build on top of this data platform. Today we build some services on a data platform. We have aspirations to build more. We’ll be excited for somebody else to come and build some services on top of our data platform. So when you have this broad view, what you want to do is provide a data model that is both rich and can span the spectrum of services that we want to build. It will be good to come up with a data model that is sitting at the level higher than SQL, with rich conceptualization, with rich data models, with the ability to manipulate those models in a rich way that we think will make the life of the service guys much easier—as opposed to everybody having to talk directly to SQL and then deal with their own data model. So we think there is a platform abstraction layer that we could create, which is what we’re calling Entity Data Model. It provides a set of rich data models that people can create and manipulate.
Forster: The community has been interested in the Entity Data Model, but the Entity Framework didn’t ship with .NET Framework 3.5. When can we expect it to ship?
Somasegar: That’s going to come up probably within the next several months. Somewhere between now and whenever SQL Server 2008 ships, we hope to get the Entity Framework done—not only the framework done on the platform side, but also have first-class tool support in VS that enables you to create entity models from within VS.
Forster: Why hasn’t it shipped?
Somasegar: When you come up with a platform layer that is as broad as what we’re thinking about for data through entity models, you really want to get it right. The last thing you want to do is ship an Entity Model framework and then say, Oops! It really isn’t the right framework. We really need to tweak the thing. There was an interesting set of discussions we had last year: Can we ship it in time with VS 2008 .NET Framework 3.5, or do we need more time? Ultimately, we decided we needed to take a little bit of extra time so that we get it right. Then we’ll be able to deliver it to the market. So you should think about it as part of the SQL Server 2008 wave. It will be the same timeframe.
Forster: Bill Laing told me that virtualization and Server Core would be the most memorable features of Windows Server 2008. Ted Kummert said that DBAs would remember SQL Server 2008 for the Resource Governor. What do you see as the most notable innovation for Visual Studio 2008?
Somasegar: I think from an innovation perspective, I have to fall back to LINQ. It is a big piece of innovation that I think will fundamentally revolutionize how people think about writing data-enabled applications. Early on, about two years ago, we had just decided on what the key pillars and themes were for VS 2008. I had a conversation with Bill \[Gates\]. I said, “Here’s what we’re planning.” We had a 60- or 90-minute discussion where I filled him in on all the features, all the cool things. Then when I finished, Bill said, “Hey! LINQ makes this release really compelling.” He didn’t talk about all the 85 other features. So I think from my innovation perspective, LINQ is at the top of the list in terms of what this release will be remembered for.