Tải bản đầy đủ (.pdf) (1,322 trang)

VB2010 professional visual basic 2010 and NET 4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (23.66 MB, 1,322 trang )



Professional
Visual Basic® 2010 and .neT 4
inTroducTion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv

⊲ ParT i

language consTrucTs and enVironmenT

chaPTer 1

Visual Studio 2010 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

chaPTer 2

Objects and Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

chaPTer 3

Custom Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137

chaPTer 4

The Common Language Runtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

chaPTer 5

Declarative Programming with Visual Basic . . . . . . . . . . . . . . . . . . . . . . 253

chaPTer 6



Exception Handling and Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

chaPTer 7

Test-Driven Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287

⊲ ParT ii

Business oBJecTs and daTa access

chaPTer 8

Arrays, Collections, and Generics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

chaPTer 9

Using XML with Visual Basic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

chaPTer 10

ADO .NET and LINQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

chaPTer 11

Data Access with the Entity Framework . . . . . . . . . . . . . . . . . . . . . . . . . 437

chaPTer 12

Working with SQL Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457


chaPTer 13

Services (XML/WCF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

⊲ ParT iii

smarT clienT aPPlicaTions

chaPTer 14

Windows Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541

chaPTer 15

Advanced Windows Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

chaPTer 16

User Controls Combining WPF and Windows Forms . . . . . . . . . . . . . . 599

chaPTer 17

WPF Desktop Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .617

chaPTer 18

Expression Blend 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667

chaPTer 19


Silverlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679


⊲ ParT iV inTerneT aPPlicaTions
chaPTer 20

Silverlight and Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 699

chaPTer 21

Working with ASP .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 719

chaPTer 22

ASP .NET Advanced Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .751

chaPTer 23

ASP .NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787

chaPTer 24

SharePoint 2010 Development . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807

⊲ ParT V

liBraries and sPecialiZed ToPics

chaPTer 25


Visual Studio Tools for Office . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 843

chaPTer 26

Windows Workflow Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 881

chaPTer 27

Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .905

chaPTer 28

COM-Interop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929

chaPTer 29

Network Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949

chaPTer 30

Application Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981

chaPTer 31

Assemblies and Reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1001

chaPTer 32

Security in the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1021


chaPTer 33

Parallel Programming Using Tasks and Threads . . . . . . . . . . . . . . . . . .1051

chaPTer 34

Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1101

aPPendix a

The Visual Basic Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137

aPPendix B

Visual Basic Power Packs Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1151

aPPendix c

Workflow 2008 Specifics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1165

aPPendix d

Enterprise Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1185

aPPendix e

Programming for the Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205

index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233



Professional

Visual Basic® 2010 and .neT 4



Professional

Visual Basic® 2010 and .neT 4
Bill Sheldon
Billy Hollis
Kent Sharkey
Jonathan Marbutt
Rob Windsor
Gastón C. Hillar


Professional Visual Basic® 2010 and .neT 4
Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2010 by Wiley Publishing, Inc., Indianapolis, Indiana
Published by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-50224-2
Manufactured in the United States of America

10 9 8 7 6 5 4 3 2 1
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,
electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of
the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through
payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923,
(978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions
Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or
online at />Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect
to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without
limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional
materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the
understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional
assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author
shall be liable for damages arising herefrom. The fact that an organization or Web site is referred to in this work as a citation
and/or a potential source of further information does not mean that the author or the publisher endorses the information the
organization or Web site may provide or recommendations it may make. Further, readers should be aware that Internet Web
sites listed in this work may have changed or disappeared between when this work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the United
States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in
electronic books.
Library of Congress Control Number: 2010921246
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are
trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries,
and may not be used without written permission. Visual Basic is a registered trademark of Microsoft Corporation in the United
States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc. is not
associated with any product or vendor mentioned in this book.


To my wonderful wife, Tracie, who is forced to carry on while

I isolate myself to concentrate on writing. And to the next
generation of children who have joined our extended Sheldon
family (my own and my brothers’) in the past five years — Nick,
Elena, Ben, Billy V, Abigail, and Johnny — each and every
one of you is a valuable part of our lives.
—Bill Sheldon
I owe tremendous thanks to my family, who have somehow
learned to put up with marathon writing sessions, and
to my business partner, Gary Bailey, for keeping
our clients happy while I’m writing.
—Billy Hollis
To Babi, for keeping me alive and putting up with
me — hopefully, for a long time to come.
—Kent Sharkey
To my beautiful wife, Jennifer, who was my greatest
encouragement despite the long days of writing and working.
And to my loving daughter, Kathryn, who always managed to
put a smile on my face after a long day.
—Jonathan Marbutt
To my Dad, who did not complain too much about the
weekends I spent writing instead of playing golf with him.
—Rob Windsor
To my son, Kevin
—Gastón Hillar



aBouT The auThors

Bill sheldon is a software architect and engineer, originally from Baltimore, Maryland.

Holding a degree in computer science from the Illinois Institute of Technology (IIT), Bill has
been actively employed as a software engineer since resigning his commission with the United
States Navy. He is a Microsoft MVP for Visual Basic employed in Carlsbad, California. Bill also
works as an instructor for .NET courses at the University of California San Diego Extension. In
addition to writing books, Bill has published dozens of articles, including the Developer Update
Newsletter, SQL Server Magazine feature articles, and other Penton publications. He is an established online
presenter for MSDN and speaks at live events such as VSLive, DevConnections, Office Developers Conference,
and community events such as user groups and code camp. Bill is an avid cyclist and is active in the fight against
diabetes. Bill can be tracked down through his blog: www.nerdnotes.net/blog or via Twitter: NerdNotes.
Billy hollis is an author and software consultant based in Nashville, Tennessee. Billy was

co-author of the first book ever published on Visual Basic .NET, as well as many other
books on software development. He is a member of the Microsoft Regional Director program
and a Microsoft MVP. In 2002, Billy was selected as one of the original .NET “Software
Legends.” He is heavily involved with consulting, training, and development on the .NET
platform, focusing on architecture, smart-client development, commercial packages, and
user-interface technologies. He regularly speaks on software development at major conferences all over the
world, including Microsoft’s PDC and TechEd events, DevConnections, VSLive, and architecture events such
as the Patterns and Practices Architect Summit.
KenT sharKey is an independent consultant who lives and codes in Comox, British
Columbia. Before going solo, Kent worked at Microsoft as a technical evangelist and content
strategist, promoting the use of .NET technologies. He lives with his wife, Margaret, and three
“children” — Squirrel, Cica, and Toffee.

JonaThan marBuTT is Vice President of Development for WayCool Software, Inc., based

in Birmingham, AL. He has been working professionally in software development since
1996, where he has covered various Microsoft technologies from VB6 to .NET. Over the
recent years, Jonathan has been developing with Silverlight to build Rich Internet Line of
Business applications for the non-profit sector. Through this development, he is beginning

to focus on User Experience (UX) by utilizing Microsoft products like Expression Blend
and technologies like Silverlight. For more information,contact Jonathan at www.jmtechware.com.
roB Windsor is a developer, trainer, writer and Senior Consultant with ObjectSharp

Consulting — a Microsoft Gold Partner based in Toronto, Canada. He has over fifteen years
experience developing rich-client and web applications with Delphi, VB, C# and VB.NET and
is currently spending a majority of his time working with SharePoint. Rob is a member of both
the INETA Speakers Bureau and the MSDN Canada Speakers Bureau and is a regular speaker
at conferences, code camps, and user groups across North America and Europe. He is President
of the Toronto Visual Basic User Group and has been recognized as a Microsoft Most Valuable
Professional for his involvement in the developer community.


gasTón c. hillar has been working with computers since he was eight. He began

programming with the legendary Texas TI-99/4A and Commodore 64 home computers
in the early 80s. He has worked as developer, architect, and project manager for many
companies in Buenos Aires, Argentina. Now, he is an independent IT consultant working
for several Spanish, German, and Latin American companies, and a freelance author. He is
always looking for new adventures around the world.

Gastón is the author of more than forty books in Spanish and has written two books in English. He
contributes to Dr. Dobb’s Go Parallel programming portal at www.ddj.com/go-parallel/, Dr. Dobb’s at
, and is a guest blogger at Intel Software Network at .
He lives with his wife, Vanesa, and his son, Kevin. When not tinkering with computers, he enjoys
developing and playing with wireless virtual reality devices and electronics toys with his father, his son, and
his nephew Nico.
You can reach him at:
You can follow him on Twitter at: />Gastón’s blog is at:


aBouT The Technical ediTors

dianne sieBold is a software developer and writer specializing in VB, C#, .NET Framework, WCF, ADO,
and SQL Server. She has worked for a number of Microsoft partners writing enterprise applications with an
emphasis on services and data access. Currently, she works for Microsoft writing developer documentation in
the Dynamics product group. Reach her by e-mail at
doug Parsons is a .NET Software Architect and professional Technical Editor who specializes in C#,
SQL Server, and numerous architectural paradigms. Over the course of his career, he has worked on a
myriad of projects; most notably, however, was the United States 2008 Presidential Campaign website of
John McCain. He is currently employed by NJI New Media, writing software for clients of a predominantly
political nature. He can be reached by email at
doug WaTerfield is a software architect and engineer who lives with his family in Avon, Indiana.

Since earning a degree in computer science from Rose-Hulman Institute of Technology, Doug has been
designing and developing commercial and enterprise applications in a wide variety of technologies. Doug
led development teams and departments for several firms before becoming an independent consultant with a
focus on .NET technologies. He is a retired officer in the US Army Reserve and serves as a volunteer leader
in Cub Scouts and Boy Scouts.


crediTs
acquisiTions ediTor

Paul Reese

Vice PresidenT and execuTiVe grouP
PuBlisher

Richard Swadley
senior ProJecT ediTor


Adaobi Obi Tulton

Vice PresidenT and execuTiVe PuBlisher

Barry Pruett
Technical ediTors

Dianne Siebold
Doug Parsons
Doug Waterfield

associaTe PuBlisher

Jim Minatel
ProJecT coordinaTor, coVer

senior ProducTion ediTor

Lynsey Stanford

Debra Banninger
Proofreaders

Luann Rouff

Nancy Carrasco
Beth Prouty, Word One

ediTorial direcTor


indexer

Robyn B . Siesky

Robert Swanson

ediTorial manager

coVer designer

Mary Beth Wakefield

Michael E . Trent

associaTe direcTor of marKeTing

coVer image

David Mayhew

© Dan Barnes/istockphoto

coPy ediTor

ProducTion manager

Tim Tate




acKnoWledgmenTs

as WiTh any maJor ProJecT PuTTing a BooK of this size and scope together is a team effort and
we as authors were really lucky to have such a great support team helping to keep us on track and focused.
I’d like to publicly call out and thank our editor, Adaobi, who managed to turn around several of the late
chapters (those would be mine) in an incredibly short time, and our technical editors, in particular Dianne,
who did an outstanding job. They found hundreds of issues so that our readers wouldn’t need to, and
helped ensure that everything worked and flowed in a logical fashion.

—Bill Sheldon
While WriTing can be a solitary activity, writing for a book definitely is not, and I have many people to

thank for getting me here.

Thank you to all my coworkers who picked up the slack while I worked on this (Oh, wait — I work alone —
never mind). Thank you to my co-authors, and my fine editors: Adaobi Obi Tulton, Paul Reese, and Dianne
Siebold. If there is any quality here, it is likely due to their hard work.
I am definitely grateful to all the people who regularly put up with my negativity, and help me to become
better: Eileen, Chris, Tharun, Kraig and Duncan. Thank you, thank you, thank you.
And finally, thanks to all of you that have selected this book. I hope it helps.

—Kent Sharkey
ThanKs To BeTh massi for being too busy to work on this project and thanks to the people at Wrox for
accepting Beth’s suggestion that I would be a suitable replacement.

As a first time author, I have to give special thanks to Adaobi Obi Tulton, Dianne Siebold, Doug Parsons,
Doug Waterfield, and Luann Rouff for helping me make my work appear as if it was written by a
professional author. I’m sure it wasn’t easy.
Finally, I’d like to thank those who helped me advance professionally to the point that this opportunity was

even possible: Craig Flanagan, Sasha Krsmanovic, Jean-Rene Roy, Mark Dunn, Carl Franklin, Richard
Campbell, all the Canadian RDs, and everyone at ObjectSharp.

—Rob Windsor
i Wish To acKnoWledge Paul Reese and Adaobi Obi Tulton; they had a lot of patience and they allowed

me to make the necessary changes to my chapter in order to include the most appropriate information about
the new parallel programming features introduced in .NET Framework 4 and Visual Basic 2010.
Special thanks go to my wife, Vanesa S. Olsen, because she understood that I needed to work with many
computers at the same time to test each code snippet.

—Gastón C. Hillar



conTenTs

IntroductIon

xxxv

ParT i: language consTrucTs and enVironmenT
chaPTer 1: Visual sTudio 2010

Visual studio 2010: express through Ultimate
Visual Basic Keywords and syntax
Console Applications
Creating a Project from a Project Template
The Solution Explorer
Project Properties

Assembly Information Screen
Compiler Settings
Debug Properties
References
Resources
Settings
Other Project Property Tabs

Project ProVB_Vs2010
Form Properties Set in Code
Additional Components for Visual Studio

3

4
7
10
11
14
15
16
17
21
22
24
25
28

28
31

39

enhancing a sample application

40

Customizing the Code
Building Applications
Reusing Your First Windows Form

41
45
52

Useful features of Visual studio 2010
Build Configurations
The Task List
The Command Window
Server Explorer
Recording and Using Macros in Visual Studio 2010
Class Diagrams
Application Lifecycle Management
Performance Tools

summary

54
54
56
57

57
58
60
61
64

66


conTenTs

chaPTer 2: oBJecTs and Visual Basic

object-oriented Terminology

68

Objects, Classes, and Instances
Composition of an Object
System .Object

68
69
72

Working With Visual Basic Types

72

Value and Reference Types

Primitive Types

Commands: Conditional

73
75

76

If Then
Comparison Operators
Select Case

77
77
79

Value Types (structures)

79

Boolean
Integer Types
Unsigned Types
Decimal Types
Char and Byte
DateTime

reference Types (Classes)
The Object Class

The String Class
XML Literals
The DBNull Class and IsDBNull Function

Parameter Passing
ParamArray

Variable scope
Working with objects
Objects Declaration and Instantiation
Object References
Dereferencing Objects
Early Binding versus Late Binding

Data Type Conversions
Performing Explicit Conversions

Creating Classes
Basic Classes
Handling Events
Handling Multiple Events

xvi

67

80
81
82
82

85
85

86
86
87
91
92

93
94

94
95
95
96
97
97

98
99

103
103
113
113


ConTenTs


The WithEvents Keyword
Raising Events
Declaring and Raising Custom Events
Receiving Events with WithEvents
Receiving Events with AddHandler
Constructor Methods
Termination and Cleanup

advanced Concepts
Overloading Methods
Overloading Constructor Methods
Shared Methods, Variables, and Events
Operator Overloading
Delegates
Classes versus Components
Lambdas

summary
chaPTer 3: cusTom oBJecTs

inheritance
Implementing Inheritance
Interacting with the Base Class, Your Class, and Your Object
Simple Constructors
Creating an Abstract Base Class

Multiple interfaces
Object Interfaces
Secondary Interfaces


abstraction
encapsulation
Polymorphism
Method Signatures

inheritance
When to Use Inheritance
How Deep to Go?

summary
chaPTer 4: The common language runTime

elements of a .neT application
Modules
Assemblies
Types

114
114
115
116
117
119
119

120
121
123
124
128

130
134
135

136
137

138
139
159
164
175

177
177
178

184
187
189
189

198
198
205

208
211

212

212
213
214

xvii


conTenTs

Versioning and Deployment
Better Support for Versioning
Major .Minor .Build .Revision
Better Deployment

214
215
215

Cross-language integration

216

The Common Type System
Metadata
Better Support for Metadata
Attributes
The Reflection API

216
217

218
218
220

il Disassembler
Memory Management
Traditional Garbage Collection
Faster Memory Allocation for Objects
Garbage Collector Optimizations

namespaces
What Is a Namespace?
Namespaces and References
Common Namespaces
Importing and Aliasing Namespaces
Aliasing Namespaces
Referencing Namespaces in ASP .NET

Creating Your own namespaces
The My Keyword
My .Application
My .Computer
My .Forms Namespace
My .Resources
My .User

extending the My namespace
summary

221

221
222
228
229

231
231
234
236
238
239
240

240
242
243
246
249
249
250

250
252

chaPTer 5: declaraTiVe Programming
WiTh Visual Basic

253

Declarative Programming and Visual Basic

Using XaMl to Create a Window
XaMl syntax

254
255
258

XAML Language Basics
XAML Directives

Using XaMl to Declare a Workflow
summary
xviii

214

259
261

262
264


ConTenTs

chaPTer 6: excePTion handling and deBugging

new in Visual studio 2010 Team system: Historical Debugging
notes on Compatibility with VB6
exceptions in .neT

Important Properties and Methods of an Exception

structured exception-Handling Keywords

267

267
268
268
268

269

The Try, Catch, and Finally Keywords
The Throw Keyword
Throwing a New Exception
The Exit Try Statement
Nested Try Structures
Using Exception Properties
The Message Property
The InnerException and TargetSite Properties

270
271
272
273
274
275
276
276


interoperability with VB6-style error Handling
error logging

279
280

The Event Log
Events, Methods, and Properties
Writing to Trace Files

summary
chaPTer 7: TesT-driVen deVeloPmenT

When and How to Test
Using Assertions

TDD Tools in Visual studio
UnitTesting Walk-Through
Creating a Test
Running a Test
Testing Data Access Code
Using the Generate from Usage Feature

other Visual studio editions
Third Party Testing frameworks
summary

280
281

283

284
287

288
288

290
291
291
293
295
302

305
306
307

ParT ii: Business oBJecTs and daTa access
chaPTer 8: arrays, collecTions, and generics

arrays
Multidimensional Arrays
The UBound Function

311

312
313

314
xix


conTenTs

The ReDim Statement
The Preserve Keyword

Collections
Generics

315
320

Using Generics
Nullable Types
Generic Types
Generic Methods

321
322
322
326

Creating Generics

327

Generic Types

Generic Methods
Constraints
Generics and Late Binding
Covariance and Contravariance

summary
chaPTer 9: using xml WiTh Visual Basic

an introduction to XMl
XMl serialization

327
333
334
337
337

339
341

342
343

Source Code Style Attributes

347

system.Xml Document support
XMl stream-style Parsers


348
348

Writing an XML Stream
Reading an XML Stream
Document Object Model (DOM)

Xsl Transformations
XSLT Transforming between XML Standards
Other Classes and Interfaces in System .Xml .Xsl

XMl in asP.neT
The XmlDataSource Server Control
The XmlDataSource Control’s Namespace Problem
The Xml Server Control

linQ to XMl
linQ Helper XMl objects
XDocument
XElement
XNamespace
XAttribute

Visual Basic and XMl literals
Using linQ to Query XMl Documents

xx

314
315


349
351
359

363
366
368

369
369
373
373

375
375
375
375
376
378

379
380


ConTenTs

Querying Static XML Documents
Querying Dynamic XML Documents


380
381

Working with the XMl Document

382

Reading from an XML Document
Writing to an XML Document

382
384

lambda expressions in Visual Basic
summary
chaPTer 10: ado.neT and linq

aDo.neT architecture
Basic aDo.neT features
Common ADO .NET Tasks
Basic ADO .NET Namespaces and Classes
ADO .NET Components

.neT Data Providers
Connection Object
Command Object
Using Stored Procedures with Command Objects
DataReader Object
Executing Commands Asynchronously
DataAdapter Objects

SQL Server .NET Data Provider
OLE DB .NET Data Provider

The Dataset Component
DataTableCollection
DataRelationCollection
ExtendedProperties
Creating and Using DataSet Objects
ADO .NET DataTable Objects
Advanced ADO .NET Features of the DataSet and DataTable Objects

Working with the Common Provider Model
Connection Pooling in aDo.neT
Transactions and system.Transactions
Creating Transactions
Creating Resource Managers

linQ to sQl
linQ to sQl and Visual Basic
Retrieving Data Using LINQ to SQL: Creating the Console Application
Introducing the O/R Designer
Creating the Product Object

385
387
389

390
391
391

395
396

398
398
399
399
402
404
406
409
409

410
410
410
411
411
413
414

416
418
418
419
421

421
422
422

423
424

xxi


conTenTs

How objects Map to linQ objects
The DataContext Object
The Table(TEntity) Object

Querying the Database
Using Query Expressions
Query Expressions in Detail
Filtering Using Expressions
Performing Joins
Grouping Items

stored Procedures
Updating the Database
summary
chaPTer 11: daTa access WiTh The enTiTy frameWorK

object-relational Mapping
entity framework architecture
Conceptual Model
Storage Model
Mapping Model
LINQ to Entities

The ObjectContext

Mapping objects to entities

426
428

428
429
429
429
430
431

432
433
435
437

438
438
439
442
443
443
445

446

Simple Mapping

Using a Single Table for Multiple Objects
Using Multiple Tables for an Object

446
448
450

Generating the Database from a Model

452

Updating the Model

summary
chaPTer 12: WorKing WiTh sql serVer

sQl server Compact
Connecting to a SQL Server Compact Database
Synchronizing Data

sQl server’s Built-in XMl features
Clr integration in sQl server
Deciding between T-SQL and Visual Basic
Creating User-Defined Types
Creating Stored Procedures
Exposing Web Services from SQL Server
SQL Server 2008 Features

xxii


425

454

456
457

458
459
462

468
470
470
471
483
489
494


ConTenTs

WCf Data services
REST
Atom and JSON
Exposing Data Using WCF Data Services
WCF Data Services Client Library

summary
chaPTer 13: serVices (xml/Wcf)


introduction to services
The Network Angle
Application Development
Merging the Network and Application Development
The Foundations of Web Services
The Problems
Some Other Players
Web Services
What Makes a WCF Service

The larger Move to soa
Capabilities of WCF
Contracts and Metadata
Working with the WS-* Protocols

Building a WCf service
Building a WCf Consumer
Adding a Service Reference
Reviewing the Reference
Configuration File Changes
Writing the Consumption Code

Working with Data Contracts
Building a Service with a Data Contract

namespaces
Building the Host
Building the Consumer
Looking at WSDL and the Schema for HelloCustomerService


summary

495
495
495
497
501

505
507

508
508
508
508
509
510
511
511
512

513
514
514
515

516
523
523

525
528
529

531
532

533
533
534
536

538

ParT iii: smarT clienT aPPlicaTions
chaPTer 14: WindoWs forms

The system.Windows.forms namespace
Using forms
Setting a Startup Form

541

541
542
542
xxiii



×