Tuesday, July 29, 2008

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

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

“Generate Web Sites Automatically” Cover Story About ASP.NET Dynamic Data for Visual Studio Magazine

My “Generate Web Sites Automatically” cover story for the August 2008 issue of Visual Studio Magazine is available from the above link or by clicking the cover image.

Visual Studio 2008 Service Pack 1's new ASP.NET Dynamic Data templates automatically generate code for DataGrid, ListView, DetailsView, and FormView display and editing controls on dynamic pages derived from a master page and CSS stylesheet. Dynamic Data leverages AJAX to smooth page transitions and delivers scaffolding for codeless, key-based page routing with Entity Framework or LINQ to SQL object/relational mapping tools.

Read more about it in my “Generate Web Sites Automatically” Cover Story About ASP.NET Dynamic Data for Visual Studio Magazine post of July 29, 2008

“A Vote for Transparency” Guest Opinion for Visual Studio Magazine’s August 2008 Issue

My “Guest Opinion: A Vote for Transparency” about Entity Framework’s overdue move to more transparency in its design process for the August 2008 issue of Visual Studio Magazine is available from the above link or by clicking the cover image.

My take is that the Data Programmability group’s Entity Framework team could have saved themselves considerable grief, consternation, and bad press if they had initiated the Entity Data Model and Entity Framework project with the Astoria Team’s approach.

Read more about it in my “A Vote for Transparency” Guest Opinion for Visual Studio Magazine’s August 2008 Issue post of July 29, 2008.

Lazy Loading With The LazyList

LINQ to SQL log to debug window, file, memory or multiple writers

Overloading Entity Framework Methods: More GetObjectStateEntries

Implementing IExpandProvider for NHibernate.LINQ

Handy Visual Studio Add-In to View Office 2007 Files

Steve Naughton Completes His Dynamic Data and Field Templates  Series with an AutoCompleteFilter Web Service

Steve’s An Advanced FieldTemplate post of July 29, 2008 is the final episode of his three-part Dynamic Data and Field Templates Series. In part 3:

[W]e are going to use the AutoCompleteFilter web service from Dynamic Data Futures example to make an AutoCompleteText_Edit FieldTemplate. What this will do is look up values in the column that we are editing for matches i.e. if we had a column for category names and we typed in con we may get list like Condiments, Confections, Containers etc.

The first two parts are:

  1. The Anatomy of a FieldTemplate.
  2. Your First FieldTemplate.

Michael Arrington: Yahoo, Intel and HP Hype Vaporware in the Cloud

TechCrunch’s Mike Arrington posts Cloud Computing Test Bed: Live Notes From The Conference Call, a blow-by-blow account of a July 29, 2008 conference call announcing participation by Yahoo, Intel and HP in “a globally distributed, Internet-scale testing environment designed to encourage research on the software, data center management and hardware issues associated with cloud computing at a larger scale than ever before.”

My comment to the post is:

This is simply hype to prevent the real players, Amazon, Google and Microsoft (and potentially IBM) from monopolizing the PR chips. IBM’s Blue Cloud “initiative” started with similar blather from the flacks and, as far as I can determine, went nowhere.

Mike’s later HP, Yahoo, Intel Launch Cloud Computing Test Bed post the same day has more agitprop about the six erstwhile “centers of excellence.”

GigaOm’s Stacey Higginbotham’s HP, Yahoo and Intel Create Compute Cloud post of the same date has additional background on the project, which will restrict “access to academics and research institutions trying to build out services and work within the clouds.”

The test bed project has the same odor as IBM’s Blue Cloud project that IBM announced last year. Here’s my recent take on Blue Cloud from my All’s Quiet on the SQL Server Data Services Front post of June 17, 2008:

Backstory: IBM’s November 15, 2007 announcement of its Blue Cloud distributed computing initiative generated 754,000 hits for the past year with a Google search on ibm “blue cloud”. Only 39,300 hits occurred in the past three months, which indicates quickly diminishing interest as Big Blue failed to expose its purported service to actual users.

A possible reason for the reduced press coverage is the company’s schizophrenic view of cloud computing, as reported by RedMonk’s Michael Coté in the “IBM and cloud computing” topic of his May 27, 2008 IBM Tivoli Pulse: Tivoli product updates and cloud confusion article for SearchDataCenter.com. Meanwhile, Amazon and Google maintain their headlock on what cloud mindshare there exists among developers.

According to a subsequent IBM press release, IBM opens Africa’s first “cloud computing” center, second cloud center in China, IBM currently has three “cloud computing centers” in Dublin, Beijing, and Johannesburg.

That’s a lot of computing horsepower for a customer list limited to “Wuxi City of China, Sogeti, the Local Professional Services Division of Capgemini, the Vietnamese government institutions and universities, and iTricity, a computing host service company based in the Netherlands.” It’s surprising that IBM couldn’t come up with a more inspiring customer list.

Jamie Thompson Posts a SQL Server Data Services Console Application on Codeplex

Jamie’s SSDS demo code now on Codeplex post of July 29, 2008 contains a link to the source code for a simple .NET console project that creates an authority and container, and then adds a entity to the container.

Mike Taulty Posts Four More ADO.NET Data Services Screencasts

So far, Mike hasn’t gotten around to posting about these four Screencasts added to his Channel 9 collection on July 29, 2008:

  • ADO.NET Data Services (VS08 Sp1 B1), Optimistic Concurrency: With Data Services, it's most likely that you'd use an optimistic locking strategy for the underlying data and the framework has built-in support which we take a look at here.
  • ADO.NET Data Services (VS08 Sp1 B1), Batching: We can cut down the number of HTTP round-trips that we make from client to service by using the batching feature of Data Services. A service exposes a $batch endpoint that we can send multiple "CRUD" operations to in a single HTTP request.
  • ADO.NET Data Services (VS08 Sp1 B1), Service Operations: Service operations provide a way in which we can add to the core functionality of Data Services in order to expose your own arbitrary functionality by writing server-side functions that can still be invoked (with parameters) via the URI. Here, we take a quick look at how we can do this.
  • ADO.NET Data Services (VS08 Sp1 B1), Query Interceptors: Query interceptors (and change interceptors) allow us to plug code into the dispatch mechanism server side in order to run some of your own code as part of returning a result set or modifying data. Here, we take a quick look.

Here are the fist five from the “Mike Taulty Posts Five ADO.NET Data Services Screencasts” topic of LINQ and Entity Framework Posts for 7/24/2008+:

Danny Simmons on dnrTV: Entity Framework Screencast Part 2

In show 118 of July 28, 2008, Dan Simmons on The Entity Framework Part 2, Danny “demonstrates using the Entity Framework with ASP.NET applications and web services” in a 55:10 screencast that covers the following topics:

  • Danny starts by moving the Northwind.edmx files and a partial entity class to a separate assembly with a reference from an ASP.NET Web Application which uses the EntityDataSource as a data source to bind a GridViewControl.
  • He continues at 14:00 with an ASP.NET Dynamic Data Web application, explains issues with disconnected operation at 19:00 and does a disconnected demo at 13:00.
  • Creating a Web services app with ADO.NET Data Services (Astoria) starts at 26:00.
  • Creating a WCF Service Application starts at 45:45 with GetOrderById() and UpdateOrder() operations.

