The Definitive Guide to the Compact Framework 125
The Definitive Guide to the Compact Framework | |
author | Dan Fergus & Larry Roof |
pages | 1011 |
publisher | Apress |
rating | 10 |
reviewer | William Ryan |
ISBN | 1590590953 |
summary | This article reviews Dan and Larry's new book on the Compact Framework (SP) with the .NET Compact Framework (.NETcf). This book is the longest in terms of content on the Compact Framework to Date |
The authors made Chapter 1 as interesting as the beginning of a computer book is going to get. The two best parts in the introduction, IMHO, are the discussions of the differences between eVB (eMbedded Visual Basic) and the Compact Framework as well as the differences between the full framework and the CF.
Chapter 2 is where the rubber hits the road, so to speak, and walks you through getting started and a Hello, World application. This is where the authors' attention to detail really becomes obvious. Instead of a standard such program that simply pops up a MessageBox displaying "Hello, World," the authors come up with a cool sample that gives you a good introduction to CF programming.
Chapter 3 talks about designing interfaces. Typically, a lot of developers may take this for granted (have you ever met a developer that didn't think they were a UI Expert?), but there is limited real estate on a PDA, and I think Larry's guidelines are excellent.
Chapter 4 is probably best described as "The last guide to CF controls that you'll ever need." It's packed with examples on how to use everything in the toolbox, and you can tell the authors really put some thought into coming up with interesting and useful examples. While experienced developers will certainly find this chapter helpful, beginning developers would be well advised to buy the whole book even if this were the only chapter. Although I really liked this chapter, the authors sort of skimped on one important area here, but it's not a big deal: If you want to write custom controls and have them placed in the Visual Studio designer, you have to jump through a few hoops. The authors tell you what these hoops are, but don't tell you how to jump through them. In all fairness though, if they covered everything to the level of detail this subject entails, the book would be 20,000 pages and take years to write.
Not every control that you have in your toolbox on the desktop is available here, and if you want to spice up your UI, you'll probably want to roll your own controls. Chapter 5 builds on the topic of custom controls, and delves into building your own. The next two chapters still concentrate on UI issues, mainly menu items and drawing your own graphics. If you intend to write your own control or do anything interesting with your interface, getting familiar with the graphics library is a must.
After discussing the UI, the authors veer off into the CF File System. By its very nature, the PDA has a different file system than the desktop, and is something that many new developers have a fair amount of headaches with. Roof and Fergus show you how to move around files and directories, and how to create a text file or binary. The first time I read the chapter, I was disappointed that XML wasn't discussed when writing files, but there's good reason for this; they dedicated an entire Chapter to XML later on.
With the UI and file system explained, the authors next move into the important area of data access. After all, unless you are simply playing games on the PDA, it probably needs to interact with a database somewhere and I can assure you, just about every common task that you may encounter is discussed in depth. The show you how to bind controls to data, retrieve it from a Web Service, retrieve it from a SQL Server on a local network, use SQL CE to take advantage of replication and using XML as a Data Access technology. Since a PDA may get its data from many different sources, the ability to manipulate XML is very handy. Every problem that I ever encountered regarding data access in the CF was covered here and they have some really interesting ideas on how to implement things.
The book moves on to networking. There were only two chapters dedicated to networking and I would have liked to see more, but they definitely address just about everyt task that you'll routinely face. In all fairness to the authors though, there's about 100 pages dedicated to mobile networking and web services, and it's certainly not glossed over.
Chapter 17 takes a turn into Unmanaged code and P/Invoke and is probably my favorite chapter of the book. Why? Well, because a lot of things aren't yet supported on the CF and many probably won't be. So using Interop is the only way to get stuff done. I've developed CF programs for almost a year now, and this chapter got me through two problems that I hadn't been able to figure out previously. Beginning CF developers may not find this chapter as interesting as I did because it involves API calls, but trust me, this part is a life saver! Then they go right into showing you a really practical example of using Interop and their examples address things that I constantly see asked in newsgroups.
I was impressed by the authors' discussion of some really popular 3rd-party tools. Microsoft has a POOM example, but it leaves a lot to be desired. The authors show you how to use many of its features, and then present a very popular POOM Outlook implementation that is about as cool as it gets.
The rest of the book is pretty much a wind-down. It shows you how to build a help system, create setup applications and HTML reports. However, the authors did something really cool and slipped in a chapter on configuration files and how to use them. Registry access in the CF takes some time to learn (and if you didn't read Chapter 17, good luck!) and traditional configuration files aren't natively supported. However, they create their own implementation and it's very easy to understand. I've thought about implementing a solution like this for a while, but never got around to doing it. Fortunately, Larry and Dan took care of it for me. This is definitely a solution that you will probably want to use over and over.
The last part of the book is the appendices. This stuff is thorough and packed with solutions to all of those little problems that are so pesky when you are first starting out. These serve not only to get you past a whole slew of common frustrations, but they reinforce what was presented in the book I think the degree of detail that they included in the end was another superb touch by two guys who really care about their readers.
In summary, this book is a must by for many reasons. It covers a very broad range of information and it covers the majority of it in great detail. They walk you through getting started, building cool applications and deploying them. They give you a complete arsenal or tools to help build solutions with, and I can't think of anything that they ignored. They also give you the appendices, which, as I mentioned above, will get you through a lot of common pitfalls after you've built your application. As of this writing, I have compiled and run all of the code through Chapter 15 and found it well documented and accurate, but Apress can always be counted on for this. Editorially, the content was interesting and well presented and I found the layout very pleasing.
Without a doubt, this book is really great and something that you'll surely want to purchase if you are going to write CF code.
You can purchase The Definitive Guide to the Compact Framework from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
$6 less at amazon + more reviews (Score:1, Flamebait)
For more reviews of this book, check out verygeekybooks.com [verygeekybooks.com]
Re:$6 less at amazon + more reviews (Score:1, Informative)
Re:$6 less at amazon + more reviews (Score:1)
I suppose you think google is not a real business for putting ads around the search results.
Re:$6 less at amazon + more reviews (Score:1)
Re:$6 less at amazon + more reviews (Score:1)
Re:$6 less at amazon + more reviews (Score:1)
Re:$6 less at amazon + more reviews (Score:1)
Froogle... (Score:5, Informative)
And if you think tha's some kind of affiliate link, just go to froogle.google.com [google.com] and search on the isbn: 1590590953.
Overstock.com: Price:$34.49 + 1.40 shipping (Score:2)
by Roof, I.
18% off Amazon
Amazon Price: $41.99
(as of 11/17/2003 01:13 Mountain Time, excludes shipping)
List Price: $59.99
Price: $34.49
You Save: $25.50 (42%)
Edition: Paperback
Catalog #: 339468
Quantity:
Availability
In stock. Usually leaves our warehouse within 2-3 business days. Warehouse replenishment issues may stretch that period to 7 business days on some items. If you choose expedited shipping for your order, we will n
For Development Help And expertise... subscribe... (Score:4, Informative)
PocketPC-Development [yahoo.com]
It is still in its infancy, but we have several whizz developers who know everything about WinCE and the
If you're interested in joining, click the link!!
Some other resources (Score:1)
The microsoft mailing list is actually quite helpful I've found. You can google it here [google.com]
OpenNETCF.org also has a great forum that has enough traffic that your questions usually get answered (which is something to say for Windows communities).
It's here [opennetcf.org]
Watch your acronymns (Score:2, Troll)
Re:Watch your acronymns (Score:3, Funny)
Re:Watch your acronymns (Score:1, Flamebait)
Sorry, but that was a pathetic thing to nitpick about in this context.
Re:Watch your acronymns (Score:2)
Why would it take a 1000-page book to understand Compact Flash?
Re:Watch your acronymns (Score:1)
Re:Watch your acronymns (Score:1)
Re:Watch your acronymns (Score:1)
Re:Watch your acronymns (Score:1)
APRESS's Python book (Score:1)
Incidentally, maybe it's just my browser (IE, I'm at work, I don't get a choice) but there's some creepy code breakage on the new releases [apress.com] page.
Re:APRESS's Python book (Score:1)
MS's definition of "embedded"; Oh God help us all (Score:1, Flamebait)
Subjects ranging from SQL CE, Embedded Visual Basic or XML, basically all the things that you want to embed only if the bed is very large.
In short, the book is the image of what it purports to describe : big and heavy.
Re:MS's definition of "embedded"; Oh God help us a (Score:2)
I do believe you are making an assumption though, and you know what that means...
MS hasn't a clue what embedded involves (Score:2, Interesting)
MS still don't seem to understand the fundamental problems faced with making embedded applications. You can't just "get rid of a bit of functionality" - you either should have started with slimness in mind, or you've got to redesign a lot of code. I've worked on many a platform where some piece of Microsoft code had to be integrated. Usually it ends up being the make-or-break of whether everything fits or not. Usually it's a t
Re:MS's definition of "embedded"; Oh God help us a (Score:3, Insightful)
Re:MS's definition of "embedded"; Oh God help us a (Score:3, Insightful)
Already handheld devices are at the performance level of desktops of the early-to-mid 1990s, albeit without rotating mass storage. But SD-Flash is in the multi-gigabyte range, which is more storage th
Re:MS's definition of "embedded"; Oh God help us a (Score:1)
NO! One major factor in embedded systems is cost - memory and CPU are always sacrificed first. I suggest that MS should learn to accept that they cannot write bloated operating systems and expect embedd
Re:MS's definition of "embedded"; Oh God help us a (Score:2)
That, I believe, is why MS shoehorns in more requirement and code than needed or is reasonable -to get developers and users used to their presence, so that 5-10 years from now, when battery, storage and processing power are up to par, MS will be ready.
It's a strategy that dooms today's users to slow applications with technology bound inappropriately to the local machine (rather than on the server), but t
Re:MS's definition of "embedded"; Oh God help us a (Score:2)
Compact Framework is designed for WinCE devices, WinCE devices meet a few requirements, you have to meet those or you won't run it... this bashing is somewhat pointless.
Another good CF book (Score:2, Informative)
Not finished yet but you can download all of the preview chapters of the book and send the authors feedback.
Definitive Guide??? (Score:2)
How can you have a definitive guide to something that is constantly evolving? By the time the book prints, it will no longer be definitive...
Re:Definitive Guide??? (Score:1)
Challenging, yes. (Score:2)
Overstock.com is even cheaper (Score:2, Informative)
So what is it? (Score:2, Insightful)
I guess the quickest way to answer it is as usual: What Java technology did MS rip off and hype under a new name today?
Compact... I'm guessing J2ME?
- LarsW
Ironically, Slashdot seems to currenntly render the preview page incorrectly for Firebird, so I had to start IE to post this...
Now I won't use it for sure (Score:1, Interesting)
Check out these gems:
If you are new to the .NET Compact Framework, you are about to embark upon a challenging yet rewarding path by writing CF applications. For the experienced CF developer, you know there is a lot to learn and its constantly evolving.
1,000 pages including the index, tables of contents etc. It's composed of 22 chapters and 6 appendices.
if they covered everything to the level of detail this subject entails, the book would be 20,000 pages and take years to write.
Re:Now I won't use it for sure (Score:5, Insightful)
Most of the time, the problems I need to solve are specific enough that the cookie-cutter approach won't work - the client always wants some special functionality that the framework's architecture can't provide.
Well, good for you. Not trying to troll or anything, but really: good for you.
Honestly, you think even a syntax isn't some kind of framework?
A framework is every bit as useful as your standard libraries are, and usually they do the job quite nicely for the majority of people who have to care. Thankfully, you don't have to care anymore - but that's not some kind of grand liberation.
But really, good for you.
Re:Now I won't use it for sure (Score:2)
Yes, I suppose syntax is some kind of framework when the denotative definition of the word is used. But to most programmers, the word "framework" means a collection of libraries which provide some nice functionality at the expense of being forced to do things in a certain way.
And that's what I took issue with. There seems to be this mantra that "bigger is better", especially when it comes to the API. What inevitably happens is that 90% of the functionality provided by the framework could be implement
Re:Now I won't use it for sure (Score:1)
Re:Now I won't use it for sure (Score:2)
Well take automatic cross-compiling for the entire PocketPC line to start with...
Throw in that you can use the same skills and APIs as your other
Bottom line: if you're a linux coder and have never looked at
If
Re:Now I won't use it for sure (Score:3, Funny)
Re:Now I won't use it for sure (Score:1)
It's Compact compared to the full framework. And yes, you do have to use PINvoke to get many things done - The CF just came out for God's sake. As far as the mastering issue, I guess that depends on how fast you l
Re:Now I won't use it for sure (Score:2)
Which was kind of my point. If I've already got a lot of code which doesn't use (or doesn't need) the framework, why would I use it? If what I need to do can't be done within the framework, why bother learning it?
Is it just me? (Score:1)
Re:Is it just me? (Score:1)
Microsoft's UI Design guidelines (Score:4, Insightful)
They ask everyone to follow certain guidelines while they ignore them. I gave up on their suggestions years ago and instead follow general best practices depending on the situation.
Re:Microsoft's UI Design guidelines (Score:1, Interesting)
That's why they are called "guidelines", I guess.
Re:Microsoft's UI Design guidelines (Score:2)
Office XP and 2003 both adapt to your color scheme. They simply use custom graphics to display them.
Re:Microsoft's UI Design guidelines (Score:2)
Meh... (Score:2)
Apple is about the same in terms of overall compliance, but generally writes their guidelines to suit how they did it in their latest apps (PS: this is why their guidelines often seem senseless or arbitrary).
The most important thing is interface standards within individual applications. It's also importan
Re:Meh... (Score:1)
Re:Microsoft's UI Design guidelines (Score:2)
Obviously, this is just one more thing they copied from Apple...
Irony. (Score:2)
Shameless Plugs (Score:2, Insightful)
And before you call me biased, know that I love c# and
Re:Shameless Plugs (Score:1)
Re:Shameless Plugs (Score:1)
Re:Shameless Plugs (Score:1)
Anyone used the .NET CF on WinCE.NET 4.1? (Score:3, Insightful)
How much of the regular
I already have a number of languages on the Zaurus C760 and Sigmarion III. The Zaurus isn't as good as CE as far as having a lot of options for developing "real" apps on the device itself. I could probably compile GNU Mono for the Z pretty easily, but without the ability to create "native" apps for Qtopia, it's no fun.
I already do a lot of coding on WinCE (and Linux PDAs) in various languages, but using
Re:Anyone used the .NET CF on WinCE.NET 4.1? (Score:1)
For some of the things that are missing (like COM interop) there are third party packages that give you the functionality back.
My biggest gripe is with Windo
Re:Anyone used the .NET CF on WinCE.NET 4.1? (Score:2)
There are apparently numerous "top secret" languages being developed for the
Give it time, there will eventually be support for more languages.
Re:Anyone used the .NET CF on WinCE.NET 4.1? (Score:2)
.NET (Score:1)
Buzzword Bingo (Score:2)
You can't just hack some software together nowadays, everything's a goddamned quest with trials and tribulations.
At least now I know who does those fucking motivational posters.
Developer who doesn't do UI (Score:2)
Here I am!
Pretty much everything I write either implements the server side of a protocol, or reads from an input stream and writes to an output stream (maybe looking at some command line parameters).
(OK arguably the command line parameters constitute UI, but not in the spirit of the article)
I know a bad UI when I see it (and I'm vocal in my criticism when I do) -- but there's no way I could design good UI myself. Leave that to the