Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010135691 | TK6570.M6 Y36 2006 | Open Access Book | Book | Searching... |
Searching... | 30000010145987 | TK6570.M6 Y36 2006 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
"Professor Yang and Dr. Zheng are two of the passionate young researchers in the field with a lot of hands-on experience. Professor Ni, on the other hand, is a veteran in wireless technologies, 2.5G/3G cellular phones, and embedded systems. The energy, the hands-on experience, and the long-term vision ensure that the book is of highest quality."
--From the foreword by Ya-Qin Zhang, Corporate Vice President for Research, Microsoft China
The second-generation Smartphone applications are exclusively designed to leverage the advantages of mobility and ubiquitous wireless access. This book provides you with an in-depth look at software development issues and design guidelines, and helps you gain the skills you need to develop your own efficient and feature-rich Smartphone applications that utilize the latest cutting-edge technologies.
Complete with code and examples, the book first walks you through the Microsoft Smartphone platform from a software developer's perspective. It next uncovers the .NET Compact Framework as well as the Smartphone programming environment. You'll then find detailed information on Microsoft Smartphone-related application design and programming topics in the domains of the .NET Compact Framework (managed code). Plus, you'll explore advanced development topics such as security and performance considerations that you'll be able to incorporate into your own applications.
What you will learn from this book
* How to use the programming framework and classes available in Windows Mobile and Smartphone SDK
* The fundamentals of .NET Compact Framework 2.0
* Techniques for developing your own robust Smartphone applications
* Steps for customizing components and P/Invoke
* How to enhance data and communication security
* Ways to improve the performance of your applications
* Fundamental techniques for supporting world-ready applications
Who this book is for
This book is for software architects and developers working in the area of mobile application development as well as professionals who want a quick and thorough overview of the Microsoft Smartphone software development platform.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
Author Notes
Baijian Yang is an assistant professor in the Computer Technology program at Ball State University. He became a Microsoft Certified Systems Engineer (MCSE) in 1998 and was one of the core software designers/developers for etang.com. He received his Ph.D. in Computer Science from Michigan State University in 2002. He is now engaged in research and development in the area of wireless networks and distributed systems.
Pei Zheng received his Ph.D. in Computer Science from Michigan State University in 2003. He joined Microsoft as a software engineer in 2005. Before that he was an assistant professor of Computer Science at Arcadia University, and a member of the technical staff at Bell Laboratories, Lucent Technologies. His research interests include distributed systems, network simulation and emulation, and mobile computing.
Lionel M. Ni is Chair Professor, Head of the Computer Science and Engineering Department, and Director of the Digital Life Research Center at the Hong Kong University of Science and Technology. Dr. Ni earned his Ph.D. in electrical and computer engineering from Purdue University in 1980. He has been involved in many projects related to wireless technologies, 2.5G/3G cellular phones, and embedded systems. He is co-author of the book Interconnection Networks: An Engineering Approach (Morgan Kaufmann, 2002), and Smart Phone and Next Generation Mobile Computing (Morgan Kaufmann, 2006).
Table of Contents
Acknowledgments | p. ix |
Foreword | p. xix |
Introduction | p. xxi |
Part I Smartphone and .NET | p. 1 |
Chapter 1 Introduction to Microsoft Smartphone | p. 3 |
What Is a Smartphone? | p. 3 |
Smartphone Applications and Services | p. 4 |
Mobile Commerce | p. 5 |
Mobile Enterprise | p. 5 |
Mobile Data Service and Entertainment | p. 6 |
Challenges of Smartphone Application Development | p. 6 |
Introducing Microsoft Windows Mobile | p. 7 |
Windows Mobile 5.0 | p. 7 |
Microsoft Smartphone from a User's Perspective | p. 8 |
Summary | p. 10 |
Chapter 2 .NET Compact Framework Fundamentals | p. 11 |
Introducing the Microsoft .NET Framework | p. 11 |
The Common Language Runtime | p. 12 |
.NET Framework Class Libraries | p. 13 |
Visual Studio 2005 | p. 14 |
Introducing the .NET Compact Framework | p. 15 |
CLR of the .NET Compact Framework | p. 15 |
.NET Compact Framework Class Libraries | p. 15 |
Platform Invoke | p. 16 |
Smartphone Development Tools | p. 17 |
.NET Compact Framework Type System | p. 18 |
Types | p. 19 |
Attributes and Reflection | p. 21 |
Generics | p. 21 |
Exception Handling | p. 21 |
A Quick Review of C# | p. 22 |
Value Types | p. 23 |
Reference Types | p. 24 |
Operators | p. 25 |
String and object | p. 26 |
Classes and Interfaces | p. 28 |
Polymorphism | p. 32 |
Arrays and Collections | p. 33 |
Summary | p. 35 |
Part II Smartphone Application Development | p. 37 |
Chapter 3 Developing Your First Smartphone Application | p. 39 |
Required Tools | p. 39 |
Visual Studio 2005 | p. 40 |
Windows Mobile 5.0 SDK for Smartphone | p. 41 |
Smartphone Device Emulator | p. 41 |
ActiveSync | p. 42 |
All-In-One Package | p. 43 |
Building Your First Smartphone Application | p. 43 |
Creating a Smartphone Project | p. 43 |
Adding Code to the Form | p. 49 |
Project Files | p. 51 |
Testing and Debugging Applications | p. 52 |
Packaging and Deploying Applications | p. 56 |
Packaging Applications | p. 56 |
Signing Applications | p. 59 |
Delivering and Installing Applications | p. 61 |
Summary | p. 62 |
Chapter 4 User Interface and Input | p. 63 |
UI Design with Forms and Controls | p. 63 |
Supported Controls | p. 64 |
Control Behaviors | p. 65 |
Smartphone UI Design | p. 85 |
Soft Keys | p. 86 |
The Home and Back Keys | p. 86 |
General UI Flow of Smartphone Applications | p. 87 |
Creating an Application with Multiple Forms | p. 88 |
Keyboard Input and Input Mode | p. 96 |
Input Mode | p. 96 |
Soft Key Functionality | p. 101 |
Additional UI Considerations | p. 102 |
Auto-Save | p. 102 |
DPI and QVGA Issues | p. 102 |
Performance | p. 103 |
Summary | p. 103 |
Chapter 5 Data Storage and File I/O | p. 105 |
Overview of Smartphone Data Storage | p. 105 |
The System.IO Namespace | p. 107 |
Creating a File Directory Browser | p. 113 |
Implementing a Memo Application | p. 120 |
Summary | p. 129 |
Chapter 6 Data Access with SQL Server Mobile | p. 131 |
ADO.NET Overview | p. 132 |
Microsoft SQL Server 2005 Mobile Edition | p. 134 |
SQL Server Mobile Architecture | p. 135 |
Installing SQL Server Mobile | p. 136 |
Setting Up the SQL Server Mobile Server Environment | p. 138 |
Installing SQL Server Mobile Tools | p. 138 |
Creating a Database and Tables from SQL Server 2005 | p. 138 |
Creating a Publication | p. 142 |
Configuring Web Synchronization | p. 145 |
Creating a SQL Server Mobile Database | p. 147 |
Creating Subscriptions in SQL Server Mobile | p. 148 |
Writing SQL Server Mobile Applications | p. 151 |
A Simple Application with the DataGrid Control | p. 151 |
The SqlServerCe Namespace | p. 157 |
Summary | p. 163 |
Chapter 7 Networking | p. 165 |
An Overview of Smartphone Networking | p. 165 |
Emulator Networking | p. 166 |
Web Access | p. 167 |
The HttpWebRequest and HttpWebResponse Classes | p. 168 |
Creating HTTP Request | p. 169 |
TCP Servers and Clients | p. 176 |
The IPEndPoint Class | p. 176 |
The IPAddress and IPHostEntry Classes | p. 176 |
Network and Host Byte Order Conversion | p. 177 |
The TcpListener and TcpClient Classes | p. 178 |
An Example of TcpListener and TcpClient | p. 180 |
Network Sockets | p. 187 |
TCP Sockets | p. 188 |
UDP Sockets | p. 196 |
Nonblocking Mode and Asynchronous Methods | p. 198 |
Summary | p. 199 |
Chapter 8 E-mail, SMS, and PIM Data | p. 201 |
Pocket Outlook Object Model (POOM) | p. 201 |
The WindowsMobile.PocketOutlook Namespace | p. 203 |
Creating E-mail Applications with Managed APIs | p. 205 |
Creating a Simple E-mail Application | p. 208 |
Creating an E-mail Application with Attachments | p. 210 |
Accessing PIM Data | p. 216 |
Using SMS | p. 220 |
Summary | p. 226 |
Chapter 9 XML and Web Services | p. 227 |
Overview of XML and Web Services | p. 227 |
XML Support in .NET Compact Framework | p. 229 |
XML Syntax | p. 229 |
An XML Example: Customizing the Home Screen | p. 231 |
XML Schema | p. 233 |
XML-Related Classes | p. 234 |
XmlDocument and XmlTextReader | p. 235 |
XmlNodeReader and DataSet | p. 240 |
An XML Processing Sample Application | p. 242 |
Building a Smartphone XML Web Service Application | p. 248 |
Adding a Web Reference | p. 248 |
Consuming Web Services | p. 249 |
Summary | p. 253 |
Chapter 10 Platform Invoke | p. 255 |
Managed and Unmanaged Code | p. 255 |
Building Unmanaged DLLs | p. 257 |
Using P/Invoke in the .NET Compact Framework | p. 260 |
Declaring and Calling an Unmanaged Code Function | p. 261 |
Error Handling | p. 262 |
Marshaling Data | p. 263 |
An Example of a P/Invoke Application | p. 271 |
Optimizing P/Invoke Performance | p. 278 |
Summary | p. 279 |
Chapter 11 Exception Handling and Debugging | p. 281 |
Exceptions and Exception Handling | p. 281 |
Exceptions | p. 282 |
The try...catch Statement | p. 282 |
The finally Statement | p. 283 |
The throw Statement | p. 285 |
Exception Stack Trace | p. 286 |
The Exception Class | p. 288 |
The SystemException Class | p. 289 |
The ApplicationException Class | p. 290 |
Best Practices of Exception Handling | p. 292 |
Debugging in Visual Studio 2005 | p. 293 |
Debugging Windows | p. 293 |
Debugging Setting | p. 294 |
Deploying and Debugging in Visual Studio | p. 294 |
Defining Symbols | p. 294 |
Limitations of Debugging | p. 295 |
Multithreaded Debugging | p. 296 |
Managed Threads | p. 296 |
Race Condition | p. 298 |
Deadlock | p. 300 |
Summary | p. 304 |
Part III Advanced Topics | p. 305 |
Chapter 12 Device and Application Security | p. 307 |
Mobile Threats | p. 307 |
Glossary of Terms | p. 309 |
Digital Signatures, Certificates, and Application Signing | p. 309 |
Privileged and Unprivileged Applications and Certificate Stores | p. 310 |
Trusted and Normal Applications | p. 310 |
Security Policies and Roles | p. 311 |
Windows Mobile 5.0 Security Models | p. 312 |
Certificate Management in Windows Mobile 5.0 | p. 314 |
Obtaining Certificates | p. 314 |
Signing Applications with Certificates | p. 315 |
Managing Certificates | p. 319 |
Security Policies | p. 322 |
An Example Code | p. 325 |
Perimeter Security | p. 330 |
Physical Access Control | p. 330 |
Antivirus Considerations | p. 331 |
Summary | p. 332 |
Chapter 13 Data and Communication Security | p. 333 |
Data Protection | p. 334 |
Data Encryption | p. 334 |
Database Encryption and Password Protection | p. 341 |
Securing Communication Channels | p. 346 |
Network Authentication | p. 346 |
Secure Sockets Layer (SSL) | p. 347 |
Virtual Private Networks | p. 350 |
Wi-Fi | p. 353 |
Securing Web Services with SOAP Headers | p. 353 |
Server Side | p. 354 |
Client Side | p. 360 |
Summary | p. 362 |
Chapter 14 Globalization and Localization | p. 363 |
Globalization and Localization Support | p. 363 |
Culture | p. 364 |
The CultureInfo Class | p. 365 |
Developing a World-Ready Application | p. 366 |
Creating Localized Resources | p. 366 |
A Sample Application with a Localized Satellite Assembly | p. 370 |
Localizing Data | p. 377 |
Dates, Time, and Calendars | p. 377 |
Numbers and Currency | p. 379 |
Strings | p. 381 |
Best Practices | p. 382 |
Summary | p. 383 |
Chapter 15 Graphics | p. 385 |
.NET Compact Framework Graphics | p. 386 |
The Graphics Class | p. 386 |
Creating a Graphics Object | p. 387 |
The Color, Pen, and Brush Objects | p. 387 |
Vector Graphics | p. 389 |
Drawing Text | p. 397 |
Working with Fonts | p. 399 |
Drawing Images | p. 400 |
Drawing Bitmaps | p. 402 |
Embedded Resources | p. 408 |
Summary | p. 409 |
Chapter 16 Performance | p. 411 |
General Principles | p. 411 |
Using .NET Compact Framework Performance Counters | p. 412 |
CLR Performance | p. 417 |
Garbage Collection | p. 417 |
Call Overhead | p. 418 |
Math | p. 423 |
Reflection | p. 423 |
Generics | p. 423 |
Class Library Guidelines | p. 424 |
BCL Collections | p. 424 |
StringBuilder versus String | p. 426 |
Regular Expression | p. 427 |
XML and Data Access | p. 428 |
XMLReader and XMLWriter | p. 428 |
XML Schema | p. 428 |
XML Serialization | p. 429 |
Data Access | p. 429 |
Windows Forms | p. 430 |
Form Loading Performance | p. 430 |
Form Layout | p. 431 |
BeginUpdate and EndUpdate | p. 433 |
Summary | p. 434 |
Appendix A New Features in .NET Compact Framework 2.0 | p. 437 |
Appendix B A Glance at the .NET Compact Framework 2.0 Class Library | p. 441 |
Appendix C The Smartphone Bootstrapping Process | p. 459 |
Index | p. 465 |