Publisher: Sams
Year: 2000
Language: English
Pages: 210
Trademarks......Page 1
Foreword......Page 2
Target Audience of This Book......Page 3
Why .NET Component Services......Page 4
Organization of This Book......Page 5
Acknowledgments......Page 6
COM......Page 7
SQL Server......Page 8
.NET Features......Page 9
Listing 1.1 A Simple Serviced Component in Visual Basic .NET......Page 10
Configurable Isolation Level......Page 11
Visual Basic .NET......Page 12
New “Problems” with Visual Basic .NET......Page 13
C# Versus Visual Basic .NET......Page 14
User-Defined Functions......Page 15
Outstanding Problems with SQL Server 2000......Page 16
References......Page 17
Type of Consumer......Page 18
Figure 2.2. Deployment schema for when Web Forms are the consumer.......Page 19
Figure 2.3. Deployment schema for when Windows Forms are the consumer.......Page 20
Listing 2.2 UPDATE Where "Complete" Comparison Is Used......Page 21
Figure 2.5. Sample configuration of n application servers connected to one database server.......Page 22
The Importance of Test Results......Page 24
Scalability......Page 25
Scaling Up and Scaling Out......Page 26
Using the Database......Page 27
Maintainability......Page 28
Figure 2.7. A house of cards is an obvious example of something with low maintainability.......Page 29
Using Recovery/Fail Over When a Problem Occurs......Page 30
Figure 2.8. Example of an architecture where the stored procedures can't be reused without also reusing the components in the business logic layer.......Page 31
Testability......Page 32
Interoperability......Page 33
Listing 2.4 Finding the Name of the Calling Method......Page 34
Farm- and Cluster-Enabling......Page 35
Figure 2.10. Cloning.......Page 36
The DeMilitarized Zone (DMZ) in Software Architecture......Page 37
Figure 2.13. Replication.......Page 38
Figure 2.14. Shared disk clustering.......Page 39
Caching and Clustering......Page 40
References......Page 41
Considering the Testing Level......Page 42
Code Reviewing......Page 43
Stress Testing......Page 44
Support for Automatic Testing with a Standardized Test Bed......Page 45
Test Driver, Test Bed, and Test Suite......Page 46
Figure 3.1. An overview of test executions based on the current filter.......Page 47
Registration and Execution......Page 48
Understanding the Database Schema for the Test Bed......Page 49
Using the Test Driver to Test Stored Procedures......Page 50
Listing 3.3 Example of a Test Driver for Stored Procedures: Part 3......Page 51
Listing 3.5 Example of a Component Test Driver......Page 52
Understanding the Controller of the Test Bed......Page 53
Writing the Test Drivers: Issues to Consider......Page 54
Assertions......Page 56
Getting the Basic Idea......Page 57
Understanding Class Invariants......Page 58
Listing 3.12 Customized Assert() Method......Page 59
Listing 3.14 Stored Procedure Version of Assert()......Page 60
Summing Up: Final Thoughts About Assertions......Page 61
Evaluation of the Test Bed Proposal......Page 62
References......Page 63
Tracing in the Dark Ages......Page 64
Listening......Page 65
Listing 4.4 Using a .config File Where TraceLevel Is Set to Warning (Including the Lower Level Error)......Page 66
Categorization......Page 67
Receiver......Page 68
Remote Receiver......Page 69
Configuration......Page 70
Listing 4.8 Making a Trace Call in a Stored Procedure......Page 71
Implementation Option 3: Extended Stored Procedure......Page 72
Start and Stop Tracing During Production......Page 73
Different Signatures......Page 74
Listing 4.12 Example of How to Use String.Format()......Page 75
Listing 4.15 An Example of a Public Trace Method (in This Case, TraceMessage())......Page 76
Listing 4.16 The Protected Trace Method That All Public Trace Methods Call......Page 77
Checking the Solution Against the Requirements......Page 78
The Built-In Logging Solution in .NET......Page 79
My Proposal for a Logging Solution......Page 80
General Stored Procedures......Page 81
Listing 4.18 The Stored Procedure That Creates a New Transaction Before Logging......Page 82
Creating the Error Stack......Page 83
Figure 4.7. Class diagram showing the Err and the ServicedErr classes.......Page 84
Custom Attributes Helping to Generate Code......Page 85
Listing 4.22 Get the Description of the Values of an Enum Variable......Page 86
Configuration Data......Page 87
Dealing with Configuration Data in VB6......Page 88
Using the Registry......Page 89
Using a .config File......Page 90
Listing 4.27 Reading a Value That Is Stored in the SPM......Page 91
Using Object Pooling (OP)......Page 92
Evaluation of the Tracing Proposal......Page 93
References......Page 94
Example 1: The Database-Independent and Pure Object-Oriented Architecture......Page 95
Figure 5.1. Classic Windows DNA tiers: Presentation, Business Logic, and Data.......Page 96
Sample Application Requirements......Page 97
My Proposal: Building Blocks......Page 98
Stored Procedures......Page 99
My Architecture Proposal Tier-by-Tier and Layer-by-Layer......Page 100
Proposal Used for Sample Application Acme HelpDesk......Page 101
Consumer Layer......Page 102
Hiding Consumer-Side Caching......Page 103
Figure 5.5. Example of a Consumer Helper class.......Page 104
Figure 5.6. Example of a class in the Application layer.......Page 105
Figure 5.7. Example of a class in the Domain layer.......Page 106
Figure 5.8. Example of a class in the Domain layer when Shared methods are used.......Page 107
Figure 5.9. Example of a class in the Persistent Access layer.......Page 108
Figure 5.10. Example of a class in the Persistent Access layer, only with Shared methods.......Page 109
Public Stored Procedures Layer......Page 110
Tables, Views, and User-Defined Functions......Page 111
Figure 5.13. An XML Web service and my proposed architecture.......Page 112
Figure 5.15. An ASP.NET application and the proposed architecture.......Page 113
Dispose()......Page 114