Beginning WF - Windows Workflow in .NET 4.0

von: Mark Collins

Apress, 2010

ISBN: 9781430224860 , 500 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 44,99 EUR

  • IT-Risikomanagement leben! - Wirkungsvolle Umsetzung für Projekte in der Softwareentwicklung
    Mobile and Wireless Network Security and Privacy
    Windows Vista
    Enterprise Interoperability II - New Challenges and Approaches
    IT-Projektrecht - Vertragliche Gestaltung und Steuerung von IT-Projekten, Best Practices, Haftung der Geschäftsleitung
    Pro WPF - Windows Presentation Foundation in .NET 3.0
  • What's App? - Genial und verrückt! - Die Welt der kleinen Alleskönner

     

     

     

     

     

     

     

     

 

Mehr zum Inhalt

Beginning WF - Windows Workflow in .NET 4.0


 

Contents at a Glance

5

Table of Contents

7

About the Author

19

About the Technical Reviewer

20

Acknowledgments

21

Introduction

22

How to Use This Book

22

Chapter Outline

23

Section 1: Basic Concepts

23

Section 2: Designing Workflows

23

Section 3: Communication

23

Section 4: Workflow Extensions

23

Section 5: Advanced Topics

24

Appendix

24

PART 1 Introduction

25

CHAPTER 1 Building a Simple Workflow

26

A Simple Workflow

27

Exploring the IDE

27

Designing the Workflow

28

Reviewing Program.cs

29

Running the Application

30

Adding Procedural Elements

30

Using Variables

31

Assign

34

While

35

Sequence

36

Delay

36

More Embellishments

37

Running the Application

38

Navigating the Designer

38

Looking a Bit Deeper

40

Differences from Previous Versions

44

CHAPTER 2 Coded Workflows

46

Creating a Console Application

46

Defining the Workflow

47

Implementing Level 1

48

Implementing Level 2

49

Expressions

50

Implementing Level 3

51

Assign Activity

51

Sequence

51

Running the Application

52

Review

55

CHAPTER 3 Flowchart Workflow

56

Creating a Flowchart Workflow

56

Designing the Flowchart

57

Defining Connections

57

FlowDecision

58

Running the Application

60

Flow Switch

61

Adding a FlowSwitch Activity

61

Adding the FlowStep Activities

62

Running the Application

63

Parallel

63

Adding a Parallel Activity

63

Adding the Branches

64

Running the Application

65

PART 2 Designing Workflows

66

CHAPTER 4 Passing Arguments

67

Creating a New Solution

67

Defining the Order Class

68

Implementing the Workflow

70

Defining the Arguments

71

Designing the Workflow

73

Switch Activity

73

Expression Activities

75

Invoking the Workflow

78

Running the Application

80

CHAPTER 5 Replicated Activities

81

Reusing the Chapter 4 Project

81

Adding OrderItem Processing

83

ForEach Activity

83

Adding Order Items

87

Running the Application

88

ParallelForEach Activity

90

CHAPTER 6 Exception Handling

91

Reusing the Chapter 5 Project

91

Adding the Check Stock Activity

92

TryCatch Activity

92

Defining an Exception

92

ForEach Activity

94

If Activity

94

Throw Activity

95

Catch Activity

96

Running the Application

98

Exceptions

99

CHAPTER 7 Extending the Built-In Activities

101

Reusing the Chapter 6 Project

101

Using Custom Activities

102

Implementing a Custom Activity

102

Using the LookupItem Activity

104

Running the Application

107

InvokeMethod Activity

108

Creating a Discount Class

108

Using the InvokeMethod Activity

109

Specifying the Target Object

109

Specifying the Parameters

110

Specifying the Result

111

Adding the Discount

113

Running the Application

113

Summary

114

PART 3 Communication

115

CHAPTER 8 Send and Receive

116

Creating the Project

116

Define the Messages

117

MessageContract

120

ServiceContract

121

Application Configuration

122

Defining the Workflows

123

Client–SendRequest

123

Send Activity

125

