Showing posts with label POCO. Show all posts
Showing posts with label POCO. Show all posts

Sunday, May 31, 2009

LINQ and Entity Framework Posts for 5/19/2009+

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

Updated 5/30 and 5/31/2009 Shawn Wildermuth (Astoria) and Steve Naughton (DD) posts
Updated 5/28 and 5/29/2009
• Updated 5/26 and 5/27/2009
Unmarked initial entries were added 5/25/2009

Entity Framework and Entity Data Model (EF/EDM)

Ayende Rahien contends in his Why Defer Loading in Entity Framework isn’t going to work post of 5/29/2009:

Basically, the EF is going the same way that NHibernate was in NHibernate 1.0 (circa 2005!).

Julie Lerman describes More Designer Improvements - Deleting Entities from the model and from the store schema and lists links to her previous “What’s New in EF 4” posts in this 5/28/2009 post.

Gil Fink’s Entity SQL User-Defined Functions in Entity Framework 4 continues “the tour about the new features in EF4, the next stop is the new user-defined function capability of Entity SQL.”

Faisal Mohamood covers “a few more aspects related to POCO” in his POCO in the Entity Framework : Part 2 – Complex Types, Deferred Loading and Explicit Loading post of 5/28/2009.

• Bob Beauchemin updates the previous post on the topic (see below) with his L2S and EF parameterization problem will be fixed in .NET 4.0 – completely post of 5/26/2009.

• Jim Wooley’s updated ADO.NET Entity Framework Documentation Samples in VB of 5/26/2009 contains links to more VB and C# samples you can download from the MSDN Code Gallery.

• Danny Simmons delivers descriptions of and links to Some Great EF Resources in this 5/25/2009 post.

• Roger Alsing’s Entity Framework 4 – Managing inverse properties of 5/22/2009 says:

It is perfectly possible to do one directional associations in EF4 and POCO mode.
You simply have to manually remove the “ <NavigationProperty ..” tags from your mapping files.

Awesome work EF4 design team :-)

• Naspinski describes Cloning an Entity in Linq-to-Entities in this 5/20/2009 post:

There are a lot of reason you may want to do something like this, for me, users wanted to be able to make a copy of a huge record so they would then be able to go in and change a few things rather than make a whole new record which was very time consuming. At first, I though of pulling the item, manually copying each property, and inserting... but this is programming, there must be a better way.

Matthieu Mezil’s EF4 POCO: my tests post of 5/25/2009 points to an unit tests project to show how POCO works with EF4 and a “BetaBugs test class in order to illustrate the POCO implementation Beta bugs.”

He also takes exception to EF: SQL queries on the same date:

    • With EF4, it’s possible to execute some SQL queries. (It was possible with EF v1 with EF extensions).
    • I don’t like it. Indeed, it implies to break the EDM abstraction against the DataBase.
    • Moreover, we can do without. In the V1, it was possible, with SSDL Functions, to write the SQL query to execute.

Bob Beauchemin claims L2S and EF parameterization problem fixed in .NET 4.0 – almost in this 5/25/2009 post:

In .NET 4.0/VS2010 Beta 1, L2S handles this, producing a VARCHAR(8000) parameter, as SQL Server's autoparameterization does. Entity Framework produces NVARCHAR(4000), fixing the length problem but still using the a different data type than the table specifies.

In my next installment of my MSDN "Under The Table", I'll be writing about the performance implications of data access method code in detail. I do mention "fixed in the next release" WRT L2S and EF, and hope that it will be resolved before .NET 4.0 ships.

Gil Fink describes Calling Database Functions in LINQ to Entities in Entity Framework 4 in this 5/23/2009 post:

Another new feature in EF4 is the new SqlFunctions class. In this post I’ll explain what is SqlFunctions class and how to use it in LINQ to Entities queries.

And Model First in Entity Framework 4 on the same day. His Pluralize or Singularize Generated Object Names Checkbox in Entity Framework 4 and Complex Type Support in the EDM Designer in Entity Framework 4 appeared on 5/22/2009.

Simon Segal’s Entity Framework, Fluent Interfaces & Domain Specific Languages post of 5/23/2009 starts:

I have been giving some thought lately  to how we might go about writing a small internal DSL for reporting on and or editing data in database. Immediately I thought about how LINQ (a DSL in its own right) might play it’s part in this and since we are talking Data, then the Entity Framework came immediately into consideration. Why should we have a DSL for accessing Data? It’s a commonly held opinion that SQL is a DSL for that very purpose, albeit a very general purpose DSL and LINQ is certainly a DSL. …

