270 likes | 478 Views
Code Name 'Oryx' Web application scaffolding Easy to dynamically display pages based on the data model of the underlying databaseEasy to edit data for admin appsHelps in prototyping systems quicklyOut of the box simple to use or can be very customized. What is it?. Uses LINQ to SQL to build a D
E N D
1. Marc Ziss
Z Consulting
marc@zconsulting.com ASP.NET Dynamic Data
2. 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 is it?
3. 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 does it do ?
4. Let's do it
5.
ASP.NET 3.5 Extensions CTP
(http://www.asp.net/Downloads/3.5-extensions)
Visual Studio 2008 What do I need to use it?
6. Subsonic (free)
Django (free but Python)
ASP Runner
Iron Speed Designer Products that are similar
7. 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 Silverlight contols
ADO.NET Entity Framework
What comes in the box?
8. 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.
Built in Dynamic Data Pages
9. Let's look @ the templates + Web.config
10. DynamicGridView
DynamicDetailsView
DynamicFormView
DynamicListView
Dynamic View Controls
11. 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
Dynamic controls
12.
Customizations as easy as making a new partial class.
Allows unique behavior for a particular table
Trick out my grid
13.
DisplayFormat - formats for currency, dates, etc…
DisplayColumn – Allows a text column other than the 2nd column in the fk to describe the ID Formatting by decorating
14. Demo using formatting attributes
15. [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 decoration
16. Demo using validation attributes
17. 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) Validation by notification
18. Demo validation using partial method
19. 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 Built in Control templates
20. Simple .ascx files
When code is modified all controls behavior will be affected globally.
Can perform global validation here as well
Example Calendar Replacing Built in Control templates
21. Look @ the templates and modify one
22. [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…) Customization by decoration
23. Make our own custom control (courtesy of David Ebbo)
24. 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 Look Ma; no PageTemplates!!!
25. 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.
The ListView Rocks!!!
26. Roll our own ListView Page
27. 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 Links
28. Q +A