Buy new:
$117.00$117.00
Ships from: five star ten number Sold by: five star ten number
Save with Used - Good
$44.38$44.38
Ships from: Goodwill of Silicon Valley Sold by: Goodwill of Silicon Valley

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
.Net Compact Framework Programming With C# 1st Edition
Purchase options and add-ons
Joshua Trupin, Executive Editor, MSDN Magazine Yao and Durant have written a book that, although it assumes no prior experience with the .NET Framework, serves both the rookie and advanced programmer equally well. This is definitely a rare quality among technical books and is certainly not an easy thing for an author to accomplish.
Doug Holland, Precision ObjectsThis is a very good hands-on book with plenty of sample code illustrating programming tasks and techniques, which any serious development effort for Windows CE or Pocket PC will require.
Bill Draper, Director of Software DevelopmentThis book serves as both a great reference and tutorial when building .NET Compact Framework applications. My only wish is that it had been available sooner.
Greg Hack, Senior Software Engineer, Allscripts Healthcare SolutionsOf the handful of books on Compact Framework, this book takes the cake. Paul Yao and David Durants expertise with .NET Compact Framework is evident from their excellent and very insightful coverage of sections such as Building the User Interface, Managing Device Data, and Creating Graphical Output. The chapter discussing the topic of P/Invoke is unparalleled. After reviewing this book, I am certain that if there is one book that will help you understand .NET Compact Framework, this is the one.
Deepak Sharma, Senior Systems Specialist, Tata Infotech Ltd.Yao and Durants fresh, innovative, and in-depth look at the .NET Compact Framework gets developers up to speed using C# to develop robust and scaleable handheld software solutions. A definite must-read for mobile handheld developer enthusiasts!
Andrew Krowczyk, Software Architect, Zurich North America
.NET Compact Framework Programming with C#is the definitive tutorial and reference for the .NET Compact Framework (CF). It shows you how to transfer your skills and your code to the Pocket PC 2003 and other mobile and embedded smart devices.
Authors Paul Yao and David Durant draw upon their years of research and experience with members of the Microsoft .NET CF team to show you exactly how the best CF programming gets done in C#. This is the only book a programmer needs to master the art of CF coding. Throughout the book, sample code and examples illustrate best practices and programming techniques. In addition, the companion Web site includes downloadable code for all these examples, along with a set of development tools to help you with your CF development projects.
The authors expertly zero in on what programmers need to understand for successful smart device programming, including:
- Garbage Collection in the .NET Compact Framework
- Controls and supported Properties, Methods, and Events (PMEs)
- Custom controls with Windows Forms Designer support
- Using Platform Invoke (P/Invoke)
- Simple and complex data binding and the DataGrid control
- Programming with ADO.NET data classes
- Synchronizing SQL Server CE with SQL Server 2000 databases
- Creating graphical output, including font and printing coding tricks
- Differences between the standard desktop framework and the CF
.NET Compact Framework Programming with C#is your single resource for e
- ISBN-109780321174031
- ISBN-13978-0321174031
- Edition1st
- PublisherAddison-Wesley Professional
- Publication dateJanuary 1, 2004
- LanguageEnglish
- Dimensions6.75 x 2 x 9 inches
- Print length1379 pages
There is a newer edition of this item:
Frequently purchased items with fast delivery
Editorial Reviews
From the Back Cover
Joshua Trupin, Executive Editor, MSDN Magazine Yao and Durant have written a book that, although it assumes no prior experience with the .NET Framework, serves both the rookie and advanced programmer equally well. This is definitely a rare quality among technical books and is certainly not an easy thing for an author to accomplish.
Doug Holland, Precision Objects This is a very good hands-on book with plenty of sample code illustrating programming tasks and techniques, which any serious development effort for Windows CE or Pocket PC will require.
Bill Draper, Director of Software Development This book serves as both a great reference and tutorial when building .NET Compact Framework applications. My only wish is that it had been available sooner.
Greg Hack, Senior Software Engineer, Allscripts Healthcare Solutions Of the handful of books on Compact Framework, this book takes the cake. Paul Yao and David Durant s expertise with .NET Compact Framework is evident from their excellent and very insightful coverage of sections such as Building the User Interface, Managing Device Data, and Creating Graphical Output. The chapter discussing the topic of P/Invoke is unparalleled. After reviewing this book, I am certain that if there is one book that will help you understand .NET Compact Framework, this is the one.
Deepak Sharma, Senior Systems Specialist, Tata Infotech Ltd. Yao and Durant s fresh, innovative, and in-depth look at the .NET Compact Framework gets developers up to speed using C# to develop robust and scaleable handheld software solutions. A definite must-read for mobile handheld developer enthusiasts!
Andrew Krowczyk, Software Architect, Zurich North America
.NET Compact Framework Programming with C#is the definitive tutorial and reference for the .NET Compact Framework (CF). It shows you how to transfer your skills and your code to the Pocket PC 2003 and other mobile and embedded smart devices.
Authors Paul Yao and David Durant draw upon their years of research and experience with members of the Microsoft .NET CF team to show you exactly how the best CF programming gets done in C#. This is the only book a programmer needs to master the art of CF coding. Throughout the book, sample code and examples illustrate best practices and programming techniques. In addition, the companion Web site includes downloadable code for all these examples, along with a set of development tools to help you with your CF development projects.
The authors expertly zero in on what programmers need to understand for successful smart device programming, including:
- Garbage Collection in the .NET Compact Framework
- Controls and supported Properties, Methods, and Events (PMEs)
- Custom controls with Windows Forms Designer support
- Using Platform Invoke (P/Invoke)
- Simple and complex data binding and the DataGrid control
- Programming with ADO.NET data classes
- Synchronizing SQL Server CE with SQL Server 2000 databases
- Creating graphical output, including font and printing coding tricks
- Differences between the standard desktop framework and the CF
.NET Compact Framework Programming with C#is your single resource for e
About the Author
Paul Yao is president of The Paul Yao Company, which provides educational and consulting services to software engineers on software technologies based on Microsoft Windows. He has authored/coauthored seven books on Windows programming, including with David Durant the first book published on the subject, Programmers Guide to Windows (Sybex, 1987). Paul is a contributing editor toMSDN Magazine, writing regularly on topics of interest to Windows CE and Pocket PC developers.
David Durant is principal of Durant Associates and lead author of the groundbreaking bookProgrammers Guide to Windows (Sybex, 1987), the first book published on the subject. David was an early proponent of .NET, is a frequent contributor to industry journals and forums, and leads seminars on .NET-based technologies for corporate clients worldwide.
Excerpt. © Reprinted by permission. All rights reserved.
We feel pretty fortunate. During the past two decades, we have traveled the world teaching programmers what we know. The two of us have led many classes and together have taught thousands of smart, highly motivated software engineers, test engineers, and development managers. We enjoy working with the people who are inventing the future, and we enjoy being at the cutting edge of each successive wave of software development technology. We have learned much from the discussions we have had with these students. This book represents one way we can thank them for all their support.
We worked together on the first book published on the subject of Windows programming, Programmer’s Guide to Windows (Sybex, 1987). Long out of print, in its day the book helped many programmers tackle the challenges presented by Windows version 1.01. That version of Windows came out in November 1985, and in those days developers typically worked on computers running MS-DOS with no hard drive, no network support, and no network servers to rely on.
Things have changed a lot during the 17 years since our first book came out. A pocket-sized computer now has more memory and CPU power than the typical desktop system of the 1980s. A typical desktop system has more raw computing power than a roomful of computers had back then. With this increase in capacity has come a dramatically improved set of development tools available to software developers: Online programming references, context-sensitive help, and graphical editors all help support the task of software development. Programmers can be more productive today thanks to all these tools.
With this increase in computing power and tool support has also come an increase in the complexity of programming interfaces. While the .NET initiative provides a new set of programming interfaces that are better organized than any other Microsoft has created, it is still very large and very intricate. Given enough time, most programmers can master these intricacies. But most programmers do not have enough time to learn about a new technology while also building new software, yet that is what their employers require of them.
Our primary mission is to support you, the software engineer, in saving time. In this book, we distill many years of research and sample code to give you the information you need in a way you can use. We do the same thing in our training classes, in our magazine articles, and in the talks we give at conferences. We concentrate our efforts on helping software engineers become more productive. Time saved in learning about software development issues can be focused on meeting the specific needs of the end users whom you are supporting (or, perhaps, on taking some time off between projects to recharge your mental and physical batteries).
What You Need to Use This Book
To make the most of what this book has to offer, you are going to need a few things, as described in the following subsections.
Hardware
Software developers have historically had the fastest and most capable computer systems they could get their hands on. Developing for smart devices like the Pocket PC and the Smartphone is no different. To get started, we recommend you have the following:
- Desktop system compatible with Microsoft Windows 2000 or Windows XP
- Minimum 128MB RAM (256MB recommended)
- Minimum 4GB hard drive (10GB recommended)
- Windows CE-powered device (Pocket PC, Pocket PC 2002, Pocket PC 2003, Smartphone 2003, or other Windows CE-powered device)
Strictly speaking, you do not need a Windows CE device because you can run your software on an emulator that runs on your development system. You will, however, eventually want to test your software on real devices, the same ones you expect your users to use. The emulator technology is very good—more than good, in fact. Today’s emulators provide an excellent replication of the software on a device.1 But the hardware and associated device drivers are not going to be the same on an actual device as on an emulator running on a PC. This is the major cause of differences between an emulator and an actual device. When we teach our Pocket PC programming classes, we always recommend to participants that a major portion of testing be done on devices.
While the focus of this book is on writing code, the reality of software development is that you spend a lot of time debugging your code. For that reason, you want to remove anything that slows down your debugging. We suggest you invest in a network connection between your development system and your smart-device system, which means you need the following:
- Network card (wired or wireless) for the desktop development system
- Network card (wired or wireless) for the Windows CE-powered device
Software
The development tools can run on any supported version of Microsoft Windows. However, an emulator requires that you run on a 32-bit version of the operating system. This means you want one of the following:
- Microsoft Windows 2000 (with Service Pack 2 or later)
- Microsoft Windows XP Professional
- Microsoft Windows Server 2003
With the right operating system in place, you can then use the software development tools. The first item in the following list is required; the other items are “nice-to-have” tools.
- Microsoft Visual Studio .NET 2003 (required).
- (Optional) Microsoft eMbedded Visual C++ 3.0 (for Pocket PC and Pocket PC 2002).
- Microsoft eMbedded Visual C++ 4.0 (for Pocket PC 2003, Smartphone 2003, and later).
- P/Invoke Wizard, available from The Paul Yao Company, for help in creating declarations needed to call native code from the .NET Compact Framework. (Learn more about this tool and download a demo version from http://www.paulyao.com/pinvoke.)
The Latest Version of the .NET Compact Framework
As we were finishing this book, Microsoft made available Service Pack 2 of the .NET Compact Framework. Should you upgrade to this latest version (or whatever later version might be available by the time you read this)? We must say yes! This is a new technology, and the .NET Compact Framework team is still working on improvements and upgrades to make the library work better and faster. After shipping a new library, the .NET Compact Framework team members—like most development team members at Microsoft—take a weekend or two off, and then their reward for their hard work is that they get to start all over again, working to create something even better. It’s a good thing that they like what they are doing—and that they are so good at it.
The Sample Code
You can download the code for this book from the following URL: http://www.paulyao.com/cdbook/code.
When you install the sample code directory tree from the Web site, you see four top-level directories.
- ..\CS contains all the C# samples.
- ..\VB contains all the Visual Basic .NET samples.
- ..\CPP contains C/C++ samples.
- ..\Tools contains binaries of useful tools.
Each of the .NET Compact Framework samples is available in two languages: C# and Visual Basic .NET. Some samples are written in C++, using the Windows API (also known as Win32).
Within the three samples directories (..\CS, ..\VB, and ..\CP) you find a directory for each chapter. Within each chapter directory you find another set of directories for all the samples in that directory.
For example, one of the samples in Chapter 5 is named “FormEvents.” The C# version is at this location: ..\CS\Ch05_CreatingForms\FormEvents. The Visual Basic .NET version is at this location: ..\VB\Ch05_CreatingForms\FormEvents.
The Target Audience for This Book
We wrote this book to help programmers with the .NET Compact Framework. We assumed that no prior programming experience with Windows 95/98/2000/XP, with Windows CE, or with .NET was required. At the same time, if you have experience with programming for Windows on the desktop, with Windows CE, or with the .NET Framework, that experience will help you.
For Programmers Experienced with Windows CE
If you already have experience writing Windows CE programs, you might be wondering if you even need to use the .NET Compact Framework. Whether you do or not depends on what tools you have been using and what type of work you expect to do.
If you have been using eMbedded Visual Basic (eVB) to write Windows CE programs, you are probably already aware that Microsoft plans to discontinue support for eVB. As of this writing, the Pocket PC 2003 supports eVB; that is the last platform to be supported. The .NET Compact Framework is a great replacement. It is well designed, and it provides Visual Basic programmers with support that puts them on a level playing field with C# programmers.
If you have been using the Microsoft Foundation Class (MFC) Library, the ActiveX Template Library (ATL), or the Windows Template Library (WTL), then the case for the .NET Compact Framework is still pretty good. Chapter 1 describes the .NET Compact Framework and its benefits. The new .NET programming paradigm provides many benefits for programmers who have worked with other frameworks. Getting involved with .NET Compact Framework programming is a great way to get into the world of .NET because the libraries are scaled back from the (sometimes) overwhelming number of classes and features found on the desktop .NET Framework. And there is an added bonus for making the move to the .NET Compact Framework: The fundamental elements of programming for the .NET Compact Framework programming are the same as the fundamental elements for all .NET-based technologies. So learning the .NET Compact Framework today will help you learn to build Web applications using ASP.NET, Windows Forms applications for the desktop, and managed-code stored procedures for Yukon (the code name for the next version of SQL Server).
If you have been using the core Windows API/Win32, then you might wonder whether to continue writing Win32 code or to jump into the .NET Compact Framework. For some things, including the following, you must continue using Win32.2
- Fastest executables
- Best real-time support
- Source code portability between platforms
- Ability to wrap Component Object Model (COM) for access by .NET Compact Framework applications
- Ability to create device drivers
- Ability to create control panel applets
- Support for custom user interface skins
- Support for security extensions
- Ability to build Simple Object Access Protocol (SOAP) Web Service servers
- Support for Pocket PC shell extensions
- Ability to use existing Win32 code
For Programmers Experienced with the .NET Framework
If you are experienced with writing programs that use the .NET Framework, you are going to find much that is familiar. The C# and Visual Basic .NET languages, for one thing, use the same syntax for two very popular languages that are available for desktop .NET development. The fundamental data types that support interoperability between different languages on the desktop also play a core part of interoperability with smart-device programs.
One thing that may be surprising to desktop .NET Framework developers is the extent to which they might need to rely on P/Invoke support to call the underlying Win32 API functions that Windows CE supports. While the desktop .NET Framework provides an extensive set of classes that minimizes the need to call outside the framework, the .NET Compact Framework provides a reduced set of classes to meet the size constraints of mobile and embedded devices.
To help programmers move from the .NET Framework to the .NET Compact Framework, throughout the book we provide some detailed discussions of differences between the two frameworks. In the many workshops we have taught, we have observed the knowledge and skills of programmers who are experienced with the .NET Framework transfer quite readily to the .NET Compact Framework.
The primary challenge comes from an experience we refer to as “stubbing your toe”—tripping over a familiar desktop feature (whether a class, an enumeration, an attribute, or an operating system feature) that is not present on smart mobile devices. When this happens, you have found a limit on the support available in the .NET Compact Framework (or, perhaps, a limit on the support of the underlying Windows CE operating system). The attitude you take in dealing with such experiences will play a big role in determining how successful you are in .NET Compact Framework programming—and how enjoyable you will find it. We have observed that the programmers who excel with device development are the ones who are able to see in these limitations an enticing challenge and an opportunity to explore new ways to solve old problems.
We extend our very best wishes to you on your .NET Compact Framework development, whether for the Pocket PC, the Smartphone, or some other Windows CE-powered smart device. We look forward to seeing you in one of our workshops or at an industry conference, or trading comments with you online (contact us via e-mail at info@paulyao.com).
Paul Yao, Bellevue, Washington
David Durant, Goldendale, Washington
March 2004
Notes
1. Historically, not all emulators have provided high fidelity to device software. In particular, Windows CE 1.x and 2.x emulators were based on an older technology that was good but not great. The last emulator to use this older technology was the Pocket PC emulator that shipped with Microsoft eMbedded Visual C++ 3.0. All emulators for Visual Studio .NET 2003 use the newer emulation technology.
2. For a detailed discussion of these, see the following white paper on the Microsoft Web site: http://msdn.microsoft.com/library/en-us/dncenet/html/choose_api.asp.
Product details
- ASIN : 0321174038
- Publisher : Addison-Wesley Professional; 1st edition (January 1, 2004)
- Language : English
- Paperback : 1379 pages
- ISBN-10 : 9780321174031
- ISBN-13 : 978-0321174031
- Item Weight : 4.25 pounds
- Dimensions : 6.75 x 2 x 9 inches
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on January 4, 2005I found this book to be very complete and gives the reader a firm foundation to start compact framework projects. The "Building Solutions with the Microsoft .NET Compact Framework" book by Fox is a good high level view, but this book gives you some real good code examples.
This book assumes very little .NET knowledge, but they don't waste a lot of time getting the user up to speed and I think can be easily understood with anyone with a decent Windows programming background.
I hope they come up with new book describing the differences between the current compact framework (1.x) and 2.0 which will be released with VS 2005.
- Reviewed in the United States on June 8, 2015Extremely useful.
- Reviewed in the United States on June 19, 2006While the coverage is quite good and the authors highlighted details, the book is too long-winded and seriously in need of editing. This book repeat too much of the same things in many chapters and can be cut to half the size in volume. Very tiring to read. Perhaps, if the authors gave more complete comprehensive examples instead of code fragments while discussing the features, it would be easier to read. I give 5 stars for material but 2 stars for editing; an average of 3.5 stars.
- Reviewed in the United States on October 24, 2004Paul Yao and Dave Durant have applied their years of programming and training experience to this .NET Compact Framework (.netCF) book. It covers most aspects of .NETcf needed to quickly get started writing Windows CE applications with managed code, from basic UI concepts, to P/Invoke and even database programming with SQL Server CE.
My main complaint with the book is that it is a little too introductory. Specifically, I would expect coverage of network programming topics, the .NET System.Net classes, and much deeper coverage of XML and Internet programming topics. As such, this is much more a beginner's book than one suited to experience Windows CE programmers. All in all, though, this title is still worth the money.
- Reviewed in the United States on August 23, 2004First you should know that I have not read the released version of this text. I was lucky enough to receive a manuscript and review the draft for the publisher - it was great! The title does not reflect the fact that this is not another "let's take a tour round the namespaces" book.
The authors do not assume reader familiarity with Windows CE or embedded development in general and cover these topics as appropriate; furthermore, they go into great detail describing how to achieve results via PInvoke, which is essential given the compactness of the .NETcf.
This book is essential for all .NETcf developers. However, there will be a small minority (e.g. targeting simple SQL-based apps with VB as their only background) that could find the info overwhelming. On the other hand, an experienced eVC developer may find a lot of info not specifically related to .NETcf.
Apart from everything one needs to know about drawing text and fonts, highlights include a great overview of the Windows CE platform. It is a "must" for desktop developers who are moving to the .NETcf. Other sources don't consider this at all. The memory management section is fantastic. No matter what programming background one has (eVC, VB, .NET desktop framework); this stuff is invaluable and not covered anywhere else at the time I read the draft. It is a shame for the authors that the book took so long to be published and some of this stuff is now available online...
Apologies for not going into greater detail on the contents but to sum it up, if you will buy a book on the CF 1.0 today then this is the one to have - I should know as I have read every other CF book on the market :-)
- Reviewed in the United States on June 7, 2004I spent some quality time with this book over the weekend and was very impressed. If you're new to .NET, there are good introductions to the technologies. If you're experienced you can pretty much skip these and go straight into programming for the compact framework. This book really provides a thorough understanding of Windows CE, so you really get an idea of what's going on behind the scenes. If you go through this book, you should be a pro at Compact .NET programming, and probably .NET programming in general. Though written in C#, this book should probably be helpful to a VB developer as well (I don't know if there's a VB version in the works).
One of the reasons that this book is so incredibly thorough is its size. At 1300+ pages (close to 1400 counting the index), this is by far the largest book I have from this series.
Fortunately, you should be able to thumb through this text as a reference manual even after you've completed it.
- Reviewed in the United States on October 4, 2006I am currently reading this book and I gotta say that it really went into great lengths on it's internal architecture. The author is also helpful enough to point out some pitfalls to avoid and offer recommendations for working with the WIN32 API that Microsoft provides.
I strongly recommend this book to anyone who wants to enter .NET Compact Framework programming and to be comfortable in attempting to do some professional projects.
The author definitely demonstrated his vast knowledge about the platform with this book.
- Reviewed in the United States on August 17, 2005Definitely the best all around book for C# development with the .NET Compact Framework.
Top reviews from other countries
- Nick HReviewed in the United Kingdom on April 7, 2015
1.0 out of 5 stars Don't bother
Working with the .NET compact framework is hard and this just wont help. To be any use it really just needed to deal with all the missing stuff but instead it's just a bad general C# WinForms book with some extra tips about compact framework. Having said that I doubt that I could do better and as far as I know nobody else has either but that still doesn't make it worth even what I paid for a used copy.