Rob S. Miles
PUBLISHED BY Microsoft Press A Division of Microsoft Corporation
One Microsoft Way Redmond, Washington 98052-6399
Copyright © 2007 by Donald Thompson and Rob Miles9780735623651
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
Library of Congress Control Number: 2007924653
Printed and bound in the United States of America.
1 2 3 4 5 6 7 8 9 QWT 2 1 0 9 8 7
Distributed in Canada by H.B. Fenn and Company Ltd.
A CIP catalogue record for this book is available from the British Library.
Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to firstname.lastname@example.org.
Microsoft, Microsoft Press, IntelliSense, MSDN, MSN, Outlook, SharePoint, SideShow, Visual Basic, Visual C#, Visual Studio, Windows, Windows Media, Windows Mobile, and Windows Vista are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.
This book expresses the author's views and opinions. The information contained in this book is provided without any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
Acquisitions Editor: Ben Ryan
Developmental Editor: Devon Musgrave
Project Editor: Victoria Thulman
Technical Reviewer: Terry Cook
Editorial and Production Services: Carlisle Publishing Services
Body Part No. X13-68394
Whenever anyone passionately engages in a project of any consequence, it is always their most loving that suffer the most. During the past 6 years leading to this point, I have deeply neglected my entire family, starting with my wife Kelly, who takes care of quite literally everything in order to make my life as frictionless as can be. My father is the real writer in the family (but he writes about real things, not this technology stuff). My mother epitomizes "never give up" like no other human ever-no, really. My loving sister, her big wheelin' husband, and their super-smart, gorgeous new child 'Tasia (Savannah). So it is to all of you that I dedicate this work. Thank you for all that you have allowed and for all that you have given.
To paraphrase Victor Borge: "I'd like to thank my parents for making this possible, and my children for making this necessary." To my parents, I hope it is partial payback for all those music lessons that didn't end up going anywhere. To those who have had to live with me over the last few months, particularly my wife Mary, I say sorry and thanks for putting up with me.
About the Authors
At the age of 10, two significant events occurred in my life: I became a professional child actor in Hollywood, and I received my first computer (a C64). Over the next eight years, I performed in numerous TV shows, commercials, plays, and movies with legends such as Burt Lancaster, Gene Kelly, Michael Landon, Tom Hanks, Rob Reiner, and yes-even Mr. T. Yet I was never more thrilled or excited than when I opened my Compute! or Byte magazine to a multipage program listing, at which point I would struggle for the next four days painstakingly typing in and debugging every densely printed line of code, the bitmaps, and the SID chip sound data. I will never forget the day I asked: "What if I just changed this a little bit?"
Flash forward 25 plus years: I've had the opportunity to be a part of several major revolutions in computing technology, especially while at Microsoft. I still enjoy my connection to the film industry, but now only as a lover of great cinema (when I can find it). I live happily with my wife, Kelly, and our two adorable cats (muses), Max and Lucy, far enough away from "the office" to make it feel somewhat like I don't spend all my time working (though it is, to be sure, all just an illusion).
I started programming at school, writing my first programs on cards using a hand punch, posting them off to a distant mainframe and getting a message back two weeks later that I'd missed a semicolon. A good many years have gone by since then. I'm still missing semicolons, but the turnaround has improved quite a bit. I've been at the University of Hull in the UK for over 25 years now, moving from Computer Center to Electronic Engineering to Computer Science, where I now work. In that time, I've also had a hand in quite a few industrial projects; it is a matter of great personal pride to be the man who wrote the software that puts the date-stamps on Budweiser beer, amongst many other products. I've also been known to turn out bad verse, the highlight of this being a whole page of poetry for the UK newspaper, The Independent. I live happily in East Yorkshire with number one wife, Mary (she calls me "husband zero"). Number one children, David and Jenny, return from their studies every now and then so that we can play happy families properly.
The authors wish to thank all of the terrific folks at Microsoft Press (and their affiliates) for seeing the value in this project, guiding us through the process, and for making the text actually readable, in particular Ben Ryan, Devon Musgrave, and Victoria Thulman. A special thank you goes to our technical reviewer, Terry Cook, for his thorough and thoughtful critiques of the material.
Special Acknowledgments from Donald Thompson:
First and foremost, I wish to acknowledge the original author of the "TinyCLR"-Davide Massarenti-without whom none of this would exist. Davide was originally a developer on my team working on the server aspects of SPOT. It wasn't long before we all knew that we were heading in the wrong direction with client development. Davide single-handedly took it upon himself to correct the situation, and I "hid" him for not quite three weeks while he implemented a proof-of-concepts version of an ECMA-compliant Common Language Runtime. A few weeks later, we presented our new approach to the head of Microsoft Research, Rick Rashid, and soon after to Bill Gates and Steve Ballmer. It takes a lot to see an opportunity, have what it takes to craft a solution, and then take a political risk and dedicate one's life completely for an unknown period of time in order to make an idea happen.
Next, I wish to thank the entire .NET Micro Framework team and especially Colin Miller (PUM), Roger Wolff (Lead SDE), Lorenzo Tessiore (Lead SDE), and Jonathon Kagle (Lead PM), for all their great input, feedback, and suggestions in getting the book all in and right. Thank you!
Special Acknowledgments from Rob Miles:
I'd like to thank the people at Microsoft for making such nice toys and for "taking a chance on an unknown kid." I'd also like to thank the people at Hull for letting me do my own thing for the time it has taken.