Alex James wants you to Learn about EF Pluralization Services courtesy of Dan Rigsby in his post of 5/22/2009, which points to WCF Dan Rigsby’s “fantastic in depth post covering our Pluralization Service features.”

Alex’s Tip 21 – How to use the Single() operator – EF 4.0 only post of 5/20/2009 points out that “One thing we’ve added is support for LINQ’s Single() operator.”

And his Tip 20 – How to deal with Fixed Length Keys deals with this issue:

[W]hen you do an insert, padding happens automatically. So for example if you insert ‘12345’ you get 5 spaces automatically appended, to create a string that is 10 characters long.

Check out Alex’s Tip 19 – How to use Optimistic Concurrency with the Entity Framework of 5/19/2009.

Julie Lerman’s “What’s New in EF 4” series consists of the following posts:

Elisa Flasko’s UPDATED WIKI: Home post of 5/22/2009 provides updates to Entity Framework Toolkits & Extensions.

Jim Wooley’s Entity Framework Samples in Visual Basic of 5/21/2009 provides links to the following VB samples for .NET 3.5 SP1 and VS 2008 SPI1 in the MSDN Code Gallery:

Jaroslaw Kowalski announces Entity Framework samples converted to Visual Basic on 5/21/2009.

Faisal Mohamood’s POCO in the Entity Framework: Part 1 - The Experience of 5/21/2009 goes into the details of POCO support in Entity Framework 4.0.

The Entity Framework User Education Team’s Updated Entity Framework Documentation for Beta1 post of 5/21/2009 provides links to and asks for feedback on the following EF4 (v2) topics:

  • Persistence-Ignorant Objects
  • Deferred Loading of Related Objects
  • Functions in LINQ to Entities Queries
  • Customized Object Layer Code Generation
  • Model-First Support
  • Complex Type Support in the Entity Data Model Designer
  • Naming Service
  • Improved Model Browser Functionality
  • User-Defined Functions (Entity SQL)

Danny Simmons’ EF4 Beta 1 now available! and EF4 beta 1 Forums & Docs posts of 5/20/2009 include links for downloading EF4 (v2), its documention, and forum. He also mentions:

Alex James and I sat down [at Tech*Ed] and recorded a short discussion about POCO and other features coming EF4.  Check it out at: http://www.msteched.com/online/view.aspx?tid=ef76e96c-7471-44a6-aa88-1ada037471ca

and Code Sample from my Applied Entity Framework talk at TechEd 2009 now available.

Carl Perry announces Entity Framework 4.0 Beta 1 bits now available in the VS 2010 and .NET 4 Beta 1 on 5/20/2009.

LINQ to SQL

• Steven van Deursen’s Integrating Enterprise Library Validation Application Block with LINQ to SQL and Entity Framework Part 3: The complexity of custom validators. post of 5/28/2009 says:

This article shows the complexity a developer is facing, implementing a custom validator while using an O/RM tool. While the article uses the Validation Application Block and LINQ to SQL in writing the validation logic, the problems encountered in the article are very general.

Jim Wooley’s LinqDataSource and CUD operations with Inheritance post of 5/28 begins:

When I added the Pingbacks and Trackbacks, I changed the implementation of the Comments to use an inheritance model (TPH) where Comments, Trackbacks, and Pingbacks all inherit from the abstract CommentBase class. To refresh your memory, here's the appropriate part of the DBML designer surface:

Comment inheritance model

While this works fine with minimal changes when viewing data, it can cause problems if you are using the LinqDataSource for editing values.

• Fryan Valdez explains What is LINQ to SQL? An Introduction in this 5/25/2009 post.

• Oleg Sych tackles more T4 templates in his T4 Toolbox: LINQ to SQL schema generator - Oleg Sych of 5/19/2009:

Build 9.5 of T4 Toolbox extends the LINQ to SQL generator introduced in version 9.1 with support for database schema generation. This gives you the ability to generate both application code, such as entity and data context classes, and database code, such as table, primary and foreign key scripts, from a single LINQ to SQL dbml file in your solution. Generated database scripts can be automatically added to a VSTS Database project, which will automatically handle majority of database deployment issues by automatically generating the ALTER scripts. In other words, combined with VSTS Database edition, T4 Toolbox  allows you to use model-driven or model-first approach for ongoing development of LINQ to SQL applications.

