280 likes | 371 Views
ASP.NET Dynamic Data. Marc Ziss Z Consulting marc@zconsulting.com. What is it?. Code Name 'Oryx' Web application scaffolding Easy to dynamically display pages based on the data model of the underlying database Easy to edit data for admin apps Helps in prototyping systems quickly
E N D
ASP.NET Dynamic Data Marc Ziss Z Consulting marc@zconsulting.com
What is it? • Code Name 'Oryx' • Web application scaffolding • Easy to dynamically display pages based on the data model of the underlying database • Easy to edit data for admin apps • Helps in prototyping systems quickly • Out of the box simple to use or can be very customized
What does it do ? • Uses LINQ to SQL to build a Data model. • Uses DynamicData Controls to build editable screens. • Builds in Paging, Sorting, Filtering, and Validation automatically. • Dynamic Data fields for rendering individual data types. • Allows a great deal of customization.
What do I need to use it? • ASP.NET 3.5 Extensions CTP (http://www.asp.net/Downloads/3.5-extensions) • Visual Studio 2008
Products that are similar • Subsonic (free) • Django (free but Python) • ASP Runner • Iron Speed Designer
What comes in the box? • ASP.NET 3.5 Extensions CTP has a lot in it • ASP.NET Dynamic Data • ADO.NET Data Services (formerly codename Astoria) • ASP.NET Model View Controller Applications • ASP.NET AJAX • Managing Browser History Using Server Controls • ASP.NET Silverlightcontols • ADO.NET Entity Framework
Built in Dynamic Data Pages • ListTemplate.aspx - Grid to edit inline or call from a link to a detail page. • DetailsTemplate.aspx – Edit one record on a page. • ListDetailsTemplate – Both a grid and an a detail editor (default). • Same Routing engine as MVC.
Dynamic View Controls • DynamicGridView • DynamicDetailsView • DynamicFormView • DynamicListView
Dynamic controls • DynamicField - Automatically knows what mode Dynamic view is in (Edit, Item, Insert) for use with • DynamicGridView • DynamicDetailsView • DynamicControl, DynamicEditControl, and DynamicInsertControl – Dynamic fields to be used with templated view controls • Template columns in a DynamicGridView • DynamicFormView • DynamicListView
Trick out my grid • Customizations as easy as making a new partial class. • Allows unique behavior for a particular table
Formatting by decorating • DisplayFormat - formats for currency, dates, etc… • DisplayColumn – Allows a text column other than the 2nd column in the fk to describe the ID
Validation by decoration • [Range("UnitsInStock",10,50, ErrorMessage="Must be between {1} and {2}")] • [Required("ContactName", ErrorMessage = "Contact name is required.")] • [Regex(“ssn", "[0-9][a-z][0-9]", ErrorMessage = "Needs to be formatted as 'number letter number'")]
Validation by notification • LINQ to SQL classes are generated with hooks for events that are normally not implemented • Lightweight event notification • New feature new to .NET 3.5 called partial methods • Like partial classes, but used to extend methods that may or may not be implemented in class instance (can be seen in Northwind.designer.cs)
Built in Control templates • By default Dynamic Data Fields try to match the rendering of a control with one of the built in Control Templates: • Boolean.ascx • Boolean_Edit.ascx • DateTime.ascx • DateTime_Edit.ascx • Integer_Edit.ascx • Decimal_Edit.ascx • Many More
Replacing Built in Control templates • Simple .ascx files • When code is modified all controls behavior will be affected globally. • Can perform global validation here as well • Example Calendar
Customization by decoration • [RenderHint] enables you to build a custom control that can be explicitly linked to a field. • Simple as validation • Because it is a user control there can be multiple controls that can speak to each other. • Can use Ajax Toolkit to use helpful extenders right out of the box • Customized controls work regardless of which view is beieng used (i.e. DynamicGridView, DynamicListView, etc…)
Look Ma; no PageTemplates!!! • Don’t have to work with a Page Template we can build stand alone pages that use dynamic data • Requires a little more work. • Need to make some manual changes…for now
The ListView Rocks!!! • Newest template based control has dynamic counterpart. • Has the benefits of a GridView, but allows full control of rendering. • Interesting wizards to help setup the template in interesting ways.
Links • David Ebbo: http://blogs.msdn.com/davidebb/archive/2007/12/12/dynamic-data-screencast-is-now-available.aspx • Brad Abrams: http://blogs.msdn.com/brada/archive/2007/12/13/asp-net-3-5-extensions-all-about-dynamic-data.aspx • David Hayden: http://davidhayden.com/blog/dave/ • Scott Guthrie: http://weblogs.asp.net/scottgu/archive/2007/12/14/new-asp-net-dynamic-data-support.aspx