Microsoft Data Development Technologies At-a-Glance
By Kraig Brockschmidt and Lorenz Prem, Program Managers, Microsoft Corporation
Last updated September 2010
Over the last twenty years, the PC software industry has gradually shifted from a focus on the generation of rich information to a focus on publishing and searching that information. We are at a point now where access to rich data sources is an active concern for nearly every new application across the desktop, web, and server domains. And as the amount of available data continues to increase, data access will only become more and more central to software development.
This article takes a brief look at the different data development technologies within Microsoft’s data platform. The technologies are separated into three groups: current .NET Framework technologies, current Win32 technologies, and future technologies. The primary purpose here is to illustrate the relationships within those groups and to help you understand where your own development projects can best leverage the platform.
For more details on the current .NET Framework technologies, and a glimpse to the future, see A Guide to the Data Development Platform for .NET Developers.
To understand the development of these technologies over time and why they were created, also see Microsoft Data Development Technologies: Past, Present, and Future.
.NET Technologies At-a-Glance
Available with .NET Framework 3.5 SP1 and later—and greatly improved in .NET Framework 4.0—, the Entity Framework provides a strongly-typed LINQ data access experience over relational databases, including direct, efficient access to SQL Server. The Entity Framework automatically generates lightweight .NET classes that map to relational database structures. The mapping or Entity Data Model (EDM) can also be controlled and customized. This enables developers to work with objects that model application specific entities, leaving the Entity Framework to provide all the database-specific plumbing code that would otherwise need to be written and maintained.
Using the Entity Framework is highly recommended for all new applications.
|LINQ||Language-Integrated Query, a language feature available in .NET Framework version 3.5 and later, is a convenient means to execute queries against data sources of all kinds, including XML, CLR objects, DataSet objects in ADO.NET (LINQ to DataSet), and classes generated by the Entity Framework (LINQ to Entities). LINQ to SQL supports direct access to Microsoft SQL Server Databases, through Microsoft recommends that new applications use the ADO.NET Entity Framework instead.|
The core .NET classes for data access through ADO.NET data providers are available in all versions of the .NET Framework. Classes include SqlConnection, SqlCommand, DataReader, DataSet, and DataTable. Server controls are also provided for ASP.NET applications.
Providers are natively available for Microsoft SQL Server, ODBC, and OLEDB. A variety of additional providers are also available from third parties for other database technologies. Virtually all databases are thus accessible through ADO.NET.
Through LINQ to XML, the System.XML classes in .NET, and the MSXML API for Win32, applications have full, flexible access to XML data.
|Open Data Protocol (OData)||
OData is a protocol for querying and updating data on the web. It is a joint project by many companies in the industry being led by Microsoft. Among other things OData hopes to create consistency in how data is presented by services on the web.
Several organizations offer their data as OData feeds today. The set of technologies included under this label are frontrunners in the next evolution of the data space. OData is redefining how we think about data on the web.
Not shown in the first image above is WCF Data Services (previously known as ADO.NET Data Services and code name “Astoria”) . This is because while the other technologies work with a direct connection to a database, Data Services exposes data over a REST-based interface (typically using the Entity Framework as its data-access layer). That interface is called the Open Data Protocol; for details, visit www.odata.org.
Data Services is thus a near-turnkey solution for providing a CRUD-based service and can expose Entity Framework entities (using the same Entity Data Model), SharePoint data, LINQ to SQL classes, arbitrary CLR classes, or any other data source. Data Services, in other words, has a back-end relationship to the other data access technologies, as shown in the following illustration, to bring data out to the cloud:
Native Technologies At-a-Glance
|ODBC||Call-level (i.e. API function) access for C/C++ applications to varying data stores through ODBC drivers.|
|OLEDB||Object-level access for C/C++ applications to varying data stores through OLEDB drivers.|
|ADO||Object-level access to OLEDB, suitable for Visual Basic 6, Java, and other "pointerless" programming languages; includes specializations such as ADO Multidimensional (ADOMD) and ADO Extensions for Data Definition Language and Security (ADOX).|
|MSDASQL (Microsoft OLE DB Provider for ODBC)||An OLEDB provider that makes any ODBC source available via OLEDB and ADO.|
|SQL Server Native Client||Direct, highly optimized access to SQL Server databases.|
|PHP Driver for SQL Server||Access to SQL Server databases from PHP-based web applications.|
|JDBC (Java Database Connectivity for SQL Server)||Access to SQL Server databases from Java in web applications.|
SQL Server At-a-Glance
|SQL Server Database Engine||Represents the traditional on-premise database server model.|
|SQL Azure||A cloud database service offered as a utility operated by Microsoft hosted in dedicated data centers.|
|SQL Server Compact||A small, free, embedded database engine for use on client devices such Pocket PCs and smart phones. It targets occasionally connected applications and applications with an embedded database.|
Application Services At-a-Glance
|SQL Server Integration Services (SSIS)||Used to build enterprise-level data integration and workflow solutions. An SSIS application (package) represents a workflow app that is installed and executes on the server.|
|SQL Server Reporting Services (SSRS)||A platform for creating richly formatted reports derived from data stored in a SQL Server instance or from SQL Server operation. The reports and the data contained in them are accessible through an API.|
|SQL Server Analysis Services (SSAS) – Multidimensional Analysis||Allow business users to design, create and interpret multidimensional structures that contain data gathered from multiple SQL Server instances and other data sources. This data is accessible through an API.|
|SQL Server Analysis Services (SSAS) – Data Mining||Provides tools to create complex data mining solutions; at the API level the application can make use of the Data Mining Extensions language (DMX) to run complex queries.|
|SQL Server Replication Services||Allow DB administrators to replicate data from one database to another. Once set up no maintenance is required. Applications can interact with replicated data as if it were stored locally.|
|SharePoint integration||Since the SQL Server 2008 R2 release both SQL Server Analysis Services and SQL Server Reporting Services have access to data stored in SharePoint. This makes the vast amount of corporate data stored on SharePoint sites accessible and discoverable through the SSRS and SSAS APIs.|
|Master Data Services||Serves data that has been deemed “authoritative” to the organization. Applications can access this data using the existing SQL programming model.|
|SQL Server Service Broker||Provides a framework for building messaging applications that use multiple databases for reliability and performance reasons. Application developers who use Service Broker can distribute data workloads across several databases without programming complex communication and messaging internals.|
|Sync Framework||Gives developers the ability to create rich off-line and cache mode applications. Data is synchronized across any number of devices that collaborative access the same set of data. Conflicts are detected and resolved. Data is synchronized efficiently using peer-to-peer communication. Developers can add any data source to the collaboration.|
Future Technologies At-a-Glance
With the release of .NET Framework 4 and Visual Studio 2010 in April 2010, work is now underway on the next versions of ADO.NET Entity Framework and Data Services technologies. For details, see:
The other upcoming technology is SQL Server StreamInsight, a platform for complex event processing (CEP) applications. StreamInsight features high-throughput, low-latency processing of streaming events without impact on the performance of the database. The supported events include data change notifications in a SQL Server database instance. StreamInsight enables decision making on data while the data is in flight to and from the database.