• Steven van Deursen’s Integrating Enterprise Library Validation Application Block with LINQ to SQL and Entity Framework Part 2: Using context within custom validators. of 5/21/2009 carries this deck:

This article describes how to write custom validators for the Enterprise Library Validation Application Block, in such a way that it runs within the context of a specific LINQ to SQL DataContext or Entity Framework ObjectContext class, which allows analysis of non-persisted (in-memory) changes in that context.

Part 1 of the series is T4 Toolbox: LINQ to SQL schema generator of 5/19/2009.

See Bob Beauchemin’s L2S and EF parameterization problem fixed in .NET 4.0 – almost of 5/25/2009 in the Entity Framework and Entity Data Model (EF/EDM) section.

LINQ to Objects, LINQ to XML, et al.

Graham Neale’s Stretching Lambda’s Legs: Single Statement String Concatenation of 5/28/2009 carries this intro:

Ok, so I wanted to name the title of this post “Simple One Line String Concatenation with Lambda“, but that didn’t happen when I found a few holes in my approach if you wish to omit your concatenation string from being shown at the end (most cases, like with comma-delimited lists).  So, I have offered a solution for both situations, one quite simple when you just wish to concatenate two or more strings, and one more advanced which leaves off your concatenation at the end.

Alex James asks An enumeration of one? on 5/28/2009 and shows you how to create an enumerable object from a single object.

• Damien McGiven asserts XML Linq requires correct namespace for all XElements in this 5/24/2009 post:

I've been teaching myself ASP.Net MVC during any free time I get at the weekends. I started a simple test project which has developed into the events section on NIMTUG. Yesterday I was looking for a way to easily create search engine sitemaps for the event and sepaker pages and I found Robert Tennyson's post Dynamic sitemaps with ASP.NET MVC which seems very easy indeed. With a couple of changes I had the sitemaps working and so submitted them to google only to be notified a couple of hours later that they had failed with the error "Invalid Namespace".

Fabrice Maruerie announces LINQ em Ação, LINQ in Action in Portuguese on 5/20/2009.

ADO.NET Data Services (Astoria)

Shawn Wildermuth shows you how to solve problems Running ADO.NET Data Services 1.5 CTP1 on Windows 7 in this 5/29/2009 post:

I've been running Windows 7 as my primary machine now for a couple of months (first the Beta and now the RC).  I love the OS but there have been a couple of frameworks that didn't work right. The one that perplexes me the most is ADO.NET Data Services 1.5 CTP1.

Phani Raju’s Set Based Operations in Ado.net Data Services Part II post of 5/26/2009 offers:

As an extension to explained in the last blog post dealing with Set based filter operations in our client library we will introduce support for the specifying method calls in the filter expression.

Chris Robinson’s DataSet and Silverlight post of 5/26/2009 states:

There are no plans to add DataSet into future releases of Silverlight. However we are investigating work to bridge existing DataSet investments to new data technologies. Below are three different approaches that can be used to build data-centric applications in Silverlight now.

ADO.NET Data Services is the primary approach to creating data-centric applications in Silverlight. There is a client api within Silverlight for accessing these RESTful Services. ADO.NET Data Services exposes data through ATOM and JSON which are standard technologies when building rich internet applications. Here is a link to get started on this technology: http://msdn.microsoft.com/en-us/data/bb931106.aspx

Shayne Burgess explains Using ADO.NET Data Services v1.5 CTP1 with Visual Studio 2010 Beta 1 in this detailed, illustrated post of 5/22/2009.

Jim Wooley’s Entity Framework Samples in Visual Basic of 5/21/2009 provides links to the following VB sample for .NET 3.5 SP1 and VS 2008 SPI1 in the MSDN Code Gallery: ADO.NET Data Services IUpdateable implementation for Linq to Sql

Eram Nauchum’s ADO.NET Data Services and Silverlight 2 Application Cross-domain Solution post of 5/11/2009 reports:

Recently I followed up the the Astoria blog team and found that they created a great workaround that comes to give a solution for [the cross-domain communications] issue that holt me these days using these data services because my application is distributed and need to be separated for a client and server. Find it here.

ASP.NET Dynamic Data (DD)

Steve Naughton explains Sorting Filters in Dynamic Data (DD v1.0) in this 5/31/2009 post:

This is just a small sample of how to sort your filters in Dynamic Data using the ColumnOrderAttribute from the Dynamic Data Futures project. I was surprised at how easy it was and that I’d not thought of it before.

