In case you have not caught his series already, Joe White is blogging his 31 favorite Resharper tips in his series of posts called 31 days of Resharper. Resharper has saved me a ton of time in coding in .NET with its Find Usages, live templates, compiler warnings, and many of its navigation features. If you love using Resharper like I do or you are considering finding out what all the fuss is about, check out his series so far. He is about half way through his tips as he has posted the following entries so far:
Day 0: Basics and installation Day 1: The gray, the red, and the squiggly Day 2: The color bar and the green box Day 3: ReSharper survival guide, or, What's up with my keybindings? Day 4: Auto closing delimiters Day 5: Integrated unit-test runner Day 6: Shared options in the .resharper file Day 7: Code formatting Day 8: Find Usages Day 9: Parameter Info Day 10: Go To Type Day 11: Code navigation Day 12: Type Hierarchy view Day 13: File Structure view Day 14: Suggested variable names Day 15: The Ctrl+Space family Day 16: Importing namespaces with Alt+Enter Day 17: Change All with Alt+Enter (and, Introducing the red light bulb) Day 18: Adding things with Alt+Enter Day 19: Implement Members with Alt+Enter Day 20: Fix errors and warnings with Alt+Enter Day 21: Code transformations with Alt+EnterDay 22: Generating code with Alt+InsDay 23: Introduce Variable (and, introducing Ctrl+Shift+R to refactor) Day 24: Introduce Field Day 25: Introduce ParameterDay 26: Change SignatureDay 27: Extract MethodDay 28: Really Extract Static Method and Extract PropertyDay 29: Refactoring with interfacesDay 30: Rename, including Viral RenameDay 31: Safe Delete
Many of my colleagues and I from ASPSOFT will be presenting several topics in Tampa, Florida on April 6th, 2007. The free 1 day training event is titled “.NET University” .We will be presenting an overview of the .NET Framework (.NET 3.0), including Windows Communication Foundation, Windows Presentation Foundation, Windows Workflow Foundation, and Windows CardSpace. All topics are covered at a 100-level, and labs will be included with the courseware. Upon completion, attendees will receive their official .NET University alumni T-Shirt and a Certificate of completion. Space is limited, so register early to get your seat at .NET University!
OK, so I copied some of the text above from the .NET University web site J. It should be a fun day. If you are interested, make sure you register for the event.
Event Code: 115720
4/6/2007
9:00 AM - 5:00 PM
Welcome Time:4/6/2007 8:30 AM Eastern Time
Microsoft Corporation
3000 Bayport Drive
Suite 480
Tampa, FL 33607
USA
driving directions
Featured Product/Topic: Visual Studio 2005 Professional Edition
Recommended Audiences: Solution Architects, Software Developers, Students, Technical Decision Makers
aspsoft.com, Microsoft and DevFish.NET are proud to present .NET University as a 1-day training course for our customers! Join us to get an overview of the .NET Framework (.NET 3.0), including Windows Communication Foundation, Windows Presentation Foundation, Windows Workflow Foundation, and Windows CardSpace. All topics are covered at a 100-level, and labs will be included with the courseware. Upon completion, attendees will receive their official .NET University alumni T-Shirt and a Certificate of completion. Space is limited, so register early to get your seat at .NET University!
If you watch the ADO.NET team’s blog then you may have seen the post from today from Zlatko Michailov (Program Manager, ADO.NET). Here are the highlights from his post:
In this Entity SQL (eSQL) post he discusses:
There are a lot of features I am looking forward to in the next Orcas CTP (hopefully a February CTP and not a March one). I have high hopes for the future with features like Entity SQL, LINQ to SQL, LINQ TO DataSet, EDM, and LINQ to Entities. Kudos to the ADO.NET team for taking this direction!
Here are a few good links to Orcas material (some old and some new). There is a lot of good and bad material out there with LINQ. These are some of the better ones that I have found. Feel free to comment about any other good LINQ / Data Access related links.
Downloads:
· The best way to run LINQ with the most features using the current CTP’s remains to be to
o create a VPC image
o install the May 2006 LINQ CTP,
o the August 2006 ADO.NET vNext CTP,
o and the September 2006 ADO.NET vNext EDM Designer Prototype CTP.
Books:
· Here is a great book on using LINQ and the C# 3.0 features by Fabio Claudio Ferracchiati titled LINQ for Visual C# 2005. The material is slightly dated as it was written with early previews, but its still a great read.· Here is Ferracchiati’s VB version of that same book.· This book (titled Foundations of LINQ in C# 3.0) is not out yet, but is scheduled for a March 1 release date. IT looks to be interesting based on some of Joseph Rattz’s blog posts.
· Here is a great book on using LINQ and the C# 3.0 features by Fabio Claudio Ferracchiati titled LINQ for Visual C# 2005. The material is slightly dated as it was written with early previews, but its still a great read.
· Here is Ferracchiati’s VB version of that same book.
· This book (titled Foundations of LINQ in C# 3.0) is not out yet, but is scheduled for a March 1 release date. IT looks to be interesting based on some of Joseph Rattz’s blog posts.
C# 3.0 Features
· Anders Hejlsberg has a great video on how C# 3.0 is evolving. This discussed many of the C# 3.0 features that are the underpinnings of what makes LINQ tick. (posted mid 2006)· Sahil Malik has some great posts on C# 3.0. I recommend getting familiar with the C# 3.0 features before jumping into any of the Orcas /ADO.NET vNext data access features.
· Anders Hejlsberg has a great video on how C# 3.0 is evolving. This discussed many of the C# 3.0 features that are the underpinnings of what makes LINQ tick. (posted mid 2006)
· Sahil Malik has some great posts on C# 3.0. I recommend getting familiar with the C# 3.0 features before jumping into any of the Orcas /ADO.NET vNext data access features.
o Demystifying C# 3.0 - Part 1: Implicitly Typed Local Variables "var"
o Demystifying C# 3.0 - Part 2: Anonymous Types
o Demystifying C# 3.0 - Part 3: Extension Methods
o Demystifying C# 3.0 - Part 4: Lambda Expressions
o Demystifying C# 3.0 - Part 5: Object and Collection Initializers
o Demystifying C# 3.0 - Part 6: (LINQ) Query Expression Translation (to C# 3.0)
o Demystifying C# 3.0 - Part 7: Expression Trees
Next Generation Data Access & LINQ Basics
· A good place to start with LINQ is the Next Generation Data Access article. This explains some of the ideas behind ADO.NET vNext. (posted mid 2006)· In the MSDN Forums, Dinesh hints that the March 2007 Orcas CTP is planned to LINQ features on par with the May 2006 LINQ bits. There have been rumors of the next CTP being February 2007 or March 2007. · Some good information and questions/answers exist on the LINQ Project MSDN forum as well as the ADO.NET Orcas MSDN forum.· Here is a nice post that compares and contrasts LINQ to Entites and LINQ to SQL.· Scott Guthrie has been posting some great slide decks on LINQ, ADO.NET vNext, and Orcas in general at his blog.
· A good place to start with LINQ is the Next Generation Data Access article. This explains some of the ideas behind ADO.NET vNext. (posted mid 2006)
· In the MSDN Forums, Dinesh hints that the March 2007 Orcas CTP is planned to LINQ features on par with the May 2006 LINQ bits. There have been rumors of the next CTP being February 2007 or March 2007.
· Some good information and questions/answers exist on the LINQ Project MSDN forum as well as the ADO.NET Orcas MSDN forum.
· Here is a nice post that compares and contrasts LINQ to Entites and LINQ to SQL.
· Scott Guthrie has been posting some great slide decks on LINQ, ADO.NET vNext, and Orcas in general at his blog.
o Links to some good presentations
o Orcas presentation
· The ADO.NET Team blog shows some good information on:
o LINQ to DataSets: part 2
o Entity Data Model 101: Part 1
o Querying DataSets: part 1
· Sahil Malik has some great posts on Demystifying DLINQ:
o Demystifying DLINQ: Part1 - An introduction to DLINQ
o Demystifying DLINQ: Part2 - Setting up a DataContext Class
o Demystifying DLINQ: Part3 - Querying for Data using DLINQ
o Demystifying DLINQ: Part 4 - Stored Procedure/UDF Support in DLINQ
o Demystifying DLINQ: Part 4.1 - Stored Procedures that return scalar results
o Demystifying DLINQ: Part 4.2 - Stored Procedures that return a definite shape
o Demystifying DLINQ: Part 4.3 - Stored Procedures that return variable shapes
LINQ has permeated the .NET world. How to use LINQ, the different types of LINQ, how LINQ’s query expressions break down into C# 3’s newest features, and so on. LINQ has even had some of its old names tossed aside in the process. For example, LINQ to SQL was formerly known as DLinq. For the most part I have quietly indulged in all things LINQ and avoided writing too much on the specific syntaxes of how/when to use it (or not to use it). But now that LINQ, ADO.NET vNext and Orcas are getting close to the point where significant changes are less likely, I thought I might answer some fundamental questions about the flavors of LINQ in a brief post.
Once people get into LINQ, the biggest confusion I get email on regarding LINQ is how to choose between LINQ to SQL (formerly DLinq) and LINQ to Entities. In short, LINQ to SQL allows you to query an object model that maps directly to your relational database schema. The mapping is 1 class object to 1 db schema object. This is a simpler form than the abstraction model of LINQ to Entities …. which allows you to query an object that can be translated into 1 or more tables (for example) in your database. With LINQ to entities, the object model that you query with LINQ can be very different than the database schema.
Here is a quick primer on some of the flavors of LINQ:
LINQ to SQL
(Formerly known as DLinq)
Objects get mapped directly to database tables. Basically lets you perform LINQ queries directly on the database schema via objects.
If your existing architecture has objects that map 1 to 1 with your database schema, then LINQ to SQL would be the closest match.
Add a *.dlinq file and drag tables/procs/table value functions/views from Server Explorer to the designer. Can also use SQLMetal to generate classes.
LINQ to Entities
Provides a layer of abstraction from the relational database structure. (aka you can combine tables into a single class, or you can use inheritance). Objects can represent the relational tables in OOP
There is a conceptual model, a database schema, and then there is the mapping between the 2. The conceptual objects are mapped through an XML mapping on to the database schema.
Add a .edm model file and create entities and their associations in the designer. Can also generate an EDM model (with the .ssdl, .csdl, .msl and .cs files).
LINQ to XML
(Also known as XLinq)
LINQ over XML structures
LINQ to DataSets
Using LINQ with ADO.NET DataSet and DataTable objects.
LINQ to Objects
Using LINQ with collections implementing IEnumerable<T>