1 / 21

RAD Web Applications with ASP.NET Dynamic Data

RAD Web Applications with ASP.NET Dynamic Data. Ingo Rammer ingo.rammer@thinktecture.com thinktecture. Ingo Rammer und thinktecture. Kleine Beratungsfirma für Softwareentwickler Unterstützung , Coaching und Beratung für Software- Architekten und - Entwickler Architektur- und Code-Reviews

Télécharger la présentation

RAD Web Applications with ASP.NET Dynamic Data

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. RAD Web Applications withASP.NET Dynamic Data Ingo Rammer ingo.rammer@thinktecture.com thinktecture

  2. Ingo Rammer und thinktecture • KleineBeratungsfirmafürSoftwareentwickler • Unterstützung, Coaching und Beratungfür Software-Architekten und -Entwickler • Architektur- und Code-Reviews • Prototypentwicklung und Architekturberatung • Coaching und Mentoring • Anwendungsoptimierung und Troubleshooting • http://www.thinktecture.com • ingo.rammer@thinktecture.com

  3. ASP.NET Dynamic Data • Anpassbare, modell-/klassen-getriebene Technologie zur vollständigen oder teilweise Generierung von Web Frontends • Heute: Linq-to-SQL und Entity Framework • "Scaffolding" • Sehr anpassbar • Aber noch wichtiger • Dynamic Data Controls

  4. Anpassbares Scaffolding • Scaffolding ("Gerüst") – Automatische Erzeugung von Forms • Anpassbares UI („No Limits“ – es ist nur .NET) • Konfigurierbares URL Routing (ähnlich ASP.NET MVC)

  5. Erweiterbarkeit • Erweiterungsmodell für logisches Schema (Entity Framework oder Linq-to-SQL) • Validierung • Business Rules • Sortierung, Filterung, Bearbeiten, Einfügen, Löschen • .NET Framework 3.5 SP1 (+ Hotfix)

  6. Scaffolding - Gerüstbau • "Hello World" für Dynamic Data • Null-Code Datenformulare (aber: anpassbar, wann immer Sie möchten!) • Auskommentieren der folgenden Zeile: • Aktiviert Scaffolding für alle Entities // Global.asax in Application_Start model.RegisterContext (typeof(NorthwindEntities), new ContextConfiguration() { ScaffoldAllTables = true });

  7. Custom Routing Definition • Standardmässig: Routing per Querystring, kann aber geändert werden: • http://server/Customers • http://server/Customers/ALFKI • http://server/Customers/ALFKI/Edit • ... und viele andere Möglichkeiten routes.Add(new DynamicDataRoute("Customers/{CustomerID}") { Model = model, ViewName = "Details", Table = "Customers", Action = "Details" });

  8. Eingeschränktes Scaffolding • Attribute auf Klassen- und Feld-Ebene • Feldebene unterstützt Metadaten-Redirection mit [MetadataType] [ScaffoldTable(true)] [MetadataType(typeof(ProductsMetaData))] public partial class Products { } public class ProductsMetaData { [ScaffoldColumn(true)] public object Name; }

  9. Anpassung der Vorlagen • Templates • Templates für Seiten(„alle Auflistungsseiten“, „alle Detailseiten“) • Templates für Felder („alle Integer-TextBoxen“) • Spezielle/angepasste Seiten • Eine bestimmte ASP.NET Seite für Listen, Details, Bearbeiten or Einfügen • Global oder nur für einzelne Entitäten/Seiten (mit Routing) • Können DynamicField/DynamicControl mit UIHints verwenden

  10. Erstellen einer eigenen Seite • Erstellen Sie einen Ordner unter CustomPages, der genau so heisst wie die Entität und kopieren Sie eine der verfügbaren Template-Seiten • Erstellen des Ordners (Name = TypderEntität) • Kopierendergewünschten ASPX Seite von PageTemplatesnachCustomPages/EntityName • Fertig! (KeineweitereKonfigurationnotwendig)

  11. Beispielseite <asp:DetailsView DataSourceID="DetailsDataSource" AutoGenerateRows="false"> <Fields> <asp:DynamicField DataField="ProductName" /> <asp:DynamicField DataField="QuantityPerUnit" HeaderText ="Quantity" /> <asp:DynamicField DataField="UnitPrice" /> <asp:DynamicField DataField="UnitsInStock" /> <asp:DynamicField DataField="Categories" /> <asp:TemplateField> <HeaderTemplate>Name</HeaderTemplate> <ItemTemplate> Templated: <asp:DynamicControl runat="server" DataField="ProductName" /> </ItemTemplate> </asp:TemplateField> </Fields> <asp:DetailsView>

  12. Anpassen des Modells • [UIHint]: Verwendeneinesbestimmten Controls füreinFeld • [DataType]: speziellerTyp (bzw. ein String als "Name" des Typs), derspätervomFieldTemplateverwendetwerdenkann („EmailAddress“, „Url“) • [Range], [Required]: Validierungen • [DisplayFormat]: SpeziellesAnzeigeformatfüreinFeld • [DisplayField]: Definition derSpalte, die fürFremdschlüsselangezeigtwerdensoll (z.B. das Feld „Name“ fürKunden) • [DisplayName]: AnzeigenamefüreineSpalte • Und mehr: Beliebigeweitereselbstdefinierte Attribute, die Siespäter in einemFieldTemplateprüfenmöchten

  13. Angepasste Felder • Erstellen Sie ein ASCX in /FieldTemplates, abgeleitet von FieldTemplateUserControl und überschreiben Sie die Proprety DataControl • Weitere Möglichkeiten: • Überschreiben von FormatFieldValue, ExtractValues • Verwenden von MetaDataAttribute. TypeOf<T>() um Zugriff auf die Attribute zu erhalten, die im Modell für dieses Feld definiert sind

  14. Einbinden von DD • DynamicData kann auf unabhängigen ASPX Seiten verwendet werden • Sehen wie normale PageTemplates aus • Erstellen Sie DataSource, Parameter, DetailView, GridView und ListView ... und fertig!

  15. Weitergehende Anpassungen • Fast ohne Grenzen. DD passt sehr gut in's allgemeine ASP.NET Modell • Sie kennen bereits: FieldTemplates, PageTemplates • Fehlendes Puzzleteil: Welche Felder werden angezeigt? In welcher Reihenfolge? • IAutoFieldGenerator: Definiert die anzuzeigenden Felder

  16. Zukunft • Preview zum Download verfügbar (ASP.NET Dynamic Data 4.0 Preview 2) • Verschiedene Datenbankzugriffsschichten • ASP.NET Data Services & eigene Datenlayer • Query Blöcke • Filtern der Daten mit LINQ Ausdrücken • Zusätzliche FieldTemplates (Enum, Email, Url)

  17. Your MSDN resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.chMSDN Events: http://www.microsoft.com/switzerland/msdn/de/presentationfinder.mspxMSDN Webcasts: http://www.microsoft.com/switzerland/msdn/de/finder/default.mspx MSDN EventsMSDN Events: http://www.microsoft.com/switzerland/msdn/de/events/default.mspxSave the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin MSDN Flash (our by weekly newsletter)Subscribe: http://www.microsoft.com/switzerland/msdn/de/flash.mspx MSDN Team BlogRSS: http://blogs.msdn.com/swiss_dpe_team/Default.aspx Developer User Groups & CommunitiesMobile Devices: http://www.pocketpc.ch/Microsoft Solutions User Group Switzerland: www.msugs.ch.NET Managed User Group of Switzerland: www.dotmugs.chFoxPro User Group Switzerland: www.fugs.ch

  18. Your TechNet resourcescheck out these websites, blogs & more! PresentationsTechDays: www.techdays.ch TechNet EventsTechNet Events: http://technet.microsoft.com/de-ch/bb291010.aspx Save the date: Tech•Ed 2009 Europe, 9-13 November 2009, Berlin TechNet Flash (our by weekly newsletter)Subscribe: http://technet.microsoft.com/de-ch/bb898852.aspx Schweizer IT Professional und TechNet BlogRSS: http://blogs.technet.com/chitpro-de/ IT Professional User Groups & CommunitiesSwissITPro User Group: www.swissitpro.chNT Anwendergruppe Schweiz: www.nt-ag.chPASS (Professional Association for SQL Server): www.sqlpass.ch

  19. Save the date for tech·days nextyear! 7. – 8. April 2010Congress Center Basel

  20. Premium Sponsoring Partners Classic Sponsoring Partners Media Partner

More Related