<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">Scott Hunter</title><subtitle type="html">ASP.NET and .NET Musings</subtitle><id>http://blogs.msdn.com/scothu/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/scothu/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-06-23T01:07:02Z</updated><entry><title>Data Enhancements in .NET 4 / Visual Studio 2010 Beta 2</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2009/10/20/data-enhancements-in-net-4-visual-studio-2010-beta-2.aspx" /><id>http://blogs.msdn.com/scothu/archive/2009/10/20/data-enhancements-in-net-4-visual-studio-2010-beta-2.aspx</id><published>2009-10-21T06:40:14Z</published><updated>2009-10-21T06:40:14Z</updated><content type="html">&lt;p&gt;On Wednesday we are releasing .NET 4 / Visual Studio 2010 Beta 2 to the public and&amp;#160; it brings many cool enhancements to the ASP.NET data controls and Entity Framework. I’m going to drill into a few features of these data related features and you can read more about all the changes to ASP.NET 4 at: &lt;a title="http://www.asp.net/learn/whitepapers/aspnet40/" href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;http://www.asp.net/learn/whitepapers/aspnet40/&lt;/a&gt;. This contains a very detailed list of all the changes we have made in ASP.NET.&lt;/p&gt;  &lt;p&gt;Here are a couple of my favorite “data” related features:&lt;/p&gt;  &lt;p&gt;1) The Entity Framework now supports the ability to the ability to pluralize entity sets and singularize entities. This means when I refer the table the table will be called “Products” but the actual class that I work on in my application is a “Product”. This feels much more natural then Entity Framework 1 where I would write:&lt;/p&gt;  &lt;p&gt;Products product = new Products();&lt;/p&gt;  &lt;p&gt;while in 4.0 this becomes:&lt;/p&gt;  &lt;p&gt;Product product = new Product();&lt;/p&gt;  &lt;p&gt;which feels more natural and looks better in my code.&lt;/p&gt;  &lt;p&gt;Here is the UI in the Entity Model Wizard for enabling this (note it turned on by default)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_thumb.png" width="244" height="66" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;2) The Entity Framework now supports the ability to include “foreign keys” in the data model. In version 1 of the Entity Framework if I had a Product table that contained a CategoryID which referenced a record in the Category table the generated Entity Framework model would convert the CategoryID into a navigation property which would drill directly in the category table. While this simplified some scenario’s it made web scenarios more difficult. Normally I would represent the this in using a DropDownList control which would contain the primary key and the name of the records from the category table. When saving saving the record I would just want to assign the selected CategoryID from the DropDownList to the Product class. But with navigation properties I would have to revert to some very ugly and non-discoverable code for setting the CategoryID since it not exist. Entity Framework 4 now includes the ability to have foreign key columns added directly to the entity allowing me to either set the foreign key or the navigation property making web scenarios easier to program:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_thumb_1.png" width="124" height="244" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/scothu/WindowsLiveWriter/DataEnhancemen.NET4VisualStudio2010Beta2_14CDC/image_thumb_2.png" width="110" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EF 1.0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EF 4.0&amp;#160; &lt;/p&gt;  &lt;p&gt;3) QueryExtender support is now available for EntityDataSource. In .NET 4 Beta 1 and in the Dynamic Data Preview releases on CodePlex we introduced a very exciting extender control for the LinqDataSource called the QueryExtender. We created this control in response to feedback we received after releasing Dynamic Data 1.0 that our customers wanted an easy way of filtering or searching the data that their data source controls returned aka “How do I implement a search”. This pattern with data source controls can get fairly complicated and we wanted to provide something simple. The QueryExtender allows the following types of searches:&lt;/p&gt;  &lt;p&gt;Search: Searched for a string across any number of columns&lt;/p&gt;  &lt;p&gt;Range: Filters data based on if the value of a column is between a given range&lt;/p&gt;  &lt;p&gt;Property: Filters based on a column matching a value &lt;/p&gt;  &lt;p&gt;Custom: Event is fired in which the developer can customize the LINQ expression.&lt;/p&gt;  &lt;p&gt;Here is an example of using the QueryExtender with the EntityDataSource. It takes the value from TextBox1 and uses compares it to the ProductName field and only returns rows which have the text from TextBox1 in the ProductName field:&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:EntityDataSource ID=&amp;quot;EntityDataSource1&amp;quot; runat=&amp;quot;server&amp;quot;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ConnectionString=&amp;quot;name=NORTHWNDEntities&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DefaultContainerName=&amp;quot;NORTHWNDEntities&amp;quot; EnableDelete=&amp;quot;True&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EnableFlattening=&amp;quot;False&amp;quot; EnableInsert=&amp;quot;True&amp;quot; EnableUpdate=&amp;quot;True&amp;quot;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EntitySetName=&amp;quot;Products&amp;quot;&amp;gt;    &lt;br /&gt;&amp;lt;/asp:EntityDataSource&amp;gt;    &lt;br /&gt;&lt;strong&gt;&amp;lt;asp:QueryExtender ID=&amp;quot;QueryExtender1&amp;quot; runat=&amp;quot;server&amp;quot; TargetControlID=&amp;quot;EntityDataSource1&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:SearchExpression SearchType=&amp;quot;Contains&amp;quot; DataFields=&amp;quot;ProductName&amp;quot;&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;asp:ControlParameter ControlID=&amp;quot;TextBox1&amp;quot; /&amp;gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/asp:SearchExpression&amp;gt;      &lt;br /&gt;&amp;lt;/asp:QueryExtender&amp;gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;4) EnableDynamicData extension method. We introduced Dynamic Data in .NET 3.5 SP1 but it put some serious demands on the developer: Required the developer to be using Linq to SQL or Entity Framework, Required the developer to start a new project to get the Dynamic Data support files, Provided a different programming model. With Beta 2 we have added this new feature which can be enabled on our data controls like this:&lt;/p&gt;  &lt;p&gt;ListView1.EnableDynamicData(typeofProduct))&lt;/p&gt;  &lt;p&gt;This one line of code will automatically bring many of the features that Dynamic Data provides:&lt;/p&gt;  &lt;p&gt;- Automatic validation&lt;/p&gt;  &lt;p&gt;- Support for Data Annotations on objects to control validation and display properties&lt;/p&gt;  &lt;p&gt;- Support for field templates for customizing UI behavior based on data type&lt;/p&gt;  &lt;p&gt;This should allow any developer to utilize the power of Dynamic Data without radically changing their application or requiring Linq to SQL or Entity Framework.&lt;/p&gt;  &lt;p&gt;There are many other changes and updates to our data support and I will try and blog about it over the next few weeks.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910385" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Dynamic Data Preview 4 Released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2009/05/07/dynamic-data-preview-4-released.aspx" /><id>http://blogs.msdn.com/scothu/archive/2009/05/07/dynamic-data-preview-4-released.aspx</id><published>2009-05-07T11:29:39Z</published><updated>2009-05-07T11:29:39Z</updated><content type="html">&lt;p&gt;Today we released the newest preview release of Dynamic Data. You can view the details and download this release from here: &lt;a title="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27026" href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27026"&gt;http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27026&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The preview releases of Dynamic Data contain much of the new feature sets that will be available when we release .NET 4. The cool thing is you can start using a lot of the new features against .NET 3.5 SP1 now using these releases.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When we look back and see how people view Dynamic Data we regret that people immediately think of it as scaffolding of data. This is something that it does do, and I think it does a pretty good job at it. But Dynamic Data is a lot more then that, providing a new templating mechanism called Field Templates which allow the default markup for many of our built in data controls to be more easily customized. These field templates also support validation by default (something our rich data controls did not) which can be customized by adding metadata to data objects.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the past to enable Dynamic Data functionality in a web application the application needed to follow a couple of rules:&lt;/p&gt;  &lt;p&gt;- It had to have a data model such as Entity Framework or Linq to SQL&lt;/p&gt;  &lt;p&gt;- The data model had to be registered at startup in Global.asax&lt;/p&gt;  &lt;p&gt;- The DynamicData directory had to exist in the web application&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;One of the new features this new preview release supports is adding field templates and validation to any ASP.NET web page without having to meet these requirements. It is as simple as:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;GridView1.EnableDynamicData(typeof(Product));&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What does this do for you? Today a control like GridView supports all kinds of high level features such as paging, sorting, viewing, editing but it provides no validation of data at all. So if your database has an integer field the end user would be able to type any data they wanted and when saving the record an ASP.NET yellow screen of death screen would appear (on the development box) saying that the data could not be converted to an integer. By enabling Dynamic Data automatic validation will occur because validation is built into the field templates that would render the column and a nice error message will appear in the page saying “Field XYZ must be an integer”.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To see this in action download the preview release and try out the SimpleDynamicDataSample.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9593141" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author><category term="ASP.NET" scheme="http://blogs.msdn.com/scothu/archive/tags/ASP.NET/default.aspx" /><category term="Dynamic Data" scheme="http://blogs.msdn.com/scothu/archive/tags/Dynamic+Data/default.aspx" /></entry><entry><title>ASP.NET 4.0 and Visual Studio 2010 Development Overview &amp;amp; Dynamic Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2009/03/23/asp-net-4-0-and-visual-studio-2010-development-overview-dynamic-data.aspx" /><id>http://blogs.msdn.com/scothu/archive/2009/03/23/asp-net-4-0-and-visual-studio-2010-development-overview-dynamic-data.aspx</id><published>2009-03-23T18:47:10Z</published><updated>2009-03-23T18:47:10Z</updated><content type="html">&lt;p&gt;Last week at the Mix conference in Las Vegas we released a whitepaper that contain a list of many of the items that we are adding to ASP.NET 4.0 and Visual Studio 2010. The paper provides an overview of what we expect to be in the first beta release (do not ask for timeframes as we do not have a published date yet). You can view the whitepaper here in both HTML and download form: &lt;a title="http://www.asp.net/learn/whitepapers/aspnet40/" href="http://www.asp.net/learn/whitepapers/aspnet40/"&gt;http://www.asp.net/learn/whitepapers/aspnet40/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lasr week we also released a new preview of Dynamic Data. You can download the preview 3 of Dynamic Data from this link: &lt;a title="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24887" href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24887"&gt;http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24887&lt;/a&gt;. This preview really rocks and contains the QueryBlockExtender mentioned in the whitepaper above it also includes a new DomainDataSouce for accessing business layers that are created from the new .NET RIA Services CTP that was also released at Mix. Check it out and I hope to blog on it soon.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Today I will be speaking at DevConnection in Orlando, FL on Data Access and WebForm improvements in 4.0. If you are at the show the two talks are:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2pm: AMS06: ASP.NET 4.0 Data Access Patterns for Success with Web Forms&lt;/p&gt;  &lt;p&gt;3:45: AMS08: ASP.NET Web Forms 4.0&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope to see you there!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9501609" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author><category term="ASP.NET" scheme="http://blogs.msdn.com/scothu/archive/tags/ASP.NET/default.aspx" /><category term="Dynamic Data" scheme="http://blogs.msdn.com/scothu/archive/tags/Dynamic+Data/default.aspx" /></entry><entry><title>Better support for 3rd party controls and Dynamic Data in ASP.NET 4.0 and DevExpress Grid and Dynamic Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2009/03/10/better-support-for-3rd-party-controls-and-dynamic-data-in-asp-net-4-0-and-devexpress-grid-and-dynamic-data.aspx" /><id>http://blogs.msdn.com/scothu/archive/2009/03/10/better-support-for-3rd-party-controls-and-dynamic-data-in-asp-net-4-0-and-devexpress-grid-and-dynamic-data.aspx</id><published>2009-03-10T11:50:20Z</published><updated>2009-03-10T11:50:20Z</updated><content type="html">&lt;p&gt;One of the things that we worked on supporting in Dynamic Data is the ability for third party controls like Grids to be able to host DynamicControls. Basically allowing the developer to use controls that are fancier or have more features then the stock controls in ASP.NET with Dynamic Data.&lt;/p&gt;  &lt;p&gt;For the first version of Dynamic Data we tried we ran into various limitations because it was delivered in a service pack which limited what type of changes we could make in the framework. Basically we were able to add new API’s but had little ability to change existing API’s.&lt;/p&gt;  &lt;p&gt;One of the limitations this placed on controls was that to support Dynamic Data they would need to derive from DataBoundControl because there were no interfaces that controls could implement to indicate that supported basic data binding operations. Some control vendors want to be able to derive their controls from Control to make them as lightweight as possible and to have the best performance.&lt;/p&gt;  &lt;p&gt;To solve this in .NET 4.0 we are adding new interfaces that controls can implement that indicate that they do databinding and also indicate whether the control displays a single item or a list of items. Here is a breakdown of the new interfaces:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;public interface IDataBoundControl &lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Interface for accessing the common properties for data bound controls.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;string DataSourceID { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets the ID of the control from which the data-bound control retrieves its list of data items.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;IDataSource DataSourceObject { get; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets the actual data source control when DataSourceId is set.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;object DataSource { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets the object from which the data-bound control retrieves its list of data items.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;string[] DataKeyNames {get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets an array that contains the names of the primary key fields for the items displayed in a control.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;DataBoundControlMode Mode { get; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets whether the control is in ReadOnly, Edit or Insert mode.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;string DataMember { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets the name of the list of data that the data-bound control binds to, in cases where the data source contains more than one distinct list of data items.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;public interface IDataBoundListControl&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Interface for data bound controls that display multiple rows and can selection.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;DataKeyArray DataKeys { get; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets a collection of DataKey objects that represent the data key value of each row in a GridView control.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;DataKey SelectedDataKey { get; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets the DataKey object that contains the data key value for the selected row in a GridView control.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;int SelectedIndex { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets the index of the selected row in a GridView control.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;string[] RowClientIDSuffix { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;&amp;#160;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;bool EnablePersistedSelection { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets or sets whether the selection is based on index or on data keys.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;IDataBoundItemControl&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Interface for data bound controls that display a single item.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;DataKey DataKey { get; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets a DataKey object that represent the data key value of the row in a control.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;IFieldControl&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Interface for data bound controls that can automatically generate their fields based on data.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="300"&gt;         &lt;p&gt;IAutoFieldGenerator FieldsGenerator { get; set; }&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="384"&gt;         &lt;p&gt;Gets and sets the IAutoFieldGenerator which generates the fields.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;IDataBoundControl is implemented by a control to indicate that it support data binding. This includes datasources, primary keys and the mode the control operates in. IDataBoundListControl indicates a control that displays data in a list and supports selection. IDataBoundItemControl indicates a control that displays a single record at a time. And IFieldControl is for controls like GridView or DetailView that have the ability to autogenerate their columns. These new interfaces are implemented across all the standard data controls in 4.0 including ListView, GridView, DetailsView and FormView. If third party controls support these interfaces they will be usable with Dynamic Data.&lt;/p&gt;  &lt;p&gt;One of the control vendors &lt;a href="http://www.devexpress.com/" target="_blank"&gt;DevExpress&lt;/a&gt; has recently implemented Dynamic Data support without these interfaces in their grid control. Here is a very cool screencast by &lt;a href="http://twitter.com/MehulHarry" target="_blank"&gt;Mehul Harry&lt;/a&gt; that demonstrates their grid and Dynamic Data in action. With these new interfaces they will be able to support their spreadsheet control as well once 4.0 ships. View the screencast here: &lt;a title="http://community.devexpress.com/blogs/aspnet/archive/2009/02/01/asp-net-dynamic-data-and-devexpress-grid.aspx" href="http://community.devexpress.com/blogs/aspnet/archive/2009/02/01/asp-net-dynamic-data-and-devexpress-grid.aspx"&gt;http://community.devexpress.com/blogs/aspnet/archive/2009/02/01/asp-net-dynamic-data-and-devexpress-grid.aspx&lt;/a&gt;. Please check it out and let Mehul know what you think!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9468830" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author><category term="ASP.NET" scheme="http://blogs.msdn.com/scothu/archive/tags/ASP.NET/default.aspx" /><category term="Dynamic Data" scheme="http://blogs.msdn.com/scothu/archive/tags/Dynamic+Data/default.aspx" /></entry><entry><title>Update for .NET 3.5 SP1 Released</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/12/30/update-for-net-3-5-sp1-released.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/12/30/update-for-net-3-5-sp1-released.aspx</id><published>2008-12-30T22:24:08Z</published><updated>2008-12-30T22:24:08Z</updated><content type="html">&lt;p&gt;There was an update to the .NET 3.5 SP1 release a couple of days ago and I have not seen a lot of mention to it so thought I would write a blog post and talk about how this update affects ASP.NET.&lt;/p&gt;  &lt;p&gt;First off you can search for &lt;a href="http://support.microsoft.com/kb/959209"&gt;KB959209&lt;/a&gt; in the Microsoft knowledge base for details on this update. Here is the direct URL to the article: &lt;a title="http://support.microsoft.com/kb/959209" href="http://support.microsoft.com/kb/959209"&gt;http://support.microsoft.com/kb/959209&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This update corrects the following issues that may affect an ASP.NET developer that has .NET 3.5 SP1 installed: &lt;/p&gt;  &lt;p&gt;- Dynamic Data used with Entity Framework generates an error when navigating one to one relationships&lt;/p&gt;  &lt;p&gt;- BrowserCaps generates an error if Front Page Server extensions are installed.&lt;/p&gt;  &lt;p&gt;- Using a derived UpdateProgress control may encounter an exception.&lt;/p&gt;  &lt;p&gt;- An exception is thrown if the website is using WPF to generate images and the site is hosted under IIS.&lt;/p&gt;  &lt;p&gt;There are other issues that are fixed in the framework and CLR that could affect applications so I suggest reading the list of changes in the knowledge base. &lt;/p&gt;  &lt;p&gt;If you are using Dynamic Data and Entity Framework then I highly recommend this update.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9257513" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author><category term="ASP.NET" scheme="http://blogs.msdn.com/scothu/archive/tags/ASP.NET/default.aspx" /><category term="Dynamic Data" scheme="http://blogs.msdn.com/scothu/archive/tags/Dynamic+Data/default.aspx" /></entry><entry><title>Posting from Oredev in Sweden</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/11/21/posting-from-oredev-in-sweden.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/11/21/posting-from-oredev-in-sweden.aspx</id><published>2008-11-21T17:56:38Z</published><updated>2008-11-21T17:56:38Z</updated><content type="html">&lt;p&gt;&lt;a href="http://weblogs.asp.net/leftslipper/default.aspx" target="_blank"&gt;Eilon Lipton&lt;/a&gt; and I have spent the week in Malmo, Sweden at the the &lt;a href="http://www.oredev.org" target="_blank"&gt;Oredev&lt;/a&gt; conference. Here is the schedule of our talks:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;November 19th – &lt;a href="http://www.oredev.org/topmenu/program/tracknet/eilonlipton.4.3efb083311ac562f9fe80009264.html" target="_blank"&gt;Get to Know the ASP.NET MVC Framework&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;November 20th – &lt;a href="http://www.oredev.org/topmenu/program/tracknet/scotthunter.4.3efb083311ac562f9fe800011103.html" target="_blank"&gt;ASP.NET 4.0 Roadmap&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;November 20th – &lt;a href="http://www.oredev.org/topmenu/program/tracknet/scotthunter.4.3efb083311ac562f9fe800011103.html" target="_blank"&gt;Advanced ASP.NET MVC&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;November 21st – &lt;a href="http://www.oredev.org/topmenu/program/tracknet/scotthunter.4.3efb083311ac562f9fe800011103.html" target="_blank"&gt;ASP.NET Dynamic Data&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lostintangent.com/about/" target="_blank"&gt;Jonathan Carter&lt;/a&gt; has posted a great series of blogs posts on Dynamic Data. Check them out here:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lostintangent.com/2008/11/17/dynamic-data-come-for-the-scaffolding-stay-for-everything-else/" target="_blank"&gt;Dynamic Data: Come For The Scaffolding, Stay For Everything Else&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://lostintangent.com/2008/11/19/dynamic-data-kickin-it-old-school/" target="_blank"&gt;Dynamic Data: Kickin’ It Old School&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://lostintangent.com/2008/11/19/dynamic-data-models-metamodels-and-everything-in-between/" target="_blank"&gt;Dynamic Data: Models, MetaModels And Everything In Between&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://lostintangent.com/2008/11/21/dynamic-data-the-little-metamodel-that-could/" target="_blank"&gt;Dynamic Data: The Little MetaModel That Could&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9131909" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Securing Dynamic Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/11/05/securing-dynamic-data.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/11/05/securing-dynamic-data.aspx</id><published>2008-11-06T02:42:54Z</published><updated>2008-11-06T02:42:54Z</updated><content type="html">&lt;p&gt;One of the questions we often get is how do you secure Dynamic Data websites. Michael Miele one of the technical writers that writes the documentation for ASP.NET wrote a great sample that shows how to do this using Form Authentication and Roles that are provided in ASP.NET. We uploaded his sample to the &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14473" target="_blank"&gt;Dynamic Data Samples Site&lt;/a&gt; last night and I thought I would share it out. Click &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14473" target="_blank"&gt;HERE&lt;/a&gt; to go to the sample page and scroll down to the section “Secure Dynamic Data”. Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9045437" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>PDC ASP.NET Content Available Now</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/11/03/pdc-asp-net-content-available-now.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/11/03/pdc-asp-net-content-available-now.aspx</id><published>2008-11-03T21:37:02Z</published><updated>2008-11-03T21:37:02Z</updated><content type="html">&lt;p&gt;Just got back from PDC 2008 last week, we showed all kinds of cool new stuff. Here is a list of links for the videos of all the ASP.NET sessions:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;ASP.NET 4.0 Roadmap - &lt;a title="http://channel9.msdn.com/pdc2008/PC20/" href="http://channel9.msdn.com/pdc2008/PC20/"&gt;http://channel9.msdn.com/pdc2008/PC20/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ASP.NET MVC: A New Framework for Building Web Applications - &lt;a title="http://channel9.msdn.com/pdc2008/PC21/" href="http://channel9.msdn.com/pdc2008/PC21/"&gt;http://channel9.msdn.com/pdc2008/PC21/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Microsoft Visual Studio: Web Development Futures - &lt;a title="http://channel9.msdn.com/pdc2008/TL48/" href="http://channel9.msdn.com/pdc2008/TL48/"&gt;http://channel9.msdn.com/pdc2008/TL48/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Web Application Packaging and Deployment - &lt;a title="http://channel9.msdn.com/pdc2008/ES15/" href="http://channel9.msdn.com/pdc2008/ES15/"&gt;http://channel9.msdn.com/pdc2008/ES15/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ASP.NET Dynamic Data - &lt;a title="http://channel9.msdn.com/pdc2008/PC30/" href="http://channel9.msdn.com/pdc2008/PC30/"&gt;http://channel9.msdn.com/pdc2008/PC30/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;ASP.NET: Cache Extensibility - &lt;a title="http://channel9.msdn.com/pdc2008/PC41/" href="http://channel9.msdn.com/pdc2008/PC41/"&gt;http://channel9.msdn.com/pdc2008/PC41/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We also released new preview bits of Dynamic Data for PDC. You can check out the new bits from here: &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=18803" target="_blank"&gt;Dynamic Data Preview 1&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m also excited that &lt;a href="http://blogs.msdn.com/davidebb" target="_blank"&gt;David Ebbo&lt;/a&gt; has blogged an early version of support for many to many relationships in Entity Framework for Dynamic Data. You can see grab the code and use it with today's Dynamic Data. You can view the post: &lt;a href="http://blogs.msdn.com/davidebb/archive/2008/10/25/a-many-to-many-field-template-for-dynamic-data.aspx" target="_blank"&gt;HERE&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9034380" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Image Generation is released to CodePlex</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/08/21/image-generation-is-released-to-codeplex.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/08/21/image-generation-is-released-to-codeplex.aspx</id><published>2008-08-22T00:32:55Z</published><updated>2008-08-22T00:32:55Z</updated><content type="html">&lt;p&gt;I'm really happy to announce that earlier this week we released a new feature called Image Generation to the &lt;a href="http://www.codeplex.com/aspnet"&gt;ASP.NET CodePlex site&lt;/a&gt;. You can get a link directly to the page supporting this feature by clicking on: &lt;a title="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=WebForms&amp;amp;referringTitle=Home" href="http://www.codeplex.com/aspnet/Wiki/View.aspx?title=WebForms&amp;amp;referringTitle=Home"&gt;http://www.codeplex.com/aspnet/Wiki/View.aspx?title=WebForms&amp;amp;referringTitle=Home&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There was a feature that was in Beta 1 for Visual Studio 2005 (Whitbey) called DynamicImage that provided a control for generating images and an image service for serving them. This feature was sadly cut because some of the other parts of the framework it depended on were cut.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Image Generation is basically work to bring this type of feature back into the framework. Here are some of the highlights of what this new feature does:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;New GeneratedImage ASP.NET control. This control is a derivative of asp:Image control that supports being hooked up to an Image Handler and passing parameters to it. If you put this control on a page and go into design mode it will have chrome attached to it that when clicked will automatically generate an ImageHandler and wire the control to the URL of the ImageHandler. Parameters such as the primary id and timestamp can be databound to the control and will automatically be passed to the handler.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;ImageHandler which is an implementation of IHttpHandler that provides support for many image based things:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Transforms (resizing, watermarks, user defined transforms)&lt;/li&gt;    &lt;li&gt;Client-side caching&lt;/li&gt;    &lt;li&gt;Server side caching&lt;/li&gt;    &lt;li&gt;Access to parameters passed from the GeneratedImage control&lt;/li&gt;    &lt;li&gt;Provide simple mechanics for returning images&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you click to the site there are three samples of how to use GeneratedImage:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Simple Generated Image - this shows how you would create a simple bitmap and return it&lt;/li&gt;    &lt;li&gt;Databased Images - shows how you would use this feature to display images that are stored in a database&lt;/li&gt;    &lt;li&gt;Custom Image Transforms - shows how to write a custom image transform that adds a ASP.NET logo to an image&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We are considering adding this feature in the next version of .NET and would love feedback. Please download and try and it out and let us know what you think!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8886156" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Workaround for Dynamic Data Entity Framework Posted</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/08/16/workaround-for-dynamic-data-entity-framework-posted.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/08/16/workaround-for-dynamic-data-entity-framework-posted.aspx</id><published>2008-08-17T01:49:12Z</published><updated>2008-08-17T01:49:12Z</updated><content type="html">&lt;p&gt;Today we posted a beta update to solve a couple of problems with Dynamic Data and Entity Framework that are in the RTM version of .NET 3.5 SP1. The main issue is a slight mis-match in the names that Dynamic Data looks for in Entity Framework and the names that Entity Framework is actually exposing. When this problem occurs an error that looks like &amp;quot;A property with name 'XX.Id' does not exist in metadata for entity type 'XX.XX.XXXX'&amp;quot;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Luckily we made the data model providers which are classes that look at data model and tell Dynamic Data what the tables, columns, names, etc are a extensible system. This means we can distribute a replacement data model provider that solves the issue I mentioned above. You can download a replacement Entity Framework provider at this link: &lt;a title="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16367" href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16367"&gt;http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=16367&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you are running into this issue please download the fix above and let us know if it solves your issues.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8872692" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Dynamic Data RTM is Released!</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/08/11/dynamic-data-rtm-is-released.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/08/11/dynamic-data-rtm-is-released.aspx</id><published>2008-08-11T19:44:31Z</published><updated>2008-08-11T19:44:31Z</updated><content type="html">&lt;p&gt;Today we shipped .NET 3.5 SP1 which includes Dynamic Data. This means that the Dynamic Data RTM release is now available. Here are the links to download the final versions:&lt;/p&gt; &lt;p&gt;Visual Studio 2008 SP1 (also includes .NET 3.5 SP1): &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=FBEE1648-7106-44A7-9649-6D9F6D58056E&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt; &lt;p&gt;.NET 3.5 SP1 Standalone Installer: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&amp;amp;displaylang=en&lt;/a&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;You can also preview some of the upcoming changes and new features we are working on for Dynamic Data 2.0 and Dynamic Data MVC. You can view these on our page on the Codeplex site. You can view the ASP.NET page on Codeplex here: &lt;a title="http://www.codeplex.com/aspnet" href="http://www.codeplex.com/aspnet"&gt;http://www.codeplex.com/aspnet&lt;/a&gt;. Click the Dynamic Data link to see all of our preview releases.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8848425" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Many Updates on Dynamic Data</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/07/21/many-updates-on-dynamic-data.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/07/21/many-updates-on-dynamic-data.aspx</id><published>2008-07-21T19:26:01Z</published><updated>2008-07-21T19:26:01Z</updated><content type="html">&lt;p&gt;This week at Redmond we have the ASP.NET Insiders up here where we show them a bunch of the new stuff we are working on. I'm happy to announce that we have many new update for Dynamic Data that are available today:&lt;/p&gt;  &lt;p&gt;1) &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14474" target="_blank"&gt;Dynamic Data Runtime and Dynamic Data Wizard&lt;/a&gt; - this has been updated with a much newer version of the Dynamic Data Wizard which have over 30 bug fixes. This is a wizard that provides many options for which tables to show, which modes to show them (read only/read write, etc) and allows multiple tables in the same page. All of the generated code uses features from the new Dynamic Data feature.&lt;/p&gt;  &lt;p&gt;2) &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14475" target="_blank"&gt;Dynamic Data Futures&lt;/a&gt; - this is a sample project that shows off many of the cool directions we are looking at for the next version of Dynamic Data. An example of some of these features are: ADO.NET Data Services (formerly known as Astoria), ObjectDataSource, binding and validation for plain old CLR objects (POCO), metadata for ordering columns,&amp;#160; adding metadata at runtime, support for images, advanced filtering including cascading and much more.&lt;/p&gt;  &lt;p&gt;3) &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=15459" target="_blank"&gt;Dynamic Data for MVC Preview&lt;/a&gt; - we are working to support Dynamic Data on the new ASP.NET MVC framework as well. This is an EARLY release of this support. Compared to the WebForm version this has the current limitations: Only supports Linq to SQL, does not have client side validation and does not have filters on the list pages. Futures releases will address each of these items plus provide much more.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8761936" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>Interview with Craig Shoemaker Posted</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/07/01/interview-with-craig-shoemaker-posted.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/07/01/interview-with-craig-shoemaker-posted.aspx</id><published>2008-07-01T20:30:11Z</published><updated>2008-07-01T20:30:11Z</updated><content type="html">&lt;p&gt;Last week I had a great chat with Craig Shoemaker on Dynamic Data. We talked about using Dynamic Data in existing applications, some about our new &lt;a href="http://www.codeplex.com/aspnet/Release/ProjectReleases.aspx?ReleaseId=14475" target="_blank"&gt;Futures release&lt;/a&gt; and some about upcoming work on having an MVC version of Dynamic Data. You can check out the interview on Pixel8 by clicking here: &lt;a href="http://pixel8.infragistics.com/shows/dyndata.aspx#Episode:9399" target="_blank"&gt;Craig Shoemaker interview&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8677922" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>How to add Dynamic Data to an Existing Web Application</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/06/24/how-to-add-dynamic-data-to-an-existing-web-application.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/06/24/how-to-add-dynamic-data-to-an-existing-web-application.aspx</id><published>2008-06-24T11:18:50Z</published><updated>2008-06-24T11:18:50Z</updated><content type="html">&lt;p&gt;Yesterday I &lt;a href="http://blogs.msdn.com/scothu/archive/2008/06/23/how-to-add-dynamic-data-to-an-existing-web-site.aspx"&gt;posted&lt;/a&gt; about how to add Dynamic Data to an existing website and I got some feedback about how to add Dynamic Data to an existing web application. Web application projects work a little different the website projects, you can check out the differences here: &lt;a title="http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx" href="http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;1) Create a dummy Dynamic Data web application project. Copy the DynamicData directory from it into your existing web application. You should also copy the Site.css and Site.master files. The Default.aspx file is optional, it display a menu of tables in your data model, this file is only needed if you plan on having such a menu in your application. &lt;strong&gt;IMPORTANT: Web application projects have namespaces in their code behind files, you may want to change the namespaces of the copied in files to match the namespace of your existing project.&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2) You can copy the Global.asax file or if you already have such a file you can just add the model registration and url routes as below to the &lt;/p&gt;  &lt;p&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Web.Routing&amp;quot; %&amp;gt;    &lt;br /&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Web.DynamicData&amp;quot; %&amp;gt;&lt;/p&gt;  &lt;p&gt;void Application_Start(object sender, EventArgs e) {&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;MetaModel model = new MetaModel(); &lt;/p&gt;    &lt;p&gt;model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false }); &lt;/p&gt;    &lt;p&gt;routes.Add(new DynamicDataRoute(&amp;quot;{table}/{action}.aspx&amp;quot;) {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Constraints = new RouteValueDictionary(new { action = &amp;quot;List|Details|Edit|Insert&amp;quot; }),       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Model = model       &lt;br /&gt;});&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;3) Right click on the References node in the solution explorer and select &amp;quot;Add Reference&amp;quot;. In the dialog that opens up you need to select System.ComponentModel.DataAnnotations, System.Web.Abstractions, System.Web.DynamicData and System.Web.Routing.&lt;/p&gt;  &lt;p&gt;4) In the &amp;lt;compilation&amp;gt; section in web.config add the following assemblies:&lt;/p&gt;  &lt;p&gt;&amp;lt;add assembly=&amp;quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;     &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;5) In the &amp;lt;pages&amp;gt;/&amp;lt;controls&amp;gt; section add the following new tag prefix:&lt;/p&gt;  &lt;p&gt;&amp;lt;add tagPrefix=&amp;quot;asp&amp;quot; namespace=&amp;quot;System.Web.DynamicData&amp;quot; assembly=&amp;quot;System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;6) Enable the new ASP.NET Routing feature:&lt;/p&gt;  &lt;p&gt;IIS 5/6/Casini&lt;/p&gt;  &lt;p&gt;In the &amp;lt;httpModules&amp;gt; section add the following new module:&lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingModule&amp;quot; type=&amp;quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;IIS 7&lt;/p&gt;  &lt;p&gt;In the &amp;lt;system.webServer&amp;gt;/&amp;lt;modules&amp;gt; section add the following:&lt;/p&gt;  &lt;p&gt;&amp;lt;remove name=&amp;quot;UrlRoutingModule&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingModule&amp;quot; type=&amp;quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;In the &amp;lt;system.webServer&amp;gt;/&amp;lt;handlers&amp;gt; section add the following:&lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingHandler&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; verb=&amp;quot;*&amp;quot; path=&amp;quot;UrlRouting.axd&amp;quot; type=&amp;quot;System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At this point Dynamic Data should be functional. To enable it see the steps at the bottom of &lt;a href="http://blogs.msdn.com/scothu/archive/2008/06/23/how-to-add-dynamic-data-to-an-existing-web-site.aspx"&gt;yesterdays post&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8646287" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry><entry><title>How to add Dynamic Data to an Existing Web Site</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/scothu/archive/2008/06/23/how-to-add-dynamic-data-to-an-existing-web-site.aspx" /><id>http://blogs.msdn.com/scothu/archive/2008/06/23/how-to-add-dynamic-data-to-an-existing-web-site.aspx</id><published>2008-06-23T11:07:02Z</published><updated>2008-06-23T11:07:02Z</updated><content type="html">&lt;p&gt;I've had various people ask me if Dynamic Data can be added to an existing website and I've compiled a list of steps to do this. We hope to add a tooling gesture to Visual Studio in the future to automatically do these steps. Once these steps are complete you can start taking advantage of Dynamic Data functionality in your existing applications.&lt;/p&gt;  &lt;p&gt;1) Create a dummy Dynamic Data Website project. Copy the DynamicData directory from it into your existing website. You should also copy the Site.css and Site.master files. The Default.aspx file is optional, it display a menu of tables in your data model, this file is only needed if you plan on having such a menu in your application.&lt;/p&gt;  &lt;p&gt;2) You can copy the Global.asax file or if you already have such a file you can just add the model registration and url routes as below to the &lt;/p&gt;  &lt;p&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Web.Routing&amp;quot; %&amp;gt;   &lt;br /&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Web.DynamicData&amp;quot; %&amp;gt;&lt;/p&gt;  &lt;p&gt;void Application_Start(object sender, EventArgs e) {&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;MetaModel model = new MetaModel(); &lt;/p&gt;    &lt;p&gt;model.RegisterContext(typeof(YourDataContextType), new ContextConfiguration() { ScaffoldAllTables = false }); &lt;/p&gt;    &lt;p&gt;routes.Add(new DynamicDataRoute(&amp;quot;{table}/{action}.aspx&amp;quot;) {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Constraints = new RouteValueDictionary(new { action = &amp;quot;List|Details|Edit|Insert&amp;quot; }),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Model = model      &lt;br /&gt;});&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;3) In the &amp;lt;compilation&amp;gt; section in web.config add the following assemblies:&lt;/p&gt;  &lt;p&gt;&amp;lt;add assembly=&amp;quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;   &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt;    &lt;br /&gt;&amp;lt;add assembly=&amp;quot;System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;4) In the &amp;lt;pages&amp;gt;/&amp;lt;controls&amp;gt; section add the following new tag prefix:&lt;/p&gt;  &lt;p&gt;&amp;lt;add tagPrefix=&amp;quot;asp&amp;quot; namespace=&amp;quot;System.Web.DynamicData&amp;quot; assembly=&amp;quot;System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;5) Enable the new ASP.NET Routing feature:&lt;/p&gt;  &lt;p&gt;IIS 5/6/Casini&lt;/p&gt;  &lt;p&gt;In the &amp;lt;httpModules&amp;gt; section add the following new module:&lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingModule&amp;quot; type=&amp;quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;IIS 7&lt;/p&gt;  &lt;p&gt;In the &amp;lt;system.webServer&amp;gt;/&amp;lt;modules&amp;gt; section add the following:&lt;/p&gt;  &lt;p&gt;&amp;lt;remove name=&amp;quot;UrlRoutingModule&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingModule&amp;quot; type=&amp;quot;System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;In the &amp;lt;system.webServer&amp;gt;/&amp;lt;handlers&amp;gt; section add the following:&lt;/p&gt;  &lt;p&gt;&amp;lt;add name=&amp;quot;UrlRoutingHandler&amp;quot; preCondition=&amp;quot;integratedMode&amp;quot; verb=&amp;quot;*&amp;quot; path=&amp;quot;UrlRouting.axd&amp;quot; type=&amp;quot;System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;At this point you need to register your Linq to SQL data modelin step #2 and optionally enable scaffolding by setting ScaffoldAllTables := true in the registratoin line. At this point if you copied the Default.aspx from the dummy Dynamic Data application you can execute it to view the scaffold. You can also enable Dynamic Data in existing web pages that use GridView, ListView, FormView and DetailsView by adding a DynamicDataManager to those pages and then registering the data control with the dynamic data manger:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:DynamicDataManager id=&amp;quot;DynamicDataManager1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;asp:GridView id=&amp;quot;GridView1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;/p&gt;  &lt;p&gt;...&lt;/p&gt;  &lt;p&gt;DynamicDataManager1.Register(GridView1);&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Inside of your GridView or DetailsView you can either use AutoGenerateColumns or you can use DynamicField controls in your column collections. If you are using ListView or FormView use DynamicControl to display values for each of your columns.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8641644" width="1" height="1"&gt;</content><author><name>scothu</name><uri>http://blogs.msdn.com/members/scothu.aspx</uri></author></entry></feed>