Monday, December 29, 2008

LINQ and Entity Framework Posts for 12/22/2008+

Merry Christmas!

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

Updated 12/29/2007 5:00 PM PST: Additions
Updated 12/25/2007 8:00 AM PST: Additions
• Updated 12/23/2007 1:30 PM PST: Additions

Entity Framework and Entity Data Model (EF/EDM)

Justin Etheredge’s Making the Entity Framework Fit Your Domain - Part 1 post of 12/29/2008 is a detailed start to a series in which he explores the Entity Framework to see if he can “make it palatable for [him] to use.” Justin says:

My goal with this post is not to trash talk the entity framework, but instead to take it as far as I can toward a usable solution that I would be okay with putting into a production application. This post is going to be written as I explore, so please let me know if you see anything that is wrong or missing.

And concludes:

In future parts of this series we will break down the base entity class that I have created and take a look at the different entities and how we can create them. We will also take a look at creating an ObjectContext and show you how we can use and query these entities just like we could if we created them through the EDM designer.

Simon Segal adds links to Stefan Cruysbergh’s personal Web site, books about Entity Framework, and his prior posts in Entity Framework Learning Materials (continued) of 11/27/2008.

Shawn Wildermuth’s Caution when Eager Loading in the Entity Framework post of 12/28/2008 warns that the Include() method to eager-load associated entities is a hint, not a guarantee that the query will return the expected entities.

He notes that grouping and subselects are the most common cause of missing entities and quotes Diego Vega’s response of 11/30/2008 to the Include() is ignored in a subquery thread in the ADO.NET Entity Framework and LINQ to Entities forum, which explains the behavior of the Include() method.

Shawn also observes that “you can use the EFExtensions Include Extension method to add includes on the complete query.”

• Simon Segal provides the entire code base from this previous post (below) in his Entity Framework - Specification Pattern Code Update post of 12/22/2008.

Simon Segal’s Entity Framework and the Specification Pattern post of 12/22/2008 shows how to implement his LINQ to SQL Specification for Entity Framework with the aid of Colin Meek’s use of the the ExpressionVisitor class.

Scott Hunter’s ASP.NET Dynamic Data 4.0 Preview 2 post of 12/22/2008 in the ASP.NET Dynamic Data Section contains updated data on its support for the Entity Framework.

LINQ to SQL

Scott Hunter’s ASP.NET Dynamic Data 4.0 Preview 2 post of 12/22/2008 in the ASP.NET Dynamic Data Section contains updated data on its support for LINQ to SQL.

LINQ to Objects, LINQ to XML, et al.

Eric White shows you how to Convert XElement to XmlNode (and Convert XmlNode to XElement) with LINQ to XML in this 12/22/2008 post.

ADO.NET Data Services (Astoria)

Scott Hunter’s ASP.NET Dynamic Data 4.0 Preview 2 post of 12/22/2008 in the ASP.NET Dynamic Data Section contains updated data on its support for LINQ to SQL.

Stan Kitsis’s Accessing SQL Data Services (SDS) using ADO.NET Data Services (Astoria) of 10/31/2008 is his first and only post about the Astoria “head” (front end) for SQL Data Services that Pablo Castro discusses at length in his ADO.NET Data Services in Windows Azure: pushing scalability to the next level of 11/1/2008.

I discovered Stan’s post as a result of my Availability of Experimental Astoria Interface for SDS? thread started on 12/20/2008 in the SQL Data Services (SDS) - Getting Started forum. Stan notes that this head doesn’t support the complete Astoria syntax and only works with entities (not authorities or containers.)

ASP.NET Dynamic Data (DD)

•• Phani Raju’s Working with Inheritance in Ado.net Data Services post of 12/23/2008 explains how inheritance works in Astoria using the classic Person, Employee model.

David Ebbo explores Two worlds of Dynamic Data customization: generic vs schema specific in this codeless 12/22/2008 post.

