Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
MCPD 70-518 Exam Ref: Designing and Developing Windows® Applications Using Microsoft® .NET Framework 4
Introduction
Microsoft Certified Professional Program
Acknowledgments
Support and Feedback
Errata
We Want to Hear from You
Stay in Touch
Preparing for the Exam
1. Designing the Layers of a Solution
Objective 1.1: Design a Loosely Coupled Layered Architecture
Designing Service-Oriented Architectures
Providing Separation of Concern
Designing a System Topology
Choosing Between Presentation and Business Logic
Using WCF Routing
Understanding BizTalk Server
Objective Summary
Objective Review
Objective 1.2: Design Service Interaction
Designing Service and Method Granularity
Service Granularity
Cohesion
Method Granularity
Choosing Protocols and Binding Types
Using REST
Using Message and Data Contracts
Creating a Message Contract
Creating a Data Contract
Using Custom SOAP Headers
How to Add Simple Custom SOAP Headers
How to Create Custom SOAP Headers Using Generic Classes
How to Create Custom SOAP Headers Using Custom Classes
Managing Data Integrity
Choosing Synchronous vs. Asynchronous
Choosing a Message Exchange Pattern
Versioning
Hosting WCF Services
Objective Summary
Objective Review
Objective 1.3: Design the Security Implementation
Planning for User Account Control
Designing for Least Privilege
Using Partial Trust
Using CAS Imperatively
Using Application Domains
Understanding Process Identity
Understanding Impersonation and Delegation
Impersonating Users
Delegating Credentials
Designing Trusted Subsystems
Implementing Authorization
Using Federated Security
Using Claims-Based Authentication
Requiring Membership Roles Declaratively
Requiring Membership Roles Imperatively
Planning Role Management
Using Cryptography
Using IPsec
Using Secure Sockets Layer (SSL)
Using Hashes to Store Passwords
Using Digital Signatures
Objective Summary
Objective Review
Objective 1.4: Design for Interoperability with External Systems
Accessing Assemblies from Unmanaged Code
Accessing COM Objects
Objective Summary
Objective Review
Objective 1.5: Design for Optimal Processing
Planning for Long-Running Processes
Designing a Client Application for a Long-Running Process
Designing a Web Service for a Long-Running Process
Using Windows Workflow Foundation
Scaling Applications
Scaling Up
Scaling Out
Moving to the Cloud
Using Queuing
Minimizing Latency
Using a Service Bus
Objective Summary
Objective Review
Objective 1.6: Design for Globalization and Localization
Choosing Between CurrentCulture and CurrentUICulture
Format Text for Differing Cultures
Translating Applications
Working with Time
Comparing Data
Designing Databases for Globalization
Objective Summary
Objective Review
Chapter Summary
Answers
Objective 1.1: Review
Objective 1.1: Thought Experiment
Objective 1.2: Review
Objective 1.2: Thought Experiment
Objective 1.3: Review
Objective 1.3: Thought Experiment
Objective 1.4: Review
Objective 1.4: Thought Experiment
Objective 1.5: Review
Objective 1.5: Thought Experiment
Objective 1.6: Review
Objective 1.6: Thought Experiment
2. Designing the Presentation Layer
Objective 2.1: Choose the Appropriate Windows Technology
Windows Forms
WPF
Choosing Between Windows Forms and WPF
Interoperating Between Windows Forms and WPF
Incorporating WPF Elements into a Windows Forms Application
Incorporating Windows Forms Elements in a WPF Application
Using Dialog Boxes in WPF Applications
File Dialog Boxes
WindowsFormsHost
Adding a Windows Forms Control to a WPF Application
Setting Properties of Windows Forms Controls in a WPF Application
Setting Event Handlers on Windows Forms Controls in a WPF Application
Obtaining a Reference to a Hosted Windows Forms Control in Code
Choosing a Presentation Pattern
Objective Summary
Objective Review
Objective 2.2: Design the UI Layout and Structure
Evaluate the Conceptual Design
Designing for Inheritance and the Reuse of Visual Elements
Creating Extended Controls in Windows Forms
Extending a Control
Extending a Form
Creating Custom Dialog Boxes
Using Styles in WPF
Setters
Property Setters
Event Setters
Using Resources in WPF
Declaring a Logical Resource
Application Resources
Accessing a Resource in XAML
Static and Dynamic Resources
Creating a Resource Dictionary
To create a resource dictionary
Merging Resource Dictionaries
Choosing Where to Store a Resource
Designing for Accessibility
Support Standard System Settings
Ensure Compatibility with the High-Contrast Option
Provide Documented Keyboard Access to All Features
Provide Notification of the Keyboard Focus Location
Convey No Information by Sound Alone
Accessibility Properties of Windows Forms Controls
Deciding When Custom Controls Are Needed
Objective Summary
Objective Review
Objective 2.3: Design Application Workflow
Implementing User Navigation
MDI Forms in Windows Forms
Creating an MDI Parent Form
To create an MDI parent form
Creating MDI Child Forms
To create an MDI child form
Identifying the Active Child Form
Sending Data to the Active Child Form from the Clipboard
Arranging MDI Child Forms
Navigation Applications in WPF
Using Hyperlinks
Using NavigationService
Hosting Pages in Frames
Using the Journal
Removing Items from the Journal
Adding Items to the Journal
To add custom journal entries
Handling Navigation Events
Passing Information to Navigation Events
Cancelling Navigation
Using PageFunction Objects
To add a PageFunction object to a project
To change the return type of your PageFunction
To return a value from a PageFunction
Removing PageFunction Entries from the Journal
Simple Navigation and Structured Navigation
Designing for Different Input Types
Objective Summary
Objective Review
Objective 2.4: Design Data Presentation and Input
Designing Data Validation
Data Type Validation
Range Checking
Lookup Validation
Complex Validation
Validating Data at the Client and Server
Validating Data in a WPF Application
Implementing Custom Validation Rules
Handling Validation Errors
Design a Data Binding Strategy
Data Binding in Windows Forms
Binding to Types Other Than Dataset
Data Binding in WPF
Navigating Bound Data in WPF
Binding to XML in WPF
Using XPath When Binding to XML
Using Data Templates in the WPF Presentation Layer
Managing Data Shared Between Forms
Creating an Application Variable in Windows Forms with Visual Basic
Creating an Application Variable in Windows Forms with Visual C#
Creating an Application Variable in WPF
Managing Media
SoundPlayer
MediaPlayer and MediaElement
Objective Summary
Objective Review
Objective 2.5: Design Presentation Behavior
Determine Which Behaviors Will Be Implemented and How
Attached Events
Triggers
Property Triggers
Multi-Triggers
Data Triggers and Multi-Data-Triggers
Event Triggers
Animation
Creating Attached Behaviors
Implementing Drag-and-Drop Functionality
The General Sequence of a Drag-and-Drop Operation
The DragDropEffects Enumeration
Initiating the Drag-and-Drop Operation in Windows Forms Applications
Initiating the Drag-and-Drop Operation in WPF Applications
Handling the DragEnter Event
Handling the DragDrop Event
Implementing Drag-and-Drop Operations Between Applications
Objective Summary
Objective Review
Objective 2.6: Design for UI Responsiveness
Offloading Operations from the UI Thread and Reporting Progress
Announcing the Completion of a Background Process
Returning a Value from a Background Process
Cancelling a Background Process
Reporting Progress of a Background Process with BackgroundWorker
Requesting the Status of a Background Process
Creating Process Threads
Creating and Starting a New Thread
Destroying Threads
Synchronizing Threads
Special Considerations When Working with Controls
Using Dispatcher to Access Controls Safely on Another Thread in WPF
Avoiding Unnecessary Screen Refreshes
Determining Whether to Sort and Filter Data on the Client or Server
Addressing UI Memory Issues
Objective Summary
Objective Review
Chapter Summary
Answers
Objective 2.1: Review
Objective 2.1: Thought Experiment
Objective 2.2: Review
Objective 2.2: Thought Experiment
Objective 2.3: Review
Objective 2.3: Thought Experiment
Objective 2.4: Review
Objective 2.4: Thought Experiment
Objective 2.5: Review
Objective 2.5: Thought Experiment
Objective 2.6: Review
Objective 2.6: Thought Experiment
3. Designing the Data Access Layer
Objective 3.1: Choose the Appropriate Data Access Strategy
Understanding .NET Data Access Technologies
Using ADO.NET
Using the Entity Framework
Using LINQ to SQL
Using LINQ to Objects
Using WCF Data Services
Supporting Different Data Sources
Choosing a Data Access Strategy
Objective Summary
Objective Review
Objective 3.2: Design the Data Object Model
Mapping to Persistent Storage
Database Mapping with LINQ to SQL
Database Mapping with the Entity Framework
File Mapping
Designing a Schema Change Management Strategy
Abstracting from the Service Layer
Abstracting the Entity Framework Data Model
Abstracting the LINQ to SQL Data Model
Objective Summary
Objective Review
Objective 3.3: Design Data Caching
Understanding Caching
Using MemoryCache
Caching Web Services
Objective Summary
Objective Review
Objective 3.4: Design Offline Storage and Data Synchronization
Determining the Need for Offline Data Storage
Using Sync Framework
Accessing Databases Offline
Accessing Files Offline
Accessing RSS and Atom Feeds
Designing Synchronization
Choosing a Synchronization Topology
Database Design Considerations
Optimizing Synchronization Performance
Objective Summary
Objective Review
Objective 3.5: Design for a Concurrent Multiuser Environment
Planning for Multiuser Conflicts
Understanding Deadlock Conflicts
Designing Concurrency for Web Services
Using Cross-Tier Distributed Transactions
Objective Summary
Objective Review
Objective 3.6: Analyze Data Services for Optimization
Understanding ORM Performance
Understanding Lazy and Eager Loading
Optimizing Round-Trips
Objective Summary
Objective Review
Chapter Summary
Answers
Objective 3.1: Review
Objective 3.1: Thought Experiment
Objective 3.2: Review
Objective 3.2: Thought Experiment
Objective 3.3: Review
Objective 3.3: Thought Experiment
Objective 3.4: Review
Objective 3.4: Thought Experiment
Objective 3.5: Review
Objective 3.5: Thought Experiment
Objective 3.6: Review
Objective 3.6: Thought Experiment
4. Planning a Solution Deployment
Objective 4.1: Define a Client Deployment Strategy
Understanding Installation Methods
ClickOnce
Windows Installer
XCopy
Choosing an Installation Method
Deploying the .NET Framework
Deploying COM Objects
Objective Summary
Objective Review
Objective 4.2: Plan a Database Deployment
Understanding Database Deployment Files
Using SQL Scripts
Using the Vsdbcmd.exe Tool
Using Data-Tier Projects
Using SQL Server Database Projects
Publishing Databases from Server Explorer
Publishing Databases with a WCF Web Service
Understanding Deployment Conflicts
Deploying an Embedded Database Privately
Objective Summary
Objective Review
Objective 4.3: Design a Solution Update Strategy
Updating ClickOnce Applications
Updating with Windows Installer
Packaging Shared Components
Checking for Windows Installer Updates
Updating Shared Components
Designing Web Services for Updates
Objective Summary
Objective Review
Objective 4.4: Plan for N-Tier Deployment
Designing a Physical Topology
Determining Component Installation Order
Objective Summary
Objective Review
Chapter Summary
Answers
Objective 4.1: Review
Objective 4.1: Thought Experiment
Objective 4.2: Review
Objective 4.2: Thought Experiment
Objective 4.3: Review
Objective 4.3: Thought Experiment
Objective 4.4: Review
Objective 4.4: Thought Experiment
5. Designing for Stability and Maintenance
Objective 5.1: Design for Error Handling
Designing an Exception Handling Strategy
Handling Exceptions Across Tiers
Collecting User Feedback
Creating Custom Exception Classes
Processing Unhandled Exceptions
Objective Summary
Objective Review
Objective 5.2: Evaluate and Recommend a Test Strategy
Understanding Black Box and White Box Testing
Understanding Functional Tests
Acceptance Testing
Stability Testing
Integration Testing
Unit Testing
API Testing
Range Testing
Security Testing
Understanding UI Tests
Usability Testing
Globalization Testing
Accessibility Testing
Understanding Performance Tests
Capacity Testing
Performance Testing
Scalability Testing
Duration Testing
Understanding Code Coverage
Objective Summary
Objective Review
Objective 5.3: Design a Diagnostics and Monitoring Strategy
Providing Monitoring Information
Using Windows Event Logging
Using Performance Counters
Using Event Tracing
Using WMI
Providing Usage Reporting
Choosing Distributed or Centralized Logging
Designing a Diagnostics and Monitoring Strategy
Profiling .NET Applications
Objective Summary
Objective Review
Chapter Summary
Answers
Objective 5.1: Review
Objective 5.1: Thought Experiment
Objective 5.2: Review
Objective 5.2: Thought Experiment
Objective 5.3: Review
Objective 5.3: Thought Experiment
A. About the Authors
Index
About the Authors
← Prev
Back
Next →
← Prev
Back
Next →