Showing posts with label LINQ to AD. Show all posts
Showing posts with label LINQ to AD. Show all posts

Friday, January 23, 2009

“Professional ADO.NET 3.5 with LINQ and the Entity Framework” Is in Stock at Amazon

Amazon lists my latest book for WROX/Wiley, Professional ADO.NET 3.5 with LINQ and the Entity Framework, as “In Stock” although it was originally scheduled for availability on 2/3/2009.

Thanks to Julie Lerman for the heads-up; her Programming Entity Framework book goes to the printer today for availability on 2/2/2009.

Good news! I didn’t expect the book to be available until mid-February.

Julie writes: “Dave Sceppa's book, Programming the Microsoft ADO.NET Entity Framework, still says ‘Dec 10, 2008’ although Amazon lists it as ‘not yet released’ so I'm not sure what's up with that.”

Microsoft Press says Dave’s book is scheduled to be published on 2/24/2009.

This earlier Professional ADO.NET 3.5 with LINQ and the Entity Framework: Table of Contents post of 11/8/2008 contains a chapter-level TOC.

Sunday, August 10, 2008

LINQ and Entity Framework Posts for 8/8/2008+

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

Shawn Wildermuth Attacks the Reality of Data-Last Design in the Enterprise

Shawn’s Rigidity in Data Design post of August 9, 2008 is a thought-provoking essay about the validity of the ALT.NET members and Domain-Driven Development adherents contention that “that data is a top-down or at worse, bottom up design problem” and the assumption that greenfield persistence (database) schema are de riguer for most data-intensive development projects.

Shawn takes the position, with which I agree, that most data-driven development projects start with an existing database schema and a substantial amount of historical data. I estimate that nine out of ten projects that I’ve completed in the past 20 years worked extensively with existing business data on mainframes, minicomputers, and mid-range UNIX servers.

Shawn concludes:

No *rule* applies in all situations. I laud the ALT.NET guys for trying to inject better skills and tools into the process, I just rail against the ferocity of zealotry that comes in some of the message. When enterprise developers hear this, they just tune it out instead of taking what helps them and leaving the rest.

Added: August 10, 2008

Steve Naughton Adds Custom Row Rollover and Row Click Behavior to ASP.NET Dynamic Data Grid Views

His Customising GridView for Row Rollover and Click in Dynamic Data post of August 9, 2008 adds:

  • Background color change with mouse rollover
  • Row click navigation (e.g., to details view)
  • Row double-click navigation (e.g., to edit view)

to GridView controls in ASP.NET Dynamic Data projects. Steve’s prodigious output of code for customizing ASP.NET Dynamic Data projects goes far beyond what the Microsoft team has provided in documentation and blog posts so far.

Bart De Smet Offers LINQ Resources from Three of his Four Tech*Ed South Africa 2008 Sessions

Bart’s TechEd 2008 South Africa Demo Resources post of August 9, 2008 provide downloadable files and other resources from his two LINQ-related presentation and an additional Tech*Ed South Africa 2008 session:

  • DEV 305 – C# 3.0 and LINQ Inside Out
  • DEV 303 – Parallel Extensions to the .NET Framework
  • DEV 304 – Writing Custom LINQ Providers
  • MGT 301 – Next-Generation Manageability – Windows PowerShell and MMC 3.0

VS 2008 SP1 RTM Scheduled for Monday, August 11, 2008

Visual Studio 2008 Service Pack 1 will be available for download from the MSDN Subscriptions page "after August 11, 2008.”

If you have VS 2008 installed, don’t run SQL Server 2008 setup until after you install VS 2008 SP1 RTM bits.

For more information, see my VS 2008 SP1 RTM Scheduled for Monday, August 11, 2008 post of August 8, 2008.

Bill McCarthy Casts a List(Of DerivedClass) to List(Of BaseClass) with Generic Variance via an Extension Method

Bill starts his Generic variance and List(Of T) post of August 8, 2008 with:

Have you ever wanted to cast a List(Of Customer) to a List(Of BusinessBase), where Customer Inherits BusinessBase, only to find that you can't... well you can ;)