Custom Activity—CreateRequest

125

ReceiveReply Activity

128

Server–ProcessRequest

128

Receive Activity

129

Custom Activity—CreateResponse

129

SendReply Activity

131

Implementing the Application

135

WorkflowServiceHost

135

Service

136

Endpoint

136

WorkflowInvoker

137

Running the Application

139

Configuring a Library Branch

139

Expected Results

141

CHAPTER 9 Communicating withthe Host Application

144

Creating a WPF Project

144

Reusing the Classes from Chapter 8

145

Defining the Window Form

146

Implementing a TextWriter

148

Providing a Static Application Reference

149

Implementing ListBoxTextWriter

150

Implementing the Workflows

152

Listening for Messages

153

Implementing the Service Contract

154

Implementing a ServiceHost

155

Bookmarks

156

Implementing the SendRequest Workflow

158

Implementing the ProcessRequest Workflow

160

Implementing the Application

162

Maintaining Workflow Instances

162

Event Handlers

163

ApplicationInterface Methods

165

Running the Application

169

CHAPTER 10 Web Services

172

Creating a Workflow Service

172

Defining the Service Contract

173

Configuring Receive and SendReply

176

Creating the PerformLookup Activity

179

Testing the Service

182

Using Parameters

183

Creating a Second Service

184

Creating a Modified PerformLookup Activity

187

Testing the Service

188

Creating a Client Workflow

189

Defining the Workflow

191

Implementing the Host Application

192

Running the Application

193

Using Pick

194

Review

195

PART 4 Workflow Extensions

196

CHAPTER 11 SQL Persistence

197

Creating the Application

197

Renaming the Window

198

Defining the Window Form

198

Implementing a TextWriter

201

Setting Up the Database

205

Creating a Database

205

Installing the Schema

205

Creating the LINQ to SQL Classes

208

Designing the Workflow

211

Custom CreateLead Activity

211

Custom WaitForInput Activity

213

Defining the Workflow Activities

213

Implementing the Application

215

Application Configuration File

216

Configuring the Persistence Provider Factory

216

Creating Leads

217

Assigning Leads

218

Loading Existing Leads

220

Running the Application

224

Digging a Bit Deeper

226

Persisting Arguments and Variables

227

CHAPTER 12 Extensions

228

Setting Up the Solution

228

Copy Solution from Chapter 11

229

Setting Up the Database

229

Implementing SetupInstance

229

Running the Application

230

Extensions

230

Implementing a Simple Extension

230

Configuring the Extension

231

Using the Extension in an Activity

232

Updating the Application

233

Participating in Persistence

234

Creating the Extension

234

PersistenceParticipant

235

AddComment Activity

235

GetComments Activity

237

Modifying the Workflow

237

Accessing the Extension from the Application

237

Event Handler Syntax

238

Running the Application

239

CHAPTER 13 Tracking

247

Setting Up the Solution

247

Copy Solution from Chapter 12

248

Setting Up the Database

248

Tracking Participants

248

ListBoxTrackingParticipant

248

Overriding the Track() Method

250

Configuring a Tracking Participant

251

Configuring a Tracking Profile

252

WorkflowInstanceQuery

253

BookmarkResumptionQuery

253

ActivityStateQuery

253

CustomTrackingQuery

254

CustomTrackingRecord

254

Running the Application

256

Event Tracing for Windows (ETW)

256

Setting Up the Extension

256

Configuring the TrackingProfile

257

Running the Application

257

SqlTrackingParticipant

259

Setting up the Database

259

Implementing the SqlTrackingParticipant

261

Configuring the Tracking Participant

263

Running the Application

265

CHAPTER 14 Transactions

273

Setting Up the Solution

273

Assignments

274

Adding the LINQ to SQL Class

274

AssignLead Activity

276

RuntimeTransactionHandle

278

CreateAssignment Activity

278

Application Changes

280

Updating the List of Leads

280

Removing Database Updates

281

Adding Workflow Event Handlers

282

Workflow Changes

290

TransactionScope

291

