HOME SCALA & F# JAVA .NET WEB GROOVY & GRAILS ANDROID & IOS NOSQL ARCHITECTURE AGILE & SCRUM AGILE DEVELOPER  
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

ABOUT THE LONDON .NET USER GROUP
The London .NET user group was etablished in 2002 to provide developers developers working with Microsoft's .NET framework with access to the latest and best information. At our monthly meetings you can hear expert speakers who dig 'under the hood' and keep you informed on best practices and future directions of the Framework.
More about the London .NET User Group
PODCAST INTRODUCTION TO WRITING DSLS WITH C#3.5
PROGRESSIVE .NET PODCASTS
Gael Fraiteur:Multithreading beyond the lock keyword, Multithreading
Gael Fraiteur : 24th May 2012
View Podcast: Multithreading beyond the lock keyword,
Various Speakers:Community Retrospective on a Decade of .NET, Decade of .NET
Various Speakers : 17th May 2012
View Podcast: Community Retrospective on a Decade of .NET,
Oren Eini aka Ayende Rahien:Sharding And Scaling with RavenDB, Scaling with RavenDB
Oren Eini aka Ayende Rahien : 15th May 2012
View Podcast: Sharding And Scaling with RavenDB,
Phil Trelford:F# for Commodities Trading, F# Commodities Trading
Phil Trelford : 14th May 2012
View Podcast: F# for Commodities Trading,
Tomas Petricek:F# Domain Specific Languages for Finance , F# DSL
Tomas Petricek : 14th May 2012
View Podcast: F# Domain Specific Languages for Finance ,
John Zablocki:Developing with Couchbase, Developing with Couchbase
John Zablocki : 9th May 2012
View Podcast: Developing with Couchbase,
Chris Harris:MongoDB and Document Databases, Document Databases
Chris Harris : 9th May 2012
View Podcast: MongoDB and Document Databases,
David Mytton:MongoDB performance at scale, MongoDB performance
David Mytton : 9th May 2012
View Podcast: MongoDB performance at scale,
Chris Harris:Hands-on MongoDB, Hands-on MongoDB
Chris Harris : 9th May 2012
View Podcast: Hands-on MongoDB,
Oren Eini aka Ayende Rahien:RavenDB: A 2nd generation document database, RavenDB
Oren Eini aka Ayende Rahien : 9th May 2012
View Podcast: RavenDB: A 2nd generation document database,
Phil Jones:The challenges and rewards of using RavenDB, RavenDB: challenges & rewards
Phil Jones : 9th May 2012
View Podcast: The challenges and rewards of using RavenDB,
Oren Eini aka Ayende Rahien:RavenDB Crash Course, RavenDB Crash Course
Oren Eini aka Ayende Rahien : 9th May 2012
View Podcast: RavenDB Crash Course,
Ian Cooper:Huddle, Huddle
Ian Cooper : 23rd Apr 2012
View Podcast: Huddle,
Adrian Withy:Milliman, Milliman
Adrian Withy : 23rd Apr 2012
View Podcast: Milliman,
Michael Delaney:Elevate, Elevate
Michael Delaney : 23rd Apr 2012
View Podcast: Elevate,
OTHER PROGRESSIVE .NET EVENTS
Uncle Bob (Robert C. Martin):Uncle Bob's Advanced Test Driven Development in NYC,  Uncle Bob's Advanced Test Driven Development in NY
3 DAY COURSE. Featuring Uncle Bob (Robert C. Martin)
New York, Tuesday, May 29th
Progressive .NET Tutorials 2012, Progressive .NET Tutorials 2012
CONFERENCE (3 DAYS)
London, Tuesday, May 29th BOOK NOW!
2012 Progressive F# Tutorials NYC, 2012 Progressive F# Tutorials NYC
CONFERENCE (2 DAYS)
New York City, Tuesday, June 5th BOOK NOW!
Mark Rendle Zen and the Art of Software,  Zen and the Art of Software
FREE EVENT: In The Brain of Mark Rendle
London, Monday, June 11th
Jon Jagger:Jon Jagger & Kevlin Henney's Agile Development for Developers,  Jon & Kevlin's Agile Development Course
3 DAY COURSE. Featuring Jon Jagger
London, Monday, June 18th
Simon Brown:Simon Brown's Enterprise Software Developer,  Simon Brown's Enterprise Software Developer
3 DAY COURSE. Featuring Simon Brown
London, Monday, June 18th
QCon New York 2012, QCon New York 2012
CONFERENCE (3 DAYS)
New York, Monday, June 18th BOOK NOW!
David Laribee:David Laribee's Leading Lean/Agile Teams,  David Laribee's Leading Lean/Agile Teams
2 DAY COURSE. Featuring David Laribee
New York, Thursday, June 21st
© Copyright 2003-2011, Skills Matter Ltd
  Web development by You In Control
About Us  Jobs  Find Us  Meeting & Training Rooms  Newsletter  Jobs: Sales Executive  Jobs: Student SkillsCaster  jobs - junior event coordinator  Speed Coding 2011  Open Source Journal  Ticket Raffle  Agile Expert Series  Jobs: Sponsorship Development  jobs: Marketing & Sales Graduate Internship