Several people have pinged me asking for the download location of the ASP.NET 3.5 Extensions Preview. We were hoping to post it on the web Friday, but unfortunately found a late bug that we felt needed to be fixed. The team is working this weekend to sign off on the new build. We hope to be able to post it as soon as this is done - apologies for the delay.

Scott didn't mention any holdbacks, so we should be safe in assuming that all these pieces will be included:

ASP.NET MVC

ASP.NET AJAX Improvements

ASP.NET Dynamic Data Support

ASP.NET Silverlight Support

ADO.NET Data Services (Astoria)

He posted his article about noon on Saturday for a change. (Not in the middle of the night.)

Added : 12/7/2007

Update 12/9/2007: I asked Scott in a comment to his post: Will all five items (MVC, AJAX Improvements, Dynamic Data Support, Silverlight Support, Data Services (Astoria)) ship with this forthcoming drop? His reply:

Yes - this preview will include all of those features.

Regarding the release date, Scott said in another comment:

Sorry about the delay. We are hoping to have the bits live early Sunday - so keep an eye out for them then. That way you have at least half of the weekend to play with them.

Before you go through the first steps of the process, be sure to observe this warning:

NOTE: Manually edited .edmx files may not display in the designer if they have content not supported by the designer. These include Complex Types, TPC mapping, C-Side conditions, schema references (“using”), query views, defining queries, command text, unmapped abstract types, and multiple entity sets per type. Please refer to the ReadMe for more details.

Alex James Explains How to Perform Bulk Updates with LINQ to Entities: Part 1

Entity SQL v.1.0 doesn't include DML keywords, so you must use LINQ to Entities if you want to insert, update, or delete entities rather than operate on physical rows in the persistence store (a.k.a. database) directly. To update or delete entities, you must bring the entities into memory with the appropriate LINQ query before you modify or destroy them. Alex contends that this process "seems somewhat wasteful considering you could do this in T-SQL with one very simple update statement, thereby bypassing all the query, hydration and cross process shipping costs" when performing a batch update or deletion.

In his previous post of December 4, 2007 (see below), Alex promised "to demonstrate how you can perform bulk updates with LINQ to Entities in his next post." In this post he shows about half of the process of creating a generic Update<T>() function with the following signature:

Erik contrasts the multi-lingual and tier-splitting capabilities of Volta with the GWT's Java-only source code input with the GWT compiler converts to JavaScript. Changing a Volta method from synchronous to asynchronous invocation only requires decorating the method signature with an [Async] attribute; doing the same with the GWT requires significant added code. Erik points out a number of other differences that favor Volta in the post.

The System.IO.Packaging namespace contains objects and methods for creating or modifying Office Open XML, XAML, XPF, and other files that conform to the Open Packaging Conventions (OPC) specification, which is part of the ECMA Office Open XML document interchange specification (ECMA-376).

Sam gives what I think is the clearest view of the value-add of the Entity Data Model in an environment where databases have an order-of-magnitude greater lifetime than their front-end applications. He also explains why the Astoria team used EF in their .NET Data Services.

Mike Taulty on Asynchronous LINQ to SQL Queries and the DataContext.Translate() Method

Mike's LINQ to SQL: Asynchronously Executing Queries post of December 6, 2007 outlines an approach to executing LINQ to SQL queries asynchronously with the DataContext.GetCommand() method and then with DataContext.BeginQuery(IQueryable) and DataContext.EndQuery(IQueryable) extension methods.

His same-day LINQ to SQL: DataContext.Translate and Anonymous Types post observes that the DataContext.Translate() method wants a concrete type as its argument and won't accept an anonymous type. (The VS 2008 docs say that the Translate() method converts an existing DbDataReader to objects. Each row in the DbDataReader is converted to an object in an IEnumerable<(Of <(T>)>) sequence.

The ADO.NET Entity Framework > Feature Reference > .NET Framework Data Provider for SQL Server path to the Canonical Functions list for SQL Server that that Zlatko's post provides doesn't exist for the Feature Reference topic that purports to be for Beta 3 or Beta 2's AdoNetEntityFramework.chm help file, which appear to be identical. Maybe Zlatko has the real Beta 3 documentation.

Rodney Lake Clones LINQ to SQL DataContext for Attach Operations

New Zealand developer Rodney Lake's Clone Entity method for LINQ to SQL Datacontext post of December 6, 2007 includes the source code for a CloneEntity() method that creates by reflection a new instance of a DataContext with the same values as the original entity. You can attach the clone to a DataContext for update "without any problems" using this syntax:

