Showing posts with label Persistence Instance. Show all posts
Showing posts with label Persistence Instance. Show all posts

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.

  • Thursday, June 26, 2008

    Ian Cooper Rings in with a Level-Headed Critique of Entity Framework v1

    Ian’s The criticism of the Entity Framework is not just around Domain Driven Design post of June 26, 2008 likens Entity Framework v1 to early versions of Enterprise Java Beans (EJB):

    EJBs were an ambitious attempt to support persistence, transactions, events, [remote procedure calls (RPC)], etc., in a single component. While there was an initial rush to adoption, they quickly proved a millstone around the Java communities neck, because of their complexity. Technologies like Spring and Hibernate emerged as less-complex ways of delivering enterprise class solutions, many of them were later to be incorporated into drastically revised EJB visions.

    The .NET community had a huge amount to gain from this experience. Ports of Hibernate and Spring offered the community the chance to avoid the mistakes of the past. However, seemingly unaware of the lessons of history the EF team embarked on a project to produce a complex framework, of which persistence is just one aspect, reminiscent of the EJB initiative. So the reaction against the EF comes from its failure to learn lessons that another community has struggled with around complexity and ambition.

    So the warnings issued around the EF are trying to prevent .NET developers straying into the same path of pain that their Java brethren experienced with complex non-PI frameworks.

    He concludes with an analysis of why domain-driven design is preferable to data-driven architectures.

    Backstory: Ian Cooper was one of LINQ to SQL early proponents and Entity Framework detractors. Ian wrote the first analysis of the architectural patterns supported by LINQ to SQL in his Being Ignorant with LINQ to SQL post of June 10, 2007 which concluded:

    LINQ to SQL is usable with a TDD/DDD approach to development. Indeed the ability to swap between LINQ to Objects and LINQ to SQL promises to make much more of the code easily testable via unit tests than before.

    His post garnered 122 comments.

    My Ian Cooper Takes on DDD, TDD and PI with LINQ to SQL post of June 11, 2007 is a lengthy review of his analysis and includes a link to Ian’s earlier critique of EF, LINQ to Entities and Occam's Razor.

    My post includes a link to Defining the Direction of LINQ to Entities/EDM post of May 29, 2007, which includes a lengthy comment on my recommendations by ADO.NET Architect Michael Pizzo.

    Note: If you’re working with LINQ to SQL, Ian has written an eight-part tutorial entitled Architecting LINQ to SQL Applications. This, alone, should prove Ian’s not an architectural bigot.

    Update 6/26/2008 1610 PDT: Added “Ian Cooper was one of LINQ to SQL early proponents and Entity Framework detractors” sentence from linking entry for clarification.

    Thursday, June 12, 2008

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

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

    Updated 6/11/2008 and 6/13/2008: See Added and Updated flags below.

    Eugenio Pace Posts a New SQL Server Data Services Sample: A Provider for BlogEngine.NET

    Eugenio’s Another SSDS sample: BlogEngine.NET on SSDS post of June 11, 2008 describes his SQL Server Data Services (SSDS) provider’s source code for the BlogEngine.NET 1.3.1 ASP.NET blog project as follows:

    1. The SSDS based BlogProvider
    2. An SSDS based Membership & Role Providers for the web site
    3. Unit tests for all (with about 93% coverage for the provider)
    4. A simple tool for pre-loading the SSDS container with information that BlogEngine need to start

    He also says “The new SSDS BlogProvider also uses patterns & practices Unity application block to wire up dependencies.”

    It’s related to the SSDS demo in Bill Gates’ Tech*Ed keynote and definitely worth a trial run.

    Added: 6/13/2008

    Phil Haack Promises Future Posts about Integrating Web Forms with MVC

    He says in ASP.NET MVC And Dynamic Data Learn To Play Well Together of June 11, 2008:

    I’ve been working on a post detailing a couple different ways to integrate WebForms and MVC, but life has been really busy for me lately. Hopefully I’ll get that to you soon.

    In the meanwhile, you can probably learn all you need to know by looking at [MvcDynamicData.zip on this Code Gallery page.]

    Added: 6/13/2008

    Jim Wooley Demos LINQ to SQL with Plain Old CLR Objects (POCO) During the Tech*Ed Tweener Weekend

    Jim’s LINQ to SQL support for POCO post of June 11, 2008 describes his Tweener demo as follows:

    I created two separate projects. The first class library project, I created only targeting the 2.0 framework. As a result the project can not use any LINQ specific techniques. This will also allow us to consume the resulting objects in projects that do not have access to the newer framework, or to all of the namespaces. This is particularly important in cases like Silverlight. To call attention to the differences in the projects, I declared the 2.0 project in C# and the LINQ enabled project in VB.

    His post includes a link to download the demo projects.

    He also posted a link to his Tech*Ed Speaker Idol presentation, Screen scraping and creating Word documents with LINQ to XML.

    Added: 6/13/2008

    Julie Lerman Wants a Simpler Implentation of “Eager Deferred Loading” in Entity Framework

    Danny Simmons provided an example of combining the Attach() and Include() methods with the CreateSourceQuery() surrogate for the Load method to return associated child and grandchild records in the ADO.NET Entity Framework and LINQ to Entities (Pre-release) forum’s Re: v2 Wish Lists - Add Yours Here thread.

    Julie says in her Eager Deferred Loading of related entities post of June 11, 2008, that customer.Orders.Attach(customer.Orders.CreateSourceQuery().Include("Order_Details")) is “awfully convoluted,” but it works.

    Added: 6/11/2008

    Rob Conery Does MVC Storefront Part 14 with AJAX Control Toolkit and a Narrative Preview of IQueryable<T> in SubSonic 3.0

    The screencast of Rob’s MVC Storefront Part 14: Ajax With Shawn Burke post of June 10, 2008 introduces ASP.NET AJAX to his MVC project to provide async form posting. Rob mentions that Phil Haack is in the process of AJAX-enabling the ASP.MVC library, so Rob’s code will be obsolete in a few months.

    In SubSonic 3.0: IQueryable Update of the same date, Rob discusses the challenges of writing an expression tree with a visitor to translate LINQ Select queries to his SubSonic intermediate query language, thanks to Matt Warren’s Building an IQueryable Provider: Part II - Where and reusable Expression tree visitor post of July 31, 2007. Everyone working on LINQ-enabled data providers for databases or object/relational management (O/RM) tools is indebted to Matt for his detailed seven-part series.

    Added: 6/11/2008

    Maíra Wenzel Shows You How to Create Your Own Custom Metadata Attributes for ASP.NET Dynamic Data Entity Sets or Properties

    Maíra’s Using custom attributes in Dynamic Data post of June 4, 2008 explains the process for writing and consuming custom metadata attribute classes by inheriting from Attribute and applying the AttributeUsage attribute. Her example changes the ForeColor of a property to a member of the KnownColor enumeration.

    Added: 6/11/2008

    Tech*Ed 2008 Panel Presentation: Occasionally Connected Systems

    The following folks involved in occasionally connected systems (OCS) and ADO.NET Sync Systems:

    • Ginny Caughey - Microsoft MVP, Wasteworks
    • Steve Lasker - Sr. Program Manager, Microsoft SQL Server Compact
    • Rob Tiffany - Microsoft Mobility Architect
    • Rob Relyea - Architect, WPF Team
    • Liam Cavanagh - Sr. Program Manager, Microsoft Sync Framework

    got together at Tech*Ed 2008 Developer to discuss storage, sync, programming model and UI for OCS. One of the new topics the panel discusses is republishing subscriptions for scalability.

    The video is available here in multiple formats: Building Offline Enabled Applications [MP4] [WMV Hi] [WMV Lo]

    Added: 6/11/2008

    Scott Hunter Discusses the ASP.NET Dynamic Data Runtime on .NET Rocks

    .NET Rocks Scott Hunter on Microsoft Dynamic Data (Show #349) post carries this deck:

    Carl and Richard talk with Scott Hunter on Microsoft's Dynamic Data Runtime, which provides scaffolding and dynamic data services to developers.

    ASP.NET Dynamic Data content starts at about 09:00.

    At ~13:30, Scott mentions ADO.NET Data Services (Astoria) and LLBLGen Pro data layer for Dynamic Data and an intention to support NHibernate as a data layer. I don’t see an advantage to the use of Astoria, but support for LLBLGen Pro and NHibernate would be very welcome. You can read more about LLBLGen Pro support in Frans Bouma’s Dynamic Data and 3rd party o/r mappers is a fact post of May 1, 2008.

    Scott Hanselman says the following about Dynamic Data and NHibernate:

    In the future, watch for the possibility of Dynamic Data for POCO (my term, not the teams), Dynamic Data for Silverlight and Dynamic Data for MVC. Now is your opportunity to be heard. I'd like the idea of Dynamic Data for NHibernate myself, so I'm pushing for that. Feel free to engage in the Dynamic Data Forums or post bugs on this release in the issue tracker.

    Scott Hunter confirms at ~47:00 that Dynamic Data for MVC is in the works for the next version.

    Added: 6/10/2008 10:30 AM PDT

    Updated 6/11/2008: Frans Bouma’s Dynamic Data and 3rd Party O/R Mappers Is a Fact post of May 1, 2008 described LLBL Gen Pro’s support for backing Dynamic Data. Frans is in the process of updating his sample provider to .NET 3.5 SP1 Beta.

    Tim Anderson Misses the Point of My “Is the ADO.NET Team Abandoning LINQ to SQL?” Post

    Tim’s Bet on ADO.NET Data Services, not LINQ to SQL post of June 10, 2008 starts:

    So says Roger Jennings in his post Is the ADO.NET team abandoning LINQ to SQL? His main points in favour of ADO.NET Data Services (formerly Astoria):

    • It is the focus of more energetic development
    • It already has richer features
    • It supports multiple database engines, not just SQL Server

    My post mentioned ADO.NET Data Services in passing as a client of Entity Framework (as is ASP.NET Dynamic Data.)

    My point was that Entity Framework was a better bet than LINQ to SQL for a production object/relational mapping (O/RM) data layers because it’s getting the lions share of attention (and development resources) from SQL Server’s Data Programmability Group.

    Update 6/11/2008: In a comment, Tim says he meant Entity Framework, not Astoria, and accidentally interchanged the two in his post. He changed the title and body of his updated post.

    Paul Stovell Releases Bindable LINQ 1.0 Beta 1

    Bindable LINQ is a LINQ to Objects implementation for Windows Presentation Foundation, Silverlight, and Windows Forms that provides data binding with collection change propagation. You can download the beta bits under a BSD license from CodePlex.

    Paul's subsequent Bindable LINQ: Bindable Aggregates of June 10, 2008 provides insight on how Bindable LINQ responds to changes to LINQ aggregate values.

    Note: WPF-oriented developers will appreciate Paul's detailed Article: Inductive UI’s with WPF Navigation Applications post of June 5, 2008, which was inspired by a Microsoft whitepaper, Inductive User Interface Guidelines, published in 2001.

    Dare Obasanjo Takes on Joel Spolsky's Post About Live Mesh and Hailstorm

    Hailstorm was the codename for .NET My Services, a heavily hyped but unsuccessful Web services initiative by Microsoft to make user data hosted on MSN available to the same users at other sites. Joel Spolsky's Architecture astronauts take over post of May 1, 2008 concludes that Live Mesh is Hailstorm reincarnated and doomed to failure because data synchronization "is just not a killer application."

    Dare's Some Thoughts on Joel Spolsky's Live Mesh Rant of June 10, 2008 post points out:

    Hailstorm has actually proven to have been a very visionary and accurate picture of how the world ended up. A lot of the information that used to sit in my desktop in 2001 is now in the cloud. My address book is on Facebook, my photos are on Windows Live Spaces and Flickr, my email is in Hotmail and Yahoo! Mail, while a lot of my documents are now on SkyDrive and Google Docs. Almost all of these services provide XML-based APIs for accessing my data and quite frankly I find it hard to distinguish the ideas behind a unified set of user-centric cloud APIs that was .NET My Services from Google GData.

    He also notes that Mark Lucovsky is a former Microsoft employee who moved to Google. What Dare didn't mention is that Lucovsky was Hailstorm's architect and chief evangelist.

    Frans Bouma Releases LLBLGen Pro v2.6 with Full LINQ Support

    Frans' LLBLGen Pro v2.6 has been released! post of June 9, 2008 begins:

    After almost 11 months of design, development, beta testing and adding final polish, it's here: LLBLGen Pro v2.6! This version, which is a free upgrade for all our v2.x customers, has a couple of major new features, the biggest of course being the full implementation of Linq support in our O/R mapper framework. The work on our Linq provider, which we've dubbed 'Linq to LLBLGen Pro', lasted almost 9 months and was discussed on this blog in a series of articles, which I'll linq to below.

    He goes on to explain his problems with creating LINQ to LLBLGen Pro, lists what's new in v2.6, and adds links to the 15 detailed blog posts that chronicled his LINQ implementation.

    Congrats, Frans!

    Sync Framework Team Announces RC0 of Sync Framework and ADO.NET Sync Services in SQL Server 2008 RC0

    The team’s Announcing Sync Framework v1.0 RC0 and Sync Services for ADO.NET v2.0 RC0 post of June 9, 2008 notes that SQL Server 2008 RC0 includes Sync Framework v 1.0 and Sync Services for ADO.NET 2.0 and provides the following download points for the SQL Server 2008 RC0:

    There's no indication so far of availability of standalone bits that are compatible with SQL Server 2005.

    Update 6/10/2008 3:15 PM PDT: Thanks to Mary Jo Foley for confirming that the Sync Framework will continue to be available as a standalone download.

    Update 6/10/2008 10:30 AM PDT: According to the Data Platform Insider's SQL Server 2008 RC0 Available for Everyone post of June 10, 2008, Bob Muglia announced at Tech*Ed that everyone can download the RC0 and it's What’s New notes from:

  • Download SQL Server 2008 RC0
  • What's new in SQL Server 2008

    The team expects to release a CTP (Community Technology Preview) of the Sync Framework on devices in 2008Q3.

    Liam  Cavanagh Explains Hosted Services Synchronization in Gates's Tech*Ed Keynote

    Liam's Synchronization to Hosted Services and an Explanation of the Bill Gates Keynote post of June 9, 2008 points out that SQL Server Data Services (SSDS) was the central data storage point for synchronization of simulated blog posts between a local SQL Server instance and Windows Mobile devices.

    Mary Jo Foley Wonders Why It's Taken Microsoft So Long to Release Live Mesh

    Mary Jo's Are all (Microsoft and Apple) sync services created equal? post of June 9, 2008 says:

    Apple’s introduction of the successor to .Mac — a k a, MobileMe — raises the question as to what’s taking Microsoft so long to roll out Live Mesh.

    There aren’t a whole lot of details yet available on MobileMe, other than that it will allow cloud-based synchronization of data and devices. (And will make use of Microsoft’s ActiveSync technology, which Apple licensed from Microsoft in order to bring push e-mail to the iPhone, creating its “Exchange for the rest of us.”)

    From initial reports, MobileMe sounds like a combination of a Windows Live (the various Webified versions of the .Mac point products), Live Mesh (the Mobile Me sync service) and SkyDrive (the Mobile Me cloud-based storage). It is slated to be available to customers in July for a (pricey) $99, which includes 20 GB of storage.

    She also reports having a difficult time getting Microsoft executives to explain why Microsoft didn't use the Sync Framework for Live Mesh. She says:

    All I could get out of them was Live Mesh is the P2P, out-of-the-box sync solution and Sync Framework is the customizable, developer-focused sync solution. The only place (so far) where the two meet: FeedSync.

    Very strange.

    Note: Skydrive stores the ~500 images for this blog and has delivered them with no observed outages or performance issues. The only problem I've encountered is a brief interval (an hour or less) when I couldn't upload images; downloading wasn't affected.

    Skain Compares Several Techniques for Bulk Deletions with LINQ to SQL

    Skain's Bulk Deletes in Linq to SQL update to an April 8, 2008 post chronicles his search for a bulk deletion method for LINQ to SQL that doesn't retrieve each object into memory and delete it while executing the DataContext.DeleteAllOnSubmit() method.

    His final DataContext.BulkDelete() extension method provides a better solution, however there are references in the comments to alternative solutions.

    CoÅŸkun Sunali Uses the LinqDataSource as a DataPager Workaround for the ListView Control

    His Using DataPager with Code-Behind Data Source post of June 9, 2008 says:

    Some of you might have already realized that DataPager does its job only if you use a DataSource control. For instance, if you want to set a ListView’s DataSource property in page’s Load event and expect DataPager control to successfully page the ListView control, it means that you will need to spend your hours to find why it does not work.

    CoÅŸkun provides the simple source code for the workaround.

    Strange Exception Generated by Open File Dialog in a Windows Form Backed by the Entity Framework

    Sumeet reports in his Entity framework and OpenFileDialog post of June 8, 2008 that closing, not canceling, an OpenFileDialog in a Windows form of a project using the Entity Framework as a data access layer causes an exception on the next call to the ObjectContext.

    The problem appears to be a change to the Environment.CurrentDirectory property, which must be reset with an Environment.CurrentDirectory = Application.StartupPath instruction.

    John Papa Posts a Linklist to Silverlight 2 Beta 2 Resources

    John's Silverlight 2 Beta 2 Rundown post of June 8, 2008 provides 13 links to early Silverlight 2 Beta 2 Resources, including Shawn Wildermut's Using ADO.NET Data Services in Silverlight 2 Beta 2.

    Mike Tulty applauds John's list in his Silverlight 2 Beta 2 - What's New? post of June 9, 2008.

    DataGrid Breaking Changes and Behavior Differences in Silverlight 2 Beta 2

    The Silverlight SDK Team's DataGrid Control Beta 2 Changes of June 6, 2008 points to the DataGrid Beta 2 Breaking Changes post of the same date, but also includes behavior changes for Autogenerated Columns and Automatic Sizing.

    Note: A substantial amount of Silverlight 2 Beta 2 content is included in these posts because of the new Silverlight Client Library for ADO.NET Data Services.

    Shawn Wildermuth Explains How to Debug ADO.NET Data Services with Fiddler2

    Shawn's Debugging ADO.NET Data Services...with Fiddler2 of June 6, 2008 provides detailed instructions for using Fiddler2 with ADO.NET Data Services, including adding the period after the IP address to make localhost data appear.

    He concludes:

    One caveat, this is the first release of the ADO.NET Data Services' Silverlight Client Library so give it time to improve some of the performance issues.  But like other data access libraries, sometimes small changes can make large improvements in performance.

    Shawn also announced that he's updated the following Silverlight 2 sites and projects to Beta 2:

    Off-Topic: Windows Live Writer Technical Preview for Build 14 Appears Solid

    I've been posting with the Windows Live Writer (WLW) Technical Preview for build 14 since its release on June 2, 2008 and haven't encountered a problem so far.

  •