You are previewing MCPD 70-518 Exam Ref: Designing and Developing Windows® Applications Using Microsoft® .NET Framework 4.
O'Reilly logo
MCPD 70-518 Exam Ref: Designing and Developing Windows® Applications Using Microsoft® .NET Framework 4

Book Description

Professional-level prep for the professional-level exam.

Prepare for MCPD Exam 70-518—and help demonstrate your real-world mastery of Windows application design and development with .NET Framework 4. Designed for experienced, MCTS-certified professionals ready to advance their status—Exam Ref focuses on the critical-thinking and decision-making acumen needed for success at the MCPD level.

Focus on the expertise measured by these objectives:

  • Designing the Layers of a Solution

  • Designing the Presentation Layer

  • Designing the Data Access Layer

  • Planning a Solution Deployment

  • Designing for Stability and Maintenance

  • Table of Contents

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