ATL Server: High Performance C on .NET


PRANISH KUMAR,
JASJIT SINGH GREWAL,
BOGDAN CRIVAT,
ERIC LEE
Apress

Copyright 2003 Pranish Kumar Jasjit Singh Grewal Bogdan Crivat Eric Lee

All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without the prior written permission of the copyright owner and the publisher.

ISBN (pbk): 1-59059-128-3

Printed and bound in the United States of America 12345678910

Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name , we use the names only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.

  • Editorial Directors: Dan Appleman, Gary Cornell, Simon Hayes, Martin Streicher, Karen Watterson, John Zukowski

  • Assistant Publisher: Grace Wong

  • Project Manager and Copy Editor: Nicole LeClerc

  • Proofreader: Lori Bring

  • Compositor: Argosy Publishing

  • Indexer: Valerie Perry

  • Cover Designer: Kurt Krames

  • Production Manager: Kari Brooks

  • Manufacturing Manager: Tom Debolski

Distributed to the book trade in the United States by Springer-Verlag New York, Inc., 175 Fifth Avenue, New York, NY, 10010 and outside the United States by Springer-Verlag GmbH & Co. KG, Tiergartenstr. 17, 69112 Heidelberg, Germany.

In the United States, phone 1-800-SPRINGER, email <orders@springer-ny.com>, or visit http://www.springer-ny.com. Outside the United States, fax +49 6221 345229, email <orders@springer.de>, or visit http://www.springer.de.

For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA 94710. Phone 510-549-5930, fax 510-549-5939, email < info @apress.com>, or visit http://www.apress.com.

The information in this book is distributed on an as is basis, without warranty. Although every precaution has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly by the information contained in this work.

The source code for this book is available to readers at http://www.apress.com in the Downloads section.

Dedication

I d like to dedicate this book to my lovely wife, Diana. She s a constant source of inspiration in my life. I d also like to dedicate this book to my parents for everything they ve done for me, as well as Ravinish and Camille for their love and support. Finally, I d like to dedicate this book to all my family and friends : There are too many to mention, but I think of you always.

Pranish Kumar

I would like to dedicate this book to my parents. Thanks for believing in me, and thanks for not believing my first grade teacher when she told you I d never make it into the honors classes.

Jasjit Singh Grewal

I would like to dedicate this book to Nei, my parents, and Andrei. Thank you for being there!

Bogdan Crivat

I would like to dedicate this book to my family, my friends, and the faculty and staff of the UWO Computer Science department, with whom I had the privilege of studying and, in many cases, restudying under. Thanks in particular to Hanan and Doug for your wisdom and patience!

Eric Lee

About the Authors

click to expand

Pranish Kumar is currently a program manager on the Visual C++ Libraries team at Microsoft. He joined Microsoft in 2000, focusing on ATL Server. Before joining Microsoft, Pranish worked in different areas of software development in Sydney, Australia. He holds bachelor s degrees in computer science and electrical engineering from the University of New South Wales.

Outside of software development, Pranish enjoys single-malt whisky, cigars, and his continuous struggle to learn Romanian.

click to expand

Jasjit Singh Grewal graduated in May 1999 from the University of Maryland at College Park with a degree in computer science. He joined Microsoft in June 1999 and began working on the Visual C++ Libraries team and, in particular, on ATL Server. During his time on the Libraries team, Jasjit contributed to nearly all aspects of the design and implementation of the ATL Server library and was the primary designer and implementer of the ATL Server Web services support. Jasjit s interests outside of software development are drawing, reading, and writing. He also enjoys playing roller hockey and hiking .

click to expand

Bogdan Crivat is a software design engineer in the Data Mining Server Development team at Microsoft. Bogdan joined the ATL Server team at Microsoft in 1999, focusing mostly on the SOAP support and the SMTP support classes. He worked there until ATL Server was released (with Visual Studio .NET). Before Microsoft, Bogdan worked on large-scale client/server applications for Softwin, the largest Romanian software development company. He holds a bachelor s degree in computer science from the University of Bucharest, Romania.

When he s not working, Bogdan likes to read pretty much everything, and he especially enjoys reading about his recurring passion, the history of religions.