Steve Naughton shows you how to Move Command Link Column to End Column – Dynamic Data on 5/29/2009:

Whilst answering this question Move Edit, Details, Delete (col 0) to the Rightmost column of table on the Dynamic Data Forum I found this had been answered before (Move GridView command column or dynamically append columns) and decided to post it to my blog in full for easy access.

Steve Naughton’s Password FieldTemplates for Dynamic Data (UPDATED) of 5/21/2009 makes a few minor changes to his prior post on the topic.

His Remembering Page Index when returning to a List Page of 5/15/2009 is a continuation of his earlier Retaining Pager Size in Dynamic Data GridViewPager.

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

Chris Robinson’s DataSet and Silverlight post of 5/26/2009 states:

There are no plans to add DataSet into future releases of Silverlight. However we are investigating work to bridge existing DataSet investments to new data technologies. Below are three different approaches that can be used to build data-centric applications in Silverlight now.

ADO.NET Data Services is the primary approach to creating data-centric applications in Silverlight. There is a client api within Silverlight for accessing these RESTful Services. ADO.NET Data Services exposes data through ATOM and JSON which are standard technologies when building rich internet applications. Here is a link to get started on this technology: http://msdn.microsoft.com/en-us/data/bb931106.aspx

Repeated from the ADO.NET Data Services (Astoria) section.

Friday, November 21, 2008

Entity Framework Team Abandons Unified N-Tier Architecture for v2

Updated 11/21/2008: See below

Jeff Derstadt, Jaroslaw Kowalski, and Diego Vega posted on 11/19/2008 a lengthy N-Tier Improvements for Entity Framework [v2] article, which proposes the following “goal” for change management in future n-tier implementations:

Entity Framework won’t define its own unique representation for the set of changes represented in an N-Tier application. Instead, it will provide basic building block APIs that will facilitate the use of a wide range of representations.

The decision to abandon a unified n-tier architecture for EF v2 appears to stem from the anticipation that users would expect such a design to offer the programming simplicity of DataSets (represented by Martin Fowler’s Table Module pattern) combined with the versatility and strong decoupling offered by Data Transfer Objects. The availability of ADO.NET Data Services to provide a REST-based tiered service layer probably contributed to the designers’ justification of an n-tier non-goal.

To achieve the proposed non-goal, the team intends to supply helper methods that developers can mix and match for customizing their tiered implementations to accommodate varying domain models, trust boundaries, batch operations, and optimistic concurrency management granularity. Following are the proposed methods, together with the authors’ summary of their purpose:

  • ApplyOriginalValues() applies property values to original state of the entity
  • ChangeObjectState() changes the state of the entity and incident relationships
  • ChangeRelationshipState() changes state (new, modified, or deleted) of a relationship
  • ChangeRelationshipState() (overload) changes state of a relationship represented by a navigation property
  • ChangeRelationshipState<TSource>() changes state of a relationship represented by a lambda expression

The team presents simplified sample code for two scenarios:

  1. General purpose Attach with state resolution delegate in which the client sends a modified entity graph to the mid-tier for processing and persisting.
  2. ChangeOrder Service Operation in which the parent of a dependent entity is changed or added

I’m disappointed by the authors’ compromised approach to n-tier EF implementation, but I’ll reserve judgment until I can test sample code for both simple and very complex, tightly controlled scenarios with POCO entities at least as convoluted as those from AdventureWorks. Hopefully, the sample code will include a complete test suite with mocked data.

It will be interesting to hear the reaction to this approach from the ALT.NET petitioners, AKA the “NHibernate Mafia”, as well as that of the ADO.NET Advisory Council.

Update 11/21/2008: Frans Bouma’s Baby-sitter Framework 2.0: Change tracking in the EF v2, it's still your problem post takes the EF team to task for forcing developers to write their own n-tier change-tracking code. Frans points out that clients or employers should not be required (or requested) to pay for writing data access code. Ayende Rahien agrees with Frans in his Stealing from your client post of the same date. Ayende says “This Is Broken, By Design.” I agree.

Astoundingly, Jeff Derstadt said in a reply to Frans’ comment to the post:

One of our goals was to avoid defining a part[i]cular wire-level format for changes sent from client to another tier.

I’m no longer reserving judgment. This is Nuts! Not only must developers write their own client-side change-tracking code but kludge their own “wire-level format for changes sent from client to another tier.”

Hopefully Matt Warren will revive his mini-connectionless DataContext for LINQ to SQL or Danny Simmons will productize Perseus.

