
At a Glance
544 Pages
22.86 x 19.05 x 3.18
Paperback
$84.99
or 4 interest-free payments of $21.25 with
 orÂShips in 5 to 7 business days
| Foreword | p. xv |
| About the Author | p. xvii |
| About the Technical Reviewer | p. xix |
| Acknowledgments | p. xxi |
| Introduction and AFAQ (Anticipated Frequently Asked Questions) | p. xxiii |
| Who Is This Book For? | p. xxiii |
| How Is This Book Different from Distributed .NET Programming in C#? | p. xxiv |
| What's Up with the ADO.NET Appendix by Andrew Troelsen? | p. xxiv |
| What Do I Need to Run the Examples? | p. xxiv |
| Why Isn't There Any Real-World Code? | p. xv |
| How Come You Don't Have Tables Listing All the Options/Methods/Parameters of Each Tool/Class/Method? | p. xv |
| Why Do I Keep Getting "File Not Found" Exceptions When I Run the Example Code? | p. xv |
| What's Up with the Spinal Tap Quotes? | p. xxvi |
| The Evolution of Distributed Programming | p. 1 |
| Overview of Distributed Programming | p. 1 |
| Layering an Application | p. 2 |
| The Five Principles of Distributed Design | p. 3 |
| Defining Scalability | p. 11 |
| A Short History of Distributed Programming | p. 13 |
| Centralized Computing | p. 13 |
| Two-tier Client/Server Architecture | p. 14 |
| Three-tier and N-tier Client/Server Architecture | p. 15 |
| The Web Architecture | p. 17 |
| Microsoft and Distributed Computing | p. 18 |
| The Era of PC Dominance | p. 19 |
| The Age of Enlightenment | p. 19 |
| The Days of Disillusionment | p. 21 |
| The Present: .NET | p. 23 |
| Summary | p. 24 |
| This Is .NET | p. 27 |
| Understanding the .NET Infrastructure | p. 27 |
| The Importance of Type | p. 28 |
| The Three Cs of .NET: CTS, CLS, and CLR | p. 28 |
| Using Namespaces | p. 30 |
| Assemblies and Manifests | p. 32 |
| Intermediate Language | p. 32 |
| Building and Configuring .NET Assemblies | p. 33 |
| Building a Private Assembly | p. 33 |
| Building a Shared Assembly | p. 44 |
| Understanding .NET Versioning | p. 54 |
| Setting an Assembly's Version Information | p. 54 |
| Revisiting the Application Configuration File | p. 57 |
| Setting Machine-wide Version Policies | p. 58 |
| Using the .NET Framework Configuration Tool | p. 58 |
| Configuring Publisher Policy | p. 61 |
| Policy Precedence | p. 64 |
| Using the [left angle bracket]codeBase[right angle bracket] Element | p. 64 |
| Viewing the Assembly Binding Log | p. 66 |
| Summary of the Binding Process | p. 68 |
| Understanding Attributes and Reflection | p. 68 |
| Using CLR Attributes | p. 69 |
| Implementing Custom Attributes | p. 71 |
| Reflecting upon Reflection | p. 72 |
| Attributes and Reflection in Perspective | p. 75 |
| Understanding Garbage Collection | p. 75 |
| Reference Counting vs. Garbage Collection | p. 76 |
| Garbage Collection Internals | p. 78 |
| Implementing the Finalize Method | p. 79 |
| Implementing the IDisposable Interface | p. 81 |
| Garbage Collection in Perspective | p. 84 |
| Serialization | p. 84 |
| Using the Serializable Attribute | p. 85 |
| ISerializable and Formatters | p. 87 |
| Summary | p. 89 |
| Introduction to .NET Remoting | p. 91 |
| What Is Remoting? | p. 91 |
| Understanding Application Domains | p. 92 |
| Programming with Application Domains | p. 93 |
| Understanding Context | p. 95 |
| Marshaling Objects | p. 105 |
| Marshal By Value Objects | p. 105 |
| Marshal By Reference Objects | p. 106 |
| Shared Methods and Other Remoting Details | p. 107 |
| Summarizing Marshaling and Context Agility | p. 108 |
| Examining the .NET Remoting Framework | p. 109 |
| Looking at the Big Picture | p. 109 |
| Well-Known vs. Client-Activated Objects | p. 110 |
| Understanding Proxies | p. 111 |
| Understanding Channels and Formatters | p. 114 |
| Summary | p. 117 |
| Distributed Programming with .NET Remoting | p. 119 |
| Implementing Well-Known Objects | p. 119 |
| Building the Server | p. 119 |
| Building the Client | p. 123 |
| Singleton Mode vs. SingleCall Mode | p. 127 |
| Looking (Briefly) at Some Remoting Issues | p. 130 |
| Remoting Configuration | p. 130 |
| Implementing Client-Activated Objects | p. 138 |
| Building the Server | p. 140 |
| Building the Client | p. 142 |
| Understanding Lease-based Lifetimes | p. 144 |
| Building Remoting Hosts | p. 159 |
| Hosting Remotable Objects in a Windows Service | p. 159 |
| Hosting Remotable Objects in ASP.NET | p. 167 |
| Summary | p. 172 |
| Additional Remoting Techniques | p. 175 |
| Solving the Metadata Deployment Issue | p. 175 |
| Deploying Metadata Assemblies | p. 176 |
| Deploying Interface Assemblies | p. 186 |
| Using the Soapsuds Utility | p. 193 |
| Summary of Deployment Issues | p. 200 |
| Calling Remote Objects Asynchronously | p. 201 |
| Understanding Delegates | p. 201 |
| Using Delegates for Local Asynchronous Calls | p. 206 |
| Using Delegates for Remote Asynchronous Calls | p. 214 |
| Summarizing Asynchronous Remoting | p. 227 |
| Understanding Call Context | p. 228 |
| Call Context vs. Thread Local Storage | p. 229 |
| Using Call Context with Remoting | p. 230 |
| Using Call Context with Asynchronous Calls | p. 233 |
| Using Call Context Headers | p. 235 |
| Summary | p. 236 |
| Understanding XML Web Services | p. 237 |
| Web Services Overview | p. 237 |
| Why Web Services? | p. 238 |
| Web Service Composition | p. 239 |
| The World Wide Web Consortium | p. 247 |
| Building and Consuming Web Services in .NET | p. 248 |
| The IIS to ASP.NET to Web Service Relationship | p. 248 |
| Using Code-Behind | p. 249 |
| Building Web Services with Visual Studio .NET | p. 251 |
| Consuming the Web Service | p. 255 |
| Calling Web Services Asynchronously | p. 258 |
| Returning Custom Types from the Web Service | p. 259 |
| Using the ASP.NET Session Object | p. 268 |
| Remoting vs. Web Services | p. 270 |
| Summary | p. 271 |
| Understanding COM Interop | p. 273 |
| The Need for COM Interop | p. 273 |
| Managed to Unmanaged Interop | p. 274 |
| Understanding the Runtime Callable Wrapper | p. 274 |
| Building an Interop Assembly | p. 275 |
| Unmanaged to Managed Interop | p. 276 |
| Understanding the COM Callable Wrapper | p. 277 |
| Registering an Assembly for COM Interop | p. 278 |
| Writing Managed Code for COM Interop | p. 279 |
| Managed Code and COM Versioning | p. 285 |
| Summary | p. 288 |
| Leveraging Component Services | p. 289 |
| Component Services Overview | p. 289 |
| Component Services Motivation | p. 290 |
| Revisiting Context | p. 290 |
| Survey of Component Services | p. 291 |
| Survey of COM+ Configuration Settings | p. 292 |
| Building Serviced Components in Managed Code | p. 295 |
| Populating the COM+ Catalog | p. 296 |
| Experimenting with a Simple Serviced Component | p. 299 |
| Examining COM+ and .NET Interaction | p. 317 |
| Just-In-Time Activation | p. 319 |
| Understanding Object Pooling | p. 329 |
| Using Object Construction | p. 334 |
| Automatic Transactions | p. 335 |
| The Distributed Transaction Coordinator | p. 336 |
| Enabling Transactions | p. 338 |
| Determining the Transaction's Outcome | p. 339 |
| Consuming Serviced Components | p. 346 |
| Exposing Objects with DCOM | p. 346 |
| Exposing Objects with .NET Remoting | p. 348 |
| Investigating New Features in COM+ 1.5 | p. 351 |
| Application Recycling and Pooling | p. 351 |
| Configurable Transaction Isolation Levels | p. 353 |
| SOAP Services | p. 354 |
| Summary | p. 355 |
| .NET Message Queuing | p. 357 |
| Message Queuing Overview | p. 357 |
| Why Message Queuing? | p. 358 |
| Message Queuing Architecture | p. 359 |
| Message Queuing vs. Remoting vs. Web Services | p. 360 |
| Installing and Administering MSMQ | p. 360 |
| MSMQ Installation Options | p. 360 |
| Creating and Managing Queues | p. 363 |
| Using .NET Message Queuing | p. 365 |
| Building the Sender | p. 365 |
| Building the Receiver | p. 370 |
| Sending Custom Types in Messages | p. 376 |
| Writing Queued Components in Managed Code | p. 384 |
| The Queued Component Architecture | p. 385 |
| Implementing a Queued Component | p. 387 |
| Handling Queued Component Exceptions | p. 388 |
| Summary | p. 391 |
| Data Access with ADO.NET | p. 395 |
| The Need for ADO.NET | p. 395 |
| ADO.NET: The Big Picture | p. 396 |
| Understanding ADO.NET Namespaces | p. 398 |
| The Types of System.Data | p. 399 |
| Examining the DataColumn Type | p. 400 |
| Building a DataColumn | p. 402 |
| Adding a DataColumn to a DataTable | p. 403 |
| Configuring a DataColumn to Function As a Primary Key | p. 404 |
| Enabling Auto-Incrementing Fields | p. 404 |
| Configuring a Column's XML Representation | p. 406 |
| Examining the DataRow Type | p. 407 |
| Understanding the DataRow.RowState Property | p. 408 |
| The ItemArray Property | p. 410 |
| Details of the DataTable | p. 412 |
| Building a Complete DataTable | p. 413 |
| Manipulating a DataTable: Deleting Rows | p. 416 |
| Manipulating a DataTable: Applying Filters and Sort Orders | p. 418 |
| Manipulating a DataTable: Updating Rows | p. 421 |
| Understanding the DataView Type | p. 424 |
| Understanding the Role of the DataSet | p. 426 |
| Members of the DataSet | p. 428 |
| Building an In-Memory DataSet | p. 430 |
| Expressing Relations Using the DataRelation Type | p. 433 |
| Navigating Between Related Tables | p. 434 |
| Reading and Writing XML-Based DataSets | p. 438 |
| Building a Simple Test Database | p. 441 |
| ADO.NET Managed Providers | p. 442 |
| Working with the OleDb Managed Provider | p. 443 |
| Establishing a Connection Using the OleDbConnection Type | p. 444 |
| Building a SQL Command | p. 446 |
| Working with the OleDbDataReader | p. 447 |
| Connecting to an Access Database | p. 448 |
| Executing a Stored Procedure | p. 449 |
| The Role of the OleDbDataAdapter Type | p. 452 |
| Filling a DataSet Using the OleDbDataAdapter Type | p. 454 |
| Working with the SQL Managed Provider | p. 456 |
| The System.Data.SqlTypes Namespace | p. 457 |
| Inserting New Records Using the SqlDataAdapter | p. 458 |
| Updating Existing Records Using the SqlDataAdapter | p. 461 |
| Autogenerated SQL Commands | p. 463 |
| Filling a Multitabled DataSet (and Adding DataRelations) | p. 465 |
| Bring in the Wizards! | p. 469 |
| Establishing a Data Connection | p. 469 |
| Creating a SQL Connection at Design Time | p. 471 |
| Building a Data Adapter | p. 473 |
| Using the Configured Data Adapter | p. 477 |
| Summary | p. 478 |
| Index | p. 481 |
| Table of Contents provided by Syndetics. All Rights Reserved. |
ISBN: 9781590590683
ISBN-10: 1590590686
Series: .Net Developer
Published: 24th September 2002
Format: Paperback
Language: English
Number of Pages: 544
Audience: College, Tertiary and University
Publisher: Springer Nature B.V.
Country of Publication: US
Dimensions (cm): 22.86 x 19.05 x 3.18
Weight (kg): 1.11
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In
This product is categorised by
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
- Non-FictionComputing & I.T.Digital Lifestyle & Online World: Consumer & User GuidesInternet Guides & Online Services
- Non-FictionComputing & I.T.Computer Networking & CommunicationsClient-Server Networking
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentMicrosoft Programming
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
























