SQL Server Modeling CTP and Model-Driven Applications
[This is prerelease documentation and is subject to change in future releases. Blank topics are included as placeholders.]

This topic describes the goals and basic features of the SQL Server Modeling CTP, which provides a SQL Server 2008 database with preinstalled models, a series of data language features to enable rapid and customized data-based application design and development, and a visual data analysis and display environment. Together, the SQL Server Modeling CTP supports modeling techniques to make building data-driven, SQL Server-based, .NET Framework applications easier and more productive for a larger number of people, even in enterprise- or Internet-scale environments. In addition, the same tools make building metadata repositories easier for enterprises of all sizes for advanced analysis of the running business data environment.

The SQL Server Modeling CTP contains:

  1. A SQL Server 2008 database designed for optimized and secure models for data and metadata.

  2. Preinstalled, shareable model schemas for the application lifecycle that enable and support Microsoft and third-party solutions.

  3. A visual tool that helps anyone examine the data available in a SQL Server 2008 database and customize their view of the data so that it makes sense to them.

Microsoft SQL Server Modeling CTP and Model-Driven Applications

Microsoft created tools such as Visual Studio, ASP.NET, and the .NET Framework to make it easier to build and deploy advanced applications, especially enterprise-scale, distributed applications that are heavily dependent upon high volume and robust data access. With these tools, businesses of all sizes have built powerful applications that provide more data and features of more importance to more internal and external customers than ever before.

Of course, the ambition and vision of these applications has brought increasing development and management challenges. The complexity of design, development, and management is costly, and requires a high degree of diligence, knowledge, and experience. In response, new development and management methodologies have endeavored to address the weaknesses of earlier processes, always seeking to shorten development time and increase the robustness of complex applications. Tools and technologies such as XML, .NET Framework managed code, .NET Framework attributes, and XAML make it possible to describe—which is to say, model—not only data but also programmatic behavior. By modeling behavior with such metadata, much of the tedious and repetitive code is essentially universalized by an application runtime that understands how to dynamically configure itself with those models.

Indeed, this is the function that configuration files and scripts have served for many years. Such ad hoc solutions, however, have generally been very application-specific and tend to break down as the scale of an application expands. In addition, they are usually limited to only one segment of the whole application lifecycle: implementation, or perhaps management. As such, many approaches to modeling have not really addressed the communication breakdowns that occur between those who understand the intent of the software, those who build it, and those who deploy, manage, and version it. Versioning, deployment, and management of widely distributed applications remain an extremely difficult set of tasks.

The most successful strategies, tactics, and technologies for modeling, on the other hand, help to address the problems of communication, scale, and both development and management productivity by creating a higher and more efficient level of abstraction that:

  • Places control in the tool or language that is easier and less costly to use because it is closer to the mental world of the users that need to manage their complexity more efficiently. Development managers, for example, no longer need to review all source code to know what changed in the previous day or week; they can use Visual Studio Team System to see where any code changed across an entire product or multiple products.

  • Builds more knowledge of specific problems into a configurable runtime that addresses it, removing the need for someone to build, and often rebuild, custom one-off solutions by hand, with both the associated possibility of inevitable defects and the ongoing cost of maintenance.

The SQL Server Modeling CTP is the next iteration of this cycle; the SQL Server Modeling CTP raises the level of abstraction more than ever, seeking again to dramatically improve developer and data management productivity.

The SQL Server Modeling CTP includes:

  • A database designed for models (built on SQL Server 2008 and called SQL Server Modeling Services) that is highly optimized to provide your data schemas and instances with system-provided best practices for scalability, availability, security, versioning, change tracking, and localization.

  • A visual tool (Microsoft code name “Quadrant”) for browsing any SQL Server database without writing a line of code. Using “Quadrant” you can easily browse any set of related tables by dragging and dropping icons that represent the related data. You can also filter data by writing “M” queries (you do not have to know Transact-SQL), and you can customize the viewer to display data how you want to see it, rather than seeing the physical database implementation.

  • A language (Microsoft code name “M”) with features that enable you to model (or describe) your data structures, data instances, and data environment (such as storage, security, and versioning) in an interoperable way. It also offers simple yet powerful services to create new languages or transformations that are even more specific to the critical needs of your domain. This allows .NET Framework runtimes and applications to execute more of the described intent of the developer or architect while removing much of the coding and recoding necessary to enable it.

Understanding Model-Driven Development