The first public attempt by Erik Meijer to "Democratize the Cloud" is ready as of 11:00 AM PST, December 5, 2007, for VS 2008 developers to test-drive a Community Technical Preview. You can read the details about Volta, a product of the Tesla incubator group, and download the first CTP from Microsoft Live Labs' newly minted Volta site.

Erik originally referred to Volta as "LINQ 2.0", which established its association wtih LINQ for these posts. The LINQ 2.0 prefix is no longer in use, but we'll continue to report on Volta's progress (partly because Erik Meijer is considered by most to be the "Creator of LINQ.")

VB Hands On Labs for VS 2008 RTM Released

You can download the Visual Basic LINQ Hands On Labs for Visual Studio 2008 package dated December 3, 2007 from the Download Center. (I don't recommend trying the Beta version of the proposed Silverlight "upgrade," if you're given the opportunity. The eye candy detracts from usability.)

Here's the Overview:

These Visual Basic LINQ Hands-on Labs provide an introduction to the LINQ Project. Learn basic LINQ features, including the Standard Query Operators, and see how these features can be used against in-memory collections, connected databases, and XML documents. The labs also provide a clear picture of the relational data access support provided by the LINQ Project, referred to as LINQ to SQL.

Faisal Mohamood Signs on as New ADO.NET Program Manager

The ADO.NET Team announced in New ADO.NET Team Members - Part 2 of December 4, 2007 that Faisal Mohamood is a new program manager for LINQ to SQL and Entity Framework Object Services.

Apparently, Faisal doesn't plan to start his own LINQ-related blog (yet). He has an ASP.NET Weblog with a last posting on December 14, 2004 and a SlashStar blog about his job as an MSBuild PM with four posts in 2005. He made several contributions to the MSBuild Team Blog in 2006, so you might watch for his posts in the ADO.NET Team blog.

It's nice to see the ADO.NET team taking my suggestion about announcing new staff members.

Bill Horst Translates T-SQL to LINQ Queries: Part 3

Alex James takes the Wraps off ObjectQuery<T>.ToTraceString()

Alex's brief ObjectQuery<T>.ToTraceString() and possibilities... post of December 4, 2007 describes the forthcoming ToTraceString() method of the Entity Framework's ObjectQuery<T> object. ToTraceString() performs the same function as LINQ to SQL's DataContext.Log without having to resort to TextWriter and StringBuilder objects.

Alex promises to demonstrate how you can perform bulk updates with LINQ to Entities in his next post.

Beth's Northwind Meets Virtual Earth - Generate VE Maps with LINQ post of December 3, 2007 describes a VB application that uses LINQ to XML and Locative Technology's http://geocoder.us service to geocode the addresses of Northwind's Oregon customers into <latitude> and <longitude> pairs of RSS <item> elements. JavaScript code then sends the RSS document to Virtual Earth and returns an .aspx page that contains a map with a pin at the location.

Mike Taulty Posts LINQ to XML Annotations and Events

The Annotations property of an XElement or XAttribute let you associate any object with a specific location in your document.

The Change event fires when any change occurs to the document; eventArgs return the type of change.

The post include a set of links to Mikes prior LINQ to XML video clips.

Added: 12/4/2007

Pablo Castro Gives Astoria Schedule in Guy Smith-Ferrier Interview

This 28-minute Podcast: Pablo Castro On Astoria consists of a question-and-answer session recorded at Tech*Ed Developer, Barcelona. At about 2:50, Pablo gave the following development schedule for .NET Data Services (formerly code-named Project Astoria):

Luke provides the source code for the LinqTransaction.SharedDataContext class library in his Avoiding MSDTC with LINQ to SQL post of December 3, 2007. The purpose of the class is to share a single DataContext across multiple operations within a single transaction so as to avoid loading the Distributed Transaction Controller.

The dual Web role application has been running in Microsoft's South Central US (San Antonio) data center since September 2009. I believe it is the oldest continuously running Windows Azure application.

About Me

I'm a Windows Azure Insider, a retired Windows Azure MVP, the principal developer for OakLeaf Systems and the author of 30+ books on Microsoft software. The books have more than 1.25 million English copies in print and have been translated into 20+ languages.

Full disclosure: I make part of my livelihood by writing about Microsoft products in books and for magazines. I regularly receive free evaluation software from Microsoft and press credentials for Microsoft Tech•Ed and PDC. I'm also a member of the Microsoft Partner Network.