Microsoft
Enterprise
Library
5.0
Develop
Enterprise
applications
using
reusable software
components
of
Microsoft
Enterprise Library
5.0
Sachin Joshi
rpAfi/Tl
enterprise
I I jflv
|\ I
I
professional expertise distilled PUBLISHINGTable
of
Contents
Preface 1
Chapter
1:Getting
Started withEnterprise
Library 5Introducing
Enterprise Library 6Wiring Application Blocks 7
Unity Application
Block 7Policy Injection Application
Block 7 FunctionalApplication Blocks 7 Data AccessApplication
Block 8Logging Application
Block 8Exception Handling Application Block 8
Caching Application
Block 9Validation
Application
Block 9Security
Application Block 9Cryptography Application
Block 10Functional
Application
BlockDependency
10System requirements
12Installing Enterprise Library 13
Enterprise
Library
Binaries 13Configuration
Editor for Visual Studio 13 Source CodeofEnterprise
Library 14Summary 17
Chapter
2: Data AccessApplication
Block 19Working
of Data AccessApplication Block 20Developing
anapplication
21Referencing
therequired
assemblies 22Adding
Data AccessSettings
23Adding
a namespace 27TableofContents
SqIDatabase class 29
SqICeDatabase class 30 OracleDatabase class 31
GenericDatabase class 31
Creatinga Database instance 32
Usingthe DatabaseFactoryclass 32
UsingUnityservice locator 33
Using Unitycontainerdirectly 33
Retrieving
recordsusing
ExecuteReader 34Retrieving
records using DataSet 35Retrieving a recordas an object 35
Parameter mappers 36
Outputmappers 38
Defaultrowmappers 38 Rowmapping using MapBuilder 38
RowmappingusingIRowMapper<TResult> 38 ResultSet mappers 39
Data Accessors 40
Creating
and executingAccessors 41Retrieving multiple recordsas an objectcollection 42
Retrieving records asXML 43
Executing
acommandusing ExecuteNonQuery
44Retrieving
scalar values 45Updating
records using DataSet 46Working with transactions 48
Summary 50
Chapter 3: Logging
Application
Block 51Developing
anapplication
53Referencing
assemblies 53Adding Logging
Settings 55Adding
namespaces 57Writing
alog
message 58Exploring design
elements 60LogEntry
60Logger
64Using Logger 66
LogWriter
66Adding
tracesource categories 69Configuringspecialcategories 70
Configuringlogcategories 71
Configuring
tracelisteners 72ConfiguringEventLogTrace Listener 74
Configuring Rolling Flat File Trace Listener 77
ConfiguringXMLTrace Listener 78
Configuring DatabaseTraceListener 79
Configuringto sendlogmessages toane-mailaddress 81
Configuring System DiagnosticsTrace Listener 83 Configuring Message QueuingTrace Listener 84
ConfiguringWMITrace Listener 87
Configuring customtracelisteners 87
Configuring log
message formatters 88Configuring logging
filters 90Adding acategoryfilter 91
Adding alogging enabledfilter 92
Adding a priorityfilter 93
TraceManagerand Tracer 94
Tracingactivities 94
Customizing
Logging
block elements 96Implementingacustomtrace listener 96
Implementinga custom logformatter 98
Implementingacustom logfilter 100
Summary
102Chapter
4:Exception Handling Application
Block 103Developing an
application
104Referencing required
assemblies 105Adding
initialException Handling settings
106Adding
namespaces 108Understanding
the Exception Handling block 108Exception policy 108
Exceptiontypes 109
Exceptionhandler 109
Exception Managerclass 111
Stitching together: Exception Policy/Type/Handler
113Creating
anException Handling
blockobject
113UsingtheExceptionPolicy class .114
Using Unityservice locator 114
Using Unitycontainerdirectly 115
Wrapping anexception using Wraphandler 115
Configuring a Wrap
exception
handler 116Replacing
anexception using
Replace handler 118Configuring
aReplace
handler 118Logging an exception using Logginghandler 121
Configuring a Logging handler 122
WCF fault contractexception handler 124
Generic fault contract creation 124
TableofContents
Applying
theExceptionShielding
attribute 126Exception handling:
WCF Service consumer 126Implementing customexception handler 127
Configuring custom
exception
handler 128Summary
129Chapter 5:
Caching
Application Block 131Developing an application 133
Referencing
therequired
assemblies 134Adding the initial Caching Settings 135
Adding
namespaces 137Creating
theCacheManager
instance 137Usingthe staticfactoryclass 138
UsingtheUnityServiceLocator 139
Usingthe Unitycontainerdirectly 139
Configuring the
in-memory
backing store 140Adding
itemstocache 141Understandingthe expirationprocess 142
Expiration
policies
143Understandingthe Scavenging process 143
Reading cached items 144
Removing
cached items 145Flushing
cached items 145Reloading expired
items 145Configuring
Isolated Cache StorageBacking
Store 146Configuring DatabaseCache
Storage
148Configuring
and encrypting cached data 149Configuration steps
150Summary
154Chapter
6: ValidationApplication Block 155 ValidationApplication Block features 156Developing an application 157
Referencing
therequired
assemblies 158Adding
namespaces 160Understanding
Validators 161Value Validators 161
ObjectValidators 163
Single
Member Validators 163Composite Validators 164
Understanding
Rule Sets 165Understanding ValidatorFactory
165Validating objects using
attributes 167Validating
values programmatically 169Validating
objects using self-validation 170Validating objects using configuration 171
Integrating withWindows Forms-based
applications
179Steps
toleverage
ValidationProvider 180Integrating
the Validation block with ASP.NET 183Implementing
a Custom Validator 184Summary 186
Chapter 7: Security Application Block 187
Developing
anapplication
189Referencing required/optional
assemblies 190Adding
initialsecurity settings 191Addingnamespaces 193
Creating security application
blockobjects
194 Usingthe staticfactoryclass 194Using Unityservice locator 194 UsingUnitycontainerdirectly 195
Understanding
Authorization Providers 196 Authorization Rule Provider 197 AzMan Authorization Provider 202Understanding Security
Cache Provider 203 CachingStoreProviderclass 204Configuring SecurityCache Provider 204
Cachingandgeneratingatokenforanauthenticated user 205
Associating a token with User
Identity,
Principal and Profileobjects
206RetrievingUserIdentity, UserPrincipal,and Profileobjects 207
Expiring UserIdentity,UserPrincipal,and Profileobjects 208
Implementing a custom Authorization Provider 210
Custom XMLAuthorization Provider 211
Summary
211Chapter
8:Cryptography Application
Block 213Developing an application 215
Referencing required and optional assemblies 216
Adding
namespaces 216Adding
initialcryptography settings
217Working
of Hash Provider 219Creating CryptographyManager
and IHashProvider instances 220 Usingthe static facade 221 UsingUnityservice locator 221TableofContents
Configuring
Hash Provider 222Generating
a hash value 224Comparing hash values 224
Implementing a custom Hash Provider 225
ConfiguringaCustom Hash Provider 226
Working
ofsymmetric cryptography providers
228Creating CryptographyManager
andISymmetricCryptoProvider
instances 230Usingthe staticfacade 230
Using Unityservice locator 230
Using Unitycontainerdirectly 230
Configuring the symmetric
cryptography provider
231Exporting
thekey
235Encrypting
data 236Decrypting
data 236Implementing
acustom symmetric provider 237Configuringthe customsymmetricprovider 238
Summary
239Index 241