Tuesday, June 17, 2008

LINQ and Entity Framework Posts for 6/16/2008+

Note: This post is updated daily or more frequently, depending on the availability of new articles.

Frans Bouma Starts New Features in LINQ to LLBLGen Pro Series

Linq to LLBLGen Pro: feature highlights, part 1 of June 17, 2008 is the first of a series that Frans promises will “sum up some of the characteristic features of Linq to LLBLGen Pro, so you don't have to wade through the 15 articles I wrote about writing Linq to LLBLGen Pro.”

Frans emphasizes that “Linq to LLBLGen Pro is a full implementation of Linq” and delivers a set of questions about the specific LINQ operators and related features a LINQ-enabled O/RM tool should support. These question could well serve as the start of a criteria list for a .NET O/RM comparison table.

Wading through the 15 articles Frans wrote while writing the LINQ implementation is an exceptional opportunity to learn more about implementing LINQ in a .NET O/RM. Here they are:

Surprising Lack of Activity in SQL Server Data Services Forum

My All’s Quiet on the SQL Server Data Services Front post of June 17, 2008 starts with:

I'm surprised at the current lack of relevant threads in the SQL Server Data Services (SSDS) - Getting Started forum, which appears to have commenced operations on May 19, 2008 but garnered its first message on May 29.

And goes on to offer some potential reasons for the apparent lack of interest.

Update 6/17/2008 1530 PDT: SSDS evangelist David Robinson contests my conclusions and says in his Peace & Quiet? post of June 17, 2008:

[W]e are working with companies of all shapes and sizes, from some of the worlds largest banks to small start-ups, customers covering almost every industry imaginable.

He also added this comment to my post.

Added: 6/17/2008

ADO.NET Sync Services Team Posts How-To for Bi-Directional Synchronization

The Extending Visual Studio 2008 SP1 Sync Designer to Support Bi-Directional Synchronization post contains a link to recently-released documentation for enabling bi-directional sync between SQL Server Compact and SQL Server 20085+.

As you can see in this excerpt from the SP1 docs, the amount of code to enable bidi sync for a simple Northwind Customers table isn’t insignificant.

Added: 6/17/2008

LINQ and Related Sessions at CodeStock 2008 In Knoxville, TN

The CodeStock 2008 conference to be held August 9, 2008 at Pellissippi State Technical Community College in Knoxville, TN offer the following LINQ-Related sessions:

The one-day conference has six simultaneous sessions.

I’m surprised that no one’s covering Entity Framework and ADO.NET Data Services.

Thanks to Wally McClure for the heads-up on June 16, 2008.

CIO Magazine Posts Article on LINQ and TechFunk Copies It Verbatim

CIO Magazine’s Five Things the Boss Should Know About Microsoft's LINQ article of June 16, 2008 by John Paul Mueller is a semi-technical paean to the benefits of LINQ that emphasizes database queries.

What makes the story more interesting is the TechFunk blog’s word-for-word reproduction of the article in their Five Things the Boss Should Know About Microsoft's LINQ post of the same date. TechFunk provides no attribution whatsoever to CIO Magazine, for whatever that’s worth.

I’ve never seen a more flagrant case of plagiarism and copyright infringement by a technically-oriented blog.

Update 6/17/2008: Don’t get me wrong; I’m not a copyright bigot. This blog’s content is licensed under the Creative Commons Attribution 3.0 License.

AP is nuts for charging $12.50 for the fifth word quoted from their newsfeed and barring any excerpts if they find “Your use of the licensed Content to be offensive and/or damaging to Publisher’s reputation," as reported in TechDirt’s Associated Press: Fair Use Limits You To Four Words; Five Words Costs $12.50 post of June 17, 2008.

Steve Naughton Starts Database-Based Permissions Series for ASP.NET Dynamic Data

Immediately after finishing his seven-part A DynamicData Attribute Based Permission Solution using User Roles series, Steve has embarked on DynamicData: Database Based Permissions - Part 1, which moves the ASPNETDB users and roles tables on which the permissions were set. The next episode will be “Creating the user interface for setting the database based attributes.”

David Ebbo Explains ASP.NET Dynamic Data’s Associated MetaData Class and Its Future

Dynamic Data uses metadata attributes applied to entity classes or their properties to specify complex data types, format data, add validation rules, and other custom entity and property features. In his Dynamic Data and the Associated Metadata Class post of June 16, 2008, David explains how attribute-based metadata works today and how it might change in future versions.

