|
Chapter 3
The Essence of LINQ
Reproduced from the book
Essential LINQ. Copyrightã 2008, Pearson Education,
Inc., 800 East 96th Street, Indianapolis, IN 46240.
<<Previous
Next>>
|
About LINQ
-
It is a technique for querying data that is integrated into .NET languages such
as C# and VB. As such, it is both strongly typed and IntelliSense-aware.
-
It has a single unitive syntax for querying multiple data sources such as
relational data and XML data.
-
It is extensible; talented developers can write providers that allow LINQ to
query any arbitrary data source.
-
It uses a declarative syntax that allows developers to tell the compiler or
provider what to do, not how to do it.
-
It is hierarchical, in that it provides a rich, object-oriented view of data.
-
It is composable, in that the results of one query can be used by a second
query, and one query can be a subclause of another query. In many cases, this
can be done without forcing the execution of any one query until the developer
wants that execution to take place.
-
It is transformative, in that the results of a LINQ query against one data
source can be morphed into a second format. For instance, a query against a SQL
database can produce an XML file as output.
Benefits of LINQ
-
Because LINQ is integrated into the C# language, it provides syntax
highlighting and IntelliSense. These features make it easy to write accurate
queries and to discover mistakes at design time.
-
Because LINQ queries are integrated into the C# language, it is possible for
you to write code much faster than if you were writing oldstyle queries. In
some cases, developers have seen their development time cut in half.
-
The integration of queries into the C# language also makes it easy for you to
step through your queries with the integrated debugger.
-
The hierarchical feature of LINQ allows you to easily see the relationship
between tables, thereby making it easy to quickly compose queries that join
multiple tables.
-
The unitive foundation of LINQ allows you to use a single LINQ syntax when
querying multiple data sources. This allows you to get up to speed on new
technologies much more quickly. If you know how to use LINQ to Objects, it is
not hard to learn how to use LINQ to SQL, and it is relatively easy to master
LINQ to XML.
-
Because LINQ is extensible, you can use your knowledge of LINQ to make new
types of data sources queriable.
-
After creating or discovering a new LINQ provider, you can leverage your
knowledge of LINQ to quickly understand how to write queries against these new
data sources.
-
Because LINQ is composable, you can easily join multiple data sources in a
single query, or in a series of related queries.
-
The composable feature of LINQ also makes it easy to break complex problems
into a series of short, comprehensible queries that are easy to debug.
-
The transformational features of LINQ make it easy to convert data of one type
into a second type. For instance, you can easily transform SQL data into XML
data using LINQ.
-
Because LINQ is declarative, it usually allows you to write concise code that
is easy to understand and maintain.
-
The compiler and provider translate declarative code into the code that is
actually executed. As a rule, LINQ knows more than the average developer about
how to write highly optimized, efficient code. For instance, the provider might
optimize or reduce nested queries.
-
LINQ is a transparent process, not a black box. If you are concerned about how
a particular query executes, you usually have a way to examine what is taking
place and to introduce optimizations into your query.
Also read
Explain the concepts and capabilities of Aspect-Oriented Programming, AOP.
What is Aspect in AOP?
AOP approach addresses Crosscutting concerns. Explain
The components of AOP are advices/interceptors, introductions, metadata, and
pointcuts. Explain them
AOP vs OOPs...........
|