|
|
|||
|
||||
OverviewUsing Dynamic Data, ASP.NET developers can create powerful, datadriven sites with amazing speed and efficiency, eliminating massive amounts of manual coding. ASP.NET Dynamic Data Unleashed is the first complete, practical guide to Dynamic Data for every experienced ASP.NET developer. The author thoroughly demystifies Dynamic Data, helping developers understand exactly what they can do with the framework and make it more accessible than ever before. He provides tested code to solve a wide variety of problems, explains how and why that code works, and identifies key tradeoffs and alternatives. Packed with breakthrough techniques for improving developer productivity, this book combines a hands-on tutorial, “drill-down” explanations of advanced techniques, and real-world development scenarios. Detailed information on how to… Use Dynamic Data components to overcome common real-world user interface development challenges Understand how ASP.NET Dynamic Data builds on strengths of WebForms, Entity Framework, and LINQ Develop simple custom templates to dramatically reduce code duplication Generalize templates to leverage metadata and generate user interfaces dynamically Create web pages for data entry, data filtering, and diverse views of data Use Data Annotations to implement powerful validation logic Write simple, yet effective automated tests to systematically verify the business logic Create complex interaction rules that aren’t limited by single entity objects or types Optimize I/O-bound business logic by implementing it with T-SQL constraints, stored procedures, and triggers Implement role-based security with dynamic UI trimming Generate entire data-driven web applications, complete with CRUD pages, complex business rules, integrated navigation, and security Extend Dynamic Data to support advanced scenarios Decide when Dynamic Data should be used instead of or together with ASP.NET MVC Full Product DetailsAuthor: Oleg Sych , Randy PattersonPublisher: Pearson Education (US) Imprint: Sams Publishing Dimensions: Width: 18.00cm , Height: 3.00cm , Length: 23.00cm Weight: 0.850kg ISBN: 9780672335655ISBN 10: 0672335654 Pages: 544 Publication Date: 31 May 2012 Audience: Professional and scholarly , Professional & Vocational Format: Paperback Publisher's Status: Out of Print Availability: Awaiting stock Table of ContentsPreface xv PART I Dynamic Data Fundamentals 1 Getting Started 3 Creating a New Dynamic Data Application 4 Creating a Data Model 6 Metadata in Entity Framework and Dynamic Data 12 Field Templates and Dynamic Controls 13 Data Annotations 17 Entity Templates 18 Grid Columns and Dynamic Fields 22 Filter Templates 25 Page Templates and URL Routing 29 Summary 35 2 Entity Framework 37 Understanding Entity Model 38 Creating Entity Model 38 ObjectContext and Simple Queries 43 Associations 43 Querying Across Associations 46 Modifying and Saving Entities 46 LINQ to Entities 47 Query Execution 47 Object Identity 48 Lazy and Eager Loading 49 Projections 49 Sorting 50 Grouping 51 Joins 51 Composing Queries 52 SQL Translation 53 Compiled Queries 55 Extension Methods 57 Entity Lifecycle 60 Tracking Changes 60 Optimistic Concurrency Control 61 Transactions 64 Read-Only ObjectContext 65 Entity Model in Depth 66 Mapping Entity Type to Multiple Tables 71 Entity Type Inheritance 72 Inheritance Mapping 73 Stored Procedures 74 Insert, Update, and Delete Stored Procedures 78 Summary 82 3 Field Templates 85 Read-Only Templates 86 Field Value Display Format 87 Edit and Insert Mode Templates 89 Field Value Edit Format 93 Changing Existing Field Template 93 Data Binding 96 Creating a New Field Template 99 Field Template Lookup Rules 104 Data Annotations 104 Type Names 104 Type Aliases 105 Type Fallback 105 Control Mode 106 Mode Fallback 106 Navigation Columns 107 Field Template Lookup Algorithm 108 Built-in Field Templates 111 Boolean 111 Boolean_Edit 111 Children 111 Children_Insert 111 DateTime 112 DateTime_Edit 112 Decimal_Edit 112 EmailAddress 112 Enumeration 112 Enumeration Edit 113 ForeignKey 114 ForeignKey_Edit 114 Integer_Edit 114 ManyToMany 114 ManyToMany_Edit 115 MultilineText_Edit 115 Text 115 Text_Edit 116 Url 116 Summary 116 4 Entity Templates 117 Creating an Entity Template 120 Composite Entity Templates 122 Generic Entity Templates 123 Dynamic Entity Templates 124 Edit and Insert Entity Templates 129 Entity Template Lookup Rules 131 Template Name 131 Template Mode 132 Entity Template Lookup Algorithm 133 Built-in Entity Templates 134 Summary 135 5 Filter Templates 137 Filtering with LINQ 138 Creating a Filter Template 140 GetQueryable Method 143 OnFilterChanged Method 143 DefaultValue Property 143 Dynamic LINQ Queries 143 Building Search Pages with Filter Templates 145 QueryableFilterRepeater Control 148 Filter Template Lookup Rules 150 Built-in Filter Templates 151 Boolean 151 Enumeration 151 ForeignKey 151 Summary 151 6 Page Templates 153 Built-in Page Templates 154 Details Page Template 155 Edit Page Template 159 List Page Template 163 Insert Page Template 169 Creating a New Page Template 172 Custom Page Templates 174 URL Routing 180 Action Route Parameter 180 Table Route Parameter 180 URL Parameters Versus Query Parameters 181 Dynamic Hyperlinks 182 Route Evaluation and Constraints 183 ViewName Route Parameter 185 Page Template Lookup Rules 185 Summary 186 7 Metadata API 189 Metadata Classes at a Glance 189 Metadata Explorer 191 The MetaModel Class 192 Data Model Registration 192 Accessing MetaTable Objects 193 Global Model Registration 195 Scaffolding Support 196 The MetaTable Class 196 Entity Definition 196 Data Annotations 198 Data Access Support 201 Presentation Logic Support 202 Security Support 203 The MetaColumn Class 203 Property Definition 204 Property Kind 206 Data Annotations 207 The MetaForeignKeyColumn Class 211 Presentation Logic 211 The MetaChildrenColumn Class 213 Summary 214 PART II Dynamic Data in Real-World Applications 8 Implementing Entity Validation 217 Validation Framework 217 Validation Error Messages 219 Validation in Entity Framework 221 Customizing Entity Framework Code Generation 227 Replacing Built-in Code Generator with Text Template 227 Customizing Text Template to Change Context Base Class 228 Customizing Text Template to Generate Static Constructors 229 Automated Testing 230 Creating a Unit Test 231 Test Isolation 234 Testing Validation of Different Properties 235 Integration Testing Versus Unit Testing 237 Declarative Validation 238 RequiredAttribute 238 RangeAttribute 239 StringLengthAttribute 241 RegularExpressionAttribute 242 EnumDataTypeAttribute 244 DataTypeAttribute 245 Imperative Validation 245 CustomValidationAttribute 245 Validating Multiple Rules 250 Reporting Multiple Errors 252 Validating Entity State Changes 256 Accessing Original Property Values with ObjectStateManager 256 Accessing Original Property Values in Validation Methods 257 Handling DBNull Values 259 Summary 261 9 Implementing Business Logic 263 Entity Design 264 Measure Impact of Inheritance on Query Performance 264 Keep the Conceptual and Storage Models as Close as Possible 268 Default Property Values 269 Property Interaction Rules 272 OnPropertyChanging Partial Methods 273 ISavableObject Interface 273 Entity Interaction Rules 275 Implementing Entity Interaction Rules in BeforeSave Methods 276 Implementing Entity Interaction Rules as Entity Methods 277 Implementing Entity Interaction Rules as Context Methods 278 Validation Rules 280 Validation Rule Design 281 Validation of Related Entities 287 Entity Deletion Rules 289 Reusing Entity Validation in Business Rule Methods 290 Saving Changes 292 Managing Transactions 293 Invoking Business Rules in Web Applications 294 Error Handling 296 Business Rules in the Database 298 Integrating Database Validation in Dynamic Data Applications 299 Implementing Validation Rules in Triggers 304 Implementing Business Rules in Stored Procedures 306 Summary 308 10 Building Custom Forms 309 Multimode Entity Templates 310 Custom Templates 310 Dynamic Templates 312 Creating Dynamic Label Control 315 Extending DynamicControl 319 Configuring Field Templates 321 Specifying a Field Template Explicitly 321 Configuring Field Templates Declaratively 322 Configuring Field Templates Programmatically 323 Creating Custom Field Templates 324 Implementing Interaction Between Field Templates 327 Accessing Initial Field Values of Other Columns 330 Accessing Modified Field Values of Other Columns 331 Initial Implementation of the Region_Edit Field Template 332 Improving Encapsulation of Field Templates 334 FieldValue Property 336 FieldValueChanged Event 337 AutoPostBack Property 337 Extending Existing Field Templates 337 Using Entity Templates to Control Field Templates 341 Extending DynamicControl (Again) 343 Taking Advantage of the UnleashedControl in Entity Templates 345 Summary 347 11 Building Dynamic Forms 349 Basic Form Layout 350 Configuring Appearance of Labels 352 Prompt Annotation 354 Description Annotation 356 Configuring Field Templates 357 Making Properties Read-Only 357 Overriding Default Field Templates 359 Configuring Appearance of Values 360 Enum Properties and Enumeration Templates 361 Extending the Enumeration Field Templates 362 Custom Data Types and UI Hints 368 Specifying Field Template Parameters 370 Extending Dynamic Data to Support Control Parameters 372 Field Template Interaction in Dynamic Forms 378 Fixing the FindOtherFieldTemplate Method 381 Creating Additional Dynamic Entity Templates 383 Extending Metadata to Support Entity UI Hints 384 Extending Page Templates to Support EntityUIHintAttribute 386 UnleashedEntity Control 386 Building a Dynamic Two-Column Entity Template 388 Summary 393 12 Building Custom Search Pages 395 Displaying Information from Related Entities 396 Column Sorting Across Related Entities 400 Building Custom Search Pages 401 Overcoming Limitations of Dynamic Filters 403 Using Replacement Filter Controls 405 Filtering Based on Related Entities 407 Initializing Nested Filter Control 409 Implementing Query Logic 411 Using the Parent Filter Template 419 Summary 420 13 Building Dynamic List Pages 421 Extending Filter Lookup Rules 422 Extending the FilterFactory Class 423 Extending the MetaTable Class 427 Extending the MetaModel Class 429 Building Dynamic UI with Custom Properties 432 Implementing Support for Custom Properties 433 Model Providers 434 Sorting of Custom Properties 446 Specifying Sort Expression for Custom Properties in Entity Model 446 Extending Dynamic Data to Support Sort Expression Metadata 447 Generating Metadata Attributes 450 Summary 452 14 Implementing Security 455 Table Scaffolding 456 Route Constraints 457 Web.Config Authorization Rules 458 Limitations of Configuration-Based Rules 461 Metadata Security API 462 Modifying Dynamic Templates to Support the Security API 464 Implementing Row-Level Security 472 Security Annotations 476 AuthorizationAttribute 477 CustomQueryAttribute 487 Summary 493 Index 495ReviewsAuthor InformationOleg Sych, Senior Consultant at AgileThought in Tampa, FL, has been a professional software engineer since 1993. He has built web applications since 2000 and has worked with .NET technologies since 2002. Sych holds MCPD, PSD, and PSM certifications. He received three MVP awards from Microsoft in Visual C# and Visual Studio ALM categories. His interests include software architecture and development process. Tab Content 6Author Website:Countries AvailableAll regions |
||||