Model-driven development in the context of SQL Server Modeling CTP indicates a development process that revolves around building applications primarily through metadata. This means moving more of the definition of an application out of the world of code and into the world of data, where the developer’s original intent is increasingly transparent to both the platform and other developers. As data, the application definition can be easily viewed and quickly edited in a variety of forms, and even queried, making all the design and implementation details that much more accessible. As previously discussed, Microsoft technologies have been moving in this direction for many years; things like COM type libraries, .NET Framework metadata attributes, and XAML have all moved increasingly toward declaring one’s intentions directly as data—in ways that make sense for your problem domain—and away from encoding them into a lower-level form, such as x86 or .NET Framework intermediate language (IL) instructions. This is what the SQL Server Modeling CTP is all about.

For more information about model-driven development, see Building Applications in "Oslo".

The “M” Language and Features

Use the "M" language and its features to define custom languages, schema for data (data models), and data values. Doing so brings the meaning of the code you write closer to your own domain of experience. With more of your own intent encoded in models, it becomes easier for you—and other developers working with your domain—to write code and applications faster, especially by sharing models and reusing them.

  • You can use the schema (or model) definition feature of “M” to design interoperable models—data schemas—for the data in your particular field of interest (called a domain). Using the schema definition feature makes statements about the structure, constraints, and relationships, but says nothing about how the data is stored or accessed, or about what specific values an instance might contain. By default, “M” models are stored in a SQL Server 2008 database, but you are free to modify the output to any storage or access format. If you are familiar with XML, the schema definition feature is like XSD.

  • You can also use the value definition feature of “M” to create model (that is, schema) instances of your data structures. The value features make statements about the data values that are to populate instances of the models you or others have created, but again, interoperability is maintained. While the default compilation output can be inserted into SQL Server 2008 or into a Modeling Services database, you can transform the output into any format you need to support your scenario. If you are familiar with XML, defining values is like creating an XML file that conforms to an XSD file.

  • You use the language definition feature to create new, custom languages (sometimes called domain-specific languages, or DSLs) for your own domain of expertise that you control, without having to build a parser, lexer, or any other supporting infrastructure. Building a custom language makes it vastly simpler for you or your customers to express their specific desires, dramatically lowering the barrier to using your particular domains and applications built on them.

  • By default, the output of “M” is either Transact-SQL that can be inserted in any SQL Server 2008 database, or a more customized version of Transact-SQL that uses the advanced features of Modeling Services, such as security, versioning, change tracking, and so on. However, “M” languages are extensible and can output any specific format you care to implement. Model-driven applications must be interoperable, and where they interoperate depends upon your circumstances, requirements, and resources.

“Quadrant”

Microsoft "Quadrant" is a visual tool for viewing, editing and exploring data found in any SQL Server 2008 database. A user can open multiple windows (called workpads) in “Quadrant”. Each workpad can contain a connection to a different database, or a different view of the same database. Each workpad also includes a query box in which users can type in an “M” query to find a single record, or set of records that match the query criteria.

“Quadrant” features a different way of visualizing data: along with simple list views and table views, data can be displayed in a tree view, in a properties view, and in variable combinations of these four basic views. An essential part of this is the ability to dynamically switch, at any time, between the simplest and the most complex views of the data. As you explore data with these views, insights and connections between data sets previously unknown may become apparent. And that has benefits for those using the SQL Server Modeling CTP to create new models. As part of the SQL Server Modeling CTP toolset, “Quadrant” enables SQL Server Modeling CTP developers to view new models with “Quadrant” viewers. The “Quadrant” data viewing experience enables designers of DSLs to quickly visualize the objects that language users will work with. In this way, “Quadrant” gives developers a quick vision of their models. With this feedback, “Quadrant” can also provide a reality check for the model designer, which may in turn lead to better data structures and models.

The SQL Server Modeling Services Database

SQL Server Modeling Services provides a robust, enterprise-ready storage location for the data models. It takes advantage of the best features of SQL Server 2008 to deliver on critical areas such as scalability, security, and performance. The Base Domain Library (BDL) of SQL Server Modeling Services provides infrastructure and services, simplifying the task of creating and managing enterprise-scale databases. Modeling Services provides the foundation for productively building models and model-driven applications with SQL Server Modeling CTP.

Provided Domains and Models

The power and flexibility of a model-based development platform increases tremendously each time more of the models you need and want to use become available. SQL Server Modeling Services comes with a set of domain models written in the Microsoft code name “M” modeling language that is organized into modules (similar to namespaces in other languages). These help domain and model developers understand where to find models that represent specific functionality or that you can use to create new models for your functionality. For more information about the domains and models that come with the SQL Server Modeling CTP, see SQL Server Modeling CTP Domains Overview.

See Also

Tags :


Page view tracker