click to expand

Eric Lee has worked in testing and development at Microsoft for just over 4 years . Before Microsoft, Eric worked at a small company in Toronto, Canada. Most of Eric s experience has been in GUI components and server-side programming. He holds a bachelor s degree in computer science from the University of Western Ontario.

click to expand

Foreword

THE MICROSOFT ACTIVE TEMPLATE Library (ATL) was originally developed by Microsoft s Visual C++ team to meet the goal of providing component developers with a C++ class library that they could use to build compact COM-based components. The ATL team was able to achieve this goal by using object-oriented design and advanced C++ coding techniques. The release of ATL made it possible for developers to create components from a flexible and extensible C++ class library that were small in footprint and working set requirements. These were two very important characteristics considering that at the time, many developers were developing these components for the sole purpose of publishing them for download over the Internet. Internet users connected to the Internet via telephone modems (which was standard practice at the time) benefited greatly from this compact code because installing and running ATL components didn t require additional runtimes or a large DLL to be downloaded.

Soon after the original versions of ATL came out, I was fortunate enough to join the team of Microsoft developers who started to look at other parts of the Microsoft C++ class libraries to find feature areas where the techniques developed in the original versions of ATL could be applied to benefit Web application developers. We believed if we could apply the coding techniques and practices we learned in the development of ATL to a class library that could be used in applications on the server side of a Web application, that these Web applications would also benefit. Thus was born the idea for the ATL Server class library. The goals behind the development of ATL Server were to provide a lightweight, highly customizable, full-featured C++ class library for writing ISAPI-based applications; to provide a tightly integrated development experience; to separate the development of static content from the development of dynamic content; and to provide a best-of-breed platform for developing SOAP-based Web services. The library provides a complete set of features that enable C++ developers to create fast and flexible ISAPI applications for Internet Information Server (IIS).

The completion of this book represents a milestone in the evolution of ATL Server. The authors and I spent a significant portion of our lives developing this technology. It s incredibly satisfying to now see it in the hands of developers who will use it as the foundation for their work. Likewise, it s incredibly satisfying to see this book at last be made available to developers so that they may use it as a tool and as a guide to building ATL Server applications. By reading this book, you ll learn all the details of developing applications using the ATL Server class library. This book will help you get over the learning curve of using an advanced C++ class library to develop your Web applications, and it will open the door to the fun and excitement of writing Web applications that are faster than anyone else s!

Mike Dice

Development Lead, Microsoft Web Services

Acknowledgments

WE WOULD LIKE TO THANK the many people who made this book possible. Many of these people offered great advice, reviewed chapters, and offered other forms of support to make this book happen.

First off we d like to thank members of the Libraries team (past and present) who offered to review chapters for us and provided some great feedback on the book. A heartfelt thanks to our colleagues and friends Mike Dice, Momin Al-Ghosien, Walter Sullivan, Andrew Laucius, Jerry Weiler, and Sridhar Madhugiri. We d also like to thank the rest of the Libraries team for their efforts in creating the library and their continued support.

We re also grateful to the various other people who either offered to review chapters and give us feedback on the book, gave us great feedback on the library itself, or both. We d like to thank Todd Brooks, CTO and vice president of software development at Truistic Software, located in Houston, Texas, who has over 8 years of development experience with Microsoft technologies. We d also like to thank Tomas Restrepo, a software developer at InterGrupo S.A., who is interested in object-oriented programming, design patters, C++, the .NET platform, and XML Web services. In addition, we d like to thank Michael Guo, development manager for Microsoft Passport.

A very special thanks must go to Nicole LeClerc, our editor at Apress, who helped us turn our book around quickly. In addition, we must thank Kari Brooks, Grace Wong, Simon Hayes, and all the other great people at Apress who helped this book come to life. We also must thank Gary Cornell for approaching us with the idea of this book and pressuring us to get it finished, without ever actually pressuring us to get it finished.




ATL Server. High Performance C++ on. NET
Observing the User Experience: A Practitioners Guide to User Research
ISBN: B006Z372QQ
EAN: 2147483647
Year: 2002
Pages: 181

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net