Here's a very practical geekSpeak that's loaded with tips on how to incorporate LINQ into existing architectures and applications. Our guest Jim Wooley has a longtime background with databases, coming out of the Access and Foxpro world. He shares his insights about how the advent of LINQ brings with it a new paradigm for working with data. This geekSpeak will get you thinking about data access in different ways - about a functional approach that's less about iterative manipulation - plus how this type of data access will find its home in future technologies like Silverlight.
As for thoughts of any actual "migrations" you might have been entertaining, give some thought to Jim's tips in here and consider the business justification and trade-offs. Listen to Jim's points about maintainability and how you can use LINQ to enhance what you're already doing. It's compelling to think about getting some slick benefits from LINQ to SQL like cached query plans and precompiled optimizations, as well as free concurrency checking without having to rewrite your whole application.
Conceptually, you'll get a better sense of what's in LINQ versus what's in LINQ to SQL by considering things like the fact that CRUD operations are a part of LINQ to SQL, not LINQ. And that the CRUD equivalent in LINQ to XML for example is a save/load of the whole document.
Architecturally, Jim explains why passing DataContext objects across tiers is a bad idea, and what parts of your LINQ objects you should and shouldn't pass. He also touches on how ADO.NET Data Services (Project Astoria) will be able to expose anything that implements IQueryably to the outside world, and how it will be extended to allow updates as well.
Practically, Jim runs through how he updated the data access layer of the Personal Website Starter Kit (an ASP.NET 2.0 sample). You can do this yourself, and it's a great chance to learn about applying LINQ to an existing architecture. He also illustrates how (forgetting data access for a moment) LINQ can help you write better loops and finds, and gets you ready for parallelism in LINQ.
Also, for no good reason, Jim also shows a neat trick for writing a single VB statement on multiple lines by using XML literals.
About our guest: Jim Wooley
Jim is a Microsoft MVP and has been working with .Net since the initial PDC bits in 2000, releasing his first application 1 week before the .Net 1.0 go-live. He has been active evangelizing LINQ since it's announcement in 2005. Jim is actively involved in the Atlanta developer community and is a frequent speaker. He is a co-author of the recently released “LINQ in Action” http://www.manning.com/marguerie/. Jim's blog is http://www.thinqlinq.com