Welcome to Mobile Device Software Engineering
Success Is Driven by a Few Key Factors
Chapter 2. Characteristics of Mobile Applications
Important Characteristics of Mobile Applications
Computer Architecture Differences
Chapter 3. Design of the .NET Compact Framework
Designing the .NET Compact Framework
Factoring of Useful Design and Debugging Information into Optional Components
Items Not in the First Version of the .NET Compact Framework
Memory Management and Garbage Collection
Chapter 4. How to Be Successful Developing Mobile Applications
Inherent and Transient Difficulties in Software Engineering
Development Is an Iterative Process, but It Does Have Rules
None of the Details Matter If the Big Picture Is Not Right
Solve Problems in the Right Order; Go Back If You Need To
Chapter 5. Our Friend, the State Machine
Implicit vs. Explicit State Machines
How Many State Machines Should Be in Any Given Application?
Chapter 6. Step 0: Before You Start, Decide on the Scope of Your Application
Standalone or Part of a Larger System?
Do Not Port Your Desktop Application! Think Devices!
Steps to Define the Scope of Your Mobile Application
Chapter 7. Step 1: Start with Performance; Stay with Performance
The Importance of a Disciplined Approach
Defining Performance Objectives
The Cost of Runtime Exceptions
Chapter 8. Performance and Memory Management
Defining Your Application Memory Model
Macro "Application Level" Memory Management
Micro "Algorithm-Level" Memory Management
Pay Special Attention to String Usage in Your Algorithms
Chapter 9. Performance and Multithreading
Introduction: When and How to Use Background Threads
Multitasking and Multithreading in Modern Operating Systems
When to Use Background Threads
Design Guidelines for Using Threads in Your Mobile Application
Sample Code You Can Use Using a Background Thread to Accomplish a Single Task
Chapter 10. Performance and XML
Introduction: Working with XML
Comparing XML to Other Text Formats
Different Ways to Work with XML
A Simple Example Using Both the XML DOM and the XML Reader/Writer
Improving Performance by Offloading Work to Others
Chapter 11. Graphics and User Interface Performance
Performance Design Strategies for User Interface Code
Choosing Appropriate Bitmap Formats and Sizes
Design Strategies for Graphics Code That Performs
Chapter 12. Performance Summary
Performance and Memory Management Summary
Performance and Multithreading
Performance and API Abstraction Levels
Performance with User Interface and Graphics
Look For and Pay Attention to Performance Warning Signs
Chapter 13. Step 2: Design the Right User Interface
Design Your Mobile User Interface Code to Allow for Easy Testing and Iteration
A State Model for User Interface Layout and Management
Advanced User Interfaces with the .NET Compact Framework
Chapter 14. Step 3: Get Your Data Access Model Right
Introduction to Mobile Application Data Access
Choosing the Right Abstractions for In-Memory Storage of Data
Choosing the Right Long-Term Storage Model for Data
.NET Compact Framework Specific: ADO.NET
Chapter 15. Step 4: Get Your Communications Model Right
Introduction to Mobile Application Communications
Communications and Networking Options
Pushing Information to a Device
Chapter 16. Step 5: Packaging and Deploying Your Mobile Application
Does Your Mobile Application Need to Be Signed?
Installation of Runtimes and Other Required Components
Packaging and Installation Options
Appendix A. Additional Resources for the .NET Compact Framework
Appendix B. Visual Basic .NET Samples
Chapter 5 (State Machines) Samples
Chapter 7 (Performance Introduction) Samples
Chapter 8 (Performance and Memory) Samples
Chapter 9 (Performance and Multithreading) Samples
Chapter 10 (Performance and XML) Samples
Chapter 11 (Performance and Graphics) Samples
Chapter 13 (User Interface Design) Samples
Chapter 15 (Communications) Samples