But his extension method uses reflection do it. (His post is an extension to his Inside Arrays article for in Visual Basic Magazine’s July 2008 issue.

For more information about Generic Variance see Variance in Generic Types (C# Programming Guide) article, Paul Vick’s A little update on VB10 thinking... post that says Generic Variance is on VB vNext’s radar, and Eric Lippert’s 11-part Covariance and Contravariance in C# blog series.

Don Kiely Describes Why Web Sites Running in Medium Trust Can’t Use Entity Framework v1

Don’s “Dynamic Data with the Entity Framework in Medium Trust” article for the ASP.NET Newsletter August 8, 2008 issue’s “Secure ASP.NET” column publicizes an ASP.NET Dynamic Data forum thread: Should Dynamic Data (Entity Framework model) work in medium trust?

The upshot of the thread is that the EntityDesignerBuildProvider throws exceptions the when run in medium trust on hosted Web sites. According to the Entity Framework team’s Diego Vega:

    1. The problem only affects Web Sites. Web Applications are not affected.
    2. Web Sites precompiled in full-trust and deployed to partial-trust apparently work.

Don and Diego suggest the same workarounds.

Thanks to Julie Lerman for the heads-up.

Ardenkantur Recounts Issues Using Entity Framework with Jaroslaw Kowalski’s Oracle Data Provider

His My Adventures with Entity Framework and Oracle post of August 8, 2008 describes issues with mixed-case versus upper-case table and column names, inability to specify column names in the EDMX file’s SSDL (storage) section instead of the mapping layer (MSL),  and use of ROWNUM clauses in Skip and Take operations.

The post is based on Jaroslaw’s EFOracleProvider described in his Sample Entity Framework Provider for Oracle post and available for download from under the Microsoft Public License (MS-PL), which isn’t intended for production use. However, users of commercial EF-enabled Oracle Managed Data Providers should watch out for the the problems Ardenkantur encountered in his pre-RTM test.

Pete Montgomery Demonstrates Caching the Result of LINQ Queries

In Caching the results of LINQ queries of August 8, 2008, Pete describes how to cache the result of LINQ queries that will will:

    • work for any LINQ query (over objects, XML, SQL, Entities…)
    • work for anonymous type projections, as well as business entities
    • be statically type safe (no casting required)
    • deal transparently with cache key creation
    • look syntactically like a custom query operator

He generates the unique cache key from the query expression.

Although Pete’s technique targets ASP.NET’s System.Web.Caching.Cache class, he says the approach “can be used by any .NET application or library.”

Note: Ayende Rahien (Oren Eini) has just completed a series of blog posts on distributed hash tables (DHT). His Patterns for using Distributed Hash Tables: Conclusion post of August 9, 2008 has links to the preceding eight episodes. If you’re interested in object caching in .NET, this series is a must-read.

Billy McCafferty Releases S#arp Architecture v0.7.3 Supporting ASP.NET MVC Preview 4 and NHibernate 2.0 CR 1

Billy’s S#arp Architecture: a new home, upgrades and a logo! post of August 8, 2008 announces the release of the latest version of S#arp Architecture: ASP.NET MVC with NHibernate (0.7.3), which supports ASP.NET MVC Preview 4 and NHibernate 2.0 CR1, and the formation of a S#arp Architecture Discussion Group on Google Groups.

He describes his new framework, which carries a GNU General Public License v3 license, as follows:

Pronounced "Sharp Architecture," this is a solid architectural foundation for rapidly building maintainable web applications leveraging the ASP.NET MVC framework with NHibernate. The primary advantage to be sought in using any architectural framework is to decrease the code one has to write while increasing the quality of the end product. A framework should enable developers to spend little time on infrastructure details while allowing them to focus their attentions on the domain and user experience. Accordingly, S#arp Architecture adheres to the following key principles:

  • Focused on Domain Driven Design
  • Loosely Coupled
  • Preconfigured Infrastructure
  • Open Ended Presentation

The overall goal of this is to allow developers to worry less about application "plumbing" and to spend most of their time on adding value for the client by focusing on the business logic and developing a rich user experience.

Billy is the author of NHibernate Best Practices with ASP.NET, 1.2nd Ed., which is required reading for anyone developing data-driven ASP.NET projects, regardless of whether you’re using or plan to use NHibernate, Entity Framework, LLBLGen Pro, or any other .NET Object/Relational Management O/RM tool.

Kingsley Idehen: OpenLink Software Publishes White Paper about LINQ to RDF

Kingsley describes Carl Blakeley’s LINQ To RDF: Exploiting the RDF based Linked Data Web using .NET via LINQ white paper of July 31, 2008 in his .NET, LINQ, and RDF based Linked Data (Update 2) post of August 8, 2008:

The paper offers an overview of LINQ to RDF, plus enhancements we've contributed to the project (available in LinqToRdf v0.8.). The paper includes real-world examples that tap into a MusicBrainz powered Linked Data Space, the Music Ontology, the Virtuoso RDF Quad Store, Virtuoso Sponger Middleware, and our RDfization Cartridges for Musicbrainz.

OpenLink Software is the publisher of Virtuoso, “an innovative Universal Server platform that delivers an enterprise level Data Integration and Management solution for SQL, RDF, XML, Web Services, and Business Processes.”

Amirthalingam Prasanna Offers a Introductory Guide to ADO.NET Data Services

His “Creating Service-Orientated Data-Access Layers” article of Redgate Software’s Simple-Talk newsletter of July 30, 2008 is yet another tour of ADO.NET Data Services but, unlike many other Astoria articles and blogs, it includes the basic details of query interceptors and change inteceptors for implementing role-based security.

Saturday, August 02, 2008

LINQ and Entity Framework Posts for 7/30/2008+

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

Updated 8/3/2008: Additions and updates

Steve Naughton Demos Use of the ADO.NET Dynamic Data Futures’ AutoComplete and CascadingFilter FieldTemplates

Windows client UIs commonly apply an AutoComplete feature that fill lists with partial-matching combo box selections while you type. But this feature appears less commonly in Web forms. Steve’s Dynamic Data and Field Templates - An Advanced FieldTemplate of August 2, 2008 describes how to combine the AutoCompleteFilter.asmx, AutoCompleteStyle.css, and AutoComplete.ascx files from the ADO.NET Dynamic Data Futures Project download on CodePlex to create an AutoCompleteText_Edit FieldTemplate.

If your WebForms’ combo box lists grow to exceed your page height, you probably need to group selections by category, which requires what the ADO.NET Dynamic Data team calls a CascadingFilter. The CascadingFilter FieldTemplate also is part of the ADO.NET Dynamic Data Futures Project download from CodePlex.

Steve’s Dynamic Data and Field Templates - A Second Advanced FieldTemplate second post of August 2 shows you how to use the CascadingFilter field template to group a Product combo box by Category using the Northwind sample database and LINQ to SQL data sources.

Added: 8/3/2008

Michael Neel Uses LINQ to XML to Generate XHTML

His Using LINQ to generate HTML post of August 3, 2008 shows how to use LINQ to XML expression syntax and the XElement type to generate XHTML to populate agenda pages for the CodeStock Website.

Added: 8/3/2008

Eric White Uses LINQ to XML to Minimize Lines and Speed-Read Code

Eric’s LINQ Reduces Line Counts and Makes Code “Pop” post of August 2, 2008 demonstrates how to move from traditional imperative-style coding to a functional approach with LINQ to XML. A simple example shortens a 22-line foreach method to 12 lines of much easier-to-read method that uses chained LINQ to XML method-call syntax.

Added: 8/3/2008

Michael Neel Uses LINQ to XML to Generate HTML

His Using LINQ to generate HTML post of August 3, 2008

Dell Attempts to Purloin “Cloud Computing” Trademark

Dell Inc. isn’t short on chutzpa. The Round Rock computer maker has redefined the term “Cloud Computing” and is attempting to obtain a trademark on it for a wide range of computer-related services, none of which conform to the accepted definitions for cloud computing of which I’m aware. Wikipedia’s entry is closest to the mark for me.

For more details, see my Dell Attempts to Purloin “Cloud Computing” Trademark post of August 2, 2008.

Updated: 8/3/2008

Drag-and-Drop Master/Details Windows Forms Still Missing from Entity Framework SP1 Beta

LINQ to SQL has supported drag-and-drop generation of master/details and master/details/subdetails forms from the Data Sources window since its first appearance in an early Orcas beta release.

The version of Entity Framework (EF) v1 in the Visual Studio 2008 SP1 Beta release can drag-and-drop TextBox or DataGridView icons from the Data Sources window to the form in design mode, but the Data Source nodes don’t include EntityReferences, such as Order.Employee and Order.Shipper, or EntityCollections, such as Customer.Orders or Order.Order_Details. Neither does the current EF v1 release display foreign key values unless they’re part of a primary key, such as Order_Detail.OrderID and Order_Detail.ProductID.

Read more about the problem at Drag-and-Drop Master/Details Windows Forms Still Missing from Entity Framework SP1 Beta of August 2, 2008.

Updated: 8/3/2008

Andrew Matthews Seeks Community Help with Enhancing LINQ to RDF

Andrew’s Wanted: Volunteers for .NET semantic web framework project post of August 2, 2008 observes:

LinqToRdf* is a full-featured LINQ query provider for .NET written in C#. It provides developers with an intuitive way to make queries on semantic web databases. The project has been going for over a year and it’s starting to be noticed by semantic web early adopters and semantic web product vendors. LINQ provides a standardised query language and a platform enabling any developer to understand systems using semantic web technologies via LinqToRdf. It will help those who don’t have the time to ascend the semantic web learning curve to become productive quickly.

He’s seeking help for development, testing, and promotion, as well as several new features:

  • Reverse engineering tool
  • Tutorials and documentation
  • Supporting SQL Server
  • Porting to Mono
  • SPARQL Update (SPARQUL) support
  • Demonstrators using large scale web endpoints

Eugenio Pace Explains SQL Server Data Services’ Entity Versioning and Concurrency Conflict Management

SOAP requests to SSDS entities require a Scope with an instance of the new (in Sprint 3) VersionMatch class to manage concurrency conflicts. Eugenio’s Concurrency in SSDS post of August 1, 2008 shows you how to implement and test it.

Chad Myers Proposes Expression-Tree Query Objects for Use by Repositories

Chad concludes that the single repository model has …

the potential for business logic (also known as ‘where’ clauses) to creep into the repository which would be bad. Perhaps a better alternative would be to encapsulate the specific logic of a given query into an object. You could then have this object produce something that the repository could (blindly, decoupled) use to query on.

This approach allows you to maintain the one repository approach, yet still have encapsulated domain-specific queries. Plus, you can test your queries independently of the repository which is a huge benefit.

He then goes on to demonstrate using an expression tree to create the query object in Query Objects with the Repository Pattern (Part 1) of August 1, 2008 and enhances the objects by coupling then with AndAlso and OrElse expressions in Query Objects with the Repository Pattern (Part 2) of August 2, which provides a full query object implementation.

Comment: Ayende Rahien contends that Chad’s syntax “leaves a lot to be desired” in his Unreadable Linq post of August 2, 2008.

Mehfuz Releases LINQ to Flickr 1.4 with New Features

Mehfuz’ Athena - A LINQ to flickr API (Release 1.4) post of August 2, 2008 says:

I have updated it with the latest LINQExtender (pre release version)  containing updated Object Tracking Service (OTS) that will enable it to update photos and comments as if like LINQ to SQL.

It also adds Extras support, which enables querying with Extras enum for additional information about your photos.

Article about ADO.NET Data Services by the Flaskos in August 2008 MSDN Magazine

Elisa and Mike Flasko’s “Expose And Consume Data in A Web Services World” article appears in the August 2008 issue of MSDN Magazine. In addition to demonstrating the usual Entity Framework back-end, the article shows you how to create an Astoria service for an in-memory CLR objects.

Note: Julie Lerman wrote Write On!: Create Web Apps You Can Draw On with Silverlight 2 for this issue. Read more about it in her Drawing in Silverlight Article in MSDN Magazine of July 2, 2008.

Input Needed for Alternative Approaches to Implementing POCO in Entity Framework v2

Alex James is is seeking the answers to the following three questions for enabling Plain Old CLR Objects (POCO) in EF v2:

  1. What are the interesting scenarios for using the state management API in POCO scenarios?
  2. What API pattern is better? Having an explicit method to compute the current state based on the snapshot comparisons or having the state to be computed automatically when accessing the state?
  3. Is it better to have an Invalid state for entries or should the state manager just throw exceptions immediately every time it finds a change on a key?

His Discussion about API changes necessary for POCO post of August 1, 2008 offers a extensive discussion of the implications of alternatives for questions #2 and #3.

Favorable Competitive Side-Effects from the Entity Framework v1 Release Anticipated

Gary Short of Developer Express concludes that XPO Will Benefit from the Entity Framework (August 1, 2008) because:

[M]any companies and many individual developers too for that matter, will not contemplate looking at a new architectural paradigm until such time as it appears on the Microsoft development stack. …

With the release of Visual Studio 2008 SP1 this summer, that is all about to change, an ORM tool (albeit a flawed one) will then become a first class citizen in the Microsoft development stack. That fact will open up the world of ORM to many more people, and as those people explore that new world many will drift to XPO and other ORM tools, making 2009, in my opinion, a great year to be in the ORM space.

Mike Amundsen Posts Code and Demo for Twitter-Like SSDS Application

Mike’s Online Guestbook Demo App up and running post in the of July 31, 2008 in the SQL Server Data Services (SSDS) - Getting Started forum announces the availability of source code for his SSDS Online Guestbook application that logs 140-character messages similar to Twitter Tweets.

Mike describes his project:

This app uses a single Container (guestbook) with two Entity 'Kinds' (guest and message). Users can create an account and then post messages for everyone to see. You can also filter the message list by guest's nickname. 

I'm testing out the user account authentication pattern (a custom HTTP Basic using cookies for browsers) and the notion of running queries in a single container over multiple 'Kinds.'  I am also working on a solid list/query caching (and cache _invalidation_) pattern as SSDS does not yet support ETags/caching of lists.

He also has a live demo of the application running on his site.

Mary Jo Foley Describes SCOPE, Microsoft’s SQL-Like Answer to MapReduce for Parallel Queries Against Massive Data Sets

Mary Jo describes Microsoft Research’s Structured Computations Optimized for Parallel Execution (SCOPE) in her Microsoft’s road to the cloud is paved with parallelism post of July 31, 2008. The “SCOPE: Easy and Efficient Parallel Processing of Massive Data Sets” whitepaper is the basis of a Microsoft presentation at the Very Large Data Bases 2008 conference scheduled for August 23 – 28, 2008 in Auckland, New Zealand.

Mary Jo quotes Greg Linden, a former Amazon developer who founded Findory.com and now works in Microsoft’s Live Labs group:

Scope is similar to Yahoo's Pig, which is a higher level language on top of Hadoop, or Google's Sawzall, which is a higher level language on top of MapReduce. But, where Pig focuses on and advocates a more imperative programming style, Scope looks much more like SQL.

Gregg concludes his post:

Please see also my past posts on related work, including "Yahoo, Hadoop, and Pig Latin", "Sample programs in DryadLINQ", "Automatic optimization on large Hadoop clusters", and "Yahoo Pig and Google Sawzall".

The white paper notes that:

“Microsoft has developed a distributed computing platform, called Cosmos, for storing and analyzing massive data sets. Cosmos is designed to run on large clusters consisting of thousands of commodity servers. Disk storage is distributed with each server having one or more direct-attached disks.”

Mary Jo mentioned Cosmos in her Windows Live Platform Services: A guide for the perplexed post of March 6, 2008.

I don’t believe that SCOPE or Cosmos have a direct relationship to SQL Server Data Services (SSDS) today. However, one of the reasons that SSDS initial design is schemaless, implements flexible entities, and has little resemblance to traditional relational database management systems (RDBMSs) might be compatibility with a future SSDS upgrade or different version that runs under SCOPE and uses the Cosmos file system.

Comment: Ayende Rahien has a lot to say on the topic in his Thinking about Cloud Computing post of August 2, 2008.

Bart De Smet Updates LINQ to ActiveDirectory

Bart’s LINQ to AD - Refresh Release 1.0.1 Available post of July 31, 2008 announces an update to LINQ to AD (formerly LINQ to LDAP) that adds the following features:

  • byte[]- and GUID-valued directory attributes
  • Bug fix for non-constant EndsWith, BeginsWith and Contains clauses
  • Introduction of DirectoryContext with support for nested contexts and direct update support
  • Updated samples to use the new available features

Mike Taulty on Calling ASMX Web Services from Silverlight 2 Clients

Mike’s Silverlight 2 Beta 2 - ASMX Services & XmlSerializer post of July 31, 2008 verifies that you can call ASMX services from Silverlight 2 Beta 2 when those services use the XmlSerializer instead of the DataContractSerializer.

Steve Naughton Discovers a Fifth ASP.NET Dynamic Data Custom Page Type

ASP.NET Dynamic Data maven Steve Naughton finds a fifth custom Page type and demonstrates how to code for the user’s current culture in his Dynamic Data Custom Pages Part 5: I18N? Internationalisation Custom Page post of July 31, 2008.

Rob Conery Replaces LINQ to SQL’s Traditional Lazy Loading with LazyList

Rob and Ayende Rahien come up with a new approach to Lazy Loading With The LazyList implementation of IList<T> that takes an IQueryable definition in its constructor. This July 30, 2008 post shows you how to include LINQ Let statements …

This is part of fooling Linq To Sql so it doesn't try to introspect this relationship and build some weird SQL statement. I had to create these methods and they are simply filter statements that return IQueryable<Product> (you can see these in the checked in Storefront code).

Rob concludes with the source code to implement LazyList<T>.

Ben Hoelting Questions the Future of ADO.NET DataSets After Microsoft Releases the Entity Framework

Ben stated "if you are creating new applications or just adding on features to your current app I would use LINQ or EF instead of ADO Datasets” and an earlier post and goes on to detail the reasons in his Are ADO.NET Datasets dead? post of July 30, 2008.

I don’t believe that DataSets are dead, but they’ll certainly be on life support in a year or two.

Data Platform Group Posts ADO.NET Data Services and Entity Framework Screencasts

Its “How Do I?” Videos — Data Platform Development page offers links to two recently added “How Do I” ADO.NET Data Services (Astoria) screencasts:

and the following screencasts for Entity Framework:

Monday, November 26, 2007

LINQ and Entity Framework Posts for 11/26/2007+

Note: This compendium is updated daily or more often, depending on availability of articles.

JD Conley: Compile Your LINQ to SQL Queries for Performance

Rico Mariani's Linq to SQL Compiled Queries are thread-safe post of November 29, 2007 led me to JD Conley's Linq to Sql Surprise Performance Hit article of November 28, 2007. JD develops Facebook apps with VS 2008, .NET 3.5, and LINQ, and intends to release an open-source asynchronous Facebook library.

JD ran into a serious performance problem in his Photo Feeds Facebook app, which uses LINQ to SQL, that was causing his page to load slowly. It turned out that three page loads caused 1,176,879 calls to SqlVisitor.Visit and pinned the CPU. Compiling the query decreased load time by a factor of five and the app now "barely registers on the CPU when the page loads."

Rico says compiled queries are thread-safe, which is reassuring.

Daniel Moth Demonstratrates and Explains the Parallel Exensions

Microsoft UK's Daniel Moth posted the following short video clips and introductions to Channel9 on November 29, 2007:

Intro to Parallel Extensions to the .NET Framework

In this 22:27 tour of the Parallel Extensions sample code, you will learn where to focus your energy when you explore the samples. Watch this video in order to see how Parallel Extensions to the .NET Framework fit in the large picture and what goal it aims to solve.

Parallel LINQ (PLINQ)

Achieving "Declarative Data Parallelism" with the Parallel Extensions is achieved through Parallel LINQ (PLINQ). This 18:50 video explains how to parallelise your LINQ queries, how it works under the covers and how to configure it for advanced scenarios

How to use the static Parallel class

The .NET incarnation of the solution to "imperative data parallelism" lives in the static Parallel class of the Parallel Extensions assembly. If that sentence confuses you a bit, watch the 20:15 video for the full explanation.

His Parallel Extensions videos Errata post of the same day corrects minor gaffes, such as the "PFX" code name, pipelining description, and return sum instruction. He includes the first reference I've seen to the Parallel Extensions Team Blog, which went into business on November 29, 2007.

Thanks to Mike Taulty for the heads-up. (Mike: If you're reading this, Ralf Rottman has the answer for running Entity Framework Beta 2 on VS 2008 RTM. He doesn't know if the tools work.)

Added: 11/29/2007 

Parallel Extensions Team Blog Starts with Updates to the MSDN Magazine Articles

The new Parallel Extensions Team Blog posted the following five articles on November 29, 2007:

The "Luke Hoban Gets the Most Complex LINQ Query Award (and PLINQ Compatibility)" topic of my LINQ and Entity Framework Posts for 10/2/2007+ post has more details on the two MSDN Magazine articles.

Added: 11/29/2007

Parallel Extensions to .NET Framework 3.5 December CTP Available

As promised in Soma Somasegar's blog, you can download the Microsoft Parallel Extensions to .NET Framework 3.5, December 2007 Community Technology Preview starting today. ParallelFX includes Parallel LINQ (PLINQ), which Soma describes as follows:

Declarative data parallelism in the form of a data parallel implementation of LINQ-to-Objects.  This allows you to run LINQ queries on multiple processors.

PLINQ samples include the ray-tracing project that I described in the "Luke Hoban Gets the Most Complex LINQ Query Award (and PLINQ Compatibility)" topic of my LINQ and Entity Framework Posts for 10/2/2007+ post, which also describes the Parallel FX program and task parallel library. However, there's no sign of the project described in the "Joe Cheng Solves the Wide Finder Problem with LINQ and PLINQ" topic of my LINQ and Entity Framework Posts for 10/5/2007+ post.

So far, I haven't been able to find MSDN's "Concurrent Programming Developer Center" that Soma mentions in his post.

Update: 11/30/2007: Charlie Calvert provided this link to the Parallel Computing Developer Center.

Thanks to Mary Jo Foley and Fabrice Marguerie for the heads-ups.

Added: 11/29/2007

Entity Framework Beta 3 and ADO.NET Data Services (Astoria) Preview Due Next Week

According to Scott Guthrie's .NET Web Product Roadmap (ASP.NET, Silverlight, IIS7) post of November 29, 2007, Entity Framework (EF) Beta 3, presumably EDM Designer CTP 2, and a VS 2008 RTM-compliant preview of ADO.NET Data Services (formerly Project Astoria) will debut next week in conjunction with the newly-named ASP.NET 3.5 Extensions Release. Scott says, in part:

  • ADO.NET Data Services: In parallel with the ASP.NET Extensions release we will also be releasing the ADO.NET Entity Framework.  This provides a new modeling framework that enables developers to define a conceptual model of a database schema that closely aligns to a real world view of the information.  We will also be shipping a new set of data services (codename "Astoria") that make it easy to expose REST based API endpoints from within your ASP.NET applications.

For more details and commentary about the ASP.NET 3.5 Extensions Release and the version number change of Silverlight 1.1 to 2.0, see today's ASP.NET .NET 3.5 Extensions Preview to Include Entity Framework Beta 3, ADO.NET Data Services post.

Update 1200 PST: "In parallel with" and "also be shipping" don't necessarily mean "with the other pieces next week." Microsoft representatives wouldn't confirm to me that Entity Framework (EF) Beta 3, EDM Designer CTP 2, and the ADO.NET Data Services will release next week.

Added: 11/29/2007

Keyvan Nayyeri Syndicates Feeds with LINQ to SQL and WCF

Keyvan's Create RSS and Atom Feeds with LINQ and WCF Syndication in .NET 3.5 post of November 29, 2007 shows you how to take advantage of Windows Communication Framework's Syndication library and LINQ to SQL to generate Atom 1.0 or RSS 2.0 feeds from a SQL Server data source.

Added: 11/29/2007 

Diego Vega: Another New Entity Framework PM and Stealth Blogger

The Entity Framework (EF) team is staffing up program management in advance of the Beta 3 drop. The latest addition is Diego Vega whose been on the job but under the radar since mid-October. Diego's program area is LINQ to Entities.

Diego's latest post, Entity SQL Non-Quirkiness of November 27, 2007, describes the unwanted (but not unexpected) result of omitting the VALUE modifier in an aggregate (MAX()) subquery of an Entity SQL SELECT statement.

His first EF-related post, Choosing an Entity Framework API of November 7, 2007 contrasts the Entity Services (relational-to-entity mapper) and Object Services (object-to-entity mapper) layers, both of which accept Entity SQL Queries. Only the ObjectServices layer and its ObjectQuery type support Entity SQL and LINQ to Entities queries.

Like the other recent PM hire, Alex James (see the "Alex James Joins the ADO.NET Team as Program Manager for Metadata" topic of Link and Entity Framework Posts for 11/19/2007+), the ADO.NET team didn't announce that Diego had signed on and was blogging about EF. Thanks to Julie Lerman (again) for the heads up.

Added: 11/29/2007

Download Guy Burstein's LINQ to SQL Presentation and Sample Code

Advantech Senior Consultant and Microsoft MVP Guy Burstein presented a session on LINQ to SQL at Microsoft Israel's Developer Academy 2 conference on November 27, 2007. If you'd like a quick but comprehensive introduction to LINQ to SQL click here to download his slide decks and C# demo code.

Added: 11/28/2007 

Stefan Cruysberghs Queries Outlook and OneNote with LINQ

Add LINQ to Outlook and LINQ to OneNote as two new third-party LINQ implementations. Stefan's .NET - Querying Outlook and OneNote with LINQ post (in English) provides the following elements:

  • Wrapper class for Outlook 2007
  • Wrapper class OneNote 2007
  • Querying Outlook with LINQ
  • Querying OneNote with LINQ
  • Execute queries on Office data with LINQPad (additional article)
  • Source code for classes and console demo application

The Wrapper class for OneNote is quite complex because OneNote uses XML as its data store.

Added: 11/29/2007

Julie Lerman and Beth Massi Present Sessions at DevTeach 2007 Vancouver

DevTeach is conducting it's first West Coast conference in Vancouver BC starting Monday 11/26/2007 through Friday 11/30/2007.

Julie Lerman is delivering Introduction to ADO.NET Entity Framework on Wednesday, and Real World Entity Framework and Databinding in ASP.NET with LINQ on Thursday.

Beth Massi demoed her Visual Basic Tip of the Day Browser app and built a VB 2008 add-in for part of Ken Levy's Tuesday keynote address. She also presented Strategies for Moving VB6 Apps to .NET on Tuesday.

Beth's post mortem of her scheduled presentation and a description of her impromptu "Conquering XML with LINQ in Visual Basic 9" session on Thursday is in her DevTeach Part Deux post of 11/29/2007.

Note: Most Western Canadians I know are Anglophones and Francophobic.

Added: 11/28/2007 Updated 11/29/2007

Converting SQL to LINQ, Part 2: FROM and SELECT

The VB Team's Bill Horts continues the series about SQL to LINQ query conversion, which he started with Converting SQL to LINQ, Part 1: The Basics.

Added: 11/28/2007

Scott Guthrie: Silverlight 1.1 Tools for VS 2008 RTM Available

According to Scott's Silverlight 1.1 Tools Alpha for Visual Studio 2008 Available for Download post of November 26, 2007, you can download the updated Microsoft Silverlight 1.1 Tools alpha for Visual Studio 2008 RTM from here and the quickstart tutorial for the tools here.

Scott says:

The next public preview of Silverlight will include a ton of new runtime features, as well as a significantly enhanced VS 2008 tooling support.  I'll be blogging more details about this shortly.

Hopefully, the promised LINQ to XML addition will be in the next public preview.

Added: 11/27/2007 

Scott Wisniewski Generates a US Map from TIGER Files, LINQ to XML, and WPF

In what's probably the most complex jobs of data binding attempted so far with LINQ to XML and WPF, the VB Team's Scott Wisniewski describes how to draw a US map in his Map LINQ: Create Dynamic Maps with Visual Basic 9.0 and WPF article for MSDN Magazine's December 2007 issue. The map includes color-coded population data for all counties in each conterminous US state. Moving the mouse over a state emphasizes its outline.

The following screen capture has been widened to more closely represent the aspect ratio of a conventional US map. Click the image to display a full-size capture.

The sample code (30 MB, expands to about 150 MB) is available for download here. After you unzip the files to their designated folders, move the PolygonData and PopulationData folders from the ...\WPFApplication1 folder to the ...\WPFApplication1\bin folder and set WPFApplication 1 as the Startup project.

The XML files (133 MB) take a while to load and process with LINQ to XML queries, so be patient after you press F5.

Dietel Adds Microsoft LINQ Resource Center

Dietel & Associates, Inc. have added a Microsoft LINQ Resource Center to the 13 existing resource centers on their site. The LINQ center offers links to resources in the following categories:

"LINQ to Visual Basic" is an implementation that's new to me.

Bart De Smet Releases LINQ to Active Directory (LINQ to AD)

LINQ to LDAP has received an upgrade to Visual Studio 2008 and a name change to LINQ to Active Directory (a.k.a. LINQ to AD) according to Bart De Smet's November 25, 2007 LINQ to Active Directory (formerly known as LINQ to LDAP) is here post.

The new version offers the following features:

  • Translates into LDAP filters according to RFC 2254.
  • Simple and approachable entity model with support of propagating updates back.
  • Supports mappings to both the System.DirectoryServices (.NET) and ActiveDs (COM) APIs.
  • Ships with a set of samples.

You can download the new code from CodePlex.

Julie Lerman Unravels Entity Framework Namespace Ambiguities

Update 11/27/2007: Julie updated her Entity SQL difference when using ObjectQuery vs EntityClient post to indicate that ObjectQuery and Entity Client handle container name in entity SQL the same way. See the comment to this post by Danny Simmons.

Julie's Entity SQL difference when using ObjectQuery vs EntityClient post explains that EntityClient requires you to include the Entity Data Model's container name in the FROM clause of your Entity SQL statement, as in:

SELECT c FROM NorthwindEntities.Customer AS c

But you don't include the namespace in ObjectServices queries, such as:

SELECT c FROM Customer AS c

Because you've already assigned the namespace to an ObjectContext variable with a statement, such as:

Dim Nwind [As NorthwindEntities] = New NorthwindEntities

ObjectServices queries throw a runtime exception if you prefix the entity with its namespace.

Off-Topic: Pat Helland Recounts his Tech*Ed 2007 Developers Presentations

If you haven't heard, Pat Helland (of Fiefdom and Emissaries fame) has returned to Microsoft after a few years' exile at Amazon.com and now writes a blog. (I covered for Fawcette Technical Publications his participation with Paul Flessner in the Autonomous Computing keynote for Tech*Ed 2002.)

To mark his renewed presence on the conference circuit, Pat has posted backgrounders, abstracts, and links to slides for his two technical sessions and the closing general session at Tech*Ed 2007 Developers Barcelona:

My Very Large Databases: Bricks, BitVault and BigTable post of April 6, 2006 has some additional background on the topics Pat covered at Barcelona.

As a bonus, Pat posted a lavishly illustrated, running account of a one-week Mediterranean cruise with his wife to celebrate their second anniversary:

The series is definitely worth a read, especially if you've never ridden a cruise ship.

Bill McCarthy Uncovers XAttribute Namespace Issue in LINQ to XML

Bill warns in his Don't "p" on your XAttributes post of November 26, 2007 not to assign pn (where n is an integer) as a namespace prefixe when programmatically adding attributes in LINQ to XML. You're likely to incur an exception caused by using the same namespace prefix twice.

Ken Tucker Creates an Excel Spreadsheet with the Open XML SDK and LINQ to XML

Ken's Using LINQ to XML to create an Excel spreadsheet post of November 25, 2007 contains the VB code to use the Microsoft SDK for Open XML Formats to create an Excel 2007 spreadsheet document, workbook, and string table, and then uses VB's literal XML feature to add cells from the Northwind database.

His post includes the complete code for the process that you can cut and paste into a sample project.