search for books and compare prices
Tables of Contents for Professional Windows DNA
Chapter/Section Title
Page #
Page Count
Introduction
1
1
Who is This Book For?
2
1
What's Covered in This Book
2
1
What You Need to Use This Book
3
1
Conventions
3
2
Why Do We Need DNA?
5
20
Internet Application Design
6
3
Internet Application Requirements
6
1
Platform Capability Requirements
7
1
Application Design Goals
7
2
Network Applications
9
10
Network Application Characteristics
10
2
Evolution of Network Applications
12
1
Monolithic Applications
12
2
The Road to Client-Server
14
1
n-Tier Architecture
15
4
DNA Design Objectives
19
4
Summary
23
2
What Is Windows DNA, Anyway?
25
32
Microsoft Windows DNA
26
3
The Structure of DNA
26
1
DNA and n-Tier Architecture
26
3
Elements of Modern DNA
29
11
Windows 2000
31
1
Windows 2000 and Platform Integration
31
1
Internet Information Services (IIS)
32
1
COM+
32
2
MSMQ
34
1
Security
34
1
Clustering and Network Load Balancing
35
1
XML Support
36
1
Universal Data Access
36
3
Open Communications
39
1
Foreshadowing .NET
40
6
Server Packages
40
1
Commerce Server 2000
40
1
Host Integration Server 2000
41
1
SQL Server 2000
42
1
Exchange Server 2000
42
1
BizTalk Server 2000
43
2
Application Center 2000
45
1
Internet Security and Acceleration Server 2000
46
1
How Windows DNA Solves our Problems
46
8
Meeting the Design Objectives
47
1
Autonomy
47
1
Reliability
47
1
Scalability
48
1
Availability
49
1
Interoperability
50
1
Meeting Network Challenges
51
1
Connectivity
51
1
Resource Collection
51
1
Security
52
1
Platform Integration
53
1
Management and Configuration
53
1
A Word on Open Standards and Proprietary Systems
54
1
Summary
54
3
The Component Object Model
57
28
What is COM?
58
2
The COM Library
58
1
Advantages of COM
59
1
Objects & Classes
60
1
Objects
60
1
Classes
60
1
COM Components
61
5
Client versus Server
63
1
Server Components
64
1
Out-of-process Servers
64
1
In-process Servers
65
1
ActiveX Controls
66
1
Interfaces -- COM's Binary Standard
66
5
COM's Binary Contract
67
1
Version Control
67
1
IDL/MIDL
67
2
Hresult
69
1
IUnknown
70
1
AddRef and Release
70
1
QueryInterface
70
1
Virtual Function Tables
70
1
UUIDs, GUIDs, and the Windows Registry
71
2
System Registry
72
1
Creating a COM Object
73
10
LockServer
74
1
Try It!
75
8
Summary
83
2
Distributed Processing
85
34
Distributed Processing
86
5
Implementations
86
1
Sockets
86
2
Remote Procedure Calls
88
1
Components
89
2
Distributed Processing and Windows DNA
91
7
Native Methods
91
1
COM+
92
1
Microsoft Message Queue
93
1
Open Methods
94
1
SOAP and .NET
95
1
BizTalk Server
96
2
DCOM: COM with a Longer Wire
98
2
Marshalling
98
1
Security and Authentication
98
1
Resource Collection
99
1
Application Issues
99
1
Julian Dates Example
100
12
Active Template Library
101
1
IJulianDate Interface
101
3
C++ Implementation
104
2
Deploying Components with COM+
106
1
Configuring a COM+ Application
106
3
Packaging a Component for Export
109
2
Configuring the Remote Client
111
1
Implications for a DNA Application
111
1
Stateful Components and Network Round Trips
112
1
Proxies and Stubs
112
1
Microsoft Message Queue
112
3
Scalability and Availability
113
1
Servers
113
1
Clients
113
1
Queues and Messages
114
1
Component Streaming in DNA
114
1
Queued COM+ Components and MSMQ
114
1
Summary
115
4
Business Objects
119
30
Introduction to Business Objects
120
9
Composition of a Business Object
120
1
State
121
1
Implementation
121
1
Interface
122
1
Why Use Objects?
123
1
Maintainability
123
1
Reusability
123
1
Abstraction
123
1
Business Logic
124
1
Types of Business Logic
124
2
UI Logic versus Business Logic
126
1
Component-Oriented Design
126
1
Developing with Components
127
1
Interfaces and GUID Values
127
1
Components and ASP
128
1
Fitting This into Windows DNA
129
18
Separation of UI, Business, and Data
129
1
Separation of UI and Business
129
1
Separation of Data and Business
130
1
Objects and Windows DNA
131
1
Business Objects on the Web Server
132
1
Things to Watch For
133
1
Object and Component Usability
133
4
Performance/Scalability
137
7
Maintainability
144
3
Summary
147
2
COM+ Architecture
149
30
COM and MTS Join Forces
150
6
Microsoft Transaction Server
150
1
MTS Services
150
3
Introducing COM+
153
1
Improvements to Features from COM and MTS
153
1
New Services to COM+
154
2
COM+
156
20
Component Activation
157
1
MTS Object Communication
157
1
COM+ Object Communication
158
1
COM+ Applications
158
1
Security
159
3
Activation Types
162
1
Identity
163
1
Queuing
164
1
COM+ Components, Interfaces, and Methods
165
1
Transactions
166
1
Security
167
2
Activation
169
2
Concurrency
171
1
COM+ Catalog
172
1
COM+ Context
173
1
Context Interfaces
173
1
IObjectContext
173
1
IObjectContextinfo
174
1
IContextState
174
1
ISecurityCallContext
175
1
IObjectControl
175
1
Summary
176
3
Building COM+ Components
179
42
Choosing a Language for COM+ Components
179
2
Visual Basic
180
1
Creating a COM+ Component in VB
181
31
The Contacts Sample
182
1
The Contact Object
182
1
The ContactList Object
183
1
The Database
184
1
Design Issues
184
1
Designing in Layers
184
2
Factoring
186
1
Multi-Use Objects
187
1
The Business Objects
188
1
Unattended Execution
189
1
The ContactMain Module
190
1
The ContactList Class
191
3
The Contact Class
194
12
Building the Component
206
1
Compiling a COM Object Under VB
207
1
Compatibility Issues
207
2
The Threading Model
209
2
Base Address
211
1
Designing for COM+ Services
212
6
Supporting Transactions
213
1
Coding: Properties, Objects, Parameters, and more
213
1
Just-In-Time (JIT) Activation
214
4
Summary
218
1
Further Reading
218
3
Database orientated
218
1
On-Line:
218
1
Books
218
1
Object Orientated
219
1
On-Line:
219
1
Books
219
2
Introduction to Transactions
221
38
Basics of Transactions
222
3
ACID Properties
222
1
Why Do We Need Transactions?
223
2
Transaction Processing Systems
225
4
Resource Managers
226
1
Compensating Resource Managers
226
1
Transaction Managers
227
1
DTC
227
1
Two-Phase Commit Protocol
228
1
Application
228
1
Transactional Support in COM+
229
11
Root and Interior Objects
229
1
The Transactional Support Property
230
1
Object Context
231
1
The IObjectContext Interface
232
1
Casting Your Vote
233
2
Concurrency
235
5
Just-In-Time Activation
240
1
Building Transactional Applications Using VB 6.0
240
17
Transactional Support for VB 6.0 Classes
240
2
Creating Interior COM+ Objects in VB
242
4
The Compensating Resource Manager
246
1
CRM Worker
246
4
CRM Compensator
250
6
Configuring and Using the FileSystemCRM
256
1
Summary
257
2
Building Asynchronous Applications
259
46
What is Asynchronous Processing?
260
1
Threads
260
1
Synchronous or Asynchronous Processing?
260
1
Types of Asynchronous Processing
260
1
Queues
260
1
Events
261
1
Why Implement Asynchronous Processing?
261
27
Ways to Implement Asynchronous Processing
262
1
Queues and Databases
262
1
Custom Database Solution
262
7
What is MSMQ
269
2
MSMQ Queues
271
1
MSMQ Messages
272
2
MSMQ Object Model
274
6
MSMQ Sample Solution
280
8
COM+ Queued Components
288
5
Queued Components Architecture
288
1
QC Sample Solution
289
4
Events and Callbacks
293
7
How Do Events and Callbacks Work?
293
1
ActiveX Data Objects
293
4
XMLDOM
297
2
Remote Scripting
299
1
Other Ways to Utilize Asynchronous Processing
300
2
Windows Scheduler
300
1
SQL Server Jobs
301
1
Summary
302
3
COM+ Events
305
36
Implementing Events in DNA Applications
306
9
Brute Force
306
1
Callbacks
306
2
Loosely Coupled Events
308
1
Simple COM+ Events Example
308
1
Event Class
309
2
Event Subscriber
311
3
Publisher
314
1
Simple Example Summary
315
1
Event Class
315
2
Subscriber
317
8
Subscription
318
1
Persistent Subscriptions
319
1
Transient Subscriptions
319
6
Publisher
325
1
Registering a Publisher
325
1
Filtering
326
9
Subscriber Filtering
326
1
Persistent Subscribers
327
1
Transient Subscribers
328
1
Publisher Filtering
329
1
Boss In/Out Publisher Filter
330
3
Modified Publisher
333
2
Queued Components
335
1
Transactions
336
2
Summary
338
3
More Business Object Issues
341
30
Services versus Objects
342
9
Service-Based Architecture
343
1
Data-Centric Programming
343
1
Service and Object Confusion
344
1
Merging Objects and Services
345
1
Object-Oriented Services
346
3
Objects for Use by ASP
349
2
Object Relationships
351
7
Class Relationships
352
1
Association
352
1
Aggregation and Containment
352
1
Generalization (Inheritance)
353
4
Enforcing Business Rules
357
1
Separating Data Access from Objects
358
10
Distributed Architecture
358
1
UI-Centric Business Objects
359
4
Data-Centric Services
363
5
Summary
368
1
Further Resources
368
3
Interoperability for the Web - SOAP
371
20
The Third Age of the Web - Programmability and Interoperability
372
4
Programming the Web
373
1
Platform Incompatibilities
373
1
Component Interoperability
374
1
Putting XML and HTTP Together
375
1
SOAP Breaks In
376
7
SOAP and DCOM
376
1
COM Internet Services
377
1
SOAP and BizTalk
378
1
The SOAP Status Quo
378
1
SOAP Programming Interface
378
1
SOAP Security
379
1
SOAP Requests and Responses
379
1
Uniform Resource Identifiers
380
1
The M-POST Command
381
1
Component Activation
382
1
The SOAP Response
382
1
SOAP of Today: XmlHttpRequest
383
3
Using XmlHttpRequest
384
2
SOAP of the Future: Web Services
386
1
Web Service Design
386
1
Creating a Web Service
386
1
Alternatives to SOAP
386
2
Remote Scripting
387
1
Remote Data Services
387
1
Getting Ready for SOAP
388
1
Summary
388
3
Universal Data Access
391
24
The Need for New Data Access Methods
392
3
Data Access - Two Philosophies
393
2
UDA - An Overview
395
1
UDA Architecture
395
2
Simplicity
396
1
Maintainability
396
1
Reliability
396
1
Interoperability
396
1
Scalability
397
1
Reusability
397
1
Extensibility
397
1
UDA: a Collection of Technologies
397
10
ODBC
398
1
The ODBC Application Programming Interface
398
1
ODBC Driver
398
1
ODBC Driver Manager
398
1
Data Source
399
1
OLE DB
400
1
Data Consumers
401
1
Service Components
401
1
Data Providers
402
1
Connecting to Data Sources using OLE DB
403
4
ADO
407
5
ADO Objects
408
1
The Connection Object
408
1
The Error Object and Errors Collection
408
1
The Command Object
409
1
The Parameter Object and Parameters Collection
409
1
The Recordset Object
409
1
The Field Object and Fields Collection
409
1
The Property Object and Properties Collection
409
1
New Objects with ADO 2.5
409
1
Creating a Recordset Object
410
1
Explicit Creation of the Connection Object
410
1
Implicit Creation of the Connection Object
410
1
VB vs. C++
411
1
RDS
412
1
Summary
413
2
SQL Server 2000
415
28
Introduction to SQL Server 2000
416
1
SQL Server and Windows DNA
417
1
Design Issues Prior to Development
418
1
Design Issues After Development
418
1
SQL Server 2000 Enhancements and Additions
418
12
Exploring Performance Enhancements
420
1
Index Enhancements
420
1
Indexed Views
421
1
Collation Enhancements
421
1
Exploring Scalability Enhancements
422
1
Multiple SQL Server Instances
422
1
Federated Server
422
1
Exploring Reliability Enhancements
423
1
Cascading Referential Integrity Constraints
423
1
Failover Clustering Enhancements
423
1
Data Transformation Services Enhancements
423
6
Exploring the DTS Code
429
1
SQL Server Meta Data Services
430
1
SQL Server 2000 and the Web
431
2
Accessing SQL Server from the Web
431
1
IIS Integration with SQL Server Architecture
431
1
IIS Virtual Directory Management
432
1
Creating XML
433
3
XML Application Overview
436
1
XML Templates
436
3
Setting Up Templates
437
1
Running Templates
437
1
The Customer Template
438
1
The Orders Template
438
1
The Order Details Template
439
1
Writing XML Data
439
1
Summary
440
3
Windows 2000 Directory Services
443
42
Overview
444
1
Active Directory Defined
445
15
The Authentication Features of the Active Directory
445
1
The Attribute Features of the Active Directory
446
2
Directory Service Structure
448
3
What Goes in SQL Server and What Goes in the DS?
451
1
The Types of Windows 2000 Directory Services
452
1
Site Server 3.0 Membership
452
1
The Windows 2000 Active Directory
453
2
The Windows 2000 Site Server ILS Service
455
1
Active Directory Service Interfaces (ADSI)
455
1
x.500, the Origins of the DS
456
2
Lightweight Directory Access Protocol (LDAP)
458
2
Directory Service Tools
460
5
Active Directory Users and Computers Tool
460
2
Membership Directory Manager
462
1
Personalization and Membership MMC
463
1
The Active Directory Schema Editor
464
1
Programming the Directory Service
465
17
Private Functions Used to Retrieve Active Directory Properties
466
2
Private Functions Used to Connect to the Active Directory
468
1
GetRootObjectName
468
3
GetRootDomainNamingContext
471
1
The Public Functions
472
1
ADOSearch
472
5
GetAttribute
477
3
SetAttribute
480
2
Summary
482
3
How Rich are Your Clients?
485
20
Overview
485
2
Spectrum of Clients
487
8
3270 Terminal
487
1
Telnet and VT Series Terminals
488
1
XWindows Terminals
488
1
PC-based GUI
489
1
HTML Forms
489
1
Dynamic HTML
490
1
Wireless and Microbrowsers
490
1
Disconnected Clients
491
2
Terminal Services Clients
493
2
Windows DNA and Clients
495
8
PC-based GUI
496
2
HTML Forms
498
1
Dynamic HTML
499
1
Wireless and Microbrowsers
500
1
Disconnected Clients
500
2
Terminal Services Clients
502
1
Summary
503
2
Building Win32 Clients - ActiveX Controls
505
30
ActiveX Controls - A First Look
506
3
What are ActiveX Controls?
506
1
Creating an ActiveX Project
506
1
Types of Controls
507
1
Databound Controls
507
1
Unbound Controls
508
1
Bound or Unbound - Which to Use
508
1
An Unbound ActiveX Control
509
2
Coding the Unbound Control
509
2
ActiveX Control Behavior
511
9
Exposing Control Properties
512
1
Ambient Properties
512
1
Exposing Control Methods
513
1
Constituent Control Properties
513
1
Exposing Constituent Control Properties
514
1
Exposing Control Events
515
1
First - Declare
516
1
Second - Raise
516
1
Third - Invoke
516
1
Using the ActiveX Control Interface Wizard
517
1
Step 1 - Select Standard Interfaces
518
1
Step 2 - Add Your Own Custom Interfaces
518
1
Step 3 - Map Properties, Methods, and Events to Constituent Controls
519
1
Step 4 - Set the Properties, Methods, and Events Attributes
519
1
Creating a Run-time Databound ActiveX Control
520
5
Coding Our Control
521
1
Property to Field Binding
522
2
Dealing with Updated Properties
524
1
Creating a Design Time Databound ActiveX Control
525
5
Account View Design
526
1
Exploring the Data Environment Designer
526
3
Building the Account View Control
529
1
Persistence and Property Bags
530
1
Property Pages
531
1
The Property Page Wizard
532
1
Licensing Our Control
532
1
Summary
533
2
Developing Office-Based User Services
535
34
Why Use Office-Based User Interfaces?
536
3
Considerations When Using Office
537
1
Re-use of Existing Objects
537
1
Familiarity with Language
537
1
Programming Standards
537
1
Using Schemas
538
1
Benefits of Using COM Functionality in an Office Program
538
1
Developing the Office-Based Front Ends
539
24
SQL Server Database
539
1
The COM Component
540
1
The Data-Centric Functionality
540
1
The Validation Functionality
541
6
The Use of Excel with COM Components
547
1
The Excel Object Model
548
1
Excel Example Using the Data-Centric Functionality of the COM Object
548
2
Excel Example Using the Validation Functionality of the COM Object
550
2
The Use of Access with COM Components
552
1
The Access Object Model
552
1
Access Example Using the Data-Centric Functionality of the COM Object
553
4
Access Example Using the Validation Functionality of the COM Object
557
2
The Use of Outlook with COM Components
559
1
Digital Dashboards
559
1
The Outlook Object Model
559
1
Outlook Example Using the Data-Centric Functionality of the COM Object
560
2
The Use of Word with COM Components
562
1
The Word Object Model
562
1
Word Example Using the Data-Centric Functionality of the COM Object
562
1
Utilizing Schemas in Office-Based Programs
563
4
Why Should Programmers Care About Schemas?
564
1
A COM Object that Utilizes a Database Schema
564
3
Summary
567
2
Improving Scalability and Availability of DNA Applications
569
28
Performance Isn't Everything
570
1
Time to Market
570
1
Maintainability
570
1
Scalability
570
1
Availability
571
1
Scalability
571
5
Vertical Scalability
571
1
Horizontal Scalability
572
1
Partitioning
572
1
Load Balancing
573
2
A Quick Word on Replication
575
1
Availability
576
3
Availability Solutions
576
1
Hot Standby Servers
577
1
Server Clusters
577
1
Rolling Upgrades
578
1
Component Load Balancing Service
578
1
Network Load Balancing (NLB)
579
16
Creating a Basic NLB Server Cluster
580
1
Preparation
580
4
Configuring the Servers in the Cluster
584
3
Verify the Configuration
587
1
Configuring an NLB Cluster
587
1
Cluster Parameters
588
1
Host Parameters
589
1
Port Rules
590
3
Convergence Parameters
593
1
Microsoft Clustering Service (MSCS)
593
1
Programming Considerations
594
1
Summary
595
2
An Overview of Windows DNA Security
597
46
Introduction
597
1
What's in the Windows 2000 Security System?
598
2
Windows NT Shortcomings
598
1
Security Improvements in Windows 2000
599
1
Standards-based Security
599
1
Declarative Security Using Active Directory
600
1
Security Concepts and Terminology
601
1
Authentication
602
3
Kerberos
602
2
Secure Sockets Layer (SSL)
604
1
Impersonation and Delegation
604
1
Access Control
605
2
Access Control Lists and Entries
605
1
Security Identifiers (SIDs) and Privileges
605
1
Access Control Tokens
606
1
Security Descriptors
607
1
Auditing
607
2
Protecting Data Integrity
609
6
Encryption File System (EFS)
609
1
Certificate Server
609
1
CryptoAPI
610
1
IP Security
611
1
Proxies
611
1
Microsoft ISA Server
612
1
ISA Administration Object Model
613
1
Routing IP addresses
614
1
Security for the Business Tier
615
8
COM+ Access Control
616
1
Application Identity
616
1
Security Boundaries
617
1
Security Needs
617
1
COM+ Default Security
618
1
Default Authentication Settings
618
1
Role-Based Declarative Security
619
1
Creating Roles
620
1
Group Policy Management
621
2
Levels of Security
623
1
Programmatic Security
623
5
Examples of Programmatic Security
624
2
SecurityCallContext and SecurityIdentity Objects
626
2
VBA Security
628
1
Digital Certificates in Microsoft Office
628
1
Developer Security Checklists
629
12
Windows NT 4.0/Windows 2000 Settings
629
4
Securing SQL Server 6.5 or SQL Server 7.0
633
2
Securing COM+
635
1
Securing IIS 5.0
636
4
Web and Exchange Security Considerations
640
1
Summary
641
2
Certificate Services
643
46
Certificate Basics
644
12
Keys and Cryptography
644
1
A Brief History of Cryptography and Keys
644
1
How Do Keys Work?
645
1
Key Length and Cryptographic Providers
646
1
Cryptographic Providers
646
2
What's a Digital Signature or Certificate?
648
1
Digital Signatures
648
1
Certificates
648
4
The Certificate Authority (CA)
652
2
Certificate Server's Role
654
1
High Security
655
1
Secure Controls
655
1
Customization
655
1
Less Complexity
655
1
Single Log On
655
1
Certificate Services Architecture
656
2
Certificate Consumers
656
1
Intermediaries
656
1
The Certificate Server
657
1
Entry Module
657
1
Policy Module
658
1
Exit Module
658
1
The Certificate Server Database
658
1
Certificate Requests, Renewals, and Revocation
658
2
Certificate Requests
658
1
Certificate Renewals
659
1
Certificate Revocation
659
1
Installing Certificate Services
660
8
Stand-alone Root CAs
660
1
Stand-alone Subordinate CAs
660
1
Enterprise Root CAs
660
1
Enterprise Subordinate CAs
661
1
Setup and Configuration of a Stand-alone Root CA
661
6
Subordinate CA Setup Features
667
1
Getting a Certificate from an Online Parent CA
667
1
Getting a Certificate from an Offline Parent CA
667
1
Certificate Services Administration
668
5
Development for Certificate Server
673
5
Server Interfaces
674
1
ICertAdmin
674
1
ICertServerPolicy
674
1
ICertServerExit
675
1
ICertConfig
676
1
ICertView
676
1
ICertRequest
677
1
Module Interfaces
677
1
ICertExit
677
1
ICertPolicy
678
1
ICertManageModule
678
1
Putting It All Together
678
8
A Client Certificate
678
1
A Web Server Certificate
679
7
Summary
686
3
Debugging DNA Applications
689
34
The Four Simple Rules
690
1
Debugging COM+ Components in Visual Basic 6.0
690
3
Debugging COM+ Applications in VB
691
1
Limitations of the VB Debugger
692
1
Debugging COM+ Components within Visual C++ 6.0
693
2
Debugging Components Compliled by Other Languages
694
1
Symbol Files
695
6
PDB Format
695
1
Generating PDB Files from Visual C++
695
1
Generating PDB Files from Visual Basic
696
1
DBG Format
697
1
Generating DBG Files from VC++
698
1
Installing Windows 2000 Symbols
699
2
Rebasing In-Process Components
701
2
Windows 2000 Debugging Tools
703
18
Memory Leaks
703
1
Step 1 - Identify the Offending Process
704
3
Step 2-Minimize Code Executing in Offending Process
707
1
Step 3-Identify the Root Cause
708
4
Access Violations
712
1
Exception Monitor
713
1
Step 2-Log Exception
713
2
Step 3-Analyze the Log File
715
1
Memory Corruption
716
1
PageHeap
717
2
High CPU Utilization
719
1
Step 1-Identify the Offending Process
719
1
Step 2-Identify Root Cause
720
1
Summary
721
1
Additional Resources
721
2
A Sample DNA Application
723
34
Sample Application Overview
724
31
User Interface and Presentation
724
1
Presentation
725
1
User Interface
726
1
Business Objects and Data Access
726
1
Database design and data services
727
1
Database design
727
1
Data services
728
1
The Database
729
1
Creating the Database
729
2
Adding the Tables
731
1
Adding a Login
732
2
Creating the Stored Procedures
734
6
The User Interface
740
1
Default.htm
740
1
contactlist.asp
741
2
contactdetail.asp
743
2
contactedit.asp
745
6
contactdelete.asp
751
3
Global.asa
754
1
Summary
755
2
Case Study: Airline Booking System
757
40
Introducing NoseDive Airlines
759
11
Application Requirements
760
1
Application Design
761
1
Planning
761
1
The Booking System Architecture
762
1
The Database
762
1
Customer User Inteface
763
1
Administration User Interface
764
1
The Middle Tier
765
4
The Database
769
1
The Code
770
27
Interface Design
770
1
Returning Sets of Data: Collections
771
3
The Administration User Interface
774
6
Implementing the Components
780
7
Customer Pages
787
1
The ASP Code
788
1
Reusable Functions
788
3
The Main Page
791
1
The PlanJourney Page
792
2
Other Tasks
794
1
Summary
795
2
Case Study: The Wrox Hire Shop
797
100
Introducing the Wrox Hire Shop
797
5
Create the HireShop Database
798
1
Registering DLLs
798
1
The Wrox Hire Web Site
799
1
Business Processes
799
1
The System Users
799
1
Application Environment
799
1
Functional Requirements
800
1
Identify the User
800
1
Search for a Product
801
1
Add or Remove a Product from the Shopping Basket
801
1
Accept Order
801
1
Issue Products
801
1
Return Products
801
1
The Database Schema
802
6
Customer Data
802
1
Product Data
803
1
Product
803
1
ProductType
803
1
Category
804
1
Productitem
804
1
Product Data Entity Relationship Diagram
805
1
Order Data
805
1
OrderBasket
805
1
OrderStatus
806
1
BasketContents
806
1
BasketContentsHire
806
1
Order Data Entity Relationship Diagram
807
1
Application Components
808
15
Application Architecture
808
1
n-Tier Implementation
809
1
The Presentation Tier
809
1
The Business Rules Tier
809
1
The Data Access Tier
809
1
Intercomponent Communications
810
1
Error Handling
811
1
Database Access
811
1
Database Utility Component
812
3
AppendinputParams
815
2
ExecSP
817
1
ExecSPReturnRS
818
1
ExecSPReturnVArray
819
4
Business and Data Services Components
823
32
Customer Components
823
2
Add Customer
825
4
Retrieve Customer Details
829
1
Login To Web Site
830
1
Search for a Customer
830
2
Updating a Customer
832
1
Add Customer
833
2
Retrieve Customer Details
835
1
Login To Web Site
835
1
Search For Customers
836
1
Updating a Customer
836
1
Order Components
837
1
Creating a New Order
838
1
Retrieving the Order Details
839
1
Retrieving an Order Summary List
840
1
Updating an Order
841
1
Accepting an Order
842
1
Adding an Item to the Basket Contents
843
1
Removing an Item from the Basket Contents
843
1
Retrieving Basket Contents Item Details
844
1
Retrieving Basket Contents Summary Details
844
2
Creating a New Order Basket
846
1
Retrieving Order Details
846
1
Retrieving Order Summary Details by CustomerID
846
1
Accepting an Order
847
1
Updating an Order
847
1
Retrieving a List of Order Status Items
847
1
Adding an Item to The Order Basket
847
1
Removing An Item from the Order Basket
848
1
Retrieving Basket Contents Item Details
848
1
Retrieving Basket Contents Summary Details
848
1
Product Components
849
1
Retrieving a list of Manufacturers Names
849
1
Retrieving a List of Product Types
850
1
Searching for Products
850
2
Retrieving Product Details
852
1
Retrieving a List of Manufacturers Names
853
1
Retrieving a List of Product Types
854
1
Retrieving Product Details
854
1
Searching for a Product
854
1
Bringing it All Together-The Presentation Layer
855
42
The Wrox Hire Shop Web Site
855
1
Physical Architecture
855
1
Server-Side Includes
856
1
User Security and Scalability
856
3
Error Handling
859
1
Object Creation
859
1
Style
859
1
Form Submission
860
1
Site Navigation
860
2
Verifying the User
862
1
Register.asp
862
3
Register_HND.asp
865
1
Login.asp
866
1
Login_HND.asp
867
1
The Home Page
868
6
The Product Search Pages
874
1
ProductSearch.asp
874
1
ProductSearch_HND.ASP
875
3
Adding an Item to The Order Basket
878
3
Deleting An Item from the Order Basket
881
1
The Checkout
882
1
Checkout.asp
882
1
Checkout_HND.asp
882
2
Summary of the Wrox Hire Shop Web Site
884
1
The Wrox Hire Shop Admin Application
884
1
Selecting a Customer
885
3
Editing a Customer
888
3
Order Details
891
2
Summary of the HireShopAdmin Program
893
1
Summary
894
3
Case Study: Distributed Application Message Monitor
897
32
The Scenario
898
2
Architectural Overview
898
2
Meet the Puzzle Pieces
900
27
The Listener
902
1
The Test Programs
903
1
The Server Side Code
904
1
The Listener-How It Works
904
4
viewAIIMessages.asp
908
1
Inside the Message Pool-MessageMonitor
908
5
The Client Side Code
913
1
Putting It All Together-tester.asp
913
4
JavaScript Client-Side Enablers
917
4
Setting Up the Project
921
1
Compiling DistMessages.dll
922
1
Server-Side Installation Steps
922
1
Client-Side Installation Steps
922
1
Testing the Installation
923
1
Visual Basic Client-side enablers
924
1
Posting Messages to the Pool
924
1
Testing the MessagePoster Class
925
1
Going further...
926
1
Summary
927
2
Appendix A: Further Reading and Resources
929
8
DNA
929
1
COM and COM+
930
1
Business Objects
931
1
MSMQ
931
1
Windows 2000
931
1
Enterprise Servers
931
1
.NET
932
1
SOAP and XML
932
1
UDA
932
1
Directory Services
933
1
ASP
933
1
Security
934
1
Debugging
935
1
Office Programming
935
2
Appendix B: Support, Errata and P2P.Wrox.Com
937
8
The Online Forums at P2P.Wrox.Com
938
1
How To Enroll For Support
938
1
Why this system offers the best support
939
1
Checking The Errata Online at www.wrox.com
939
3
Wrox Developer's Membership
940
1
Finding an Errata on the Web Site
941
1
Add an Erratum: e-Mail Support
942
1
Customer Support
943
1
Editorial
943
1
The Authors
943
1
What We Can't Answer
943
1
How to Tell Us Exactly What You Think
943
2
Index
945