P.S. for Tim Mallalieu: We still haven’t seen the promised minutes of the Advisory Council’s first meeting.

Sunday, September 28, 2008

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

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

• Updated 9/28/2008 3:00 PM PDT adding VS 2008 SP1, jQuery, ASP.NET MVC 
• Updated 9/27/2008 2:00 PM PDT with EF, LINQ to SQL, LINQ to XML, SSDS
•• Updated 9/26/2008 8:00 AM PDT adding EF POCO update, Silverlight RC0, DD
• Updated 9/25/2008 12:00 noon PDT including newly announced PDC 2008 sessions

Entity Framework and Entity Data Model (EF/EDM)

••• Julie Lerman’s No, I do not want Set in the name of my EntitySet post of 9/26/2007 echoes my Forcing Gratuitious Pluralization of EF EntitySet Names Was a Very Bad Decision post of 9/20/2008. Both of us abhor the enforced Set suffix for singularized EntitySets.

Jarek Kowalski released v1.03 of his EF POCO Adapter which focuses on n-tier scenarios and detached entities, according to his EF POCO Adapter updated (v1.03) post of 9/25/2008. Following are Jarek’s descriptions of the changes:

  • Added wrapper for ObjectContext.ApplyPropertyChanges() to IEntitySet<T>
  • Added wrapper for ObjectContext.Detach() to IEntitySet<T>
  • Fixed handling of detached/out-of-scope entities w.r.t lazy loading and attaching to other contexts. Lazy loading outside of scope will do nothing if the context had DeferredLoadingEnabled=false, otherwise will throw.
  • Added partial OnZZZCreated() methods on generated contexts, adapters and proxies to enable integration with 3rd-party extensions
  • Fixed code generation from EDMX.
  • EFPocoContext.EnableLazyLoading has been renamed to EFPocoContext.DeferredLoadingEnabled to better align with Linq to SQL and our plans for EF v2
  • Fixed adapter-POCO synchronization for complex types

You can download the source code from the MSDN Code Gallery’s Persistence Ignorance (POCO) Adapter for Entity Framework section.

Jarek’s previous posts about the EF POCO Adapter:

• Frans Bouma is interviewed by .NET Rocks! podcasters Carl Franklin and Richard Campbell "about his thoughts on the ORM revolution, his products, and the Entity Framework” in show #380. Frans’ interview starts at 14:00.

Frans says Microsoft has “put LINQ to SQL on the back seat,” which corresponds with the points I raised in my Is the ADO.NET Team Abandoning LINQ to SQL? post of May 23, 2008 (updated 5/23/2008). Carl Franklin also brings up Microsoft’s original position was that “Entity Framework is not an O/RM” at about 37:00.

Julie Lerman’s lengthy “Data Access Options in Visual Studio 2008” article for CoDe Magazine became available online on 9/25/2008. It’s a must-read for developers who need to decide on one of the seven .NET 3.5 SP1 data access technologies her article describes.

Note: Non-subscribers can view Page 1 only until two months after publication.

Muhammad Mosa starts a new multi-part Entity Framework tutorial with Inheritance and Associations with Entity Framework Part 1 of 9/24/2008, which (paraphrasing Moses) covers building simple associations between two entities and writing custom code to retrieve other parts of the relation when inheritance is applied.

His detailed, downloadable sample project contains the following, fully illustrated (by screen captures) topics:

  • How to define a model with Table-per-Hierarchy Inheritance
  • Creating Sub Entities
  • Define Mappings
  • Define An Abstract Class

LINQ to SQL

••• Fredrik Kalseth’s DataContext Repository Pattern Example Code post of 9/27/2008 contains a link to download sample code for his Linq to Sql, Programming Against an Interface and the Repository Pattern of 5/5/2008 about which Fredrik says:

The magic that lets us run queries against for example IPage, is in the Cast<T> extension method in System.Linq. By using it, it allows clients to ask the Repository<T> method for IPage, which then through the mapping configured in the static TableMaps dictionary (where at application startup I've added the mapping between IPage and Page) gets translated into a request for the Page table from the context, and then finally cast back to a IQueryable<IPage> before being returned to the caller, ready for querying against.

His earlier, related The Specification Pattern and Encapsulation post of 7/12/2008 links to Nicholas Blumhardt’s Implementing the Specification Pattern via Linq post of 7/6/2008.

Matt Manela publishes a reader’s simpler method for SSCE 3.5 connection sharing in his SQL CE 3.5 with LINQ to SQL Revisited post of 9/26/2008. The original post was SQL CE 3.5 with LINQ to SQL of 9/8/2008. (Repeated in SQL Server Compact 3.5)

Simon Segal supplements the post below with LINQ To SQL - Going POCO and more……! Part 2 of 9/25/2008, which discusses accessor mutators for EntitySet and EntityRef types.

Simon Segal generates a multifile assembly of his LINQ to SQL libraries for his POCO Custom Multifile Assembly and ReSharper post of 9/24/2008. His earlier LINQ To SQL - Going POCO and more…..! post describes his

Generic Repository approach [that] utilises POCO’s along with Specifications and Fetching strategies (an nHibernate concept). …

The idea of the generic repository began as an extension of the ideas expressed by Mike Hadlow in his article here which are derived from Ayende’s work here.

Simon discusses the design of his POCO generic Repository in his lenghty POCO improves inheritance for LINQ to SQL post of 8/26/2008.

• Damien Guard has fixed a few bugs in his Text Template Transformation Toolkit (v.74) on 9/25/2008 and there’s a new, corresponding version of my DamienGuardT4.sln project available from SkyDrive. For more details, see Bidirectional Serialization of LINQ to SQL Object Graphs with Damien Guard’s T4 Template in VS 2008 SP1, which was updated on 9/25/2008 also.

Nick Berardi demonstrates How NOT To Optimize LINQ Statements in his post about LINQ to SQL queries of 9/24/2008. Nick looked at the T-SQL generated by his complex LINQ to SQL query, which included a couple of let statements, and concluded 34 lines with three CASE statements was too many. His optimization reduced the number of lines to 16, but increased the execution time by a factor of 4.6.

Nick says:

The moral of the story is you probably don’t need to optimize your SQL query through LINQ, just keep it simple and optimize your LINQ statement and leave the rest up to the professionals at Microsoft who created the LINQ to SQL expression query generator.

LINQ to Objects, LINQ to XML, et al.

• Charlie Calvert has returned to his LINQ Farm series. LINQ Farm: LINQ to XML and Line Numbers of 9/26/2008 shows how to indicate line numbers in XML Documents with help from an XmlLineNumbers project from XmlLineNumbers.zip in CodeGallery’s LINQ Farm section.

Rinat Abdullin compares the performance of simple LINQ to Objects queries and hard-coded equivalents in his Some performance issues and caveats of LINQ of 9/25/2008.

ADO.NET Data Services (Astoria)

•••• Scott Hanselman offers a demonstration of jQuery 1.2.6 in conjunction with

  • ADO.NET Data Services and it's JavaScript Client Library
  • ASP.NET AJAX
  • ASP.NET AJAX Client Templating (Preview)

in his jQuery to ship with ASP.NET MVC and Visual Studio post of 9/28/2008. For more on Microsoft’s adoption of jQuery in VS 2008, see the Miscellaneous topic.

• Shawn Wildermuth reports about encountering performance problems in his online Silverlight 2 samples in his ADO.NET Data Services Performance Issues post of 9/25/2008.

The problem occurs with an Astoria query that retrieves many:one EntityRefs (Category and Supplier for each Product requested). Part of the problem might be that Shawn included the Category.Picture bitmap field in the query. LINQ to SQL, which is smart enough not to repeat T-SQL requests for objects currently in memory, doesn’t provide updatable Astoria objects out of the box. Entity Framework doesn’t support LINQ to SQL’s DRY (don’t repeat yourself) feature.

Steve Maine will present Microsoft .NET Framework: Developing RESTful Services at PDC 2008:

Learn the latest features in Windows Communication Foundation for building Web 2.0-style services that use URIs, HTTP GET, and other data formats beyond XML. See how these features can be applied to AJAX web sites, "REST" applications, and data feeds.

ASP.NET Dynamic Data (DD)

•• DLPanther announces plans for a series of articles about ASP.NET Dynamic Data in his ASP.NET Dynamic Data, The Next Data Revolution! post of 9/25/2008.

Steve Naughton continues his exploration of new DD techniques with Dynamic Data Custom Pages with Ajax Control Toolkit Tabs of 9/25/2008, which describes the two most successful methods he found for creating a generic page with a DetailsView that shows the parent record and a set of tabs showing all its child records.

Stephen Walther will deliver ASP.NET Futures: WebForms and MVC Advancements at PDC 2008:

Learn about future advances in ASP.NET like WebForms, MVC, AJAX, Dynamic Data, and dynamic languages.

Scott Hunter will present ASP.NET: Dynamic Data 2.0 and Dynamic Data for MVC at PDC 2008:

The next version of ASP.NET MVC contains a new scaffolding feature based on Dynamic Data that provides a rich framework for creating data driven web sites. Learn how to quickly build a Dynamic Data web site using features like model level validation, field and entity templates, and scaffolding.

Mike Taulty reports about experiments with DD in his ASP.NET 3.5 Sp1 Dynamic Data post of 9/24/2008. He was surpised to find that VS 2008 SP1’s DD templates were limited to Dynamic Data Web Site (Entity Data Model data source) and Dynamic Data Entities Web Site (LINQ to SQL data source).

Steve Naughton updated An Advanced FieldTemplate with a GridView/DetailsView Project, the seventh episode of his Dynamic Data and Field Templates series, on 9/23/2008. Paraphrasing the updates:

The FieldTemplate now has ParentDetails and the ChildrenGrid FieldTemplate’s
ParentDetails no longer support Insert but they do support Update as before.

SQL Server Data Services (SSDS)

Kim Cameron and Stuart Kwan will present Claims-Based Identity: A Security Model for Connected Applications at PDC 2008:

Claims-based security is the underpinning of many applications, services, and servers. This model enables security features like: multiple authentication types, stronger authentication on-the-fly, and delegation of user identity between applications. Learn how to use this model in .NET, how it integrates with Active Directory, how it works across platforms, how it works with existing applications, and how we use it at Microsoft.

SSDS v1 will use claims-based security from BizTalk Services.

Lynn Ayres and Tore Sundelin will deliver Connecting Active Directory to Microsoft Cloud Services at PDC 2008:

Learn how to augment your existing IT infrastructure with Microsoft Services. Manage and secure end user access to cloud services using your existing investment in Active Directory. Enable end users to access cloud services through existing Active Directory accounts, the same way they access your intranet-hosted software today. Hear how to enable existing software to use new service capabilities without re-writes, and do it all through the use of open and standard protocols.

Gianpaolo Carrero’s Cloud Services Architecture symposium post of 9/24/2008 describes the Head in the Cloud, Feet on the Ground symposium on PDC 2008’s day four. Gianpaolo says:

We will explore a few examples of cloud-based infrastructure usage as part of an existing application, we will discuss the architectural tradeoffs as well as best practices resulting from that usage. We will also walk through detailed examples of ‘enterprise grade’ hosted application design. And finally we will go through emerging patterns that take into account the physical aspects of a cloud-based application that are often overlooked, such as bandwidth which happens to be not infinite and certainly not free at high scale.

David Robinson announced in his SSDS and SSIS…like peanut butter and jelly post of 9/23/2008 that Matt Masson has posted documentation and downloadable code for SQL Server Data Services Connectors for Integration Services on CodePlex. Here are the download links:

The Source and Destination adapters simplify downloading and uploading SSDS data by taking advantage of SQL Server Integration Services.

Roger Jennings explores two relational databases in the cloud in his SSDS’s Competitors: Oracle 11g and Sun MySQL on Amazon EC2 of 9/23/2008. Oracle 11g for the Cloud was announced by Amazon Web Services on 9/22/2008; cloud-based MySQL was announced (originally) on 5/8/2008 and didn’t appear to garner much interest.

The unadvertised special is a a shared AMI for Oracle Express 10g with Oracle Enterprise Linux available from Amazon.

More from ZDNet about the cloud in Sam Diaz’s Intel at Oracle OpenWorld: It’s about time - and the cloud post of 9/24/2008 from Oracle OpenWorld.

Ayende Rahien’s Amazon EC2 now offers RDBMS post of 9/23/2008 gives his take on the difference between Oracle and MySQL in the cloud. Ayende concludes “I found this to be extremely interesting.”

Andrew Whitten says the following about his 9/21/2008 post about the Pictures in the Cloud - SSDS demo app, available from CodePlex:

I’ve been having a bit of hack around to show how pictures can be stored by this kind of service. There isn’t any reason to use this over the other online photo sharing sites, but it demonstrates how to use the API.

SQL Server Compact (SSCE) 3.5 and Sync Services

Matt Manela publishes a reader’s simpler method for SSCE 3.5 connection sharing in his SQL CE 3.5 with LINQ to SQL Revisited post of 9/26/2008. The original post was SQL CE 3.5 with LINQ to SQL of 9/8/2008. (Repeated in LINQ to SQL)

Visual Studio 2008 Service Pack 1 (General)

•••• MSDN Events Summer 2008 Resources offers the following downloads for Session 3 | Developing Applications with Visual Studio 2008 and .NET Framework 3.5 Service Pack 1:

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

•••• Scott Guthrie announces support for the jQuery JavaScript library in the ASP.NET MVC preview and future versions of VS 2008 in his jQuery and Microsoft post of 9/28/2008. Scott says:

We will distribute the jQuery JavaScript library as-is, and will not be forking or changing the source from the main jQuery branch.  The files will continue to use and ship under the existing jQuery MIT license.

We will also distribute intellisense-annotated versions that provide great Visual Studio intellisense and help-integration at design-time. …

The jQuery intellisense annotation support will be available as a free web-download in a few weeks (and will work great with VS 2008 SP1 and the free Visual Web Developer 2008 Express SP1).  The new ASP.NET MVC download will also distribute it, and add the jQuery library by default to all new projects.

We will also extend Microsoft product support to jQuery beginning later this year, which will enable developers and enterprises to call and open jQuery support cases 24x7 with Microsoft PSS.

jQuery’s John Resig has more to say about Visual Studio’s adoption of jQuery in his jQuery, Microsoft, and Nokia post of the same date.

As Ayende Rahien points out in his On jQuery & Microsoft post of 9/28/2008: “[S]omething else that I didn't see other people pointing out":

This is the first time in a long time that I have seen Microsoft incorporating an Open Source project into their product line.

I am both thrilled and shocked.

Justin Etheredge’s $("Microsoft").append("excitement"); post of 9/28/2008 goes into much more detail about the impact of inclusion of third-party, open-source jQuery in VS 2008.

Rick Strahl announces the first of a two-part series of jQuery articles in his Introduction to jQuery Article posted post of 9/28/2008. Rick says the in the latter post:

Part 1 of the article is mostly a pure jQuery introduction and doesn’t talk about jQuery’s Ajax features or direct interaction with the server side and ASP.NET. Rather it focuses purely on many of the extremely useful client side features as well as the basic concepts of extending jQuery with plugins.

Part 2 then will talk about the server side integration with ASP.NET using various mechanisms to call ASP.NET content from raw page Ajax calls, to JSON Service callbacks, to using templating and even partial rendering against server side ASP.NET application. I’ll also talk about building ASP.NET components that integrate with jQuery. This article is based on my jQuery session that I’ve been giving at various conferences and user groups.

•••• Justin Etheredge provides a flow diagram for MVC requests in his ASP.NET MVC Request Flow post of 9/27/2008. Justin says he was unable to find a similar diagram on the web.

Scott Guthrie announced the release of Silverlight 2 RC0 for developers in his Silverlight 2 Release Candidate Now Available post of 9/25/2008. Scott says:

You can download today's Silverlight Release Candidate and accompanying VS and Blend support for it here.  Note that Expression Blend support for Silverlight 2 is now provided using Blend 2.0 SP1.  You will need to install Blend 2.0 before applying the SP1 service pack that adds Silverlight 2 support.  If you don't already have Blend 2.0 installed you can download a free trial of it here. …

Over the next few months we will be releasing a lot of new Silverlight 2 controls (more details on these soon). Today's release candidate includes three new core controls - ComboBox, ProgressBar, and PasswordBox - that we are adding directly to the core Silverlight runtime download (which is still only 4.6MB in size, and only takes a few seconds to install):

He also says the final release will be “shipped … soon.” Get more details on the release from:

Beth Massi offers a link to the source code and slides for her Data Sources and Data Binding in WPF Talk in Redmond on 9/22/2008. Beth says:

I started the talk with basics of data binding to a variety of data sources and then we moved to more to data access discussions and n-tier architecture issues. It was similar to the talk I did at Bay.NET in SF last month but I focused this time completely on WPF and didn't show any Winforms at all. This allowed us to have more time for architecture discussions and I think it worked out well.

Ayende Rahien is in the process of learning Erlang, the open-source programming language behind Amazon SimpleDB and open-source CouchDB, a document-oriented database that’s an Apache Incubator project.

Here are his posts by topic as of 10/24/2008 11:00 AM PDT (in chronological order):

All in all, an amazing tour de force of analyzing complex source code in a language that’s new to him.

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.

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.

  •