The earlier Dan Simmons on The Entity Framework Part 1 of July 14, 2008 was an introduction to the Entity Framework.

Amazon SimpleDB Update Adds New and Improves Features

The Amazon Web Services Blog’s New features come to Amazon SimpleDB post of July 28, 2008 discusses SimpleDB’s new-found sort capability and does-not-start-with operator and points to a page with the following list of new features:

  • Query Sort: Amazon SimpleDB now supports the sorting of query result sets on a single attribute.
  • Query “does-not-start-with” operator: Amazon SimpleDB now provides the new comparison operator “does-not-start-with.”  For example,  [‘title’ does-not-start-with ‘Old’].
  • Increased number of predicates in query expressions: Amazon SimpleDB increases the number of predicates allowed in query expressions from 5 to 10.
  • Increased number of comparisons per predicate in query expressions: Amazon SimpleDB increases the number of comparisons per predicate allowed in query expressions from 5 to 10.
  • XML-restricted character handling: Amazon SimpleDB now automatically Base64 encodes strings that contain XML-restricted characters. This ensures responses with restricted characters are successfully returned.

Mike Taulty and Mike Ormond Post 52 Silverlight Screencasts: Eight with Data or LINQ Overtones

The “Two Mikes” have been busy capturing content for a series of 52 (as of July 29, 2008) screencasts for download from the Screencasts for Silverlight 2 list. Here are the eight that are most relevant to his blog topics:

Three New Tech-Talk Interviews from Tech*Ed 2008 Developers

Three new Tech-Talks of peripheral interest to developers using LINQ and Entity Framework or related technologies posted July 28 and 29, 2008 are:

  • REST and SOAP…Battle Royal or Peas in a Pod?: Ron Jacobs discusses REST and SOAP with Bob Familiar: the differences, the similarities, and how Windows Communication Foundation supports these distributed networking protocols.
  • Introducing Velocity: a Distributed Caching Platform: Join us as we present project "Velocity," an explicit application cache that provides increased performance, scale and availability. With Anil Nori, Muralidhar Krishnaprasad, Subramanian Muralidhar, and Nithya Sampathkumar.
  • The Road to Oslo: The Microsoft Services and Modeling Platform: Microsoft's "Oslo" project aims at creating a unified platform for model-based, service-oriented applications. This new approach will affect the next versions of several products and technologies, including the Microsoft .NET Framework, Microsoft Visual Studio, Microsoft BizTalk Server, Microsoft System Center, and more. Although many details of "Oslo" won't be public until later in 2008, this session provides an overview of what Microsoft has revealed so far. Along with a description of the problems it addresses, the session includes a look at several new "Oslo" technologies, including a general-purpose modeling language, role-specific modeling tools, a shared model repository, and a distributed service bus. With David Chappell and Ron Jacobs.

“A Vote for Transparency” Guest Opinion for Visual Studio Magazine’s August 2008 Issue

My “Guest Opinion: A Vote for Transparency” about Entity Framework’s overdue move to more transparency in its design process for the August 2008 issue of Visual Studio Magazine is available from the above link or by clicking the cover image.

Pablo Castro originated a more open approach for developer participation in a new product’s early design stage with his Transparency in the design process methodology for ADO.NET Data Services (formerly code-named Astoria.)

My take is that the Data Programmability group’s Entity Framework team could have saved themselves considerable grief, consternation, and bad press if they had initiated the Entity Data Model and Entity Framework project with the Astoria Team’s approach.

Note: See my Current Commentary About the “ADO.NET Entity Framework Vote of No Confidence” Manifesto post of June 28, 2008 and Stephen Forte’s Impedance Mismatch Post Elicits Responses from Domain-Driven Designers of July 27, 2008 for more about the “bad press.”

I also recommend that the SQL Server Data Services (SSDS team) increase the transparency in their design process in my SQL Server Data Services Needs an Open Development Process Similar to that for ADO.NET Data Services and Entity Framework post of June 27, 2008.

“Generate Web Sites Automatically” Cover Story About ASP.NET Dynamic Data for Visual Studio Magazine

My “Generate Web Sites Automatically” cover story for the August 2008 issue of Visual Studio Magazine is available from the above link or by clicking the cover image.

Here’s the deck: Visual Studio 2008 Service Pack 1's new ASP.NET Dynamic Data templates automatically generate code for DataGrid, ListView, DetailsView, and FormView display and editing controls on dynamic pages derived from a master page and CSS stylesheet. Dynamic Data leverages AJAX to smooth page transitions and delivers scaffolding for codeless, key-based page routing with Entity Framework or LINQ to SQL object/relational mapping tools.

The August issue includes my “Guest Opinion: A Vote for Transparency” about Entity Framework’s overdue move to Pablo Castro’s Transparency in the design process approach for obtaining developer feedback early in a product’s design process.

Click here for a complete list of (and links to) my Visual Studio Magazine cover stories from November 2003 to the present.

Monday, July 28, 2008

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

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

Updated SQL Server Data Services (SSDS) Test Harness: Northwind REST and SOAP Uploads

The SSDSNwindEntitiesCS.sln sample project for my “Test-Drive SQL Server Data Services” cover article for the July 2008 issue of Visual Studio Magazine has been updated to SSDS Sprint 3, adds a couple of features, and has a few start-up bugs excised.

New Features:

  • The program attempts to create an authority if you haven’t added one.
  • A splash screen opens during the initial query for ACE container and entity object because the process is very slow with a moderate number of objects.

Updates:

  • The new 'application/x-ssds+xml' MIME type replaces ‘application/xml’.
  • The containerUri = response.Headers[HttpResponseHeader.Location]; instruction which now returns null has been replaced with concatenated constants as the containerUri value. This eliminates a problem when creating new containers with REST operations.

Download: You can download the SSDSNwindEntitiesCS project here (114-KB SSDSNwindEntities.zip file at Skydrive).

My Updated SQL Server Data Services (SSDS) Test Harness: Northwind REST and SOAP Uploads of July 27, 2008 has more details and screen captures.

Added: July 28, 2008

Stephen Forte’s Impedance Mismatch Post Elicits Responses from Domain-Driven Designers

The “Stephen Forte Embraces the Impedance Mismatch” topic of my LINQ and Entity Framework Posts for 7/14/2008+ post quotes Steve’s Impedance Mismatch post of June 27, 2008, which eschewed “object-fist” in favor of “data-first” design.

I assumed that Steve’s post would brew a storm of controversy, especially since he’s a member of the Entity Framework’s new Advisory Council. However, it turned out to be a tempest in a teapot as described in my Stephen Forte’s Impedance Mismatch Post Elicits Responses from Domain-Driven Designers of July 27, 2008.

Bidirectional Serialization of LINQ to SQL Object Graphs with Damien Guard’s T4 Template in VS 2008 SP1

LINQ to SQL developer Damien Guard, who joined the DPG in May 2008, announced the availability of a customizable T4 template to generate LINQ to SQL classes from the *.dbml file in his LINQ to SQL T4 template reloaded post of July 23, 2008.

