BN.com Gift Guide

ASP.NET Dynamic Data Unleashed

( 1 )

Overview

Using 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 ...

See more details below
Paperback
$36.04
BN.com price
(Save 27%)$49.99 List Price

Pick Up In Store

Reserve and pick up in 60 minutes at your local store

Other sellers (Paperback)
  • All (10) from $17.41   
  • New (6) from $30.63   
  • Used (4) from $17.41   
ASP.NET Dynamic Data Unleashed

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac

Want a NOOK? Explore Now

NOOK Book (eBook)
$22.99
BN.com price
(Save 42%)$39.99 List Price

Overview

Using 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
Read More Show Less

Product Details

  • ISBN-13: 9780672335655
  • Publisher: Sams
  • Publication date: 6/1/2012
  • Series: Unleashed Series
  • Edition number: 1
  • Pages: 544
  • Sales rank: 1,460,283
  • Product dimensions: 6.90 (w) x 9.00 (h) x 1.20 (d)

Meet the Author

Oleg 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.

Read More Show Less

Table of Contents

Preface 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 495

Read More Show Less

Customer Reviews

Average Rating 4
( 1 )
Rating Distribution

5 Star

(0)

4 Star

(1)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing 1 Customer Reviews
  • Posted August 17, 2014

    Really detailed explanation of the inner workings of dynamic dat

    Really detailed explanation of the inner workings of dynamic data.

    Wouldn't want to delve into DD without this book. Chapter 14 on Security was very helpful and recommend reading that early on. Would love to see an update by this author for Visual Studio 2013.

    Was this review helpful? Yes  No   Report this review
Sort by: Showing 1 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)