.NET 2.0 Interoperability Recipes
|
|
- Ronald Dickerson
- 5 years ago
- Views:
Transcription
1 .NET 2.0 Interoperability Recipes A Problem-Solution Approach Bruce Bukovics
2 .NET 2.0 Interoperability Recipes: A Problem-Solution Approach Copyright 2006 by Bruce Bukovics 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-13: ISBN-10: Printed and bound in the United States of America 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. Lead Editor: Ewan Buckingham Development Editor: Ralph Davis Technical Reviewers: Christophe Nasarre, Nicholas Paldino Editorial Board: Steve Anglin, Dan Appleman, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser, Matt Wade Project Manager: Sofia Marchant Copy Edit Manager: Nicole LeClerc Assistant Production Director: Kari Brooks-Copony Production Editor: Ellie Fountain Compositor: Kinetic Publishing Services, LLC Proofreader: Elizabeth Berry Indexer: John Collin Cover Designer: Kurt Krames Manufacturing Director: Tom Debolski Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor, New York, NY Phone SPRINGER, fax , orders-ny@springer-sbm.com, or visit For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA Phone , fax , info@apress.com, or visit 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 in the Source Code section.
3 For my son, Brennen
4 Contents at a Glance About the Author xi About the Technical Reviewers xiii Acknowledgments xv Introduction xvii CHAPTER 1 Using C-Style APIs CHAPTER 2 C-Style APIs: Structures, Classes, and Arrays CHAPTER 3 Win32 API CHAPTER 4 Using C++ Interop CHAPTER 5 Using COM CHAPTER 6 Exposing Managed Code to COM CHAPTER 7 Marshaling to COM Clients CHAPTER 8 COM+ Enterprise Services CHAPTER 9 COM+ Enterprise Services Transactions INDEX v
5 Contents About the Author xi About the Technical Reviewers xiii Acknowledgments xv Introduction xvii CHAPTER 1 Using C-Style APIs Identifying the Unmanaged Function Using the Function from Managed Code Simplifying Reuse of Unmanaged Functions Changing the Calling Convention Renaming a Function Changing the Character Set Used for Strings Using Data Types That Improve Performance Handling Errors from Unmanaged Functions Using C++ Interop As a Managed Wrapper Catching Unmanaged Exceptions with C++ Interop Freeing Unmanaged Memory Requesting Permission to Access Unmanaged Code Securing Access to Unmanaged Code Calling Functions Dynamically CHAPTER 2 C-Style APIs: Structures, Classes, and Arrays Passing Structures Returning a Structure from Unmanaged Code Specifying the Exact Layout of a Structure Controlling Field-Level Marshaling Within Structures Allocating Memory Within Structures Passing Classes to Unmanaged Code Passing Simple Arrays Handling String Arrays Passing Arrays of Structures vii
6 viii CONTENTS CHAPTER 3 Win32 API Accessing ANSI or Wide Functions Retrieving the Win32 Error Code Handling Callbacks Using Windows Constants Handling Handles Passing Managed Objects Marshaling Win32 Types Replacing Win32 Calls with.net CHAPTER 4 Using C++ Interop Using C++ Classes Mixing Managed and Unmanaged Code Detecting Compile-Time Traits Using Managed Objects from Unmanaged Code Marshaling Strings Marshaling Structures and Embedded Pointers Handling Callbacks with C++ Interop Using C++ As a Custom COM Wrapper CHAPTER 5 Using COM Using COM Components from.net Importing a Type Library Handling COM Events Marshaling COM Data Types Marshaling COM Variants Marshaling COM Arrays Extending COM Classes Changing the Apartment Model Refactoring for Performance Creating a Late-Bound COM Object Sharing an Interop Assembly Deploying Your Application Converting HRESULTs to Exceptions Refactoring HRESULTs Retrieving the HRESULT Providing Additional Error Information
7 CONTENTS ix CHAPTER 6 Exposing Managed Code to COM Exposing.NET Classes Using Late Binding Exposing.NET Classes Using Early Binding Exposing.NET Classes with Interfaces Managing COM Identity Controlling COM Visibility Preparing Assemblies for COM Interop Exposing Managed Events to COM Providing HRESULTs for Exceptions Preserving Success HRESULTs CHAPTER 7 Marshaling to COM Clients Controlling Parameter Direction Marshaling Strings Marshaling Arrays Marshaling Variants Marshaling Currency Marshaling Null Variant Strings Marshaling Classes and Structures Passing Optional Parameters CHAPTER 8 COM+ Enterprise Services Exposing Managed Code to COM Implementing a Server Application Installing a Serviced Component Registering Components Dynamically Activating Components Just-in-Time Using Object Pooling Implementing Private Components Using Role-Based Security Performing Manual Security Checks Writing Managed Queued Components
8 x CONTENTS CHAPTER 9 COM+ Enterprise Services Transactions Monitoring Transaction Status Enabling Automatic Transactions Placing an Automatic Vote Placing a Manual Vote Defining a Unit of Work Controlling the Transaction Isolation Level Implementing Transactional Code Blocks Building Your Own Resource Manager Using Services Without Components INDEX
9 About the Author BRUCE BUKOVICS has been a working developer for over 25 years. Over the last quarter-century he has designed and developed applications in such widely varying areas as banking, corporate finance, credit card processing, payroll processing, and retail automation. He has firsthand developer experience with C, C++, Delphi, Visual Basic, C#, and Java, and rode the waves of technology as they drifted from mainframe to client/server to n-tier, from COM to COM+, and from web services to.net Remoting and beyond. He considers himself a pragmatic programmer. He doesn t stand on formality and doesn t do things a certain way just because they have always been done that way. He s willing to look at alternate or unorthodox solutions to a problem if that s what it takes. Bruce is currently employed at Radiant Systems, Inc., in Alpharetta, Georgia, as a senior developer and architect in the central technology group. xi
10 About the Technical Reviewers CHRISTOPHE NASARRE is a software architect for Business Objects, a company that develops desktop and web-based business intelligence solutions. During his spare time, Christophe writes articles for MSDN Magazine, MSDN/Longhorn, and ASP Today, and since 1996 he has reviewed books on Win32, COM, MFC, and.net. NICHOLAS PALDINO is a developer in the New York City area for Exis Consulting, Inc., a boutique software provider that offers software solutions in the fixed income space. Nicholas has also been awarded the Microsoft MVP award for the past four years for his frequent contributions in the microsoft.public.dotnet.languages.csharp newsgroup, where he submits anywhere between 100 and 500 posts a month. He also provides technical review services for a number of publishers. xiii
11 Acknowledgments First of all, I d like to thank the entire team at Apress. You all worked very hard to make this book a reality. Thank you for an exceptional job and for making the process a smooth one. Special thanks go to Ewan Buckingham, who was my editor at Apress, and to Sofia Marchant, who kept things organized and on track. Thanks also go to Nicole LeClerc and Ellie Fountain for a great job copy editing and production editing, respectively, and for being so easy to work with. I would especially like to thank Ralph Davis, who took on the role of development editor for the book. Ralph did a fantastic job handling this first-time author. Not only was he there to correct my mistakes, but also he questioned things that weren t clear and encouraged me to improve things that were. Ralph was my sounding board and voice of reason. I would also like to thank my technical reviewers, Christophe Nasarre and Nicholas Paldino, who both did an amazing job. Their comments and suggestions helped to improve the accuracy and clarity of all of the recipes. Their efforts and attention to detail made this a much better book. Thanks also go to John Osborn for believing in the initial idea for this book and championing it. Finally, I d like to thank my loving wife, Teresa, and son, Brennen, for being patient with me when I was working late, for understanding when I said I was busy, and for encouraging me when things didn t always go as planned. I love both of you very much. Brennen, I have time to play that game of chess now. xv
12 Introduction It is difficult or impossible to immediately throw out all existing code and start over when a new technology arrives. That s the situation with Microsoft.NET. It represents a new and improved way of developing software for the Windows platform. And, given the chance, you would likely love to rewrite all of your existing code in the newer managed code environment that.net provides. However, you have that little problem known as legacy code. You may have C libraries, C++ class libraries, Visual Basic 6.0 COM components, or ATL COM components that you rely upon to run your applications. You may be using third-party libraries and COM components that represent a significant investment. You can t simply throw all of that away. Instead, you need to find a way to move forward with new.net development while reusing existing pieces of tested, working code. You need a way to interoperate with the existing code until you have a chance to finally rewrite all of it in.net (if ever). Fortunately, Microsoft.NET provides a rich set of tools that allow you to do just that. These tools simplify the transition to an all-.net environment, allowing you to replace a component here and a component there. The problem is that sometimes those tools are difficult to understand and use. And in many cases, Microsoft has provided more than one way to accomplish a particular interop task. Finding the appropriate tool for the task at hand can sometimes be a frustrating experience. I wrote this book as a resource for other Windows developers who are transitioning from native Windows code to.net managed code. My aim is to guide you past the infrequently used interop options and focus on those that you will use most often. Intended Audience This book is appropriate for any.net developer who needs to interoperate between.net code and non-.net Windows code. You may be an experienced.net developer who has never had the need to interoperate with native code before. Or you may be completely new to.net and are just learning the languages and class libraries associated with.net. In either case, this book is for you. Most of the examples in this book are presented in both C# and Visual Basic.NET (VB.NET). You will be able to understand the examples as long as you know one of these languages. But this book isn t designed to teach you a language. Likewise, you should already be familiar with the basics of the.net Framework Class Library (FCL). You don t have to be a guru, but you should at least know the basics. Since the book is all about interop with existing code, the examples also typically use one or more native Windows languages. For example, the chapters covering the use of C-style functions use examples written in native C++ code. The chapter that focuses on the use of COM xvii
13 xviii INTRODUCTION components presents Visual Basic 6.0 (VB6) and C++ ATL example components that are used by.net client code. These same native languages are later used as client code when managed classes are exposed to COM. While unmanaged code is used extensively in the examples, it is not the primary focus of this book. So if you know VB6 but don t know C++, that s OK you ll still benefit from the examples. Most of the.net code works the same way regardless of the unmanaged language used. If there are differences, they are noted in the examples. Likewise, the chapters covering COM and COM+ assume that you are already familiar with these technologies. This is not a book about learning COM and COM+, but it will show you how to use COM and COM+ from.net. How This Book Is Organized This book is organized into nine chapters, with each one focusing on a different aspect of Windows interoperability. The following sections provide a brief summary of the contents of each chapter. Chapter 1: Using C-Style APIs This chapter discusses the use of Platform Invocation Services (PInvoke) to access C-style functions from managed.net code. It includes recipes that demonstrate how to declare and use unmanaged functions, change the calling convention and character set, handle errors and exceptions, and manage memory. Chapter 2: C-Style APIs: Structures, Classes, and Arrays This chapter is a logical continuation of Chapter 1 and covers topics that relate to user-defined types such as structures and classes. Recipes in this chapter cover passing structures, classes, and arrays between managed and unmanaged code; controlling the field alignment within a structure; and implementing field-level marshaling within a structure. Chapter 3: Win32 API This chapter covers the topics associated with using Win32 functions from managed.net code. Recipes include accessing the ANSI or Unicode version of a function, retrieving Win32 error codes, handling callbacks, and passing handles and objects between managed and unmanaged code. The chapter also provides a recipe that illustrates how to replace a set of Win32 functions entirely with managed code. Chapter 4: Using C++ Interop The focus of this chapter is on using C++ to solve various interop problems. Recipes in this chapter include how to mix managed and unmanaged code in a project and within a single source file, how to use managed objects from unmanaged code, and how to marshal strings and structures with embedded pointers and callbacks. There is also a recipe that demonstrates the use of C++ as a custom COM wrapper.
14 INTRODUCTION xix Chapter 5: Using COM All of the recipes in this chapter demonstrate some aspect of using COM components from managed.net code. Recipes include importing and using a COM object, handling COM events, marshaling common COM data types, handling HRESULT codes, and providing error information. Chapter 6: Exposing Managed Code to COM The recipes in this chapter are the reciprocal of Chapter 5. They show you how to expose managed.net code as COM components, suitable for use by any COM client. Recipes include exposing managed components to COM by defining your own interface, controlling COM identity and visibility, exposing managed events to COM, and handling HRESULT codes and managed exceptions. Chapter 7: Marshaling to COM Clients This chapter continues where Chapter 6 left off, focusing on a set of specific COM marshaling problems. Recipes include how to control parameter direction; how to marshal strings, arrays, Variants, and currency; and how to marshal classes and structures to COM clients. Chapter 8: COM+ Enterprise Services This chapter shows you how to make use of COM+ services from managed code. Recipes include developing a COM+ component in managed code, installing and registering the component, using just-in-time (JIT) activation, using object pooling, implementing role-based COM+ security, and writing Queued Components. Chapter 9: COM+ Enterprise Services Transactions The recipes in this chapter all focus on the use of COM+ transactions. The recipes demonstrate how to enable transactions, how to place a vote for a transaction, how to use the new.net Framework 2.0 transactional code blocks, how to build your own resource manager, and how to use services without components. Software Requirements To run the examples in this book, you need some way to build and run C# or VB.NET code. The bare minimum for this is the.net Framework SDK and a source code editor. While this minimal setup allows you to run the example code, many of the recipes show you how to use features of Visual Studio.NET 2005 to simplify the job of interop. Therefore, use of Visual Studio.NET 2005 is highly recommended. All of the code in this book was originally developed using beta 2 and release candidate 1 of Visual Studio.NET It was subsequently checked using the final release to manufacturing (RTM) version. All of the C++ unmanaged code used in the examples can be built with Visual Studio.NET You don t need the older 6.0 version of Visual C++ for this purpose. However, many of the COM examples use VB6. Since VB6 is a drastically different language than VB.NET, you ll need VB6 to build and run those examples.
.NET 2.0 Interoperability Recipes
.NET 2.0 Interoperability Recipes A Problem-Solution Approach Bruce Bukovics .NET 2.0 Interoperability Recipes: A Problem-Solution Approach Copyright 2006 by Bruce Bukovics All rights reserved. No part
More informationPro Perl Parsing. Christopher M. Frenz
Pro Perl Parsing Christopher M. Frenz Pro Perl Parsing Copyright 2005 by Christopher M. Frenz Lead Editors: Jason Gilmore and Matthew Moodie Technical Reviewer: Teodor Zlatanov Editorial Board: Steve Anglin,
More informationCompanion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99
The EXPERT s VOIce in Open Source Pro Android Covers Google s Android Platform and its fundamental APIs, from basic concepts such as Android resources, intents, and content providers to advanced topics
More informationSilverlight and ASP.NET Revealed. Matthew MacDonald
Silverlight and ASP.NET Revealed Matthew MacDonald Silverlight and ASP.NET Revealed Copyright 2007 by Matthew MacDonald All rights reserved. No part of this work may be reproduced or transmitted in any
More informationWeb Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting
Web Standards Creativity: Innovations in Web Design with XHTML, CSS, and DOM Scripting Cameron Adams Mark Boulton Andy Clarke Simon Collison Jeff Croft Derek Featherstone Ian Lloyd Ethan Marcotte Dan Rubin
More informationRaven: Scripting Java Builds with Ruby MATTHIEU RIOU
Raven: Scripting Java Builds with Ruby MATTHIEU RIOU Raven: Scripting Java Builds with Ruby Copyright 2007 by Matthieu Riou All rights reserved. No part of this work may be reproduced or transmitted in
More informationBuilding Spring 2 Enterprise Applications
Building Spring 2 Enterprise Applications Interface 21 with Bram Smeets and Seth Ladd Building Spring 2 Enterprise Applications Copyright 2007 by Interface 21, Bram Smeets, Seth Ladd All rights reserved.
More informationWord Business Documents
THE EXPERT S VOICE IN OFFICE Beginning Microsoft Word Business Documents From Novice to Professional Learn How to Create Specialized Business Documents with Microsoft Word James J. Marshall Beginning Microsoft
More informationDate on Database. Writings C. J. Date
Date on Database Writings 2000 2006 C. J. Date Date on Database: Writings 2000 2006 Copyright 2006 by C. J. Date All rights reserved. No part of this work may be reproduced or transmitted in any form or
More informationWeb Development, Silverlight, and
The EXPERT s VOIce in.net Beginning Web Development, Silverlight, and ASP.NET AJAX From Novice to Professional Learn how to build web applications using ASP.NET AJAX, WPF, WCF, and WF, as well as Silverlight.
More informationFoundations of JSP Design Patterns
Foundations of JSP Design Patterns ANDREW PATZER EDITED BY MATTHEW MOODIE APress Media, LLC Foundatlons of JSP Design Patterns Copyright O 2004 by Andrew Patzer, Matthew Moodle Originally published by
More informationPro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY
Pro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY Pro Apache Beehive Copyright 2005 by Kunal Mittal and Srinivas Kanchanavally All rights reserved. No part of this work may be reproduced or transmitted
More informationPython 3 for Absolute Beginners
Python 3 for Absolute Beginners Tim Hall and J-P Stacey Python 3 for Absolute Beginners Copyright 2009 by Tim Hall and J-P Stacey All rights reserved. No part of this work may be reproduced or transmitted
More informationBeginning Silverlight 3
Beginning Silverlight 3 From Novice to Professional Robert Lair Beginning Silverlight 3: From Novice to Professional Copyright 2009 by Robert Lair All rights reserved. No part of this work may be reproduced
More informationPro.NET 4 Parallel Programming in C#
Pro.NET 4 Parallel Programming in C# Adam Freeman Pro.NET 4 Parallel Programming in C# Copyright 2010 by Adam Freeman All rights reserved. No part of this work may be reproduced or transmitted in any form
More informationPractical Ruby Gems. David Berube
Practical Ruby Gems David Berube Practical Ruby Gems Copyright 2007 by David Berube All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or
More informationPro SQL Server 2008 Mirroring
Pro SQL Server 2008 Mirroring Robert L. Davis, Ken Simmons Pro SQL Server 2008 Mirroring Copyright 2009 by Robert L. Davis, Ken Simmons All rights reserved. No part of this work may be reproduced or transmitted
More informationJ2ME Games with MIDP 2
J2ME Games with MIDP 2 CAROL HAMER APress Media, LLC J2ME Games with MIDP 2 Copyright ~ 2 0 0 4 by Carol Hamer Originally published by Apress in 2004 All rights reserved. No part of this work may be reproduced
More informationAccelerated GWT. Building Enterprise Google Web Toolkit Applications. Vipul Gupta
Accelerated GWT Building Enterprise Google Web Toolkit Applications Vipul Gupta Accelerated GWT: Building Enterprise Google Web Toolkit Applications Copyright 2008 by Vipul Gupta All rights reserved. No
More informationBeginning Ubuntu Linux
Beginning Ubuntu Linux From Novice to Professional Keir Thomas Beginning Ubuntu Linux: From Novice to Professional Copyright 2006 by Keir Thomas All rights reserved. No part of this work may be reproduced
More informationC++ Quick Syntax Reference
C++ Quick Syntax Reference Mikael Olsson C++ Quick Syntax Reference Copyright 2013 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
More informationFunctional Programming in R
Functional Programming in R Advanced Statistical Programming for Data Science, Analysis and Finance Thomas Mailund Functional Programming in R: Advanced Statistical Programming for Data Science, Analysis
More informationA Programmer's Guide to
J2EE FrontEnd Technologies: A Programmer's Guide to Servlets, JavaServer Pages, and Enterprise JavaBeans LENNART JGRELID APress Media, LLC J2EE FrontEnd Technologies: A Programmer's Guide to Servlets,
More informationExcel Pivot Tables Recipe Book
Excel Pivot Tables Recipe Book A - Approach DEBRA DALGLEISH Excel Pivot Tables Recipe Book: A - Approach Copyright 2006 by Debra Dalgleish All rights reserved. No part of this work may be reproduced or
More informationRMAN Recipes for Oracle Database 11g
RMAN Recipes for Oracle Database 11g A Problem-Solution Approach Darl Kuhn, Sam Alapati, and Arup Nanda RMAN Recipes for Oracle Database 11g: A Problem-Solution Approach Copyright 2007 by Darl Kuhn, Sam
More informationMATLAB Programming for Numerical Analysis. César Pérez López
MATLAB Programming for Numerical Analysis César Pérez López MATLAB Programming for Numerical Analysis Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the
More informationPro Perl Parsing. Christopher M. Frenz
Pro Perl Parsing Christopher M. Frenz Pro Perl Parsing Copyright 2005 by Christopher M. Frenz Lead Editors: Jason Gilmore and Matthew Moodie Technical Reviewer: Teodor Zlatanov Editorial Board: Steve Anglin,
More informationPro Excel 2007 VBA. Jim DeMarco
Pro Excel 2007 VBA Jim DeMarco Pro Excel 2007 VBA Copyright 2008 by Jim DeMarco All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical,
More informationJava Quick Syntax Reference. Second Edition. Mikael Olsson
Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):
More informationEssential Angular for ASP.NET Core MVC
Essential Angular for ASP.NET Core MVC Adam Freeman Essential Angular for ASP.NET Core MVC Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-2915-6 ISBN-13 (electronic): 978-1-4842-2916-3 DOI 10.1007/978-1-4842-2916-3
More informationBeginning Web Development, Silverlight, and ASP.NET AJAX
Beginning Web Development, Silverlight, and ASP.NET AJAX From Novice to Professional Laurence Moroney Beginning Web Development, Silverlight, and ASP.NET AJAX: From Novice to Professional Copyright 2008
More informationBeginning. PHP and PostgreSQL. E-Commerce. Cristian Darie, Emilian Balanescu, and Mihai Bucica. From Novice to Professional
THE EXPERT S VOICE IN OPEN SOURCE Beginning PHP and PostgreSQL E-Commerce From Novice to Professional Learn how to use PHP, PostgreSQL, and sound development practices to build high quality, extensible
More informationMicrosoft Computer Vision APIs Distilled
Microsoft Computer Vision APIs Distilled Getting Started with Cognitive Services Alessandro Del Sole Microsoft Computer Vision APIs Distilled Alessandro Del Sole Cremona, Italy ISBN-13 (pbk): 978-1-4842-3341-2
More informationWindows 10 Revealed. The Universal Windows Operating System for PC, Tablets, and Windows Phone. Kinnary Jangla
Windows 10 Revealed The Universal Windows Operating System for PC, Tablets, and Windows Phone Kinnary Jangla Windows 10 Revealed Kinnary Jangla Bing Maps San Francisco, California, USA ISBN-13 (pbk): 978-1-4842-0687-4
More informationPractical Spring LDAP
Practical Spring LDAP Enterprise Java LDAP Development Made Easy Balaji Varanasi Practical Spring LDAP: Enterprise Java LDAP Development Made Easy Copyright 2013 Balaji Varanasi. All rights reserved. This
More informationEnterprise JavaBeans 2.1
Enterprise JavaBeans 2.1 STEFAN DENNINGER and INGO PETERS with ROB CASTANEDA translated by David Kramer APress Media, LLC Enterprise JavaBeans 2.1 Copyright 2003 by Stefan Denninger and Ingo Peters with
More informationJavaScript Quick Syntax Reference
JavaScript Quick Syntax Reference Mikael Olsson JavaScript Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationAn Introduction to Object-Oriented Programming with Visual Basic.NET
An Introduction to Object-Oriented Programming with Visual Basic.NET DAN CLARK APress Media, LLC An Introduction to Object-Oriented Programming with Visual Basic.NET Copyright 2002 by Dan Clark Originally
More informationBuilding Custom Tasks for SQL Server Integration Services
Building Custom Tasks for SQL Server Integration Services Andy Leonard Building Custom Tasks for SQL Server Integration Services Andy Leonard Farmville, Virginia, USA ISBN-13 (pbk): 978-1-4842-2939-2 ISBN-13
More informationObjective-C Quick Syntax Reference
Objective-C Quick Syntax Reference Matthew Campbell Objective-C Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationAgile Swift. Swift Programming Using Agile Tools and Techniques. Godfrey Nolan
Agile Swift Swift Programming Using Agile Tools and Techniques Godfrey Nolan Agile Swift: Swift Programming Using Agile Tools and Techniques Godfrey Nolan Huntington Woods, Michigan, USA ISBN-13 (pbk):
More informationVisual Basic 2005 Recipes
The EXPERT s VOIce in.net Visual Basic 2005 Recipes A Problem-Solution Approach Learn practical solutions for your VB 2005 problems. Todd Herman, Allen Jones, Matthew MacDonald, and Rakesh Rajan Visual
More informationLearn Programming with Flash MX
Learn Programming with Flash MX Kristian Besley Ben Renow-Clarke APress Media, LLC Learn Programming with Flash MX Copyright 2004 by Kristian Besley and Ben Renow-Clarke Originally published by Apress
More informationTHE EXPERT S VOICE. Covers. Excel 2003 and Excel As Your. Database. Paul Cornell, Jr. Excel
THE EXPERT S VOICE Excel Covers Excel 2003 and Excel 2007 As Your Database Paul Cornell, Jr. Excel As Your Database Paul Cornell, Jr. Excel As Your Database Copyright 2007 by Paul Cornell, Jr. All rights
More informationBeginning JSF 2 APIs and JBoss Seam. Kent Ka Iok Tong
Beginning JSF 2 APIs and JBoss Seam Kent Ka Iok Tong Beginning JSF 2 APIs and JBoss Seam Copyright 2009 by Kent Ka Iok Tong All rights reserved. No part of this work may be reproduced or transmitted in
More informationBeginning ASP.NET MVC 4. José Rolando Guay Paz
Beginning ASP.NET MVC 4 José Rolando Guay Paz Beginning ASP.NET MVC 4 Copyright 2013 by José Rolando Guay Paz This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationBeginning Ubuntu Server Administration
Beginning Ubuntu Server Administration From Novice to Professional Sander van Vugt Beginning Ubuntu Server Administration: From Novice to Professional Copyright 2008 by Sander van Vugt All rights reserved.
More informationBeginning Ubuntu Server Administration
Beginning Ubuntu Server Administration From Novice to Professional Sander van Vugt Beginning Ubuntu Server Administration: From Novice to Professional Copyright 2008 by Sander van Vugt All rights reserved.
More informationFrom Novice to Professional
Beginning SQL Server 2000 DBA: From Novice to Professional Tony Bain, with Baya Pavliashvili, Joseph Sack, Michael Benkovich, and Brian Freeman APress Media, LLC Beginning SQL Server 2000 DBA: From Novice
More informationPraise for Expert C# Business Objects:
Praise for Expert C# Business Objects: '1've been desperately looking for a C# book that discussed a three-tier architecture and how it should be applied in.net. This book does show you how it can be done."
More informationExpert Shell Scripting
Expert Shell Scripting Ron Peters Expert Shell Scripting Copyright 2009 by Ron Peters All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic
More informationSQL Server Security Distilled Second Edition
SQL Server Security Distilled Second Edition MORRIS LEWIS APress Media, LLC SQL Server Security Distilled, Second Edition SQL Server Security Distilled, Second Edition Copyright 2004 Morris Lewis Originally
More informationJBoss 3.2 Deployment and Administration
JBoss 3.2 Deployment and Administration Meeraj Kunnumpurath APress Media, LLC }Boss 3.2 Deployment and Administration Copyright 2004 by Meeraj Kunnumpurath Originally published by Apress in 2004 Ali rights
More informationC Quick Syntax Reference
C Quick Syntax Reference Mikael Olsson C Quick Syntax Reference Copyright 2015 by Mikael Olsson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of
More informationASP Web Development with Macromedia Dreamweaver MX 2004
ASP Web Development with Macromedia Dreamweaver MX 2004 RACHEL ANDREW AND ROB TURNBULL WITH AlAN FOLEY AND DREW MCLELLAN APress Media, LLC ASP Web Development with Macromedia Dreamweaver MX 2004 Copyright
More informationSummary of Contents. Chapter 3: Designing and Creating the Development Database. Chapter 5: SWl Server Ouery Analyzer
of Contents Introduction Chapter 1: Introduction to SOL Server 2000 Chapter 2: Installing the Personal Edition of SOL Server 2000 Chapter 3: Designing and Creating the Development Database Chapter 4: SOL
More informationPro Data Backup and Recovery. Steven Nelson
Pro Data Backup and Recovery Steven Nelson Pro Data Backup and Recovery Copyright 2011 by Steven Nelson All rights reserved. No part of this work may be reproduced or transmitted in any form or by any
More informationPro MERN Stack. Full Stack Web App Development with Mongo, Express, React, and Node. Vasan Subramanian
Pro MERN Stack Full Stack Web App Development with Mongo, Express, React, and Node Vasan Subramanian Pro MERN Stack Vasan Subramanian Bangalore, Karnataka, India ISBN-13 (pbk): 978-1-4842-2652-0 ISBN-13
More informationPro JavaScript Performance Monitoring and Visualization
Pro JavaScript Performance Monitoring and Visualization Tom Barker Pro JavaScript Performance Copyright 2012 by Tom Barker This work is subject to copyright. All rights are reserved by the Publisher, whether
More informationThe Windows 10 Productivity Handbook
The Windows 10 Productivity Handbook Discover Expert Tips, Tricks, and Hidden Features in Windows 10 Mike Halsey The Windows 10 Productivity Handbook Mike Halsey Sheffield, Yorkshire, UK ISBN-13 (pbk):
More informationAndroid Continuous Integration
Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Pradeep Macharla North Carolina, USA ISBN-13 (pbk): 978-1-4842-2795-4
More informationBeginning. Pivot Tables. in Excel Debra Dalgleish
The EXPERT s VOIce Beginning Pivot Tables in Excel 2007 Debra Dalgleish Beginning Pivot Tables in Excel 2007 Debra Dalgleish Beginning Pivot Tables in Excel 2007 Copyright 2007 by Debra Dalgleish All
More informationExcel 2010 Made Simple
Excel 2010 Made Simple Abbott Katz i Excel 2010 Made Simple Copyright 2011 by Abbott Katz All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic
More informationMicrosoft Content Management Server Field Guide
Microsoft Content Management Server Field Guide François-Paul Briand and Michael Wirsching Microsoft Content Management Server Field Guide Copyright 2005 by François-Paul Briand and Michael Wirsching Lead
More informationExcel 2007 PivotTables Recipes
Excel 2007 PivotTables Recipes A Problem-Solution Approach Debra Dalgleish Excel 2007 PivotTables Recipes: A Problem-Solution Approach Copyright 2007 by Debra Dalgleish All rights reserved. No part of
More informationJoomla! Beginning. From Novice to Professional
The EXPERT s VOIce in Web Development Beginning Joomla! From Novice to Professional Build and manage personal homepages, user communities, and corporate websites with ease using Joomla!, one of the world
More informationWindows Server 2003 Networking Recipes
Windows Server 2003 Networking Recipes Robbie Allen, Laura E. Hunter, and Bradley J. Dinerman Windows Server 2003 Networking Recipes Copyright 2006 by Robbie Allen, Laura E. Hunter, and Bradley J. Dinerman
More informationPractical Amazon EC2, SQS, Kinesis, and S3
Practical Amazon EC2, SQS, Kinesis, and S3 A Hands-On Approach to AWS Sunil Gulabani Practical Amazon EC2, SQS, Kinesis, and S3: A Hands-On Approach to AWS Sunil Gulabani Ahmedabad, Gujarat, India ISBN-13
More informationSwift Quick Syntax Reference
Swift Quick Syntax Reference Matthew Campbell Swift Quick Syntax Reference Copyright 2014 by Matthew Campbell This work is subject to copyright. All rights are reserved by the Publisher, whether the whole
More informationAndroid Continuous Integration
Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla Android Continuous Integration Build-Deploy-Test Automation for Android Mobile Apps Pradeep Macharla
More informationUse Your PC to Build an Incredible Home Theater System
Use Your PC to Build an Incredible Home Theater System BART FARKAS AND JEFF GOVIER APress Media, LLC Use Your PC to Build an Incredible Home Theater System Copyright 2003 by Bart Farkas and Jeff Govier
More informationSQL Server AlwaysOn Revealed
SQL Server AlwaysOn Revealed Second Edition Peter A. Carter SQL Server AlwaysOn Revealed, 2nd Edition Peter A. Carter Botley, United Kingdom ISBN-13 (pbk): 978-1-4842-2396-3 ISBN-13 (electronic): 978-1-4842-2397-0
More informationSolution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT
BUSINESS CHALLENGE There is an increasing demand from users of business software for easier to use applications which integrate with other business systems. As a result IT organizations are being asked
More informationMigrating to Swift from Android
Migrating to Swift from Android Sean Liao Migrating to Swift from Android Copyright 2014 by Sean Liao This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part
More informationPro Windows PowerShell
Pro Windows PowerShell Hristo Deshev Pro Windows PowerShell Copyright 2008 by Hristo Deshev All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic
More informationPro Windows PowerShell
Pro Windows PowerShell Hristo Deshev Pro Windows PowerShell Copyright 2008 by Hristo Deshev All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic
More informationUbuntu on a Dime. The Path to Low-Cost Computing. James Floyd Kelly
Ubuntu on a Dime The Path to Low-Cost Computing James Floyd Kelly Ubuntu on a Dime: The Path to Low-Cost Computing Copyright 2009 by James Floyd Kelly All rights reserved. No part of this work may be reproduced
More informationMicroformats: Empowering Your Markup for Web 2.0. John Allsopp
Microformats: Empowering Your Markup for Web 2.0 John Allsopp Microformats: Empowering Your Markup for Web 2.0 Copyright 2007 by John Allsopp All rights reserved. No part of this work may be reproduced
More informationLearn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman
THE EXPERT S VOICE IN WEB DEVELOPMENT Learn PHP 7 Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL Steve Prettyman Learn PHP 7 Object-Oriented Modular Programming
More informationPro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications
Pro ASP.NET SharePoint 2010 Solutions Techniques for Building SharePoint Functionality into ASP.NET Applications Dave Milner i Pro ASP.NET SharePoint 2010 Solutions: Techniques for Building SharePoint
More informationMATLAB Numerical Calculations. César Pérez López
MATLAB Numerical Calculations César Pérez López MATLAB Numerical Calculations Copyright 2014 by César Pérez López This work is subject to copyright. All rights are reserved by the Publisher, whether the
More informationPraise for Dive Into Python:
Praise for Dive Into Python: "Whether you're an experienced programmer looking to get into Python or grizzled Python veteran who remembers the days when you had to import the string module, Dive Into Python
More information7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak
Take control of Windows 7 Unlock hidden settings Rev up your network Disable features you hate, for good Fine-tune User Account control Turbocharge online speed Master the taskbar and start button Customize
More informationAgile Database Techniques Effective Strategies for the Agile Software Developer. Scott W. Ambler
Agile Database Techniques Effective Strategies for the Agile Software Developer Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques
More informationEnterprise Java. for SAP. APress Media, LLC AUSTIN SIN COCK
Enterprise Java for SAP AUSTIN SIN COCK APress Media, LLC Enterprise Java for SAP Copyright 2003 by Austin Sincock Originally published by Apress in 2003 Softcover reprint of the hardcover 1st edition
More informationTeam Developer and.net
Team Developer and.net Unify Corporation Table of Contents Abstract...3 PART I - Consuming Team Developer Code from VB.NET...6 PART II - Consuming a VB.NET Assembly from Team Developer...8 Conclusion...11
More informationLearn How to Program Using Any Web Browser
Learn How to Program Using Any Web Browser Learn How to Program Using Any Web Browser Harold Davis APress Media, LLC Learn How to Program Using Any Web Browser Copyright 2004 by Harold Davis Originally
More informationPro Angular 6. Third Edition. Adam Freeman
Pro Angular 6 Third Edition Adam Freeman Pro Angular 6 Adam Freeman London, UK ISBN-13 (pbk): 978-1-4842-3648-2 ISBN-13 (electronic): 978-1-4842-3649-9 https://doi.org/10.1007/978-1-4842-3649-9 Library
More informationDreamweaver Developer's Instant Troubleshooter
Dreamweaver Developer's Instant Troubleshooter Rachel Andrew Gareth Downes-Powell Nancy Gill Kevin Marshall Drew Mclellan Apress Dreamweaver Developer's lnstant Troubleshooter 2003 Rachel Andrew, Gareth
More informationBizTalk Server 2002 Design and Implementation XIN CHEN
BizTalk Server 2002 Design and Implementation XIN CHEN BizTalk Server 2002 Design and Implementation Copyright 2003 by Xin Chen All rights reserved. No part of this work may be reproduced or transmitted
More informationBeginning Robotics Programming in Java with LEGO Mindstorms
Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Beginning Robotics Programming in Java with LEGO Mindstorms Wei Lu Keene, New Hampshire, USA ISBN-13 (pbk): 978-1-4842-2004-7 ISBN-13
More informationPro Entity Framework 4.0
Pro Entity Framework 4.0 Scott Klein CONTENTS Pro Entity Framework 4.0 Copyright 2010 by Scott Klein All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
More informationIntroducing Aviary. Mike Peutz
Introducing Aviary Mike Peutz Introducing Aviary Copyright 2009 by Mike Peutz All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical,
More informationDeveloping Microsoft.NET Applications for Windows (Visual Basic.NET)
Developing Microsoft.NET Applications for Windows (Visual Basic.NET) Course Number: 2565 Length: 5 Day(s) Certification Exam This course will help you prepare for the following Microsoft Certified Professional
More informationASP.NET Core Recipes
ASP.NET Core Recipes A Problem-Solution Approach Second Edition John Ciliberti ASP.NET Core Recipes: A Problem-Solution Approach John Ciliberti Sparta, New Jersey, USA ISBN-13 (pbk): 978-1-4842-0428-3
More informationPro Java Clustering and Scalability
Pro Java Clustering and Scalability Building Real-Time Apps with Spring, Cassandra, Redis, WebSocket and RabbitMQ Jorge Acetozi Pro Java Clustering and Scalability: Building Real-Time Apps with Spring,
More informationExpert C# 5.0 with.net 4.5 Framework
Expert C# 5.0 with.net 4.5 Framework Mohammad Rahman Apress Expert C# 5.0: with.net 4.5 Framework Copyright 2013 by Mohammad Rahman This work is subject to copyright. All rights are reserved by the Publisher,
More informationProfessional ASP.NET 2.0 Databases. Thiru Thangarathinam
Professional ASP.NET 2.0 Databases Thiru Thangarathinam Professional ASP.NET 2.0 Databases Professional ASP.NET 2.0 Databases Thiru Thangarathinam Professional ASP.NET 2.0 Databases Published by Wiley
More informationBeginning ASP.NET in VB.NET: From Novice to Professional
Beginning ASP.NET in VB.NET: From Novice to Professional MATTHEW MACDONALD APress Media, LLC Beginning ASP.NET in VB.NET: From Novice to Professional Copyright 2004 by Matthew MacDonald Originally published
More informationScalable Big Data Architecture
Scalable Big Data Architecture A Practitioner s Guide to Choosing Relevant Big Data Architecture Bahaaldine Azarmi Scalable Big Data Architecture Copyright 2016 by Bahaaldine Azarmi This work is subject
More information