售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
MVVM Survival Guide for Enterprise Architectures in Silverlight and WPF
Table of Contents
MVVM Survival Guide for Enterprise Architectures in Silverlight and WPF
Credits
Foreword
About the Authors
About the Reviewer
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Instant Updates on New Packt Books
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Presentation Patterns
The Project Billing sample application
Types of state
History of presentational patterns
Monolithic design
The problems with monolithic design
Code maintenance
Code structure
Code testability
Data service stub
Monolithic Project Billing sample
ProjectsView
Initialization
Event handlers
Helpers
Running the sample
Takeaways
Poor testability
Poor extensibility and code reuse
Rapid application development
RAD Project Billing sample
Takeaways
MVC
View
Controller
Model
Layered design
The layers
Presentation layer
Business layer
Data layer
MVC with layered design
MVC Project Billing sample
Model
Controller
View
Initialization
Event handlers
Helpers
MainWindow
How it works
Takeaways
Memory leaks
MVP
MVP Project Billing sample
Model
View
Event handlers
Public methods
Helpers
Presenter
Event handlers
Helpers
Main window
How it works
Takeaways
Summary
2. Introduction to MVVM
History
Structure
Pure MVVM
View
View Model
WPF and Silverlight enablers
Dependency Properties
Dependency property inheritance
Data context
Attached behavior pattern
Rich data binding
INotifyCollectionChanged and ObservableCollection<>
Automatic dispatching
Triggers
Styles
Control Templates
Data templates
Commands
MVVM project billing sample
MVVM design
View Models
ProjectsViewModel
ProjectViewModel
Model
Code
ProjectsModel
ProjectViewModel
ProjectsViewModel
WPF UI
ProjectsView
MainWindow
Silverlight UI
Porting assemblies to Silverlight
ProjectsView
MainPage
Benefits of MVVM
MVVM and humble views
Issues and pain points of MVVM
MVVM Light
Summary
3. Northwind — Foundations
Northwind requirements
Presentation tier foundation
Locator pattern
Data access tier
Listing the customers
Unit testing getting customers
Using an isolation framework
Adding tabs
Viewing customer details
Viewing details for one customer
Testing CustomerDetailsViewModel
Wiring up the customer list box
Testing ShowCustomerDetails()
Summary
4. Northwind—Services and Persistence Ignorance
Adding a Service Layer
Integrating the Service Layer
Persistence ignorance and custom models
Trade-offs of generated models
Adding persistence ignorance
Adding unit tests
Summary
5. Northwind—Commands and User Inputs
Pure MVVM
Making it easier with frameworks
Updating customer details
Testing and updating customer details
Gestures, events, and commands
InputBindings
KeyBinding
MouseBinding
Using code behind
Event to command
Attached Behavior
Using MVVM Light
Summary
6. Northwind—Hierarchical View Model and IoC
Adding orders to customer details
Service layer
Application layer
Presentation layer
View Models
Views
Take aways
Viewing order details
ToolManager
Inversion of Control frameworks
IoC designs
Service Locator anti-pattern
IoC best practices
Adding an IoC container to Northwind
Order details
Summary
7. Dialogs and MVVM
Should we make a compromise?
Dialog service
Using DataTemplates with DialogService
Convention over configuration
Mediators
Attached behaviors
Summary
8. Workflow-based MVVM Applications
WF for business rules execution
Handling delays in rules execution
Using WorkflowInvoker in background thread
Using WorkflowApplication
WF for controlling application flow
Summary
9. Validation
Validations and dependency properties
Error templates
Validation in MVVM-based applications
Validation rules
Using validation rules
Specializing validation rules—supporting parameters
Validation rules and converters
Validation mechanism in WPF and Silverlight
IDataErrorInfo
Validation states
Providing a summary validation error
Invalidating multiple fields
Limitations and gotchas
INotifyDataErrorInfo
Enterprise library validation application block
Complex business rules
Error notifications
Error message box
Highlighting fields
Error messages in the tooltip
Error messages beside the control
Validation summary pane
Flip controls
Summary
10. Using Non-MVVM Third-party Controls
Using attached behaviors
Using binding reflector
readonly CLR properties (with no change notification support)
Using .NET 4.0 dynamic
Using MVVM adapters
Summary
11. MVVM and Application Performance
Asynchronous binding
Asynchronous View Model construction
Priority binding
Virtualization and paging
Using BackgroundWorker
Targeting system configuration
Event Throttling
Lazy Initialization
Summary
A. MVVM Frameworks
B. Binding at a Glance
Basics
Validation
ValidationRules
IDataErrorInfo
INotifyDataErrorInfo [.net 4.5]
Enterprise Library 5.0 Validation Application Block
Windows WF
Validation.ErrorTemplate
Static properties/fields
Executing code in DataContext
Binding to DataContext[DC]
Resources
Types with default constructor
XmlDataProvider
ObjectDataProvider
Binding to resource
Static resource
Dynamic resource
Updating source
Binding.UpdateSourceTrigger
Binding.Delay: [.net 4.5] [Binding.Mode:TwoWay / OneWayToSource ]
Mode [Binding.Mode] [T:Target, S:Source]
Binding to other elements in the view
ElementName
RelativeSource
Conversion
Binding.StringFormat [SF]
Converter [C]
Performance
Async binding
ObjectDataProvider.IsAsynchronous
PriorityBinding
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