.NET 2.0 Interoperability Recipes

Size: px
Start display at page:

Download ".NET 2.0 Interoperability Recipes"

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 .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 information

Pro Perl Parsing. Christopher M. Frenz

Pro 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 information

Companion ebook Available Pro Android Includes Android 1.5 SOURCE CODE ONLINE US $44.99

Companion 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 information

Silverlight and ASP.NET Revealed. Matthew MacDonald

Silverlight 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 information

Web 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 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 information

Raven: Scripting Java Builds with Ruby MATTHIEU RIOU

Raven: 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 information

Building Spring 2 Enterprise Applications

Building 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 information

Word Business Documents

Word 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 information

Date on Database. Writings C. J. Date

Date 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 information

Web Development, Silverlight, and

Web 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 information

Foundations of JSP Design Patterns

Foundations 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 information

Pro Apache Beehive KUNAL MITTAL AND SRINIVAS KANCHANAVALLY

Pro 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 information

Python 3 for Absolute Beginners

Python 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 information

Beginning Silverlight 3

Beginning 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 information

Pro.NET 4 Parallel Programming in C#

Pro.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 information

Practical Ruby Gems. David Berube

Practical 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 information

Pro SQL Server 2008 Mirroring

Pro 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 information

J2ME Games with MIDP 2

J2ME 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 information

Accelerated 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 Vipul Gupta Accelerated GWT: Building Enterprise Google Web Toolkit Applications Copyright 2008 by Vipul Gupta All rights reserved. No

More information

Beginning Ubuntu Linux

Beginning 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 information

C++ Quick Syntax Reference

C++ 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 information

Functional Programming in R

Functional 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 information

A Programmer's Guide to

A 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 information

Excel Pivot Tables Recipe Book

Excel 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 information

RMAN Recipes for Oracle Database 11g

RMAN 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 information

MATLAB 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 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 information

Pro Perl Parsing. Christopher M. Frenz

Pro 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 information

Pro Excel 2007 VBA. Jim DeMarco

Pro 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 information

Java 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 Second Edition Mikael Olsson Java Quick Syntax Reference Mikael Olsson Hammarland, Länsi-Suomi, Finland ISBN-13 (pbk):

More information

Essential Angular for ASP.NET Core MVC

Essential 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 information

Beginning Web Development, Silverlight, and ASP.NET AJAX

Beginning 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 information

Beginning. PHP and PostgreSQL. E-Commerce. Cristian Darie, Emilian Balanescu, and Mihai Bucica. From Novice to Professional

Beginning. 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 information

Microsoft Computer Vision APIs Distilled

Microsoft 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 information

Windows 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 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 information

Practical Spring LDAP

Practical 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 information

Enterprise JavaBeans 2.1

Enterprise 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 information

JavaScript Quick Syntax Reference

JavaScript 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 information

An Introduction to Object-Oriented Programming with Visual Basic.NET

An 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 information

Building Custom Tasks for SQL Server Integration Services

Building 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 information

Objective-C Quick Syntax Reference

Objective-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 information

Agile 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 Agile Swift: Swift Programming Using Agile Tools and Techniques Godfrey Nolan Huntington Woods, Michigan, USA ISBN-13 (pbk):

More information

Visual Basic 2005 Recipes

Visual 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 information

Learn Programming with Flash MX

Learn 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 information

THE EXPERT S VOICE. Covers. Excel 2003 and Excel As Your. Database. Paul Cornell, Jr. Excel

THE 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 information

Beginning 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 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 information

Beginning ASP.NET MVC 4. José Rolando Guay Paz

Beginning 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 information

Beginning Ubuntu Server Administration

Beginning 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 information

Beginning Ubuntu Server Administration

Beginning 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 information

From Novice to Professional

From 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 information

Praise for Expert C# Business Objects:

Praise 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 information

Expert Shell Scripting

Expert 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 information

SQL Server Security Distilled Second Edition

SQL 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 information

JBoss 3.2 Deployment and Administration

JBoss 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 information

C Quick Syntax Reference

C 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 information

ASP Web Development with Macromedia Dreamweaver MX 2004

ASP 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 information

Summary of Contents. Chapter 3: Designing and Creating the Development Database. Chapter 5: SWl Server Ouery Analyzer

Summary 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 information

Pro Data Backup and Recovery. Steven Nelson

Pro 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 information

Pro 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 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 information

Pro JavaScript Performance Monitoring and Visualization

Pro 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 information

The Windows 10 Productivity Handbook

The 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 information

Android Continuous Integration

Android 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 information

Beginning. Pivot Tables. in Excel Debra Dalgleish

Beginning. 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 information

Excel 2010 Made Simple

Excel 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 information

Microsoft Content Management Server Field Guide

Microsoft 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 information

Excel 2007 PivotTables Recipes

Excel 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 information

Joomla! Beginning. From Novice to Professional

Joomla! 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 information

Windows Server 2003 Networking Recipes

Windows 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 information

Practical Amazon EC2, SQS, Kinesis, and S3

Practical 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 information

Swift Quick Syntax Reference

Swift 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 information

Android Continuous Integration

Android 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 information

Use Your PC to Build an Incredible Home Theater System

Use 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 information

SQL Server AlwaysOn Revealed

SQL 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 information

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

Solution 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 information

Migrating to Swift from Android

Migrating 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 information

Pro Windows PowerShell

Pro 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 information

Pro Windows PowerShell

Pro 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 information

Ubuntu 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 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 information

Microformats: 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 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 information

Learn PHP 7. Object-Oriented Modular Programming using HTML5, CSS3, JavaScript, XML, JSON, and MySQL. Steve Prettyman

Learn 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 information

Pro 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 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 information

MATLAB Numerical Calculations. César Pérez López

MATLAB 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 information

Praise for Dive Into Python:

Praise 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 information

7 Windows Tweaks. A Comprehensive Guide to Customizing, Increasing Performance, and Securing Microsoft Windows 7. Steve Sinchak

7 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 information

Agile 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 Scott W. Ambler Agile Database Techniques Effective Strategies for the Agile Software Developer Agile Database Techniques

More information

Enterprise Java. for SAP. APress Media, LLC AUSTIN SIN COCK

Enterprise 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 information

Team Developer and.net

Team 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 information

Learn How to Program Using Any Web Browser

Learn 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 information

Pro Angular 6. Third Edition. Adam Freeman

Pro 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 information

Dreamweaver Developer's Instant Troubleshooter

Dreamweaver 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 information

BizTalk Server 2002 Design and Implementation XIN CHEN

BizTalk 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 information

Beginning Robotics Programming in Java with LEGO Mindstorms

Beginning 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 information

Pro Entity Framework 4.0

Pro 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 information

Introducing Aviary. Mike Peutz

Introducing 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 information

Developing Microsoft.NET Applications for Windows (Visual Basic.NET)

Developing 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 information

ASP.NET Core Recipes

ASP.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 information

Pro Java Clustering and Scalability

Pro 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 information

Expert C# 5.0 with.net 4.5 Framework

Expert 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 information

Professional ASP.NET 2.0 Databases. Thiru Thangarathinam

Professional 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 information

Beginning ASP.NET in VB.NET: From Novice to Professional

Beginning 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 information

Scalable Big Data Architecture

Scalable 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