Scott Hunter’s ASP.NET Dynamic Data 4.0 Preview 2 post on CodePlex of 12/16/2008 provides sample code that demonstrates new DD features that .NET 4.0 and VS 2010 will implement:

  • SampleProject – illustrates the next generation of Dynamic Data features including support for Entity Framework and Linq to SQL inheritance, many to many support for Entity Framework, Entity templates and the new templated filters that are based on the QueryExtender.
  • Futures - contains the existing Dynamic Data Futures sample that has been available at http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14475 This sample does not add any new functionality in comparison to the old Futures project except for running on new Dynamic Data assemblies.
  • BusinessLogicDataSource – a showcase for a new BusinessLogicDataSource that combines customizability of ObjectDataSource with the flexibility of LINQ and the IQueryable interface. Also, a new QueryExtender feature allowing high-level query composition in markup is demonstrated.
  • DataServicesServer and DataServicesClient - illustrates the use of ADO.NET Data Services with Dynamic Data. NOTE: the DataServicesServer project must be running before DataServicesClient.

Azure, SQL Data Services (SDS) and Cloud Computing

••• David LemphersWindows Azure - Final Updates to PhotoStore App! of 12/28/2009 describes his new Azure blob application that’s accessible here. When I tested the app, I was able to add an album (Container), but not upload an image. He says:

The one area of functionality I did not implement for this sample was the support for large files which would have required the use of the block operations (put block, get block list, put block list).

The RestBlobStorage.cs file’s PutLargeBlobImpl() method automatically uses block operations for blob creation when the input stream’s length exceeds 2 MB. (RestBlobStorage.cs is part of the StorageClient class library.)

••• Chris Hay offers his Windows Azure Blob Browser WPF application for CRUD operations on Azure blobs that you can download from here. Here’s a screen capture of Chris’s app displaying some blobs created by a demo app that I’m working on (click image for full-size capture):

My only suggestion is to make the Blob Details section expandable to the right so as to display long blob names and URIs.

•• Alin Irimie questions Microsoft’s presentation of Azure’s features and the company’s cloud strategy in his I Have A Bad Feeling About Windows Azure Azure Journal post of 12/29/2008. His points:

First of all, everybody is using nowadays “cloud” to describe anything that runs on the web. Cloud is the new buzzword, and Microsoft jumping on the bandwagon doesn’t make things any better. … I believe Microsoft should have come up with a different buzzword to describe their Software as a Service/Software + Services offerings, one word, not many. …

Second, Microsoft should clarify better whether Windows Azure platform is a .NET platform or a “mixed” platform where legacy application can run. …

Third, Microsoft needs to let us know at least the year Windows Azure will be released. When are we going to have an SLA. …

On the whole, I agree, especially with Alin’s third point.

••• Wally McClure’s ASP.NET Providers with Windows Azure post of 12/27/2008 warns that ASP.NET Providers in a separate application might fail because the Development Table Storage Service doesn’t support creating new tables dynamically.

•• Wally McClure hosts ASP.NET Podcast Show #133 - Windows Azure Table Storage – video posted Christmas Day.

•• Alin Irimie’s Soocial.com - 100% on Amazon Web Services post of 12/24/2008 to the Azure Journal links to Simone Brunozzi’s 100% on Amazon Web Services: Soocial.com 12/23/2008 Amazon blog post about the IT infrastructure of Soocial.com’s "one address book solution to contact management."

Alin also includes an earlier link to Bizo’s Open Source Simple DB Firefox Plugin: SDB Tool, which does for SimpleDB what S3 Firefox Organizer did for S3 blobs. Bizo runs business-to-business ad targeting network on Amazon; here’s how they describe it:

Bizo is an advertising network and targeting platform designed to allow B2B marketers get their messages in front of the right people. We have over 15 million targetable unique business users in our network, and we help marketers target the right segments with their products and services.

Marzia Niccolai announced the availability of Google’s App Engine Site Creator on 12/22/2008. She describes the new tool as:

[A] lightweight content management system with a full GUI for content creation and administration. It provides a hierarchical site structure, an authentication system, user and group level access controls, file attachments and a WYSIWYG interface for editing page HTML.

