Literature

Top  Previous  Next

There's nothing like a good Book

One of our profession's constants is its ongoing change and evolution. New tools become available all the time, old tools simply die. New technologies change the way things are achieved. It's become a hard task to keep up with the change going on around us and we're faced with the need to permanently enhance our knowledge. Failure to do so will leave us in the wake and dust of our competitors, time will take care of the rest.

 

There are two ways to stay up-to-date: Professional and costly training or books. Although training might be the better choice because you can focus on learning without being distracted by other tasks all the time, books are not only the cheaper alternative. You can set your own pace, you can stick with interesting details for longer, you can experiment and reading the right book can be plain fun.

 

I'm convinced that you need a firm foundation of knowledge in every field you're doing your business. You might be able to come up with some fast results without taking the time to study beforehand, but in the long run you will simply fail. I guess everyone in our business knows the feeling of not really planning a program and starting to code too early... It starts with that odd feeling in your tummy when you're halfway through the job and it ends with the resolution to spend more time on the planning and analysis phase of the next project.

 

So I recommend you spend some extra time on the analysis and planning phase of your migration to the Windows environment. Some of the following books have become good pals of mine and they will serve you in this task as well.

The One and Only

There's one book you definitely have to read. It's THE book on Win32 programming:

 

"Programming Windows, 5th. Edition" by Charles Petzold, Microsoft Press, 

ISBN 1-57231-995-X

 

It's a step by step introduction to the Win32 way of programming. You can start reading it from page one and work your way through it to the last page. It's got 3 sections:

 

I. The Basics: You're introduced to the basic concepts of the Windows GUI.
II. More Graphics: Printing, bitmaps, palettes, fonts and metafiles are explained in detail
II. Advanced Topics: MDI, multitasking and multithreading, Dlls, sound and music, the Internet

 

After reading section I you'll be ready to write your own real Windows programs with Xbase++. But there's a lot of interesting stuff in the subsequent chapters. Charles Petzold's style of explaining things starting with simple example programs being extended and enhanced step by step will make you stick with the book until you read it all.

 

Petzold's book can be seen as the perfect tutorial to basic Windows programming starting at point 0.

 

All samples are written in plain vanilla C and you will be able to read them although you never programmed in that language before. I have translated most of them and you will find the Xbase versions of these programs in the Samples\PW5E folder.

Another Introduction and a good Win32API Reference Manual

Another good book on basic Windows programming is:

 

"Win32 Programming" by Brent E. Rector and Joseph M. Newcomer, Addison Wesley,

ISBN 0201634929

 

It's crammed with information and details. It starts as a tutorial but it delivers so much detailed information that you won't be able to read through it from page 1 to 1522. But it covers some territory that you won't find in Petzold's book: All Common Controls are explained, one by one. Unfortunately I found that book too late and had to work my way through them with the SDK documentation only.

 

The sample programs are written in plain C, just like the ones coming with Charles Petzold's book. Very readable, even for the non-C programmer.

Recommended further Reading

If you're yearning for more after having read Charles Petzold's book you should get:

 

"Programming Applications for Microsoft Windows, Fourth Edition" by Jeffrey Richter, Microsoft Press,

ISBN 1-57231-996-8

 

It illuminates areas of myth surrounding the Windows operating system like memory management, Jobs, Dlls, code injection and lots of other interesting areas. Some of these areas are not directly accessible (DLL Injection) or completely out of reach (Structured Exception Handling) for the Xbase++ programmer, but still it's a good thing to know about some of them. You won't be reading through this book, you will be picking areas of interest and focus on them. Jeffrey does a great job explaining these areas in detail and his programs (written in C++) are very readable as well.

 

There's one small section that's worth buying the complete book: "Part VI: Windowing" covers "Window Messaging" and "The Hardware Input Model and Local Input State". These 34 pages explain everything about GUI message handling left a little vague by Charles Petzold's book down to the last nut and bolt.

 

If you haven't been converted from the Xbase++ Parts to the native Windows GUI so far, these pages will finally convince you.

The one to own on Network Programming

If you intend do write servers and clients communicating over a network, you should definitely get this book:

 

"Network Programming  for Microsoft Windows" by Anthony Jones and Jim Ohlund, 2nd. Edition, Microsoft Press,

ISBN 0-7365-1579-9

 

It's a nice reference regarding Windows networking and comes with a lot of samples on the companion CD. I ported some of the sample programs to Xbase++. It covers a lot of ground and goes well beyond standard network programming. It includes RAS and IP helper functions. The electronic book on the companion CD includes some bonus chapters not found in the printed book.

 

It might be asked too much, but I'm missing clear definitions of terms and graphical illustrations of relations, dependencies and interoperations. Many details, little overview.

If you want to be a Windows Expert

The next logical step after reading Jeffrey Richter's book is this one:

 

"Inside Microsoft Windows 2000, Third Edition" by David A Solomon and Mark E Russinovich, Microsoft Press,

ISBN 0-7356-1021-5

 

This book will fill in the last missing pieces to complete your Windows picture.

Getting a grip on COM, Ole, ActiveX

I got all my basic knowledge in this area from this book:

 

"Understanding ActiveX and OLE - A Guide for Developers & Managers" by David Chappell, Microsoft Press, ISBN 1-57231-216-5

 

It doesn't throw tons of C or C++ at you, instead it provides you with an overview and simple explanations of the techniques used. And with only 300 pages a nice companion for a week filled with interesting reading.

Other Windows Programming "Standards and Classics" on my Shelf

"Win32 System Programming. A Windows 2000 application developer's guide" by Johnson M. Hart, Addison Wesley,

ISBN 0-201-70310-6

 

"Windows NT WIN32 API Superbible" by Richard J. Simon, Waite Group Press,

ISBN 1-57169-089-1

 

"Windows Graphics Programming" by Feng Yuan, Hewlett-Packard Professional Books / Prentice Hall,

ISBN 0-13-086985-6

 

"Programming the Microsoft Windows Driver Model, Second Edition" by Walter Oney, Microsoft Press,

ISBN 0-7356-1803-8