Oreilly.Programming.Dot.NET.3.5

Total Page:16

File Type:pdf, Size:1020Kb

Oreilly.Programming.Dot.NET.3.5 Programming .NET 3.5 Other Microsoft .NET resources from O’Reilly Related titles .NET Windows Forms in a Building a Web 2.0 Portal Nutshell with ASP.NET 3.5 ADO.NET 3.5 Cookbook™ Learning ASP.NET 3.5 ADO.NET 3.5 in a Nutshell Programming ASP.NET AJAX .NET Books dotnet.oreilly.com is a complete catalog of O’Reilly’s books on Resource Center .NET and related technologies, including sample chapters and code examples. ONDotnet.com provides independent coverage of fundamental, interoperable, and emerging Microsoft .NET programming and web services technologies. Conferences O’Reilly brings diverse innovators together to nurture the ideas that spark revolutionary industries. We specialize in document- ing the latest tools and systems, translating the innovator’s knowledge into useful skills for those in the trenches. Visit conferences.oreilly.com for our upcoming events. Safari Bookshelf (safari.oreilly.com) is the premier online refer- ence library for programmers and IT professionals. Conduct searches across more than 1,000 books. Subscribers can zero in on answers to time-critical questions in a matter of seconds. Read the books on your Bookshelf from cover to cover or sim- ply flip to the page you need. Try it today for free. Programming .NET 3.5 Jesse Liberty and Alex Horovitz Beijing • Cambridge • Farnham • Köln • Sebastopol • Taipei • Tokyo Programming .NET 3.5 by Jesse Liberty and Alex Horovitz Copyright © 2008 Jesse Liberty and Alex Horovitz. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (safari.oreilly.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or [email protected]. Editor: John Osborn Indexer: Ellen Troutman Zaig Production Editor: Rachel Monaghan Cover Designer: Karen Montgomery Copyeditor: Rachel Head Interior Designer: David Futato Proofreader: Rachel Monaghan Illustrator: Jessamyn Read Printing History: July 2008: First Edition. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Programming .NET 3.5, the image of a giant petrel, and related trade dress are trademarks of O’Reilly Media, Inc. Java™ is a trademark of Sun Microsystems, Inc. .NET is a registered trademark of Microsoft Corporation. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. This book uses RepKover™, a durable and flexible lay-flat binding. ISBN: 978-0-596-52756-3 [M] This book is dedicated to the simple idea of human respect, which entails the incredibly difficult process of actually listening to one another with an open mind. —Jesse Liberty To my spouse, Torri, and my three boys, Daniel, Zachary, and Jason. Together our adventure continues. Each day brings new opportunities and the chance to build on the accomplishments of the day before. Never stop living to make today the best day of your life. —Alex Horovitz Table of Contents Preface . xi Part I. Presentation Options 1. .NET 3.5: A Better Framework for Building MVC, N-Tier, and SOA Applications . 3 Integration Versus Silos 4 What? All That in One Book? 5 2. Introducing XAML: A Declarative Way to Create Windows UIs . 7 XAML 101 8 Simple XAML Done Simply 10 Over Here…No, Wait, I Meant Over There! 23 It’s Alive! (Or, How I Learned to Stop Worrying and Love Animation) 32 3. Introducing Windows Presentation Foundation: A Richer Desktop UI Experience . 45 Starting Simple: Panels 46 Nesting 65 Resources 67 Transformations 68 Animation 69 Data Binding 76 vii 4. Applying WPF: Building a Biz App . 89 Breaking the Application into Pieces 90 Adorners 90 Business Classes 95 Page 1—Adding Items to the Shopping Cart 99 Page 2—Validating the Credit Card 124 5. Introducing AJAX: Moving Desktop UIs to the Web . 137 Web Applications Just Got a Whole Lot Faster 137 Getting Started 139 Creating a “Word Wheel” with AJAX 141 ScriptManager 151 What’s Next? 160 6. Applying AJAX: ListMania . 161 Creating the To-Do List Manager 161 Personalizing the To-Do List 180 7. Introducing Silverlight: A Richer Web UI Platform . 195 Silverlight in One Chapter 195 The Breadth of Silverlight 196 Diving Deep: Building an Application 196 Controls 197 Events and Event Handlers 207 Creating Controls Dynamically 212 Data Binding 215 Styling Controls 221 Part II. Interlude on Design Patterns 8. Implementing Design Patterns with .NET 3.5 . 227 .NET 3.5 Fosters Good Design 228 The N-Tier Pattern 231 The MVC Pattern 232 The Observer Pattern/Publish and Subscribe 249 The Factory Method Pattern 258 The Chain-of-Command Pattern 266 The Singleton Pattern 274 viii | Table of Contents Part III. The Business Layer 9. Understanding LINQ: Queries As First-Class Language Constructs . 283 Defining and Executing a LINQ Query 284 Extension Methods 297 Adding the AdventureWorksLT Database 305 LINQ to SQL Fundamentals 308 Using the Visual Studio LINQ to SQL Designer 313 Retrieving Data 317 LINQ to XML 322 10. Introducing Windows Communication Foundation: Accessible Service-Oriented Architecture . 327 Defining a Service More Precisely 328 Implementing Web Services 332 UDDI: Who Is Out There, and What Can They Do for Me? 337 How It All Works 338 WCF’s SOA Implementation 339 Putting It All Together 343 11. Applying WCF: YahooQuotes . 346 Creating and Launching a Web Service 346 Consuming the Web Service 355 12. Introducing Windows Workflow Foundation . 365 Conventional (Pre-WF) Flow Control 365 Using Windows Workflow 371 Understanding the WF Runtime 383 Workflow Services 383 13. Applying WF: Building a State Machine . 386 Windows Workflow and State Machines 387 Building an Incident Support State Machine 387 14. Using and Applying CardSpace: A New Scheme for Establishing Identity . 408 About Windows CardSpace 409 Creating a CardSpace Identity 413 Adding CardSpace Support to Your Application 418 Summary 435 Table of Contents | ix Epilogue . 437 Index . 439 x | Table of Contents Preface1 This book tells the story of .NET 3.5. We will not try to sell you on why .NET 3.5 is great, why it will make you more productive, why you should learn it, why your company should invest in incorporating this new technology, and so on. Microsoft has lots of folks selling .NET 3.5, and they are quite good at their jobs, so we’ll leave that to them. Nor will we regurgitate the Microsoft documentation; you can get that for free on the Internet. Finally, while we hope you will return to this book often and keep it on your desk as a useful reference, our goal is not to provide a compendium, but simply to introduce you to .NET 3.5, speaking as one programmer to another. In the early days of personal computing, the hard part was finding the information you needed, because so little was published. Today, the hard part is separating the nuggets of wheat from the mountains of chaff. There is a blizzard of information out there (books, articles, web sites, blogs, videos, podcasts, sky writing...), but the signal- to-noise ratio approaches zero (while the metaphors are beginning to pile up under your feet!). Our aim is to provide you with the key information you need, together with a context for that information: a scaffolding into which you can fit what you learn to make you more productive and to make your programs better. It is our belief that .NET 3.5 in general, and Silverlight in particular, will change pro- gramming more significantly than anything that has come from Microsoft for at least a decade. The advent of .NET 3.5 marks a turning point in how we approach programming— one we embrace with great enthusiasm. From one perspective, .NET 3.5 is nothing more than a collection of disparate technologies: • Windows Presentation Foundation (WPF) for writing Windows applications • Silverlight for delivering Rich Internet Applications (RIAs) via the Web, across browsers and platforms • Windows Communication Foundation (WCF) for creating contract-based web services and implementing Service-Oriented Architectures (SOAs) • Windows Workflow Foundation (WF) for defining the workflow in an application xi • CardSpace for creating user-negotiated identities on the Web • ASP.NET/AJAX for rich-client web applications You can expect to see many books that treat each of these technologies individually, but in this book we have instead chosen to take an integrated approach. This book has two goals. The first, as we have intimated, is to tell the real story of .NET 3.5, rather than simply repeating what you can find in the documentation. We will pro- vide the essential information that you need to make solid, practical, reliable use of all of the technologies we’ve just mentioned, while providing a clear picture of which problems each of the technologies solves, either alone or working with others. The second goal is to show that, rather than truly being a collection of isolated tech- nologies, the various parts of .NET 3.5 can be stitched together into a coherent whole with a pair of common themes: • .NET 3.5 fosters the development of better-architected applications (leveraging MVC, n-tier, SOA, and other industry-tested patterns).
Recommended publications
  • Building Openjfx
    Building OpenJFX Building a UI toolkit for many different platforms is a complex and challenging endeavor. It requires platform specific tools such as C compilers as well as portable tools like Gradle and the JDK. Which tools must be installed differs from platform to platform. While the OpenJFX build system was designed to remove as many build hurdles as possible, it is necessary to build native code and have the requisite compilers and toolchains installed. On Mac and Linux this is fairly easy, but setting up Windows is more difficult. If you are looking for instructions to build FX for JDK 8uNNN, they have been archived here. Before you start Platform Prerequisites Windows Missing paths issue Mac Linux Ubuntu 18.04 Ubuntu 20.04 Oracle Enterprise Linux 7 and Fedora 21 CentOS 8 Common Prerequisites OpenJDK Git Gradle Ant Environment Variables Getting the Sources Using Gradle on The Command Line Build and Test Platform Builds NOTE: cross-build support is currently untested in the mainline jfx-dev/rt repo Customizing the Build Testing Running system tests with Robot Testing with JDK 9 or JDK 10 Integration with OpenJDK Understanding a JDK Modular world in our developer build Adding new packages in a modular world First Step - development Second Step - cleanup Before you start Do you really want to build OpenJFX? We would like you to, but the latest stable build is already available on the JavaFX website, and JavaFX 8 is bundled by default in Oracle JDK 8 (9 and 10 also included JavaFX, but were superseded by 11, which does not).
    [Show full text]
  • Build Prerequisites
    Build Prerequisites Table of Contents 1 Overview 2 Introduction 3 IDE 4 Download 5 Installation 5.1 Git for Windows 5.2 TortoiseGit 5.3 YASM (since MP 1.25 Final, YASM is provided as nuget package, you can skip this ) 5.4 NuGet Package Manager 5.5 NSIS 6 Configuration 6.1 .Net Framework 3.5 6.2 Windows and DirectX SDK Environment Variables 6.3 TortoiseGit 7 Next Steps 8 Changelog Overview How to setup your system with the required software to access and use or contribute to the MediaPortal source code, particularly for compiling and building an installer.. Introduction In order to reduce the size of the MediaPortal Git repository and simplify merging branches and testing, C++ sourced binaries have been removed from the repository as of April, 2013. This change affects the way in which you setup your system to compile and build MediaPortal. This guide is written for anyone who wants access to our MediaPortal source code repository to compile and build individual branches for testing or development, using either Windows 7 or Windows 8. Note: You should have already installed the Required software for MediaPortal on the system where you install Git, see Requirements > System Components IDE Our source repository contains Microsoft Visual Studio 2013 solutions. We recommend using Visual Studio 2013 Community Edition but any commercial edition should work too. Download Let's start with downloading the required software: Git for Windows (get the latest Full Installer) TortoiseGit (32bit or 64bit depends on your OS) Visual Studio 2015 Community
    [Show full text]
  • Winframe API SDK Programmer's Guide
    WFAPI SDK Programmer's Guide Introduction The Citrix WFAPI functions enable application programs to perform tasks that are unique to XenApp and XenDesktop. Appropriate hotfixes and service packs may be needed for the functions defined here to execute properly. In this document XenApp and XenDesktop will be referred to as Citrix VDA. XenApp (RDS VDA) runs on server OSs, Microsoft Windows 2008R2 (Win 7 server) and Windows 2012R2 (Win 8.1 server) and XenDesktop (WS VDA) runs on workstation OSs, Windows 7, Windows 8.1, Windows 10. This SDK allows software developers to programmatically access features specific to Citrix VDAs. For example: • Enumerating servers, sessions, and processes • Managing servers, sessions, and processes • Accessing Citrix-specific user data • Sending messages to a session • Using virtual channels • Waiting on system events The WFAPI SDK comprises a set of function calls to the Wfapi.dll dynamic link library (DLL) for 32- bit applications and Wfapi64.dll for 64-bit applications. These DLLs are available on servers running XenApp and on Windows Workstation platforms running XenDesktop. Example programs are included to assist developers. Using the WFAPI SDK The WFAPI SDK is intended for use by OEMs and customers who need to write applications that directly call WFAPI functions, using Microsoft Visual C++, Version 12.0 (Visual Studio 2013). System Requirements The WFAPI SDK must be installed and built on a Windows 7, Windows 8.1, Windows 10, Windows Servers 2008R2 or 2012R2 computer with sufficient disk space. The SDK does not need more than a few megabytes of disk space; however, third-party development tools (for example, Microsoft Visual C++) may require a substantial amount of disk space.
    [Show full text]
  • IBM Connect:Direct for Microsoft Windows: Documentation Fixpack 1 (V6.1.0.1)
    IBM Connect:Direct for Microsoft Windows 6.1 Documentation IBM This edition applies to Version 5 Release 3 of IBM® Connect:Direct and to all subsequent releases and modifications until otherwise indicated in new editions. © Copyright International Business Machines Corporation 1993, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Chapter 1. Release Notes.......................................................................................1 Requirements...............................................................................................................................................1 Features and Enhancements....................................................................................................................... 2 Special Considerations................................................................................................................................ 3 Known Restrictions...................................................................................................................................... 4 Restrictions for Connect:Direct for Microsoft Windows........................................................................ 4 Restrictions for Related Software.......................................................................................................... 6 Installation Notes.........................................................................................................................................6
    [Show full text]
  • Visual Build Help
    Visual Build Professional User's Manual Copyright © 1999-2021 Kinook Software, Inc. Contents I Table of Contents Part I Introduction 1 1 Overview ................................................................................................................................... 1 2 Why Visual................................................................................................................................... Build? 1 3 New Features................................................................................................................................... 2 Version 4 .......................................................................................................................................................... 2 Version 5 .......................................................................................................................................................... 3 Version 6 .......................................................................................................................................................... 4 Version 7 .......................................................................................................................................................... 7 Version 8 .......................................................................................................................................................... 9 Version 9 .........................................................................................................................................................
    [Show full text]
  • Portable Microsoft Visual Foxpro 9 SP2 Serial Key Keygen
    Portable Microsoft Visual FoxPro 9 SP2 Serial Key Keygen 1 / 4 Portable Microsoft Visual FoxPro 9 SP2 Serial Key Keygen 2 / 4 3 / 4 License · Commercial proprietary software. Website, msdn.microsoft.com/vfoxpro. Visual FoxPro is a discontinued Microsoft data-centric procedural programming language that ... As of March 2008, all xBase components of the VFP 9 SP2 (including Sedna) were ... CLR Profiler · ILAsm · Native Image Generator · XAMLPad .... Download Microsoft Visual FoxPro 9 SP1 Portable Edition . Download ... Visual FoxPro 9 Serial Number Keygen for All Versions. 9. 0. SP2.. Download Full Cracked Programs, license key, serial key, keygen, activator, ... Free download the full version of the Microsoft Visual FoxPro 9 Windows and Mac. ... 9 Portable, Microsoft Visual FoxPro 9 serial number, Microsoft Visual FoxPro 9 .... Download Microsoft Visual FoxPro 9 SP 2 Full. Here I provide two ... Portable and I include file . 2015 Free ... Visual FoxPro 9.0 SP2 provides the latest updates to Visual FoxPro. ... autodesk autocad 2010 keygens only x force 32bits rh.. ... cs5 extended serial number keygen photo dvd slideshow professional 8.23 serial ... canadian foreign policy adobe acrobat 9 standard updates microsoft money ... microsoft visual studio express 2012 for web publish website microsoft office ... illustrator cs5 portable indowebsteradobe illustrator cs6 portable indowebster .... Download Microsoft Visual FoxPro 9 SP 2 Full Intaller maupun Portable. ... serial number Visual FoxPro 9 SP2 Portable, keygen Visual FoxPro 9 SP2 Portable, .... Microsoft Visual FoxPro 9.0 Service Pack 2.0. Important! Selecting a language below will dynamically change the complete page content to that .... Microsoft Visual FoxPro all versions serial number and keygen, Microsoft Visual FoxPro serial number, Microsoft Visual FoxPro keygen, Microsoft Visual FoxPro crack, Microsoft Visual FoxPro activation key, ..
    [Show full text]
  • Sharepoint Online Custom Solution Resources Applies To: Office 365 Dedicated – Legacy Release
    SharePoint Online Custom Solution Resources Applies to: Office 365 Dedicated – Legacy Release Topic Last Modified: 2014-04-07 This section describes resources available to customers and third party providers building custom solutions for SharePoint Online Dedicated. Custom Solutions Resources for SharePoint Online Dedicated The resources available to developers of SharePoint Online custom solutions include: Custom Solution Policies and Process (FTC) This article describes the policies and process that govern how Microsoft and its subscribers to SharePoint Online for enterprises dedicated plans validate and deploy custom solutions to the SharePoint Online environment. SharePoint Online Custom Solution Developer's Guide (Dedicated Plans) This article provides SharePoint Online Dedicated plan customers with guidelines and best practices to help you develop custom solutions that you can deploy to the SharePoint Online environment. Submitting Custom Solutions to SharePoint Online Using MSOCAF This article describes how to use Microsoft SharePoint Online Code Analysis Framework (MSOCAF), which is the tool you use to validate and submit SharePoint Online custom solutions. SharePoint Online Custom Solution Resources Legacy Release Office 365 Dedicated & ITAR-support Plans © 2015 Microsoft Corporation. All rights reserved. Page 1 of 222 Custom Solution Policies and Process (FTC) Topic Last Modified: 2014-04-11 This article describes the policies and process that govern how Microsoft and its subscribers to SharePoint Online Dedicated validate and deploy custom solutions to the SharePoint Online environment. These custom solutions include solutions and products that are developed by third parties and code developed in-house by customers. Custom solutions can be deployed to any web application in the SharePoint Online Dedicated environment (Portal, Team, Partner, or Personal Sites).
    [Show full text]
  • 1 Proyecto De Fin De Carrera Entorno De Monitorización De Sistemas
    Proyecto de fin de carrera Entorno de monitorización de sistemas informáticos embarcados mediante pantallas táctiles. Versión: 1.0 Creación: Diciembre 2010 Autor: Vicente García Adánez Tutor: Juan Llorens Morillo 1 Entorno de monitorización de sistemas informáticos embarcados mediante pantallas táctiles García Adánez, V. Esta página ha sido dejada en blanco intencionadamente. 2 Entorno de monitorización de sistemas informáticos embarcados mediante pantallas táctiles García Adánez, V. RESUMEN: Este proyecto ha sido realizado para ser presentado como proyecto de fin de carrera en colaboración con la empresa finlandesa Mobile Net Control (MNC de ahora en adelante) con sede en Mariehamn, capital de las islas Åland, provincia de Finlandia, gracias a la obtención de una beca Erasmus para el año 2010. MNC en una de sus áreas provee a sus clientes de ordenadores para sus barcos creando un sistema de comunicación en ellos. Además de mantenerlos funcionando correctamente se encarga de que la información y configuración en los equipos no se pierda y para ello realiza a través de internet copias de seguridad de sus archivos. Como utilidad para sus barcos ha creído conveniente desarrollar una aplicación software fácil e intuitiva desde la que se pueda monitorizar el estado de los ordenadores que pueda tener su barco. Ésta se encargará de comprobar que funcionan correctamente y en caso de que no lo hagan ayudará a solucionarlo. El objetivo de este proyecto es por tanto la realización de una aplicación para pantalla táctil que permita monitorizar el estado de diferentes componentes en un barco desde el lugar donde esté instalada. Su uso está destinado a la persona responsable de este cometido, que bien puede ser un capitán como cualquier otra persona del barco no relacionada con la informática.
    [Show full text]
  • Micro Focus Enterprise Developer 7.0 Build Tools for Windows
    Micro Focus Enterprise Developer 7.0 Build Tools for Windows Release Notes Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com © Copyright 2021 Micro Focus or one of its affiliates. MICRO FOCUS, the Micro Focus logo and Enterprise Developer are trademarks or registered trademarks of Micro Focus or one of its affiliates. All other marks are the property of their respective owners. 2021-07-06 ii Contents Enterprise Developer Build Tools for Windows Release Notes .....................4 Installation .......................................................................................................... 5 Prerequisites for Using Enterprise Developer Build Tools for Windows .............................. 5 Installing Enterprise Developer Build Tools for Windows .................................................... 5 Microsoft Package Dependencies .......................................................................................6 Managing the Microsoft Build Tools and Windows SDK Packages .....................................7 The Microsoft Build Tools and Windows SDK Configuration Utility .......................... 7 Restrictions .......................................................................................................10 Licensing Considerations ............................................................................... 11 Updates and Customer Care ........................................................................... 12 Further Information and Product Support ........................................................................
    [Show full text]
  • Using the Microsoft Windows SDK Tools to Compile Against Spincore Libraries
    Using the Microsoft Windows SDK Tools to Compile Against SpinCore Libraries SpinCore Technologies, Inc. November 19, 2013 1 Introduction Recently, SpinAPI's compilation process has moved to the Microsoft Windows SDK C/C++ compiler. The reason behind this move away from GCC is that true 64bit support became necessary. In order to use GCC for 64bit compilation on Windows, plain MinGW is not enough; a Cygwin environment with a 64bit port of MinGW becomes necessary. Requiring the use of Cygwin not only complicates the compilation process for us, but for customers as well. The current solution to this problem is to use the Microsoft Windows SDK C/C++ compiler. The SDK provides an easy way to setup the correct build environment for 64bit or 32bit, and also will use the correct C++ name mangling conventions for C++ libraries compiled with Visual Studio. Additionally, the compilation method is easily scriptable. 2 Install necessary Tools The Microsoft Windows SDK (at least v7.1 is recommended) is required to compile C programs against the SpinAPI library, or other SpinCore API packages. The Windows SDK can be found for free on Microsoft's MSDN website. 3 Setup Build Environment The Microsoft Windows SDK comes with a tool called \setenv.cmd". This is the tool that is used to setup the 64bit and 32bit build environments. It is found in the installation directory of the SDK under the \Bin" folder. If you would like to have this tool available at the command line without typing out the absolute path, you will need to add the \Bin" directory to the system's path variable.
    [Show full text]
  • Yohan J. Rodríguez Viveros
    Yohan J. Rodríguez Viveros Living in: Hermosillo, Sonora. México Email: [email protected] Blog: https://www.hasdid.com Skype: yohan.jasdid Profile 15 Years experience in software development. Use of multiple technologies and tools. Passionate about code and science. Book/Article writer and researcher. Always looking for interesting problems to solve. Full-Stack coder. Always learning technologies to contribute code in desktop/web applications, back-end, front-end, web/local/cloud services, Api’s and scientific computing Employment History Developer IV Tiempo Development Sep 2015 - Present | Hermosillo, Sonora Developer of a security company product. Development and maintenance of the system features, releases, policy deployment, support to customers, documentation and platform infrastructure. Main responsibil- ities include: Development and maintenance of the system features like Database support. Consists in the ability to scan database products of multiple types like Oracle, MS SQL Server, MySQL and DB2 to execute stan- dard security policies against those databases to discover and re-mediate security issues. Platforms support. Consists in the ability to scan multiple operating system like multiple versions of Windows, multiple types of Linux distributions, multiple types of Unix, OSx and embedded OS devices to execute standard policies and discover security issues. Standard security policies includes DISA, CIS and PCI security standards. Devices support. Consists in the ability to scan multiple types of industrial control systems
    [Show full text]
  • Appendixes APPENDIX A
    PART 8 Appendixes APPENDIX A COM and .NET Interoperability The goal of this book was to provide you with a solid foundation in the C# language and the core services provided by the .NET platform. I suspect that when you contrast the object model provided by .NET to that of Microsoft’s previous component architecture (COM), you’ll no doubt be con- vinced that these are two entirely unique systems. Regardless of the fact that COM is now considered to be a legacy framework, you may have existing COM-based systems that you would like to inte- grate into your new .NET applications. Thankfully, the .NET platform provides various types, tools, and namespaces that make the process of COM and .NET interoperability quite straightforward. This appendix begins by examin- ing the process of .NET to COM interoperability and the related Runtime Callable Wrapper (RCW). The latter part of this appendix examines the opposite situation: a COM type communicating with a .NET type using a COM Callable Wrapper (CCW). ■Note A full examination of the .NET interoperability layer would require a book unto itself. If you require more details than presented in this appendix, check out my book COM and .NET Interoperability (Apress, 2002). The Scope of .NET Interoperability Recall that when you build assemblies using a .NET-aware compiler, you are creating managed code that can be hosted by the common language runtime (CLR). Managed code offers a number of ben- efits such as automatic memory management, a unified type system (the CTS), self-describing assemblies, and so forth. As you have also seen, .NET assemblies have a particular internal compo- sition.
    [Show full text]