HOME JAVA & JEE OPEN SOURCE .NET WEB & RIA CLOUD & GRID ARCHITECTURE & DDD AGILE PM & SCRUM AGILE TESTING & BDD OS, MOBILE & SERVER  
London .NET User Group:Introduction to Writing DSLs with C#3.5
Introduction to Writing DSLs with C#3.5
LINQ is an internal DSL provided by C# for accessing streams of data. We can leverage the same feature set added to the language to make LINQ to author our own internal DSLs. In this session Ian introduces you to the ideas behind Internal DSLs and shows how C# 3.5 helps you to write them.

Review
In this session, Ian Cooper talks about Internal DSLs and demonstrates how to use LINQ in C# applications with live examples.

A Domain-Specific Language (DSL) can be defined as a programming language targeted at a particular kind of problem. It is not meant to be used for problems outside of its domain. DSLs are particular ways of using a host language (in our case, the C# language) to shape the feel of a particular language. An internal DSL is limited to the syntax and structure of its base language.

Language Integrated Query (LINQ) extends C# and VB with native language syntax for queries and provides class libraries to take advantage of these capabilities. LINQ to SQL provides a run-time infrastructure for managing relational data as objects without losing the ability to query.

Nested Closures are another topic covered in the talk. A Nested Closure is similar to that of Nested Function, but the child expressions of the function call are wrapped in a closure.

Ian also talks about the method chaining pattern, whose purpose is defined by Martin Fowler as: “To make modifier methods return the host object so that multiple modifiers can be invoked in a single expression.” Open Ian Cooper’s web site.
Martin Fowler’s web site, which includes information on DSLs based on his book (currently being written) can be accessed here.
Review by Eren Aykin


ABOUT IAN COOPER
Ian is a passionate exponent of the benefits of OO and Agile. He is test-infected and contagious. When he is not writing C# code he is also the founder of the London .NET User Group .
More about Ian Cooper
PODCAST INTRODUCTION TO WRITING DSLS WITH C#3.5
Digg! StumbleUpon
OPEN SOURCE .NET PODCASTS
Colin Howe:Re-writing Java classes in Scala - and making your code lovely, Re-writing Java classes in Scala - and m
Colin Howe : 8th Feb 2010
View Podcast: Re-writing Java classes in Scala - and making your code lovely,
Emma McGrattan:Waking up to the New Economics of IT, Waking up to the New Economics of IT
Emma McGrattan : 15th Dec 2009
View Podcast: Waking up to the New Economics of IT,
Ian Cooper:A real world guide to architecting MVC Applications, A real world guide to architecting MVC A
Ian Cooper : 14th Dec 2009
View Podcast: A real world guide to architecting MVC Applications,
Sadek Drobi:Computation Abstraction, Computation Abstraction
Sadek Drobi : 7th Dec 2009
View Podcast: Computation Abstraction,
Ganesh Sittampalam:Functional Programming for Quantitative Modelling at Credit Suisse, Functional Programming for Quantita...
Ganesh Sittampalam : 7th Dec 2009
View Podcast: Functional Programming for Quantitative Modelling at Credit Suisse,
Anton Schwaighofer:F# and Units-of-measure for Technical Computing, F# and Units-of-measure for Technical Co
Anton Schwaighofer : 7th Dec 2009
View Podcast: F# and Units-of-measure for Technical Computing,
 :Parkbench Panel Discussion, Parkbench Panel Discussion
: 7th Dec 2009
View Podcast: Parkbench Panel Discussion,
Robert Pickering:Using combinators to tackle the HTML rendering problem, Using combinators to tackle the HTML ren
Robert Pickering : 7th Dec 2009
View Podcast: Using combinators to tackle the HTML rendering problem,
Toby  Henderson:An Introduction to Mono , Mono
Toby Henderson : 3rd Dec 2009
Podcast Coming Soon: An Introduction to Mono ,
Udi Dahan:Command Query Responsibility Segregation, Command Query
Udi Dahan : 16th Nov 2009
Podcast Coming Soon: Command Query Responsibility Segregation,
Dylan Beattie :HTML 5 and ASP.NET, HTML 5 and ASP.NET
Dylan Beattie : 2nd Nov 2009
View Podcast: HTML 5 and ASP.NET,
Mike Hadlow:Enterprise Integration with MassTransit, Enterprise Integration with MassTransit
Mike Hadlow : 1st Oct 2009
View Podcast: Enterprise Integration with MassTransit,
Jan Machacek:Web Applications, Web Applications
Jan Machacek : 21st Sep 2009
View Podcast: Web Applications,
Frank Cohen:Open Source Build & Test Workshop, Open Source Build & Test Workshop
Frank Cohen : 14th Sep 2009
View Podcast: Open Source Build & Test Workshop,
Gojko Adzic:Space Based Programming, Space Based Programming
Gojko Adzic : 2nd Sep 2009
View Podcast: Space Based Programming,
OTHER OPEN SOURCE .NET EVENTS
Udi Dahan:Advanced Distributed Systems Design with SOA,  Adv Distributed Design w SOA
5 DAY COURSE. Featuring Udi Dahan
London, Monday, February 15th
London .NET User Group:Command Query Responsibility Segregation, London .NET User Group
FREE EVENT: Command Query Responsibility S
London, Monday, February 15th
:Progressive .NET Course,  Progressive .NET Course
3 DAY COURSE.
Paris, Wednesday, February 17th
:Agile Web Development with the Castle Framework,  Agile Castle Web Development
2 DAY COURSE.
Paris, Tuesday, February 23rd
Oren Eini aka Ayende Rahien:Core NHibernate: Persistence with NHibernate,  Persistence with NHibernate
3 DAY COURSE. Featuring Oren Eini aka Ayende Rahien
London, Wednesday, February 24th
Oren Eini aka Ayende Rahien Lessons learned from building the NHibernate Profiler,  Lessons learned from building the NHibernate Profiler
FREE EVENT: In The Brain of Oren Eini aka Ayende Rahien
London, Wednesday, February 24th
:Advanced Agile Web Development with Castle Project Framework ,  Advanced Castle Web Development
2 DAY COURSE.
Paris, Thursday, February 25th
:Advanced Distributed Systems Design with SOA,  Adv Distributed Design w SOA
5 DAY COURSE.
Paris, Monday, March 1st
© Copyright 2003-2010, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Community  Community-FR  Apress  1st Teach  Jobs: Sales Executive  Jobs: Student Podcaster  Jobs: - Facilities Sales  jobs - marketing assistant  Save Bletchley Park  Spring Certification