Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp .NET Web Developer's Guide (2002) [eng].pdf
Скачиваний:
42
Добавлен:
16.08.2013
Размер:
7.14 Mб
Скачать

1 YEAR UPGRADE

B U Y E R P R O T E C T I O N P L A N

C # . N E T

Web Developer’s Guide

Develop and Deliver Enterprise-Critical Desktop and Web Applications with C# .NET

Complete Case Studies with Ready-to-Run Source Code and Full Explanations

Hundreds of Developing & Deploying, Migrating, and Debugging Sidebars, Security Alerts, and C# .NET FAQs

Complete Coverage of Web Services and the Integrated Development Environment (IDE)

Adrian Turtschi

DotThatCom.com

Jason Werry

Greg Hack

Joseph Albahari

Saurabh Nandu Technical Editor

Wei Meng Lee Series Editor

s o l u t i o n s @ s y n g r e s s . c o m

With more than 1,500,000 copies of our MCSE, MCSD, CompTIA, and Cisco study guides in print, we continue to look for ways we can better serve the information needs of our readers. One way we do that is by listening.

Readers like yourself have been telling us they want an Internet-based service that would extend and enhance the value of our books. Based on reader feedback and our own strategic plan, we have created a Web site that we hope will exceed your expectations.

Solutions@syngress.com is an interactive treasure trove of useful information focusing on our book topics and related technologies. The site offers the following features:

One-year warranty against content obsolescence due to vendor product upgrades. You can access online updates for any affected chapters.

“Ask the Author” customer query forms that enable you to post questions to our authors and editors.

Exclusive monthly mailings in which our experts provide answers to reader queries and clear explanations of complex material.

Regularly updated links to sites specially selected by our editors for readers desiring additional reliable information on key topics.

Best of all, the book you’re now holding is your key to this amazing site. Just go to www.syngress.com/solutions, and keep this book handy when you register to verify your purchase.

Thank you for giving us the opportunity to serve your needs. And be sure to let us know if there’s anything else we can do to help you get the maximum value from your investment. We’re listening.

www.syngress.com/solutions

1 YEAR UPGRADE

B U Y E R P R O T E C T I O N P L A N

C # . N E T

We b D eve l o p e r ’s G u i d e

Adrian Turtschi

DotThatCom.com

Jason Werry

Greg Hack

Joseph Albahari

Saurabh Nandu Technical Editor

Wei Meng Lee Series Editor