InvokeMethod

291

Running the Application

294

CHAPTER 15 Transactions with Persistence

295

Setting Up the Solution

295

PersistenceParticipant

296

PersistLead Extension

296

Connecting to the Database

299

Performing the Updates

299

Using the PersistLead Extension

299

Modifying the CreateLead Activity

300

Modifying the AssignLead Activity

301

PersistAssignment Extension

302

Using the PersistAssignment Extension

304

Application Changes

305

Running the Application

305

CHAPTER 1 6 WorkflowServiceHost

306

Setting Up the Solution

306

Adding LeadResponse

307

Renaming the Window

308

Defining the Window Form

308

Copying Classes from LeadGenerator

311

Implementing the Application

311

WorkflowService

317

Behaviors

318

DBExtensionBehavior

318

PersistAssignmentBehavior

320

Defining the Workflows

321

CompleteAssignment

321

EnterLead Workflow Modifications

322

WorkAssignment Workflow

325

Persist

328

Final Application Changes

328

ApplicationInterface

328

Adding the app.config File

329

LINQ Conflict

330

Running the Applications

331

Review

333

PART 5 Advanced Topics

334

CHAPTER 17 Compensation, Confirmation, and Cancellation

335

Designing the Workflow

336

Modifying the Application

336

Configuring a TryCatch Activity

338

Using a Parallel Activity

339

CompensableActivity

340

Designing the Wedding Activity

341

Designing the Reception Activity

343

Designing Confirmation Activities

344

Designing the Invitations Activity

344

Designing the Confirmation Activities

345

Running the Application

346

Cancellation Handlers

347

More on the Parallel Activity

347

Designing Compensation Handlers

348

Designing the Wedding Compensation

348

Designing the Reception Compensation

349

Running the Application

350

Customizing Compensation and Confirmation

353

Adding the Token Variables

353

Setting the Result Property

355

Custom Confirmation

355

Custom Compensation

357

Rethrow Activity

358

CHAPTER 18 Collections

361

Creating a Collection

361

Defining the Shopping List

362

Initial Workflow

362

AddToCollection Activity

364

Invoking a Workflow

364

Running the Application

365

Printing and Sorting

365

Printing the Collection

365

Sorting the Collection

367

Searching the Collection

369

Overriding the Equals() Method

369

ExistsInCollection Activity

370

RemoveFromCollection Activity

371

ClearCollection Activity

371

CHAPTER 19 Interoperability with Workflow 3.5

377

Creating a 4.0 Workflow

377

Creating a 3.5 Workflow

378

Interop Activity

382

Running the Application

383

Executing a Custom 3.5 Activity

383

Creating a Custom Activity

384

Throwing an Exception

386

Invoking the Custom Activity

387

Running the Application

390

CHAPTER 20 Policy

391

Creating a Custom Activity

391

Defining the Data Structures

392

PolicyActivity

395

Adding Dependency Properties

396

Creating a Rule Set

399

Defining the Rules

400

Understanding Rule Sets

403

Rules

403

Chaining

404

Halt and Update

405

Rules File

405

Determining the Priority

406

Entering the Priority Rules

407

Creating a Workflow Application

408

Creating a Custom Activity

409

Incrementing the Activity Counters

412

Creating the Main Workflow

416

Configuring the Arguments

416

Implementing the Console Application

418

Running the Application

419

Review

419

APPENDIX Sample Workflow Project

421

Project Overview

421

Configuring the Database

421

Running the Application

422

Logging In

423

Submitting a Request

424

Processing Requests

425

Tracking the Workflow

429

Generic Queue Logic

429

Database Design

430

Activities

431

CompleteInstance

431

QCPolicy

432

Tracking

434

Service Layer

436

Service Contract

436

Database Design

438

Activities

439

Workflow Design

440

SubmitRequest

441

Processing a Request

443

Correlation

444

Using WorkflowServiceHost

446

Writing Extensions

447

Configuring Extensions

450

Configuring Persistence

450

Configuring Tracking

451

Summary

453

Index

454