A couple of minor modifications to the L2ST4.tt template file and addition of a reference to and using directive for the System.Runtime.Serialization namespace enables full-object-graph serialization of LINQ to SQL entities. This brings parity to both VS 2008 OR/M tools in the serialization department.

Read more at Bidirectional Serialization of LINQ to SQL Object Graphs with Damien Guard’s T4 Template in VS 2008 SP1 of July 24, 2008 (updated 7/27/2008) and download the sample C# project.

Mike Taulty Posts Five ADO.NET Data Services Screencasts

Following are titles with links to the five Astoria screencasts that Mike posted on July 25, 2008:

Ryan Dunn Makes IE Display SQL Server Data Services New application/x-ssds+xml MIME Type

Internet Explorer now prompts you to download SQL Server Data Services (SSDS) content that uses the new (post-Sprint 3) application/x-ssds+xml MIME type instead of application/xml.

Ryan’s Rendering POX for SSDS in Internet Explorer post of July 25, 2008 gives you the magic Registry hack to make IE display SSDS’s POX wire format.

Matthieu Mezil Shows You How to Instantiate a New EntityKey

Entity Framework uses EntityKeys to represent unique entities in its cache. EntityKeys are immutable, so Matthieu shows you how to instantiate new ones in his EntityReference change key post of July 25, 2008.

Phani Raju Demonstrates Using the AJAX 4.0 Preview’s DataView Control with ADO.NET Data Services

Phani’s ASP.NET AJAX 4.0 Master-Details View with the DataView and ASP.NET AJAX 4.0 Master-Details View with the DataView , Part 2 posts of July 24 and 25, 2008 use the ASP.NET AJAX 4.0 CodePlex Preview 1’s templating engine and DataView control to build master-details pages.

Phani uses Astoria and its AJAX Client Library for ADO.NET Data Services from CodePlex as the data source.

Jim Wooley: Quickly create an IEnumerable<T> from a DataReader

Jim’s Filling an object from a DataReader with LINQ using DataContext.Translate post of July 25, 2008 shows you how to use the DataContext.Translate<T>() method to create an entity set from a database table without mapping for the DataContext.GetTable() method.

Eric White Analyzes Responses to his “Are Developers Using LINQ?” Post

Eric received many detailed responses to his Are Developers Using LINQ? post of July 23, 2008. In his Are Developers Using LINQ? (Part 2) post of July 25, 2008, he describes these four common LINQ usage scenarios:

  • Using LINQ to Objects and LINQ to XML … .
  • Using query expressions … to access objects and XML.
  • Using LINQ to SQL or LINQ to Entities to access a database.
  • Using LINQ implemented using an IQueryable provider to something other than a SQL database.

and noted that there were only a few negative responses.

Keith J. Farmer points out in a comment to the first post that folks still call LINQ “link,” consider LINQ to SQL to be the only implementation, and believe SQL Server is the only LINQ-enabled data provider.

Ruurd Boeke Joins Microsoft’s Silverlight (not Entity Framework) Team

Ruurd notes in his I’m joining Microsoft!! post of July 25, 2008 that:

I was torn between working on EF (which, I’ve been very involved with lately) and on Silverlight. In the end, Silverlight won, because I strongly believe it to be the strongest contender in the client space.

I’m disappointed that Ruurd didn’t choose to join the Entity Framework team. His six-part Introducing Entity Framework Contrib: Easy IPoco implementation V 0.1 series used Postsharp to “[a]utomatically implement the IPoco interfaces. The project is aimed at helping you build your domain layer in a more persistence ignorant way than is possible at this moment.”

Note: Ruurd’s eight-part Workflow as controller: Introducing <M,V,C> where M: ViewModel, V : WPF, C : WF describes an inventive framework that uses WF in an unconventional role, although he won’t call his tutorial a framework.

Jeff Currier Defends SQL Server Data Services’ Missing PUT/POST Response Bodies

Mike Amundsen’s REST PUT/POST Responses contain ETag, but not body - Oops! thread of July 24, 2008 in the SQL Server Data Services (SSDS) - Getting Started says:

I note that the PUT results in a return that includes an ETag (yay!), but that there is no body returned for this PUT. I think this is a problem. ETags act as a version hash for the document body. Yet this Response has no body!

Jeff’s What happened to SSDS PUT/POST responses? post of July 25 replies:

Prior to this rollout the only mechanism that we had to communicate version information to you was via the entity body of the response (specifically the version element in the body).  However, now that we have true ETag support we now can simply return this value back to caller via the ETag header per the Http spec.

Jeff attributes the reason for the change to future ingress and egress charges; returning the body would increase downloaded bytes.

Beth Massi Posts Four WPF Forms Over Data Video Segments to the Code Gallery

Her WPF Forms over Data: 2 More Videos! post of July 24, 2008 announces #3 and #4 in the following series about data binding in WPF:

  1. How Do I: Create a Simple Data Entry Form in WPF?
  2. How Do I: Display Data in a List in WPF?
  3. How Do I: Create Lookup Combobox in WPF?
  4. How Do I: Hook Up and Display Validation in WPF?

Click the Watch Video link to substitute MediaPlayer for the miniature Silverlight window. VB and C# sample code is downloadable.

Charlie Calvert Continues with Aggregate Operators in his Revived LINQ Farm Series

Charlie’s LINQ Farm: More on the LINQ Aggregate Operators discusses the following LINQ aggregate operators and their overloads:

  • Count and LongCount
  • Min and Max
  • Average
  • Sum
  • Aggregate

Jeremy D. Miller and Ward Bell Discuss Object/Relational Modeling and the Entity Framework in a Two-Part Podcast