Syngress Publishing, Inc., the author(s), and any person or firm involved in the writing, editing, or production (collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be obtained from the Work.

There is no guarantee of any kind, expressed or implied, regarding the Work or its contents.The Work is sold AS IS and WITHOUT WARRANTY. You may have other legal rights, which vary from state to state.

In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out from the Work or its contents. Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you.

You should always use reasonable care, including backup and other appropriate precautions, when working with computers, networks, data, and files.

Syngress Media®, Syngress®,“Career Advancement Through Skill Enhancement®,” and “Ask the Author UPDATE®,” are registered trademarks of Syngress Publishing, Inc. “Mission Critical™,”“Hack Proofing™,” and “The Only Way to Stop a Hacker is to Think Like One™” are trademarks of Syngress Publishing, Inc. Brands and product names mentioned in this book are trademarks or service marks of their respective companies.

KEY

SERIAL NUMBER

001

CDFE48952P

002

NHBN9436KH

003

BAEN24P7BV

004

HY9W84UJTA

005

RTW9B39RE4

006

JSE4FAHT82

007

VTS8TYCGF2

008

AUTGFLDCWR

009

833K74SLAF

010

VFR4MHY3XW

PUBLISHED BY

Syngress Publishing, Inc.

800 Hingham Street

Rockland, MA 02370

C# .NET Web Developer’s Guide

Copyright © 2002 by Syngress Publishing, Inc. All rights reserved. Printed in the United States of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher, with the exception that the program listings may be entered, stored, and executed in a computer system, but they may not be reproduced for publication.

Printed in the United States of America

1

2

3

4

5

6

7

8

9

0

 

ISBN: 1-928994-50-4

 

 

Technical Editor: Saurabh Nandu

Freelance Editorial Manager: Maribeth Corona-Evans

Co-Publisher: Richard Kristof

Cover Designer: Michael Kavish

Acquisitions Editor: Catherine B. Nolan

Page Layout and Art by: Shannon Tozier

Developmental Editor: Kate Glennon

Copy Editor: Darren Meiss

CD Production: Michael Donovan

Indexer: Rich Carlson

Distributed by Publishers Group West in the United States and Jaguar Book Group in Canada.

Acknowledgments

We would like to acknowledge the following people for their kindness and support in making this book possible:

Richard Kristof and Duncan Anderson of Global Knowledge, for their generous access to the IT industry’s best courses, instructors, and training facilities.

Ralph Troupe, Rhonda St. John, and the team at Callisma for their invaluable insight into the challenges of designing, deploying and supporting world-class enterprise networks.

Karen Cross, Lance Tilford, Meaghan Cunningham, Kim Wylie, Harry Kirchner, Kevin Votel, Kent Anderson, and Frida Yara of Publishers Group West for sharing their incredible marketing experience and expertise.

Mary Ging, Caroline Hird, Simon Beale, Caroline Wheeler,Victoria Fuller, Jonathan Bunkell, and Klaus Beran of Harcourt International for making certain that our vision remains worldwide in scope.

Annabel Dent of Harcourt Australia for all her help.

David Buckland,Wendi Wong, Marie Chieng, Lucy Chong, Leslie Lim, Audrey Gan, and Joseph Chan of Transquest Publishers for the enthusiasm with which they receive our books.

Kwon Sung June at Acorn Publishing for his support.

Ethan Atkin at Cranbury International for his help in expanding the Syngress program.

Jackie Gross, Gayle Vocey, Alexia Penny, Anik Robitaille, Craig Siddall, Darlene Morrow, Iolanda Miller, Jane Mackay, and Marie Skelly at Jackie Gross & Associates for all their help and enthusiasm representing our product in Canada.

Lois Fraser, Connie McMenemy, and the rest of the great folks at Jaguar Book Group for their help with distribution of Syngress books in Canada.

v

Contributors

Todd Carrico (MCDBA, MCSE) is a Senior Database Engineer for Match.com. Match.com is a singles portal for the digital age. In addition to its primary Web site, Match.com provides back-end services to AOL, MSN, and many other Web sites in its affiliate program.Todd specializes in design and development of high-performance, high-availability data architectures primarily on the Microsoft technology. His background includes designing, developing, consulting, and project management for companies such as Fujitsu, Accenture, International Paper, and GroceryWorks.com. In addition to his contribution to C# .NET Web Developer’s Guide,Todd has also contributed chapters to other books in the Syngress .NET Series including the ASP .NET Web Developer’s Guide, and the VB .NET Developer’s Guide.Todd resides in Sachse,TX, with his wife and two children.

Mark Tutt is a Senior Software Engineer with MICROS Systems. MICROS provides complete information management solutions for the hospitality industry, including software, hardware, enterprise systems integration, consulting, and support. Mark is the principle designer of a number of software packages, including Guest Service Solution, a customer relationship management system for the MICROS Restaurant Enterprise Series platform. In addition to his product development duties, Mark is a key contributor to the design and development of system integration software and customer-specific product extensions that allow MICROS clients to fully integrate MICROS products into their overall technology plans. Mark currently resides in Baltimore, Maryland with his wife Malinda and their twin sons, Fred and Jackson.

Jason Werry (MCSD) runs a consulting firm, Synergy Data Solutions, in Australia. He currently provides strategic and technical consulting to his clients and specializes in Windows-based enterprise systems development. Jason has an extensive background using Microsoft technologies and is currently developing state-of-the-art,Web-based applications on the .NET platform. His clients have ranged from a Taiwanese multimedia company to various government departments and local startups. A natural born programmer, Jason started coding

Z80 processors in Assembly at age 13. Since then he has used most popular

vi

programming languages and presently enjoys working with SQL Server, MTS, IIS,Visual Basic, and C#. Jason holds a bachelor’s degree in Mathematics/ Computer Science from The University of Queensland. He dedicates his writing to his loving wife, LiHsing.

Patrick Coelho (MCP) is an Instructor at The University of Washington Extension, North Seattle Community College, Puget Sound Center, and Seattle Vocational Institute, where he teaches courses in Web Development (DHTML, ASP, XML, XSLT, C#, and ASP .NET). Patrick is a Co-Founder of DotThatCom.com, a company that provides consulting, online development resources, and internships for students. He is currently working on a .NET solution with contributing author David Jorgensen and nLogix. Patrick holds a Bachelor’s of Science degree from the University of Washington, Bothell. Patrick lives in Puyallup,WA with his wife Angela.

David Jorgensen (MCP) is an Instructor at North Seattle Community College, University of Washington extension campus, and Puget Sound Centers. He is also developing courses for Seattle Vocational Institute, which teaches

.NET and Web development to the underprivileged in the Seattle area. David also provides internship opportunities through his company DotThatCom.com, which does online sample classes and chapters of books. David holds a bachelor’s degree in Computer Science from St. Martin’s College and resides in Puyallup,WA with his wife Lisa and their two sons Scott and Jacob.

Greg Hack is a Senior Software Engineer with Allscripts Healthcare Solutions. Greg has over 15 years experience developing software on platforms ranging from the mainframe to the desktop using a wide variety of languages and technologies. Recent work includes a Web-based application that allows patients to view their medical records and a Pocket PC application that delivers clinical information to physicians at the point of care.

Axel Goldbach is a Senior Consultant with modulo3 GmbH, a consulting company based in Germany and specializing in project management consulting throughout Europe. modulo3 is a process implementation specialist for the major networking frameworks, including eXtreme Programming, MSF and

V Modell. Axel currently provides senior-level strategic and technical consulting to all modulo3 clients in Germany and Central Europe. His duties include analysis and development of multi-tiered applications in heterogeneous environments.

vii

Axel also works as a technical scout and trainer for modulo3. His training specialties include programming languages, networking, and academic fields such as development methodology, parserand interpreter-technology, theory of complexity, and provable correct software.

Joseph Albahari is a freelance consultant and developer with over 10 years experience in designing networked systems. He has led a string of successful projects, from custom application frameworks for start-up companies, to highperformance OLAP and data warehousing systems for telecommunications giants. His knowledge in object-oriented user interface design has been called upon in the planning or production of many large and complex systems, where well-balanced abstractions are of key importance. Joseph is also experienced in SQL Server database administration, and has developed high-performance solutions for clients with specialized requirements—such as a replication system providing field level synchronization, or a high-throughput bulk-copying agent. Joseph holds a Bachelor’s degree in computer science and physics.

Adrian Turtschi (MCSE, MCSD) is Lead Architect Solution Development with Avanade (Germany), where he is responsible for the solution offering in the mobile computing space. He has been working on the Microsoft .NET platform since fall 2000, specializing in developing enterprise systems using Web Services. He is particularly interested in using Web Services to bridge platform and system boundaries. Prior to joining Avanade, Adrian worked for KPMG’s Global Knowledge Exchange in Boston, where he helped design and develop KPMG's global knowledge management and collaboration solution, used by its 100,000 professionals world-wide. Adrian has work experience in Switzerland, the Netherlands, and the US. He has degrees in Mathematics and Computer Science. He currently lives in Berlin, Germany.

viii

Technical Editor and Reviewer

Saurabh Nandu is the Founder of www.MasterCSharp.com which concentrates on teaching C# and .NET. He worked with HTML, JavaScript, Flash 5.0 before he started programming in Java. Saurabh has been impressed by the power and flexibility of .NET. He is currently employed by YesSoftware Inc.

as Technical Evangelist.

Technical Editor’s Acknowledgements

I would like to thank my friend Nanu Jogi without whose direction I would have never got into working on the .NET Platform. I would also like to thank my family, especially my brother Pritesh, for their support.

Series Editor

Wei Meng Lee is Series Editor for Syngress Publishing’s .NET Developer Series. He is currently lecturing at The Center for Computer Studies, Ngee Ann Polytechnic, Singapore.Wei Meng is actively involved in Web development work and conducts training for Web developers and Visual Basic programmers. He has co-authored two books on WAP. He holds a Bachelor’s degree in Information Systems and Computer Science from the National University of Singapore.The first and second books of the .NET series, VB .NET Developer’s Guide (ISBN: 1-928994-48-2), and ASP .NET Developer’s Guide (ISBN: 1-928994-51-2) are currently available from Syngress Publishing.

ix

About the CD

This CD-ROM contains the code files that are used in each chapter of this book.The code files for each chapter are located in a chXX directory (for example, the files for Chapter 8 are in the ch08 directory). Any further directory structure depends on the projects that are presented within the chapter.

To work with the examples provided, you will need at least the Windows 2000 or Windows XP Professional operating system with the latest service packs, IIS 5.x, and IE 6.0, since ASP.NET and Web Services (a part of ASP.NET) are not supported on earlier operating systems such as Windows 9x/WindowsME/WindowsNT. Also needed is the

.NET SDK Beta2 (the latest public release available while writing this book) and the Visual Studio.NET Beta2 IDE.

The C# .NET Web Developer’s Guide provides you with extensive examples that will help solve the problems you might face while developing applications for the .NET Platform rather than concentrating on the theory of C# and .NET programming. Therefore code is the main feature of this book.

The chapters contain both code snippets and sample programs that illustrate the principles discussed. Chapter 2 presents a series of sample programs that introduce concepts in C# that are different from other object-oriented languages. Chapter 4 helps you understand the basics of building Graphical User Interface (GUI)-rich Windows Forms applications; the examples presented in this chapter are the launch pad for Windows Forms applications used in other chapters. Similarly, code presented in Chapter 8 helps you to interact with various databases using ADO.NET; again, this chapter acts as a foundation for further chapters’ database coverage. Chapter 9 will acquaint you with using

.NET Class Libraries to interact with XML and its related technologies.

Chapters 5, 6, and 11 discuss technologies and Application Program Interfaces (APIs) that help two applications to communicate and interact with each other. Chapter 5 focuses on enabling applications to communicate over the TCP and UDP protocols and provides an overview of the techniques used to interact with Web pages programmatically. Code examples in Chapter 6 and Chapter 11 concentrate on using Simple Object Access Protocol (SOAP) and object serialization and deserialization.

x

Chapter 7 examples examine message delivery in distributed applications using Microsoft Message Queuing (MSMQ). Chapter 10 takes a comprehensive look at ASP.NET and helps you build various applications of increasing complexity and functionality, starting with an XML Poll, progressing to a SQL-powered Message Board, and ending with a Shopping Cart.

Lastly, to end on a lighter note, Chapter 12 takes you through building a Jokes Web Service.The code in this chapter helps you build both the Jokes Web Service as well as the Windows Forms Client for the service.

Look for this CD icon to obtain files used in the book demonstrations.

xi

From the Series Editor

For many years, C and C++ programmers have been searching for alternative programming languages that offer the same kind of flexibility and power of C and C++, but without the complexities and steep learning curve required for mastery of the language.What many programmers desired was a language that would allow applications to be built rapidly, but at the same time giving them the ability to code at low level.The search has finally ended with Microsoft’s new language—C#, a member of the .NET Framework.

C# is the revolutionary new language from Microsoft, designed solely to run on the .NET framework. Drawing experiences from C, C++, and Visual Basic, C# was designed to be a simple and modern object oriented programming language.

But why learn C#? With the integration of C# and the Visual Studio.NET (known as Visual C#), developing Windows and Web applications has been radically simplified.With full access to the .NET Class Libraries, C# includes built-in support for developing robust Web services and ASP.NET applications. (It was reportedly said that Visual Studio.NET was built entirely using C# and that most of the examples in MSDN were coded in C#.That in and of itself is a very good reason to learn C#!) Besides this, C# enhances the productivity of programmers by eliminating common errors often associated with C and C++.

While many of the earlier C# books have primarily focused on the language syntax, The C# .NET Web Developer’s Guide illustrates the uses of C# for Web developers looking to harness the new functionality and ease of this powerful programming language.The best way to learn a new language is by trying out the examples while you are reading this book.Within many chapters, you will find numerous code examples used in various practical situations; this hands-on, code-intensive approach allows you to have a deeper understanding of issues involved in C# Web development, and at the same time allows you to cut and paste portions of applicable code into your current projects, thereby shortening development time.

We are constantly working hard to produce the best technical books needed by professional programmers like you. I sincerely hope you will enjoy reading this book as much as the authors did writing it!

Wei Meng Lee, Series Editor

Syngress .NET Developer Series

xii

Foreword

Seldom in the history of computer software has any technology received such a positive response from developers and the industry, even while the technology is still in its nascent beta stage.The .NET Beta2 SDK from Microsoft has already been downloaded by millions of developers all over the world.There have been dozens of published books,Web sites and newsgroups devoted to the .NET platform, its related technologies and languages.

Microsoft has invested billions of dollars and years of research in the creation of

.NET. .NET is a comprehensive strategy ,consisting of operating systems, database servers, application servers, and the .NET Runtime, as well as managed languages that operate over the .NET platform.

Many people see the .NET platform as the practical implementation of the previously formulated Windows DNA. Others see it as a response to developer woes from working with previous technologies and languages. However, the common opinion simply offers that .NET is a significant improvement over previous Microsoft technologies.The .NET platform has been built from the ground up with numerous goals in mind, including security, scalability, reliability, flexibility, and interoper- ability—these goals have all been dealt with from the start to help to make the .NET platform enterprise ready and developer-friendly.

The .NET platform displays a significant shift in Microsoft’s thinking.While building the .NET platform, Microsoft has shown strong support for open standards like XML, SOAP, and UDDI, rather than building its own proprietary standards and technologies. Even the core part of the .NET platform—the Common Language Infrastructure (CLI)—and the C# specifications have been placed before ECMA for standardization.

C# is defined as a simple, modern, object-oriented, and type-safe programming language derived from C and C++. Developed by Anders Hejlsberg of Microsoft especially for the .NET platform, C# derives its features from a number of languages

xxi

xxii Preface

like C, C++, and Java. Specifically written to offer the simplicity of Visual Basic and power of C++ as an object-oriented language, C# makes it easier for developers to create, debug, and deploy enterprise applications. It has also been predicted that C# will become the favored language for developing applications on the .NET platform. Visual Studio.NET, the next version of Visual Studio IDE, is also a key compo-

nent of the .NET strategy.The Visual Studio.NET IDE has also been given a facelift and packed with a wide variety of new functionalities. A bitmap editor, debugger, Web Forms designer,Windows Forms designer,Web Services designer, XML editor, HTML editor,Web browser, Server Resources Explorer, and multi-language support have all been packed into one single IDE.

The focus of The C#.NET Web Developer’s Guide is not on teaching you the core C# language, but rather providing you with code examples that will help you leverage the functionalities of the .NET Framework Class Libraries.The .NET Framework collection of base classes cover many of the multiple APIs. Although impossible for one book to cover all the features, in this book we have covered the key concepts, libraries, and APIs of the .NET Framework that we feel will help you easily create new applications using C#.

You have a whole host of features to learn and master, so why wait? Let’s get started!!

—Saurabh Nandu,Technical Editor

Founder, www.MasterCSharp.com

www.syngress.com

Contents

Foreword

xxi

Chapter 1 Introducing the Microsoft .NET Platform

1

Introduction

2

Introducing the.NET Platform

2

Microsoft .NET and Windows DNA

3

Microsoft .NET Architecture Hierarchy

4

Features of the .NET Platform

5

Multilanguage Development

5

Platform and Processor Independence

7

Automatic Memory Management

7

Versioning Support

8

Support for Open Standards

9

Easy Deployment

9

Distributed Architecture

10

Interoperability with Unmanaged Code

11

Security

12

Performance and Scalability

14

Components of the .NET Architecture

14

.NET Runtime

14

Managed/Unmanaged Code

14

Intermediate Language

15

Common Type System

15

.NET Base Class Library (BCL)

15

Assemblies

16

Metadata

16

Assemblies and Modules

17

Assembly Cache

18

Reflection

19

Just In Time Compilation

19

Garbage Collection

20

Exploring the Code Cycle

21

The Pursuit of Standardization

24

Summary/Solutions Fast Track/Frequently Asked Questions

26

Chapter 2 Introducing C# Programming

33

Introduction

34

Getting Started

35

Creating Your First C# Program

37

Compiling and Executing

38

Defining a Class

40

Declaring the Main Method

43

Organizing Libraries with Namespaces

43

xiii

xiv

Contents

 

 

Using the using Keyword

44

 

Adding Comments

45

 

Introducing Data Types

47

 

Value Types

47

 

Primitive Data Types

47

 

Reference Types

48

 

Explaining Control Structures

49

 

Using the if Statement

49

 

Using the if-else Statement

50

 

Using the switch case Statement

50

 

Using the for Statement

51

 

Using the while Statement

52

 

Using the do while Statement

52

 

Using the break Statement

52

 

Using the continue Statement

53

 

Using the return Statement

54

 

Using the goto Statement

55

 

Understanding Properties and Indexers

56

 

Using Properties

56

 

Get Accessor

59

 

Set Accessor

59

 

Accessing Lists with Indexers

60

 

Using Delegates and Events

69

 

Delegates

70

 

Single Cast

74

 

Multicast

75

 

Events

79

 

Using Exception Handling

85

 

Using the try Block

89

 

Using the catch Block

89

 

Using the finally Block

89

 

Using the throw Statement

89

 

Understanding Inheritance

90

 

Summary/Solutions Fast Track/Frequently Asked Questions

104

 

Chapter 3 Visual Studio.NET IDE

109

 

Introduction

110

 

Introducing Visual Studio.NET

110

 

Components of VS.NET

112

 

Design Window

112

 

Code Window

113

 

Server Explorer

114

 

Toolbox

116

 

Docking Windows

117

 

Properties Explorer

117

 

Solution Explorer

118

 

Object Browser

119

 

Dynamic Help

120

 

Task List Explorer

121

Contents

xv

Features of VS.NET

122

IntelliSense

122

XML Editor

124

Documentation Generation (XML Embedded Commenting)

127

Adding XML Document Comments to C# Pages

127

Customizing the IDE

129

Creating a Project

130

Projects

130

Creating a Project

130

Add Reference

131

Build the Project

131

Debugging a Project

132

Summary/Solutions Fast Track/Frequently Asked Questions

133

Chapter 4 Windows Forms

137

Introduction

138

Introducing Windows Forms

138

Writing a Simple Windows Forms Application

141

Adding Controls

142

Adding an Event Handler

145

Adding Controls at Runtime

147

Attaching an Event Handler at Runtime

152

Writing a Simple Text Editor

154

Starting the Project

154

Creating a Menu

155

Adding a New Form

157

Creating a Multiple Document Interface

159

Creating a Dialog Form

160

Using Form Inheritance

162

Adding a TabControl

164

Anchoring Controls

166

Changing the Startup Form

167

Connecting the Dialog

167

Using the ListView and TreeView Controls

170

Building an ImageList

170

Adding a ListView

172

Using the Details View

173

Attaching a Context Menu

174

Adding a TreeView

175

Adding a Splitter

177

Implementing Drag and Drop

178

Creating Controls

181

Creating a User Control

181

Adding a Property

182

Adding Functionality

182

Writing a Custom Control

183

Testing the Control

187

Enhancing the Control

189

Subclassing Controls

191

xvi

Contents

 

 

Custom Controls in Internet Explorer

193

 

Setting Up IIS

193

 

Creating a Virtual Directory

193

 

Writing a Test Page

194

 

Summary/Solutions Fast Track/Frequently Asked Questions

196

 

Chapter 5 Network Programming:

 

 

Using TCP and UDP Protocols

203

 

Introduction

204

 

Introducing Networking and Sockets

204

 

Introduction to TCP

206

 

Introduction to UDP

208

 

Introduction to Ports

211

 

System.Net Namespace

212

 

System.Net.Sockets Namespace

213

 

Example TCP Command Transmission and Processing

214

 

General Usage of Needed .NET Classes

216

 

The Server

217

 

The Client

220

 

Compiling and Running the Example

226

 

Example UDP Command Transmission and Processing

227

 

General Usage of Needed .NET Classes

228

 

The Server

229

 

The Client

231

 

Compiling and Running the Example

234

 

Creating a News Ticker Using UDP Multicasting

235

 

General Usage of Needed .NET Classes

236

 

The Server

240

 

The Client

243

 

Compiling and Running the Example

250

 

Creating a UDP Client Server Chat Application

250

 

The TCPServerSession Class

253

 

The TCPServer Class

256

 

The Chat Protocol

260

 

The ChatServer Class

260

 

The ChatClient Class

265

 

Compiling and Running the Example

268

 

Creating a TCP P2P File Sharing Application

269

 

The Remote File Stream Protocol

271

 

The RemoteFileStreamServer Class

272

 

The RemoteFileStreamProxy Class

276

 

The FileSharingPeer Class

279

 

Compiling and Running the Example

283

 

Access to Web Resources

283

 

General Usage of Needed .NET Classes

284

 

A Web Access Client

285

 

Compiling and Running the Example

289

 

Request Method

290

 

Redirection

290

Contents

xvii

Authentication

291

Cookies

291

Summary/Solutions Fast Track/Frequently Asked Questions

292

Chapter 6 Remoting

299

Introduction

300

Introducing Remoting

301

Remoting Architecture

302

Creating a Simple Remoting Client Server

303

Creating the Remote Server Object

303

Creating the Hosting Application

305

Creating the Client Application

306

Understanding the Remoting Code

308

Improving the Sample Application

310

Adding Event Logging and Error Handling

310

Using the soapsuds Tool

312

Using Configuration Files

313

Updating Configuration Files Using the .NET

 

Framework Configuration Tool

318

Changing the Hosting Application to a Service

319

Using the TCP Channel with the Binary Formatter

321

Summary of the Improved Sample Application

321

Creating an Intranet Application

321

Object Lifetime and Leasing

321

Creating the CountServer Project

322

Creating the CountHost Project

325

Creating the CountClient Project

326

Understanding the Leasing and Sponsorship Code

329

Client Activated Objects

331

Sending and Receiving Objects by Value

332

Sending and Receiving Objects by Reference

333

Creating Service-Based Applications

334

Building a Versioned Remoting Application

334

Creating the VersionHost Project

336

Creating the VersionClient Project

337

Testing Side-By-Side Execution of Remote Objects

339

Summary/Solution Fast Track/Frequently Asked Questions

340

Chapter 7 Message Queuing Using MSMQ

345

Introduction

346

Introducing MSMQ

346

MSMQ Architecture

348

Installing MSMQ

349

Using Visual Studio to Manage Queues

349

Creating a Simple Application

349

Understanding the Messaging Code

353

Sending Messages

353

Message Formats

355

Sending and Receiving Messages with Complex Objects

356

Storing Files within Messages

360

xviii

Contents

 

 

Setting Queue Options

364

 

Creating a Complex Application

365

 

Creating the MSMQGraphics Drawing Library

366

 

Creating the DrawingSender Project

369

 

Creating the DrawingReceiver Project

373

 

Creating an Asynchronous Application

376

 

Using Public Queues While Disconnected from the Network

378

 

Summary/Solutions Fast Track/Frequently Asked Questions

379

 

Chapter 8 ADO.NET

383

 

Introduction

384

 

Introducing ADO.NET

384

 

ADO.NET Architecture

386

 

Understanding the Connection Object

388

 

Building the Connection String

389

 

Understanding the Command Object

391

 

Understanding DataReaders

396

 

Understanding DataSets and DataAdapters

396

 

DataTable

398

 

DataColumn

398

 

DataRow

402

 

Differences between DataReader Model and DataSet Model

405

 

Understanding the DataView Object

406

 

Working with System.Data.OleDb

408

 

Using DataReaders

408

 

Using DataSets

414

 

Working with SQL.NET

418

 

Using Stored Procedures

419

 

Working with Odbc.NET

422

 

Using DSN Connection

423

 

Summary/Solutions Fast Track/Frequently Asked Questions

426

 

Chapter 9 Working with XML

431

 

Introduction

432

 

Introduction to XML

432

 

Explaining XML DOM

434

 

Explaining XPath

435

 

Explaining XSL

436

 

Explaining XML Schemas

437

 

XML Classes in the .NET Framework

437

 

Working with XML DOM

439

 

Creating an Empty XML DOM Document

442

 

Adding an Element to the XML Document

443

 

Updating an Element in the XML Document

446

 

Deleting an Element in the XML Document

450

 

Loading and Saving the XML Document

451

 

Working with XML and Relational Data

452

 

XML and the DataSet Class

456

 

XML Schemas and the DataSet Class

461

 

Traversing Relations in the DataSet Class

464

Contents

xix

Working with XPath and XSL Transformations

469

Working with XPath

469

Working with XSL

479

Summary/Solutions Fast Track/Frequently Asked Questions

490

Chapter 10 ASP.NET

495

Introduction

496

Introducing the ASP.NET Architecture

496

ASP.NET Server Controls

497

Working with User Controls

501

Custom Controls

510

Understanding the Web.config File

511

Using the Global.asax Page

513

Working with Web Forms

513

Creating a Simple Web Form

513

Building an XML Poll

517

Creating the updateXPoll Method

523

Creating the updateFile Method

525

Displaying the Current Poll Statistics

526

Working with ADO.NET

529

Building a Message Board with SQL

529

Using VS.NET to Validate Form Input with a Regular Expression

538

XML and XSLT

543

Using the String Builder Class

547

Building a Shopping Cart with SQL

549

Creating dataaccess.cs

551

Creating XmlShoppingCart.cs

553

Creating catalog.cs

556

Summary/Solutions Fast Track/Frequently Asked Questions

571

Chapter 11 Web Services

575

Introduction

576

The Case for Web Services

576

The Role of SOAP

577

Why SOAP?

578

Why Web Services?

579

The World of Web Services

579

Web Service Standards

581

Wiring Up Distributed Objects—The SOAP Protocol

581

Creating Your Very First Web Service

581

Running Your Very First Web Service

589

Describing Web Services—WSDL

602

Discovering Web Services—DISCO

608

Publishing Web Services—UDDI

610

Working with Web Services

611

Passing Complex Data Types

611

Error Handling

614

Malformed SOAP Request

614

Wrong Argument Types

617

Exceptions in Server Code

617

xx

Contents

 

 

Writing a SOAP Client Application

619

 

Passing Objects

626

 

Passing Relational Data

631

 

Passing XML Documents

635

 

Working with UDDI

639

 

SOAP Headers

646

 

Advanced Web Services

646

 

Maintaining State

647

 

State Information in the URL (URL Mangling)

648

 

State Information in the Http Header (Cookies)

651

 

State Information in the Http Body (SOAP Header)

653

 

Security

662

 

Summary/Solutions Fast Track/Frequently Asked Questions

664

 

Chapter 12 Building a Jokes Web Service

669

 

Introduction

670

 

Motivation and Requirements for the Jokes Web Service

670

 

Functional Application Design

672

 

Defining Public Methods

672

 

Defining the Database Schema

673

 

Defining the Web Service Architecture

674

 

Security Considerations

676

 

State Management

677

 

Error Handling

677

 

Implementing the Jokes Data Repository

677

 

Installing the Database

678

 

Creating the Stored Procedures

680

 

Implementing the Jokes Middle Tier

694

 

Setting Up the Visual Studio Project

694

 

Developing the Error Handler

698

 

Developing the Database Access Component

702

 

Developing the User Administration Service

704

 

Adding New Users

704

 

Checking Existing User Information

709

 

Adding Moderators

713

 

Creating the Public Web Methods—Users

715

 

Error Handling for the Public Web Methods

718

 

Creating the Public Web Methods—Administrators

720

 

Testing the Public Web Methods

722

 

Developing the Jokes Service

724

 

Best Practices for Returning Highly Structured Data

724

 

Setting Up Internal Methods to Wrap the Stored Procedure Calls

727

 

Setting Up Internal Methods to Manage Jokes and Ratings

734

 

Setting Up Internal Methods to Return Jokes

742

 

Creating the Public Web Methods

748

 

Creating a Client Application

758

 

Some Ideas to Improve the Jokes Web Service

775

 

Summary/Solutions Fast Track/Frequently Asked Questions

776

Index

781

Соседние файлы в предмете Программирование на C++