She also noted:

For those used to rapidly developing apps with Zoho Creator, we are happy to announce that Zoho have made it possible to deploy [Zoho Creator] apps using Google App Engine.

Zoho Creator enables you to develop data backed business applications, and once you have developed your app in Creator, simply download the Python code and upload it to Google App Engine.

Wally McClure offers ASP.NET Podcast Show #132 - Windows Azure Blob Storage – video as a 12/23/2008 sequel to the podcast below.

David Lempher’s Windows Azure Storage - More Blobs! post of 12/22/2008 extends his earlier Windows Azure Storage - Exploring Blobs! post of 12/20/2008 with BlobRequest() and BlobResponse() methods.

John Udell begins development of a Azure calendar aggregator: Part 1 in C# with an Azure Queue Service on 12/22/2008. John says:

I’ll have more to say about this project, and of course code to share, as things evolve. Meanwhile, though, I want to acknowledge Doug Day at DDay Software. When I switched from Python to C#, the key component I needed was an iCalendar module equivalent to MaxM’s excellent Python iCalendar module, which I’m using at elmcity.info. Doug’s DDay.iCal met the need. It’s a solid, cleanly-built, open source .NET component that enables code written in any of the .NET family of languages to parse, and generate, iCalendar (RFC 2445) files.

Wally McClure and David Penton interview Scott Cate in ASP.NET Podcast Show #131 - General discussions on Cloud Computing with Wally, David, and Scott Cate - mp3 audio of 12/22/2008. Scott describes his startup named CloudDB, which purports to compete with Windows Azure and Amazon Web Services, but his description of provisioning a database with a UI reminds me more of Intuit’s QuickBase. (The CloudDB.com site was only partially operational when I tested it on 12/22/2008.)

Scott Watermasysk describes the primary differences between Azure Storage and SQL Data Services of the October 2008 CTP in his Microsoft Cloud Data Options post of 12/22/2008.

Tim Anderson asks “Windows Azure: since PDC, how it is going?” on 12/22/2008. Tim remarks about the paucity of messages (from other than users having problems gaining access to the Azure cloud) in the Windows Azure forum concludes:

It’s possible then that most developers are wisely waiting for the beta of Azure before doing serious experimentation. Alternatively – the bleakest outcome for Microsoft – they are ignoring Azure and presuming that if and when they do migrate applications to the cloud they will use some other platform.

John Foley’s Chief Of The Year: Amazon CTO Werner Vogels post of 12/20/2008 for publication by InfoWorld on 12/22/2008 carries this subtitle:

Amazon's external-facing CTO is helping to devise a cloud computing architecture with customer requirements built-in.

Giving Vogels the Chief of the Year title last year would have been more appropriate, in my opinion.

Alin Irimie describes Sriram Krishnan’s forthcoming Erlang Bindings For Windows Azure in his AzureJournal post of 12/20/2008. Sriram posted a Python wrapper for Windows Azure storage in an earlier post of 11/12/2008.

Maarten Balliauw’s CarTrackr on Windows Azure - Part 5 - Deploying in the cloud post of 12/15/2008 completes his five-part series on porting an MVC CarTrackr application to an Azure Web Cloud Service. Although Maarten’s post contains a link to CarTrackr.cloudapp.net, the app wasn’t operational when I tested it. He also offers links to the ported and original CarTrackr source code.

Stan Kitsis’s Accessing SQL Data Services (SDS) using ADO.NET Data Services (Astoria) describes the experimental Astoria head for SDS data services (see the ADO.NET Data Services section for more details.) Neither SDS nor Azure Table Storage offers schemas, so the Add Service Reference method doesn’t work for creating a client proxy. You must hand-craft the client entity and then overlay the entity with SDS flex properties.

SQL Server Compact (SSCE) 3.5 and Sync Services

No significant new posts as of 12/28/2008 5:00 PM PST.

Miscellaneous (WPF, WCF, MVC, Silverlight, etc.)

No significant new posts as of 12/28/2008 5:00 PM PST.

0 comments: