Chapter 2. Understanding LINQ Architecture and Implementation

Most C# and especially VB developers probably have used many domain-specific programming languages (commonly called domain-specific languages or DSLs) during their careers. DSLs are special-purpose languages dedicated to popular application domains, such as word processing (WordBasic macros), spreadsheets (Excel functions), relational databases (SQL, Embedded Basic, AccessBasic, and Access macros), Web browsers (JavaScript or ECMAScript), music (CSound and hundreds of others), and XML documents (Quilt and XQuery). Visual Basic for Applications (VBA) subsumed WordBasic, AccessBasic, and Excel macros to become the generic DSL for COM-based Windows productivity applications. Microsoft has licensed VBA to hundreds of independent software vendors (ISVs).

DSLs for narrowly specified domains commonly implement code-generating GUIs and wizards. Industry pundits in the late 1990s mistakenly expected DSLs to relieve an impending programmer shortage with automated software factories. VS 2008's LINQ to SQL, Entity Data Model (EDM) Wizard, and EDM Designer, which Chapter 1 introduced, as well as the earlier DataSet designer are special-purpose DSLs that generate C# or VB partial classes from relational databases. Special-purpose DSLs have become so popular that Microsoft offers a set of domain-specific language tools for VS 2005 and later. These tools create custom graphic designers from domain-specific diagram notation and generate ...

Get Professional ADO.NET 3.5 with LINQ and the Entity Framework now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.