The first ALT.NET Object-Relational Mapping podcast with Jeremy D. Miller and Ward Bell covers Object/Relational Mapping (O/RM) tools and when to use them. Topics include:

  • Object-Relational Mapping
  • Object-first vs. Data-first Approaches
  • Evolutionary Database Design
  • Evolutionary Design
  • Code Generation
  • Persistence Ignorance
  • POCO
  • Domain-Driven Design
  • The Vietnam of Computer Science

    The second part “discusses the Vote of No Confidence on Microsoft's Entity Framework and what it means for the Alt.NET and .NET communities.”

    Scott Hanselman Does a Video Deep Dive on LINQ and the Entity Framework

    The actual title of Scott’s Jumpstart Data Driven Web Applications with ASP.NET 3.5 (Part 1 of 2) presentation for Tech*Ed 2008 Developer is “WUX101: Jumpstart Data-Driven Web Applications with ASP.NET 3.5 Dynamic Data Controls (Part 1 of 2).”

    Note: ASP.NET 3.5 Dynamic Data Controls became ASP.NET Dynamic Data after Tech*Ed.

    The deck for the presentation reads:

    Explore the new features in ASP.NET 3.5 that make buliding data driven Web applications a breeze. In this first of a two-part series, learn how to use LINQ to take the pain out of interacting with your relational data and how support for LINQ and its constructs are built into the paradigms you are familiar with in ASP.NET and Microsoft Visual Studio 2008.

    Hopefully the TechEd Online News folks will post Part 2 shortly.

  • Sunday, July 27, 2008

    Updated SQL Server Data Services (SSDS) Test Harness: Northwind REST and SOAP Uploads

    The SSDSNwindEntitiesCS.sln sample project for my “Test-Drive SQL Server Data Services” cover article for the July 2008 issue of Visual Studio Magazine has been updated to SSDS Sprint 3, adds a couple of features, and has a few start-up bugs excised.

    New Features:

    • The program attempts to create an authority if you haven’t added one.
    • A splash screen opens during the initial query for ACE container and entity object because the process is very slow with a moderate number of objects.

    Updates:

    • The new 'application/x-ssds+xml' MIME type replaces ‘application/xml’.
    • The containerUri = response.Headers[HttpResponseHeader.Location]; instruction which now returns null has been replaced with concatenated constants as the containerUri value. This eliminates a problem when creating new containers with REST operations.

    Download: You can download the SSDSNwindEntitiesCS project here (114-KB vs0807rj.zip file at the Visual Studio Magazine site.)

    From the project’s ReadMeSSDS.txt File:

    Note: This project is designed for use with v1 (Sprint #3) of the beta versions. It has been updated for Sprint #3 and uses the new 'application/x-ssds+xml' mime type for REST operations. A number of minor improvements, changes, and bug-fixes have been added.

    This code might require VS 2008 SP1 Beta 1 and will be updated for later SSDS/SP1 versions, if breaking changes occur.

    This project will install in a \SSDSNwindEntitiesCS folder by default.

    TIP: If you have a problem with the default SOAP protocol and have verified your UserName, Password, and AuthorityId, refresh the Service Reference. Alternatively, mark the Use REST check box to use the REST protocol temporarily.

    Instructions:

    1. This project requires the user to have a beta account for SQL Server Data Services (SSDS), which you can obtain by registering at http://www.microsoft.com/sql/dataservices/default.mspx, and an instance of the Northwind sample database attached to SQL Server 2005+ [Express].
    2. It's recommended that you set your userId, AuthorityId, and, optionally, password as the Text value of the three corresponding text boxes.
    3. To create and populate a Northwind container with all sample tables with the SOAP protocol, run the project and click the Create and Load Entities button (see Figure 1.)
    4. To do the same with the REST protocol, mark the Use REST check box (see Figure 2.).
    5. If you want to substitute Guids for alphanumeric Ids, mark the Use Guid for Id check box. SSDS will sort the entities in random (Guid string) order.
    6. If you want to base64Encode and upload the Employees and Categories tables' image fields, mark the base64Binary-Encode images check box.
    7. To create and populate a container for each table, mark the Container per Entity check box.
    8. Clicking Bail Out terminates upload operations.
    9. Clicking Get Orders retrieves (GETs) 83 orders having Brazil as the ShipCountry value.
    10. Clicking Update Orders toggles the presence of a datetime Timestamp property.
    11. Clicking Delete Orders (SOAP only) deletes the Brazilian orders and offers the option to replace them after deletion.
    12. After creating containers, when you close and restart the program a message box opens to let you decide what to do (see Figure 3.)

    Figure 1. It’s not practical to display the SOAP message for adding entities in the text box, so the program lists the property values. You can view SOAP messages by enabling message logging with the WCF Service Configuration Editor.

    Figure 2: When you select the REST wire protocol the entire POST template appears in the text box.

    Figure 3. The text box displays containers and entities (indented) by name in alphabetic Id order. When you reopen the project a message box lets you choose to keep the existing containers intact (Yes), delete and recreate empty containers as required (No), or delete the existing containers (Cancel).

    Performance Data: Uploading tables generates CSV-formatted test data in the ...\bin\Debug folder (see Figure 4). Exiting the program saves the data. Notice that the SOAP protocol executes considerably faster than the REST wire format.

    Figure 4. The auto-generated log file for all entities uploaded by the SOAP and REST protocols with total elapsed time rows added for both protocols over a DSL connection tested at 2,583 bps download, 431 bps upload to Seattle, WA.

    The project has minimal error trapping so you can more easily determine where the problem occurred.

    Stephen Forte’s Impedance Mismatch Post Elicits Responses from Domain-Driven Designers

    The “Stephen Forte Embraces the Impedance Mismatch” topic of my LINQ and Entity Framework Posts for 7/14/2008+ post quotes Steve’s Impedance Mismatch post of June 27, 2008, following the “ADO.NET Framework Vote of No Confidence” ruckus:

    What I am saying (and have been saying for a long time) is that we should accept, no, embrace the impedance mismatch!  While others are saying we should eradicate it, I say embrace it.

    ORM tools should evolve to get closer to the database, not further away.

    His post stated earlier:

    My first problem with ORMs in general is that they force you into a "objects first" box. Design your application and then click a button and magically all the data modeling and data access code will work itself out.

    I concluded: Steve’s dismissal of O/RM tools in general and adoption of a data-first stance in particular makes me wonder why he’s on the Data Programmability Group’s Advisory Council whose other members predominately advocate domain-driven design.

    Updated 7/28/2008: See link to Justin Etheredge’s viewpoint at end of post. Also, see comments by Frans Bouma and Jeremy D. Miller.

    Responses from the NHibernate Mafia

    I was surprised by the lack of uproar about Steve’s controversial data-first doctrine until I read Sam Gentile’s He Couldn't Have Said it Better post of July 26, 2008, which quotes from Ayende Rahien’s Impedance Mismatch and System Evolution post of July 25, 2008:

    Let me start by saying that I absolutely reject this statement:

         [The] database model is going to support far more than your application

    The database model is private to the application, and is never shared with the outside world. If you need to access to my data, here is the service URL, have fun reading from it.

    Ayende also points to Greg Young’s detailed Impedance Mismatch Reframing post of July 24, 2008, which refutes most of Steve’s O/RM contentions. Greg says that “this debate has become quite heated through the community,” but I didn’t see much evidence of a controversy.

    I missed Jeremy D. Miller’s Ward Bell & I talk over the EF Vote of No Confidence Document post of July 22, 2008. (Ward Bell is VP of product management at IdeaBlade. I quoted Ward on EF v1 topics in my “Data Dilemma” Cover Story for Redmond Developer News’ July 15 Issue post.) Jeremy refers to Steve as a “database weenie” and makes this final point about EF in his post:

    ALT.NET gets a rap for bad behavior, but in the wake of the VoNC document, I thought the traditionalists (the TechEd/INETA/Regional Director types) behaved poorly as well.  The kicker for me was Stephen Forte's crack that developers want ORM's because they're too stupid and lazy to learn set-based algebra, then says that he hopes "cooler heads" will prevail later in the exact same post.  Um, rank hypocrisy anyone?

    Jeremy has some faith in the forthcoming EF v2 but says, “it'll be easier to start with NHibernate now and migrate to EF v2 later than it would be to start with EF v1.” If ease is the criteria, I’d say his recommendation only applies to small projects implemented by current NHibernate experts.

    Update 7/28/2008: Justin Etheredge’s The Data Disconnect post of July 27, 2008 suggests a data-centric approach with service-oriented architecture (SOA) when many applications share the same data. In this case, Justin concludes:

    If you are looking at a database as the center of the application, with multiple applications hitting the same database, then an ORM solution would probably look less realistic for you. ORMs biggest advantages come into play when they are generating their own SQL (so as to avoid having to maintain separate stored procs) and when you let the database schema stay relatively simple and have the translation layer massage the data into the exact format you need. These goals can often conflict with the database-centric view of an application, which likes to keep more of this control inside the database.

    Thursday, July 24, 2008

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

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

    Updated 7/23/2008: Additions

    Eric White Asks: Are Developers Using LINQ?

    Erick wants to know:

    1. Do developers at your company understand and use LINQ?
    2. Do you?
    3. Can you see the benefit?

    Leave the answers as a comment to his Are Developers Using LINQ? post of July 24, 2008.

    Added: 7/23/2008

    Pat Helland Returns to the SQL Server Team from Developer Division

    Pat Helland, the champion of autonomous applications, announced his return to the SQL Server Group in his “Transferring to the SQL Team” post of July 23, 2008. He’s back after a hiatus at Amazon.com and a stint with Scott Guthrie and friends at the developer division.

    If you missed Pat’s famous “Autonomous Computing: Fiefdoms and Emissaries” presentation at Tech*Ed 2002, you can peruse the PowerPoints here.

    Pat says:

    Now, it turns out there is a really special opportunity for me to join a team in SQL called SIA (Strategy, Infrastructure, and Architecture).  This spot allows me to work on the business, technology, architecture, infrastructure, and more for one of the industry's leading products.  It also allows me to participate in driving some of the new changes in scalable cloud computing (which is, of course, where I am extremely passionate). [Emphasis added.]

    I think it’s safe to assume that “scalable cloud computing” = SQL Server Data Services (SSDS).

    P.S. You might enjoy reading Pat’s A Weekend at Foo Camp post of July 16, 2008 about his stay at this year’s Foo Camp in Sebastopol, CA.

    Added: 7/23/2008

    Marcelo Lopez Ruiz Warns ADO.NET Data Services Developers About Stack Overflows When Testing Asynchronous Calls

    In his Beware of stack overflows in asynchronous calls post of July 23, 2008, Marcelo discusses stack overflow errors when testing APIs of the ADO.NET Data Services client-side DataServiceContext. Marcello suggests:

    The fix in my case was to schedule the next piece of work to be done rather than executing it immediately in the callback. Whenever you're doing these sorts of things, SynchronizationContext is your friend, which in Silverlight is implemented in DispatcherSynchronizationContext. The Post method allows you to queue up a piece of work (execute asynchronously).

    Added: 7/23/2008

    Damien Guard Offers Full-Featured T4 Template to Generate LINQ to SQL Classes

    Damien’s Experimental LINQ to SQL template post of June 25, 2008 was an encouraging demo of how a T4 template might be used to customize generated LINQ to SQL class code. However, this early version was missing many features required to use the template for production projects.

    His new LINQ to SQL T4 template reloaded post of July 23, 2008 takes the early version to completion with the following features:

    • Runs from the DBML therefore keeping the designer in the loop
    • Generates all the attributes for columns and tables including UpdateCheck, IsDbGenerated, etc.
    • Supports associations including those with a foreign key
    • Generates appropriate attributes and code for both serialization modes

    The current version is C# only.

    Added: 7/23/2008

    Lawrence Jones Shows How the EDM Designer’s Update Model from Database Feature Works

    Lawrence’s three-part series about the EDM Designer’s Update Model from Database operation explains “the reason behind some of [its] oddities” and answers some frequently asked questions about the feature:

    Steve Naughton Starts ASP.NET Dynamic Data FieldTemplate Tutorial

    FieldTemplates are a key feature of ASP.NET Dynamic Data. Following are the links to episodes of Steve’s three-part series about FieldTemplates:

    Stephen A. Bolen Teaches NHibernate with a Series of Screencasts

    Scott Hanselman extols the virtues of Stephen’s Summer of NHibernate Screencast Series in his Learn How to use NHibernate with the Summer of NHibernate Screencast Series post of July 22, 2008. Six episodes were available as of 7/22/2008.

    Scott says:

    I used NHibernate as my Data Layer recently when I got ASP.NET MVC running under .NET 2.0 using NHibernate examples from Davy Brion (who has an NHibernate Category on his blog).

    NHibernate is very flexible, but it's a little overwhelming (for me, at least) to get started. Davy has a good "code-heavy" walkthrough of the concepts. Some NHibernate write-ups assume too much, IMHO.

    Perhaps to combat this, Stephen Bohlen has created the Summer of NHibernate Screencast Series as a learning tool to educate engineers at his company.

    Stephen says:

    "Often, our strategy for bringing people up to speed on [NHibernate] has been to rely on word-of-mouth and osmosis (often via pair-programming) to get the points across, but now we have a planned staffing ramp-up of a magnitude that will likely make that approach unwieldy."

    The screencasts give you deep insight into the complexities of NHibernate and how it differs from LINQ to SQL and the Entity Framework.

    Matt Hinze Delivers a Step-by-Step Tutorial for Checking Out and Testing LINQ to NHibernate

    Matt’s Linq to NHibernate in 10 minutes post of July 22, 2008 provides the steps you need to test the current release of LINQ to NHibernate from SourceForge’s NHContrib project with Jeffrey Palermo’s sample CodeCampServer project.

    Here’s the Tortoise Repository Browser displaying the NHibernate.LINQ source folder:

    Note: You must register for a SourceForge account before checking out projects.

    Daniel Leiszen Addresses LINQ4SP’s Query Evaluation to CAML Queries

    In LINQ4SP Query Evaluation of July 22, 2008, Daniel explains that some LINQ expressions can’t be converted to SharePoint CAML expressions. In this case, the query must be broken into a CAML query that can be executed on the SharePoint server and LINQ expressions executed on the client.

    Daniel Crenna Proposes a Pattern for Layering LINQ to SQL and WCF for Silverlight

    In the first of a multipart series, LINQ + WCF + Silverlight (Part One) of July 21, 2008, Daniel adds two lightweight classes, AdventureWorksRepository and AdventureWorksUnitOfWork, to those generated by the O/R Designer “to create a functional data layer.”

    Gianpaolo Carrera Posts a One-Hour Webcast About SaaS for Enterprise and ISV Architects

    Gianpaolo’s Software + Services for Architects Webcast post of July 21, 2008 provides a link to his one-hour SaaS for Architects Webcast with emphasis on Microsoft’s cloud-based services and includes two of its slides.

    The first slide (Big Pharma topic) applies to enterprises “wanting to optimize [their] IT environment[s] by leveraging a heathy mix between on-premises, SaaS and cloud” operations.

    The second slide targets “an existing ISV (LitwareHR topic) moving from ‘server based infrastructure’ (Win2k8, SQL, AD) to ‘cloud based infrastructure’ (cloud compute, cloud storage, cloud identity [and SSDS].”

    Gianpaolo mentioned that Microsoft currently is installing 10,000 servers per month to their cloud.

    C. C. Chai Finds a Paging Bug in SQL Server Data Services Async Queries

    C.C.’s A bug in paging (SOAP interface)? post of July 21, 2008 in the SQL Server Data Services (SSDS) - Getting Started forum spotted a problem paging asynchronous queries: The first group of results returns 499 instead of 500 entities. The SSDS team was able to duplicate the bug.

    Shawn Wildermuth Uncovers Issues When Hooking ADO.NET Data Services to LINQ to NHibernate

    In an earlier (July 20, 2008) post, Shawn finds Silverlight 2 + NHibernate.LINQ == Sweet. However, his NHibernate.LINQ with ADO.NET Data Services post of July 21, 2008 runs into Astoria’s “ID” bug, which Microsoft says will be fixed in the RTM version. You also must use a generic IList<T> for one:many associated entities.

    Shawn also notes Ayende Rahien’s reservations about “availability and scalability on the operations side, and schema versioning and adaptability on the development side” and cautions prospective users about Astoria’s lack of data security features.

    Scott Hunter Summarizes New ASP.NET Dynamic Data Updates

    Scott’s Many Updates on Dynamic Data post of July 21, 2008 describes updates to:

    Steven Walters ASP.NET MVC Tips Include Data Layer Advice

    Steve’s ASP.NET MVC posts include a series of tips for implementing this new technology. The following tips apply to LINQ to SQL:

    Proposed New FunctionImports Flexibility in Entity Framework v2

    Alex James’ Using Stored Procedures to load structured data post of July 18, 2008 describes plans to:

  • Allow FunctionImports to return unattached/untracked Entities
  • Allow FunctionImports to return ComplexTypes

    in Entity Framework v2. These features would supplement the EntitySet returned by FunctionImports mappings for scenarios where the entity or complex type returned by a stored procedure doesn’t require data tracking and updating.

  • Ballmer Touts Cloud Computing (and SQL Server Data Services) to Financial Analysts

    Steve Ballmer was the ringmaster of Microsoft’s annual Financial Analyst Meeting 2008 (FAM) held today (July 24, 2008) at the Redmond campus.

    Analysts, such as Joe Wilcox were quick to post articles with heads like Ballmer Soars into the Server Cloud to emphasize the chief executive’s use of the word “cloud” three time in his keynote speech:

    Desktop value, mail and collaboration, business intelligence, business applications, the server market despite virtualization is still exploding, enterprise search, the move of enterprises to host their infrastructure in the cloud that we call Microsoft Online, conferencing and IP telephony, management, virtualization software, the database and database application platform. …

    Some people say, will all computing get recentralized in the center, in the Internet cloud, in the data center? People like to talk about thin clients. The world doesn't believe in thin clients. Depending on who you talk to, they'll give you that speech in a different way. I'll say, I don't believe in thin clients, Windows is a great product, it's going to have a great role in the future. …

    The truth is, we get new opportunities. Today when we sell software, say, to an enterprise customer, we hand them a CD, and they go instance it. If we are instead running that server for them, if we're providing operations support, we see the opportunity not only to monetize the IP that would have been in the software license, but also to derive additional margin from the value add of being able to provide service-level agreements, and guarantees, and support. And see our overall sort of pool of opportunity increasing. We're the only player in this market who is building the future based on the present. We're building off of the strong enterprise presence we have, and moving those things to the cloud. … [Emphasis added].

    I’d say the preceding is lip service to cloud computing as a whole.

    Nonetheless, it was good to see SQL Server Data Services (SSDS) receive treatment equal to that of more seasoned products, such as Exchange Online, SharePoint Online and CRM Online, in this slide shown to the analysts and press:

    Saturday, July 19, 2008

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

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

    Updated 7/20/2008 with additions.

    Shawn Wildermuth Adds ADO.NET Data Services Support for LINQ to NHibernate in a Silverlight 2 Example

    Shawn’s Silverlight 2 + NHibernate.LINQ == Sweet post of July 19, 2008 describes an NHibernate.LINQ (LINQ to NHibernate) implementation for ADO.NET Data Services (Astoria) in a live Silverlight 2 sample project. According to Shawn, the new implementation includes:

    • Support for IUpdateable to support full NHibernate CRUD.
    • Support for a new Expand extension method to do eager loading via the LINQ interface.  (The Expand method is similar to Entity Framework's Include method.)
    • Finally, using the Expand extension method, I implemented the IExpandProvider interface to allow for expansions via the REST API.

    Shawn promises:

    In addition, I'll be finishing up my discussion of implementing the IUpdateable interface pretty soon to help those of you adding this support to your projects. I'll also be blogging about how I added the IExpandProvider to help those of you trying to add that to your projects (or even to LINQ to SQL).

    Note: The URLs for NHContrib and NHibernate.LINQ are the same in Shawn’s post. NHibernate.LINQ doesn’t appear for me in the NHibernate Contrib’s Latest File Releases list.

    Added: 7/20/2008

    Emir Treviño Publishes Code Generator for Entity Framework with T4 Templates

    According to Emir, the SFS for Microsoft Visual Studio 2008 CodePlex project released on July 4, 2008 is an add-in to VS 2008 that increases the efficiency of code generation for Entity Framework with the Text Template Transformation Toolkit (T4). The project includes an initial example, ADO.NET Entity Framework to Any Layer, which generates classes for multiple-tier EF projects.

    Emir offers the following posts that describe how to use his SFS add-in:

    The project documentation and posts are also available in Spanish.

    Added: 7/20/2008

    SQL Server Data Services Team: Sprint 3 Scheduled for July 24-25, 2008

    My Sprint 3 for SQL Server Data Services Will Add Several New Features post of July 9, 2008 contained a list of the features expected to be implemented by Spring 3.

    In an email message of July 18, 2008, the SSDS Team set the upgrade window as follows:

    • START: Thursday, July 24, 2008 at 9:00 AM (PST)
    • END: Friday, July 25, 2008 at 9:00 AM (PST)

    The message also was more explicit about lack of SOAP support for blobs:

    “Blob Support via the SOAP interface will be delivered in a later update.”

    Rather than":

    “Blob support via the SOAP interface is coming.”

    From which one might infer that Spring 3 would include SOAP for blobs. Otherwise, the text of the Sprint 3 message is the same as in the preceding post.

    Added: 7/19/2008

    Mike Amundsen Adds a Console Version of His SQL Server Data Services Example Demos

    By a SSDS Console App Demo Posted to Codeplex message of July 17, 2008 in the SQL Server Data Services (SSDS) - Getting Started forum, Mike adds a console app for communicating with SSDS to his original ASP.NET version. Mike says:

    One of the cool features of this demo app is that you can now use Windows batch files (for example) to script interactions with SSDS. I included a simple example with the downloadable ZIP

    Added: 7/19/2008

    David Hayden Casts Vote for ASP.NET Dynamic Data Services Futures, Dynamic Data Runtime and Templates, and Dynamic Data for MVC Preview

    Dave’s ASP.NET Dynamic Data Futures and MVC Sample - Database-Driven Web Applications post of July 18, 2008 includes kudos for the 7/17/2008 Futures release (see “Marcin Dobosz Announces ASP.NET Dynamic Data Futures Update” below) and the Dynamic Data Runtime and Templates, and Dynamic Data for MVC Preview updates of 7/18/2008.

    Dave says:

    ASP.NET Dynamic Data fills a great void for developing forms-over-data web applications. I used it to build a quick intranet application for a client and they couldn't be any happier. …

    The ASP.NET Dynamic Data Runtime and Template Release on 7/18 fixes bugs in primarily the Dynamic Data Wizard. The ASP.NET Dynamic Data for MVC Preview shows off how to incorporate the wonderful scaffolding of Dyamic Data with the ASP.NET MVC Framework.

    All very cool stuff.

    Added: 7/19/2008

    Darrin Maidlow Documents His Struggles with Implementing NHibernate

    Developers new to NHibernate find implementing NHibernate for non-trival projects isn’t a piece of cake, as Darrin demonstrates in his RADE Milestone - Object Relational Mapping with NHibernate post of July 19, 2008. Darrin writes:

    NHibernate was a tough curve for me.  Initially, I started testing code generators.  After spending a significant amount of time reading, testing, and pulling out hair I came to the conclusion that NHibernate code generation is still not there. …

    Finally, get NUnit running.  I had a lot of problems using the built in Microsoft Test projects with NHibernate - so I'll be sticking with NUnit. If you've never done unit testing (you know who you are) do it.  Particularly in this case - its crucial.

    Darrin chose NHibernate over Entity Framework because he belived it supported SQL Server only:

    LINQ with the Entity Framework looks really cool and I've used it for some small research/test projects recently, but with the lack of support for database other than SQL server - it's not an option at this time.

    Apparently, he wasn’t aware of the large number of third-party Entity Data Model-enabled managed data providers for EF: See Recent ADO.NET Entity Framework provider news - Demos and downloads by David Sceppa.

    Added: 7/19/2008

    Soumitra Sengupta Maps SQL Server Data Services Entity Typing Futures

    In his Mike Amundsen is putting out lot of samples in his blog post of July 16, 2008, Soumitra addresses Mike’s concerns that aligning the SSDS API with ADO.NET Data Services (Astoria) complicates SSDS:

    I do not disagree with Mike that one of the core values of SSDS is its simplicity.  It is a tribute to the team that they have been able to keep it simple for developers to approach and use right away.  I appreciate Mike's concern that aligning SSDS with Astoria could make SSDS lot more complicated.  As I said in my response, the alignment does not mean that we are ditching the flex entity model.  Once we release the aligned service, as a developer you will have a choice of staying with the flex entity model or add schemas where it makes sense to add schemas.  We hope to provide this capability at the container level so you can choose to:

    a. Keep all entities as flex entities
    b. Keep all entities as typed entities
    c. Have both typed and untyped entities and type entities with open or flex properties

    The side effect is that the Astoria client library then becomes the default client library for developers to build their applications in Visual Studio.  Still does not solve the problem of client libraries for Java, Ruby and PHP.  I still got those on my plate to address.

    I’ll be interested to see how the team handles untyped, freeform (flex) entities combined with typed entities with a schema.

    Added: 7/19/2008

    LINQ to WMI Updated for .NET 3.5

    Emile Bosch created the original version of LINQ to WMI (Windows Management Instrumentation) in 2005 and Eden Ridgeway updated it to .NET 3.5 in January 2008.

    On July 17, 2008 “nyxtom” (who appears to be Thomas Holloway), ported the project to Linq2WMI on Codeplex. For consistency with other LINQ implementations, I’m rechristening it LINQ to WMI.

    By the way, the originators given name is Emile, not Emily.

    Thanks to Greg Duncan for the heads up on 7/19/2008.

    Added: 7/19/2008

    Tim Mallalieu Delivers a Preview of POCO for Entity Framework v2

    Tim’s Look Mom... no XML post of July 18, 2008 announces the the Entity Framework team “has just wrapped up” its first iteration of v2 and says:

    We are shooting to get another iteration in before PDC and are still working on how we can get early bits out to customers outside of the rhythms of the CTP's and such.

    One of the nifty things in our first iteration, though, was some of the work that we did around POCO. There is a lot more to be done with POCO, we need to still deliver lazy load, value objects and more. With these bits, however, it is possible to write basic POCO code now.

    He then goes on to describe use of the ContextFactory.CreateContext() method to create the Context and a POCO Product class and a Products ObjectQuery. Tim explains:

    The entry point for being able to use this code without artifacts is the ContextFactory. The ContextFactory reflects over the Context type that one wrote by hand. It looks for all properties of type ObjectQuery<T> and then uses these to define an in-memory representation of the models (conceptual, store, mapping) which are then passed to the metadata infrastructure.

    Added: 7/18/2008 1400 PDT

    “Data Dilemma” Cover Story for Redmond Developer News’ July 15 Issue

    My “Data Dilemma” cover story, sub-titled “Mapping a strategy for Microsoft's new data-programming models” for the July 15, 2008 issue of Redmond Developer News covers the ADO.NET data technologies included in Visual Studio 2008’s forthcoming Service Pack 1: ADO.NET Entity Framework, ADO.NET Data Services (formerly codenamed “Astoria”), and ASP.NET Dynamic Data.

    The article includes quotes on these new technologies from:

    • Michael Pizzo, principal architect, SQL Server Data Programmability Group
    • Andrew Brust, chief of new technology at twentysix New York
    • Ward Bell, VP of product management at IdeaBlade Corp.
    • Rockford Lhotka, principal technology evangelist for Magenic Technologies Inc.
    • Chris Kinsman, VP of development at Vertafore, Inc.
    • Elisa Flasko, community program manager, SQL Server Data Programmability Group
    • Troy Magennis, enterprise software architect, Corbis Corp., and curator of the Hooked on LINQ wiki
    • Frans Bouma, LLBLGen Pro lead developer at Solutions Design BV
    • Steve Naughton, developer of Web applications for the UK construction industry

    For more details about the article, see “Data Dilemma” Cover Story for Redmond Developer News’ July 15 Issue of July 16, 2008.

    Tim Mallalieu: Entity Framework v1 Wasn’t Designed to Compete with NHibernate

    NHibernate proponents probably would phrase the statement slightly differently: “Entity Framework isn’t competitive with NHibernate.”

    Tim’s Newsflash: EF V1.0 was not intended to be a NHibernate compete of July 17, 2008 recounts his dinner on July 15, 2008 with Scott Bellware, the author of the ADO.NET Entity Framework Vote of No Confidence manifesto, and Greg Young, both of whom certainly fall into the “NHibernate proponents” category. Tim says:

    Having the EF in the market creates noise for [Scott and his compatriots] because it becomes a technology choice between a Microsoft product that does not yet address this school of software development and open source solutions that do.

    Developers who’ve invested a substantial amount of time into Test-Driven Development (TDD), Domain-Driven (and now Behavior-Driven) Design (DDD and BDD) have the expected paranoia toward a heavily promoted Microsoft contender in the object/relational mapping (O/RM) tool market. At the very least, these folks will need to explain to current and prospective clients why they don’t use EF. At the worst, all-Microsoft shops might insist they use EF.

    Tim promises:

    I shall attempt to make a series of posts leading up to and following the advisory council where I go into a bit of the history and future. This will not yield a decision matrix for a developer but it may be interesting for folks.

    It will be interesting to see how Tim’s history compares with Matt Warren’s earlier The Origin of LINQ to SQL.

    Note: See below re “heavily promoted.”

    Fausto Ibarra Talks Up ADO.NET Entity Framework

    Fausto is the new Director of Product Manager for SQL Server, replacing Francois Ajenstat who’s moved to greener pastures in Microsoft’s green initiatives, according to Q&A: Fausto Ibarra Takes SQL Server Reins by Jeffrey Schwartz.

    Here’s the Q & A on the Entity Framework Front from the July 16, 2008 article in Redmond Developer News:

    Will you be coordinating this with the release of Service Pack 1 of Visual Studio 2008 and the .NET Framework and the Entity Framework?
    We are coordinating them. The Entity Framework will ship with .NET Framework 3.5 SP1 and it will ship roughly at the same time as SQL Server. When we talk about the Entity Framework, we talk about it from the perspective of SQL Server and from the perspective of the .NET Framework and Visual Studio. No matter where developers are coming from, we will talk to them about the Entity Framework and coordinating the messaging of both releases across all our different developer channels, like MSDN. [Emphasis added.]

    Notice that there’s no mention of LINQ to SQL in the article.

    Jürgen Bäurle Develops LINQ to SAP for Theobald Software GMBH

    According to Jürgen’s LINQ to SAP: How to use LINQ to connect to a SAP/R3 system Code Project article of July 17, 2008, LINQ to SAP from Theobald Software GMBH can query SAP Function Modules, Tables, BW (OLAP) Cubes and SAP Queries. Theobald Software’s primary product is ERPConnect.net, a .NET interface to SAP R/3.

    The article also describes LINQ to SAP’s graphical designer for Visual Studio 2008, which adds a LINQ to ERP template and autogenerates classes for SAP objects in a manner that’s vaguely similar to LINQ to SQL.

    Jürgen specializes in .NET/SAP development.

    Denny Boynton Interview at Tech*Ed 2008 IT Pro: Pragmatic Data Architecture

    In this interview video at Tech*Ed 2008 IT Pro by Paul Nielsen posted July 17, 2008, SQL Server architect-evangelist Denny Boynton stresses the importance of the hands-on project data architect, in addition to the more common enterprise data architect.

    From the official description:

    Some shops say architects should be hands off, other expect the data architect to be involved in projects – how do we resolve this issue? And if the data architect is involved in projects, what’s the best he or she can contribute? How do we measure quality of a database project? We believe there are six attributes of a database. This talk will cover these attributes and the practices that best contribute to these qualities.

    Mary Jo Foley Blames Microsoft’s Online Systems Business for Its Missed Earnings Projections

    Mary Jo’s Microsoft’s online plan: Spend, spend, spend column of July 18, 2008 begins:

    If you think Microsoft’s been spending like crazy in the online space, you ain’t seen nothing yet. (And that’s not counting when or if Microsoft’s multi-billion-dollar bid for Yahoo’s search business is ever consummated.)

    Microsoft missed earnings projections when it announced its Q4 FY 2008 numbers on July 17. To some company watchers’ surprise, it wasn’t Windows Vista — which Microsoft claims to have sold 180 million licenses now — that was to blame. Instead, yet again, it was Microsoft’s Online Systems Business (OSB), more than anything else, that dragged down the numbers.

    However, Microsoft officials told Wall Street analysts not to expect Microsoft to change its OSB investing-for-the-longhaul strategy any time soon. Microsoft is planning to step up its online spending around driving usage of Live Search and growing its advertiser base for its adCenter online-ad platform.

    However, OSB includes more than just Live Search and other ad-supported services. It also includes SQL Server Data Services (SSDS), Live Mesh synchronization, and the new Exchange Online, SharePoint Online, Office Communications Online and Office Live Meeting package that rents for $15.00 per month.

    Marcin Dobosz Announces ASP.NET Dynamic Data Futures Update

    His Dynamic Data Futures 7/16 update posted article of July 17, 2008 lists the following as what’s new in this week’s update on CodePlex:

      • Added ImprovedDynamicValidator control that fixes issues with DynamicValidator correctly catching exceptions thrown off a validated data model object. A tag mapping in web.config is used to automatically replace all instance of DynamicValidator with ImprovedDynamicValidator. This validator is also now added to the ForeignKey_Edit template.
      • Added EnumDataTypeAttribute that can be used to mark integral columns as actually representing enumerated CLR types.
      • Modified the Enumeration field template and filter template to take EnumDataTypeAttribute into account.
      • Modified the Enumeration filter template to detect if an enum is in flags mode and display a CheckBoxList instead of a DropDownList.
      • Added validation to the DbImage_Edit template. It now verifies that the provided file is a valid image and also that a file is provided at all if the column is required.
      • Added constraints to routes to illustrate how to block invalid requests.

    Phani Raju and Marcelo Lopez Ruiz Write SetBasedExtensions for Adding Set-Based Methods to Astoria

    Phani and Marcelo’s Set Based Operations in ADO.NET Data Services post of July 17, 2008 includes the complete source code for an extension method to facilitate set-based methods with a dynamic filter predicate. The post also includes a usage example.

    The extension method proves that Phani and Marcelo are LINQ Ninjas.

    dnrTV Offers Danny Simmons’ Introductory ADO.NET Entity Framework Screencast, Part 1

    Dan Simmons on The Entity Framework Part 1 of July 14, 2008 is the first of a two part introduction to the ADO.NET Entity Framework (EF). Here’s his bio:

    Daniel Simmons is dev manager for the Entity Framework and LINQ to SQL team where his mission is to build a team and a product that will fundamentally change the way we build data-centric software. He has been at Microsoft for 10 years working on a variety of products. Before coming to Microsoft he worked as a consultant, founded an ISP and engaged in various other software pursuits.

    I’d like to see parts 3, 4, … cover advanced EF topics.

    Joe Gregorio Publishes Introductory Video on Atom Publishing Protocol on You Tube

    Google’s Joe Gregorio is Google’s “main man” on the Atom Publishing Protocol (AtomPub, APP) that’s one of the wire protocols for ADO.NET Data Services and is schedule for support by SQL Server Data Services.

    This 9-minute video covers the basics of AtomPub’s Create, Retrieve, Update and Delete operations, adding media, and other topics. Surprisingly, the code is readable.

    Wriju Publishes LINQ to SQL Bibliography Update

    From the “How Did I Miss This?” Department

    His LINQ to SQL : Missing Manual are at MSDN post of July 3, 2008 shows that UserEd has been working overtime on LINQ to SQL topics. The post contains 18 links to MSDN library topics about LINQ to SQL; each topic includes a brief description.

    Thanks to Jim Wooley for the heads-up.