Marcelo Lopez Ruiz Explains the Importance of ADO.NET Data Services’ InitializeService() Method

Marcelo notes in his So Special - InitializeService in ADO.NET Data Services post of June 16, 2008 that service initialization is a one-time process controlled by an internal static dictionary whose lifetime is that of the AppDomain. Marcelo recommends invoking the InitializeService() method explicitly to set the service’s configuration and error handling options.

Marcelo says his next post will “focus on the configuration object.”

Update 6/17/2008: Marcelo’s Why is my ADO.NET Data Service empty? post answers the question with:

The service configuration allows you to specify what access you want clients to have (by default) on entity sets. You may further restrict access through interceptors, but you can never grant more access than that specified on the configuration. …

By default, the service is completely locked down - all the entity sets have no access rights granted for them, and so the data service looks empty - you can't access any resource at all. That's why folks are sometimes baffled when "everything works", but nothing is accessible. You should implement the InitializeService method and start granting access on a per-entity-set basis, and then you're ready to go.

Craig Shoemaker Shows How to “create wildly different layouts and easily add third-party controls to your Dynamic Data websites”

His Rockstar Dynamic Data Customizations post of June 16, 2008 has links to the following five podcasts:

He also has an Introduction to Dynamic Data screencast and podcast that are subtitled “Get started with ASP.NET Dynamic Data with some practical advice.”

Craig is a “new-media evangelist” for Infragistics, so expect to see some third party controls in the preceding examples.

Serena Yeoh Updates Layered .NET Architecture Sample to .NET 3.5 and LINQ to SQL

Serena (a.k.a. Firedancer), who works for Microsoft Consulting Services, has updated her Layered Architecture Sample for .NET project on CodePlex by replacing the Data Access Application Block (DAAB) with LINQ to SQL, changing Business Entities to LINQ to SQL Entities, and implementing .NET 3.5 Workflow services. She says:

Layered Architecture Sample is created to demonstrate how we can apply some of these .NET technologies with the Layered Architecture design pattern. It is a simple example that illustrates the factoring of responsibilities and separation of concerns into multiple layers in an enterprise application. As the name implies, the main focus of the sample is "How to code the layers?" and not the actual functionality of the chosen Expense application. The Expense Business Process Flow was chosen simply because it is widely used and easiest to understand.

Serena provides additional insight to the project in her Layered.Architecture.Sample.for.NET.3.5 post of May 28, 2008. (Notice the emphasis on layered, not tiered.)

Thanks to Patrick Yong’s Layered Architecture Sample for .NET post of June 16, 2008 for the heads-up.

Off-Topic: Does Google Gears Deserve its Recent Notoriety?

MIX’s Joshua Allen tries to brake the Google Gears hype train stoked by Dare Obasanjo with his Google Gears as the Next Flash post and TechCrunch’s Nik Cubrilovic with Get Ready For A New Platform War. Google Gears Drives Straight At Microsoft’s Profits in his Gears a Profit-Killer? post of June 16, 2008.

Google Gears languished in obscurity until the “demo of a gears-enabled MySpace mail client prototype, shown at Google I/O” by two ex-Microsoft folks, one of whom was Mark Lucovsky, the architect of Hailstorm.

My Google Gears Piques New Interest in Data Synchronization post of June 1, 2007 covered the initial announcement of Google Gears at their 2007 Developer day. It also notes that Scott Hanselman almost swooned over Google Gears in his Google Gears - Maybe all Rich Internet Applications needed was Local Storage and an Offline Mode of May 30, 2008. Scott said, inter alia:

This is a huge move and is quite brilliant. In one seemingly innocuous move (and one tiny 700k (yes, 700K) download) Google is well positioned to get Google Docs, including Writely, Spreadsheet and Presentation, along with who knows what else, enabled for offline use. And the whole thing is Open Sourced via the New BSD License.

A year later, Google Gears implementations are few and far between.

Off-Topic: Migrating from Access/Jet to SQL Server Panel Discussion from Tech*Ed 2008

According to panelist Mary Chipman, “rumors of Access’s death have been greatly exaggerated.” The panel answers the question: Are we there yet? Successfully navigating the bumpy road from Access to SQL Server.

Of course the current Microsoft party line is to substitute SharePoint lists for Access/Jet databases.