ORLANDO, Fla., June 4, 2007 – Developers have long struggled with the disparity of creating business applications that access and store data efficiently and the need to deliver data to users in an intelligible and usable format. Bridging this gap has often been the bane of a developer’s existence.
In Microsoft’s vision for data programmability, the company aims to make developers more efficient by enabling them to focus on building business solutions rather than spending valuable time on low-level data programming details.
Microsoft SQL Server 2008 is at the center of this vision, along with the Entity Framework and LINQ-enabled data programming technologies that enable developers to work with conceptual data models in their programs. The company’s overarching goal is ultimately to make developers and IT departments more productive. SQL Server 2008 delivers on the Microsoft approach to Dynamic IT through its model-driven, policy-based management framework, as well as its user-focused approach to connect employees with the people, processes and information they need to drive results.
Set for release next year, the data management and analysis platform is designed to help companies efficiently access and manage rapidly increasing volumes of data for mission-critical applications. SQL Server 2008, combined with the .NET Framework, enables a new generation of dynamic development that allows developers to define and access their data using logical business entities instead of the physical tables and columns. Developers can also create a new breed of occasionally connected applications that can function while disconnected from the network. SQL Server 2008 also seeks to help organizations gain business insight and reduce difficulties associated with managing complex systems through an enterprise-class offering, which delivers increased functionality – from mobile devices to desktops to Web servers, up to the data center.
To help developers attending Tech•Ed 2007 and abroad learn more about SQL Server 2008 and Microsoft’s comprehensive vision for data programmability, PressPass spoke with Microsoft's Francois Ajenstat, Director of Product Management, SQL Server, and Britt Johnston, Director of Data Programmability; as well as Ed Worsfold, Director of Marketing from Dundas Visualization Inc.
PressPass: Describe the biggest challenges developers face today when programming data.
Johnston: One of the biggest challenges a developer faces is working with disparate data. Organizations' systems have evolved over time, but often the data components of these systems are old and have not evolved equally because people are more likely to build new versions of applications and simply re-use existing databases. Let me give you an example. It’s pretty common to see a large business application have a complicated notion of what a customer is, and that notion will evolve over time. You might end up with a customer definition from a data perspective that is much different from a business perspective, stored across numerous tables inside a database. In the end, a developer may need to write a fairly complex query to get basic information on a customer.
Another reason for the disparity can be attributed to organizational operations. For efficiency’s sake, the way the data is stored on disk needs to be optimized for performance reasons, and sometimes for space reasons, yet these optimizations might not be intuitive to a developer.
In general, to solve this mismatch between how data is stored and how it needs to be used, developers create their code and hand craft their map between the way they like to think about the world and the way it’s actually stored on the disk. This data-access layer becomes part of the application, and maintaining this data-access layer can account for 20 to 40 percent of their business application.
As a result of all this, there’s been an often-heard request from developers to formalize a solution.
PressPass: What is Microsoft doing to formalize a solution and help developers overcome the disparate-data obstacle?
Ajenstat: There has always been this disconnect between the developer and data. We are trying to bridge this gap by making data a first-tier object in programming languages used by developers. Our data programmability vision adds value to the development process and makes developers more efficient at building data-centric applications.
We want the developer to focus on what he or she does best, which is to build solutions and not have to worry about the physical storage of data. To accomplish this, we are delivering a new technology called the ADO.NET Entity Framework, which enables developers to work with data at a higher and more intuitive level of abstraction – that is, conceptual rather than logical. Within this framework, developers can access their data by defining business entities, such as customers and products, whose data may be stored across several individual tables. Using this framework, developers can focus on the concept of say, finding a customer in a particular region instead of having to figure out where or how the logical data is stored and which tables need to be queried to get the needed data. With the Entity Framework and with the introduction of LINQ (Language INtegrated Query), developers can now query and retrieve these entities natively within any .NET language, and not have to worry about the underlying details of the data. These technologies enable developers to define business entities (e.g., customer) and work within a conceptual entity model, while administrators can remain focused on defining and managing the implementation of the model as databases, tables and columns.
Johnston: One of the reasons why relational databases originally became popular was because they allowed developers to raise the abstraction level with which they interacted with data from the physical to logical. All that physical interaction with the data dominated the programs that developers had to build for business applications. The result was tables and columns abstraction, which made it easier to build applications. Still, when developers designed applications, they often had a conceptual model that ended up as a nice picture on a wall, their code operated on the logical database schema. The downside was that developers had to let go of the conceptual model and operate at a lower level.
We are enabling developers to use this simple yet effective approach to build applications directly while capturing the applications’ conceptual model in a formal way. Developers can use the entity framework to create those data access layers without having to write all that code, automating what is normally a time- and code- intensive process. An additional benefit in doing so is that any changes in the underlying database are isolated to the entity model, which drastically reduces the impact on applications.
I want to point out that we are not inventing something from nothing, or leaping into unknown territory. The Entity Data Model (EDM) is based on a proven entity relations (ER) model that’s been accepted by the industry and used for 30 years.
PressPass: Please expand a bit more on LINQ and what that will mean to developers.
Ajenstat: LINQ stands for Language INtegrated Query, which is a set of extensions to the .NET Framework and to C# and VB.NET that enable these programming languages to support native language syntax for queries. LINQ lets developers write native query statements using these languages as first class objects, which enables queries to benefit from more efficient data processing, design time error checking and type checking and IntelliSense from within the Microsoft Visual Studio development environment.
LINQ has several extensions that provide specialized support for different types of data including LINQ to Entities, LINQ to SQL, LINQ to XML, LINQ to DataSets and LINQ to Objects.
Writing database queries in applications today often requires that developers write queries or SQL statements using text or strings, which get passed to a database for processing. These queries are basically raw text that do not benefit from type checking, error checking or IntelliSense. Before LINQ, queries were not a native part of the developer’s programming language, such as C# and VB.NET, and therefore did not integrate well with the rest of the application. LINQ effectively eliminates the impedance between the code used to query data in a database server and the code in standard programming languages such as C# and VB.NET that is used to build applications.
Ajenstat: Today, if you think about how developers write queries within an application, they are required to switch from C#, or whatever language they use, to a more textual language such as SQL, which is no longer the same context a developer is used to programming. LINQ adds native querying and syntax to the .NET framework programming languages allowing developers to issue queries against data in their programming language so it’s much more seamless. LINQ is set-oriented, strongly typed and connected to the stack. The application can be developed independently from the stored schema and provides a much more consistent programming model. There is no need to change their code if data is stored in different places.
PressPass: Explain to us what an occasionally connected application is and how it can affect a developer’s work.
Ajenstat: Developers can create applications that can work on a local data store and automatically synchronize the local store with a central store for both reference and line of business data. Think of a developer writing an application such as Microsoft Outlook. In some cases, I’ll be working offline, but when I reconnect, all of my e-mails are automatically synchronized to the server. These synchronization capabilities, including tracking changes between various stores and detecting conflicts, are very fundamental, and now the capability is right in the platform. This is something that used to be very difficult and expensive for developers to write that is being delivered directly within our data platform and SQL Server 2008.
PressPass: Can you give me more information on the acquisition of the Dundas’ data visualization products and the potential benefits to developers?
Johnston: We are announcing an agreement with Microsoft Gold Partner Dundas Software that includes Microsoft acquiring the code base for the Data Visualization products from Dundas Software. Data Visualization is an integral component for building information centric applications and reports. Microsoft believes that there is long-term value in providing customers with powerful components, such as charts, gauges and maps.
Worsfold: Microsoft licensed our Dundas Chart for .NET technology for inclusion in SQL Server Reporting Services 2000 and 2005 (SSRS). However, at the time, only certain features were exposed. Although the native charts met the needs of most users of SSRS, there were still those that needed more out of the visualizations in Reporting Services. This opened the door for Dundas to offer an enhanced version of Dundas Chart to users of Reporting Services based on the features in the latest release of Dundas Chart for .NET. After the overwhelming success of Dundas Chart for Reporting Services, Dundas soon thereafter released other visualization options for SSRS, including Dundas Map and Gauge, further enhancing the visualization options available to users of SSRS.
PressPass: How do Dundas products benefit users of SQL Server 2008 and the reports they generate?
Worsfold: Dundas is focused on data visualization technology and our Data Visualization technology for SSRS lets users of SQL Server 2008 produce much richer, more functional and visually appealing reports. By putting our leading edge products into such a capable reporting system as Reporting Services, users benefit by getting both a leading edge report system and leading edge data visualization components. SQL Server 2008 now features three times the number of chart types that offer more functionality and are much more customizable. In addition, there are new visualization options available in the form of Gauges and Maps to add additional visualization options.
PressPass: What’s the next step in Microsoft’s data programmability vision?
Ajenstat: We have built a fantastic data programmability base with the Entity Framework and LINQ, and we are already building on this platform to develop the next generation of technologies. For example, we’re working on an exciting incubation project, code-named “Astoria,” which is a technology that enables applications to expose data as a service that can be easily consumed by Web clients within corporate networks and across the Internet. The "Astoria" data service is reachable over regular HTTP requests using standard HTTP verbs such as GET, POST, PUT and DELETE to perform operations against the service. The use of Web-friendly technologies make Astoria ideal as a data back-end for AJAX-style applications, Rich Interactive Applications and other applications that need to operate against data that lives across the Web.
The first "Astoria" CTP [Community Technology Preview] is available as both download bits and as a Web service preview. The "Astoria" downloadable bits can be used to build data services that are entirely contained within a single computer or network. The online service preview lets you create online stores that are hosted by Microsoft and which are accessible over the Internet. The payload format for the "Astoria" service is controllable by the application, but all options are easy-to-use open formats such as plain XML and JSON.
PressPass: How does "Astoria" benefit developers?
Johnston: "Astoria" enables developers to use flexible data services that are naturally integrated with the Web, which lets developers use URLs to point to dynamic pieces of data and utilize simple, well-known formats to represent the data, such as JSON and plain XML. Since "Astoria" exposes data through a conceptual model, expressed via EDM through the Entity Framework, it allows developers to interact with data at a higher level of abstraction resulting in less code and a cleaner interaction model. "Astoria" provides Web developers with a simple, yet powerful way to access data when developing AJAX or Silverlight applications, using the familiar HTTP verbs such as GET, POST or DELETE to point and manipulate their data.