• Tidak ada hasil yang ditemukan

652 Professional ASP.NET 4 in C# and VB

N/A
N/A
Protected

Academic year: 2019

Membagikan "652 Professional ASP.NET 4 in C# and VB"

Copied!
1539
0
0

Teks penuh

(1)
(2)

Get more out of

wrox.com

Interact

Take an active role online by participating in our

P2P forums @ p2p.wrox.com

Wrox Online Library

Hundreds of our books are available online

through Books24x7.com

Wrox Blox

Download short informational pieces and code

to keep you up to date and out of trouble!

Join the Community

Sign up for our free monthly newsletter at

newsletter.wrox.com

Browse

Ready for more Wrox? We have books and

e-books available on .NET, SQL Server, Java,

XML, Visual Basic, C#/ C++, and much more!

Contact Us.

We always like to get feedback from our readers. Have a book idea?

(3)

inTroducTion . . . xxxix

chaPTer 1

Application and Page Frameworks � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �1

chaPTer 2

ASP�NET Server Controls and Client-Side Scripts � � � � � � � � � � � � � � � � � � � � � � � � � � � � 49

chaPTer 3

ASP�NET Web Server Controls � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 85

chaPTer 4

Validation Server Controls � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 157

chaPTer 5

Working with Master Pages � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 187

chaPTer 6

Themes and Skins � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 217

chaPTer 7

Data Binding � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 237

chaPTer 8

Data Management with ADO�NET � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �309

chaPTer 9

Querying with LINQ � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 371

chaPTer 10

Working with XML and LINQ to XML � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �405

chaPTer 11

Introduction to the Provider Model � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 457

chaPTer 12

Extending the Provider Model � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 491

chaPTer 13

Site Navigation � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 519

chaPTer 14

Personalization � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �569

chaPTer 15

Membership and Role Management � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 597

chaPTer 16

Portal Frameworks and Web Parts � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �643

chaPTer 17

HTML and CSS Design with ASP�NET � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �683

chaPTer 18

ASP�NET AJAX � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 709

chaPTer 19

ASP�NET AJAX Control Toolkit � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 749

chaPTer 20

Security � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �805

chaPTer 21

State Management � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �835

chaPTer 22

Caching � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �865

chaPTer 23

Debugging and Error Handling � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �895

chaPTer 24

File I/O and Streams � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 927

chaPTer 25

User and Server Controls � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 979

(4)

chaPTer 29

ADO�NET Entity Framework � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1105

chaPTer 30

ASP�NET Dynamic Data � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1129

chaPTer 31

Working with Services � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1153

chaPTer 32

Building Global Applications � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �1217

chaPTer 33

Configuration � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1239

chaPTer 34

Instrumentation � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1285

chaPTer 35

Administration and Management � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1315

chaPTer 36

Packaging and Deploying ASP�NET Applications � � � � � � � � � � � � � � � � � � � � � � � � � � 1337

aPPendix a

Migrating Older ASP�NET Projects � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1369

aPPendix B

ASP�NET Ultimate Tools � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1381

aPPendix c

Silverlight 3 and ASP�NET � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1399

aPPendix d

Dynamic Types and Languages � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1419

aPPendix e

ASP�NET Online Resources � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � 1427

(5)
(6)
(7)

asP.neT 4

in C# and VB

Bill Evjen

Scott Hanselman

(8)

10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com

Copyright © 2010 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

ISBN: 978-0-470-50220-4

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 http://www.wiley.com/go/permissions.

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: 2009943645

(9)

—Bill Evjen

To Momo and the boys. Toot!

(10)
(11)

Bill evjen is an active proponent of .NET technologies and community-based learning initiatives for .NET. He has been actively involved with .NET since the first bits were released in 2000. In the same year, Bill founded the St. Louis .NET User Group (www.stlnet.org), one of the world’s first such groups. Bill is also the founder and former executive director of the International .NET Association (www.ineta.org), which represents more than 500,000 members worldwide.

Based in St. Louis, Missouri, Bill is an acclaimed author and speaker on ASP.NET and Services. He has authored or coauthored more than 20 books including Professional C# 2010, Professional VB 2008, ASP.NET Professional Secrets, XML Web Services for ASP.NET, and Web Services Enhancements: Understanding the WSE for Enterprise Applications (all published by Wiley). In addition to writing, Bill is a speaker at numerous conferences, including DevConnections, VSLive!, and TechEd. Along with these items, Bill works closely with Microsoft as a Microsoft Regional Director and an MVP.

Bill is the Global Head of Platform Architecture for Thomson Reuters, Lipper, the international news and financial services company (www.thomsonreuters.com). He graduated from Western Washington University in Bellingham, Washington, with a Russian language degree. When he isn’t tinkering on the computer, he can usually be found at his summer house in Toivakka, Finland. You can reach Bill on Twitter at @billevjen.

scoTT hanselman works for Microsoft as a Principal Program Manager Lead in the

Server and Tools Online Group, aiming to spread the good word about developing software, most often on the Microsoft stack. Before this, Scott was the Chief Architect at Corillian, an eFinance enabler, for 6+ years, and before Corillian, he was a Principal Consultant at Microsoft Gold Partner for 7 years. He was also involved in a few things like the MVP and RD programs and will speak about computers (and other passions) whenever someone will listen to him. He blogs at www.hanselman.com, podcasts at www.hanselminutes.com, and runs a team that contributes to www.asp.net, www.windowsclient.net, and www.silverlight.net. Follow Scott on Twitter @shanselman.

devin rader works at Infragistics where he focuses on delivering great experiences to

(12)

carlos figueroa has been developing and designing Web solutions for the last 8 years, participating in international projects for the pharmaceutical industry, banking, commercial air transportation, and the government. During these years, Carlos has been deeply involved as an early adopter of Microsoft Web development technologies, such as ASP.NET and Silverlight.

He has been awarded Microsoft Most Valuable Professional for the last 5 years and holds the MCAD certification. Carlos is a Senior Software Developer at Oshyn, Inc. (www.oshyn.com), a company specialized on delivering innovative business solutions for the web, mobile devices and emerging technology platforms. At Oshyn, Carlos is dedicated to help some of the most recognizable brands in the world to achieve technology success. You can reach Carlos at cfigueroa1982@hotmail.com or follow him on twitter @carlosfigueroa.

andrew moore is a graduate of Purdue University–Calumet in Hammond, Indiana, and has been

developing software since 1998 for radar systems, air traffic management, discrete-event simulation, and business communications applications using C, C++, C#, and Java on the Windows, UNIX, and Linux platforms. Andrew is also a contributor to the Wrox Blox article series.

(13)

acquisiTions ediTor

Paul Reese

senior ProjecT ediTor

Kevin Kent

Technical ediTors

Carlos Figueroa Andrew Moore

ProducTion ediTor

Daniel Scribner

coPy ediTor

Paula Lowell

ediTorial direcTor

Robyn B� Siesky

ediTorial manager

Mary Beth Wakefield

associaTe direcTor of markeTing

David Mayhew

ProducTion manager

Tim Tate

vice PresidenT and execuTive grouP PuBlisher

Richard Swadley

vice PresidenT and execuTive PuBlisher

Barry Pruett

associaTe PuBlisher

Jim Minatel

ProjecT coordinaTor, cover

Lynsey Stanford

Proofreaders

Word One

indexer

J & J Indexing

cover designer

Michael E� Trent

cover image

(14)
(15)

Thanks To kevin kenT, Paul reese, and jim minaTel for the opportunity to work on such a great book. In addition to my co-authors, I would like to thank my family for putting up with all the writing. Thank you Tuija, Sofia, Henri, and Kalle!

(16)
(17)

INTRODUCTION

xxxix

chaPTer 1: aPPlicaTion and Page frameworks

1

application location options

1

Built-in Web Server

2

IIS

3

FTP

3

Web Site Requiring FrontPage Extensions

4

The asP.neT Page structure options

4

Inline Coding

6

Code-Behind Model

7

asP.neT 4 Page directives

9

@Page

10

@Master

13

@Control

14

@Import

15

@Implements

17

@Register

17

@Assembly

18

@PreviousPageType

18

@MasterType

18

@OutputCache

18

@Reference

19

asP.neT Page events

19

dealing with Postbacks

20

Cross-Page Posting

21

asP.neT application folders

26

App_Code Folder

27

App_Data Folder

30

App_Themes Folder

31

App_GlobalResources Folder

31

App_LocalResources Folder

31

App_WebReferences Folder

31

App_Browsers Folder

31

Compilation

32

(18)

Using the Built-in Build Providers

36

Using Your Own Build Providers

36

Global.asax

41

Working with Classes Through Visual studio 2010

44

summary

47

chaPTer 2: asP.neT server conTrols and clienT-side scriPTs 49

asP.neT server Controls

49

Types of Server Controls

50

Building with Server Controls

51

Working with Server Control Events

53

applying styles to server Controls

54

Examining the Controls’ Common Properties

54

Changing Styles Using Cascading Style Sheets

56

CSS Changes in ASP�NET 4

58

HTMl server Controls

59

Looking at the HtmlControl Base Class

60

Looking at the HtmlContainerControl Class

61

Looking at All the HTML Classes

61

Using the HtmlGenericControl Class

62

identifying asP.neT server Controls

63

Manipulating Pages and server Controls with Javascript

65

Using Page�ClientScript�RegisterClientScriptBlock

66

Using Page�ClientScript�RegisterStartupScript

68

Using Page�ClientScript�RegisterClientScriptInclude

69

Client-side Callback

69

Comparing a Typical Postback to a Callback

70

Using the Callback Feature — A Simple Approach

72

Using the Callback Feature with a Single Parameter

75

Using the Callback Feature — A More Complex Example

78

summary

83

chaPTer 3: asP.neT weB server conTrols

85

an overview of Web server Controls

85

The label server Control

86

The literal server Control

88

The TextBox server Control

88

Using the Focus() Method

89

Using AutoPostBack

89

(19)

The Button server Control

91

The CausesValidation Property

91

The CommandName Property

92

Buttons That Work with Client-Side JavaScript

93

The linkButton server Control

94

The imageButton server Control

95

The Hyperlink server Control

96

The dropdownlist server Control

96

Visually removing items from a Collection

98

The listBox server Control

100

Allowing Users to Select Multiple Items

100

An Example of Using the ListBox Control

100

Adding Items to a Collection

102

The CheckBox server Control

102

How to Determine Whether Check Boxes Are Checked

103

Assigning a Value to a Check Box

104

Aligning Text Around the Check Box

104

The CheckBoxlist server Control

104

The radioButton server Control

106

The radioButtonlist server Control

108

image server Control

109

Table server Control

110

The Calendar server Control

112

Making a Date Selection from the Calendar Control

112

Choosing a Date Format to Output from the Calendar

113

Making Day, Week, or Month Selections

114

Working with Date Ranges

115

Modifying the Style and Behavior of Your Calendar

116

adrotator server Control

119

The Xml server Control

121

Panel server Control

122

The PlaceHolder server Control

124

Bulletedlist server Control

124

Hiddenfield server Control

129

fileUpload server Control

130

Uploading Files Using the FileUpload Control

130

Giving ASP�NET Proper Permissions to Upload Files

132

Understanding File Size Limitations

133

Uploading Multiple Files from the Same Page

134

Placing the Uploaded File into a Stream Object

137

(20)

MultiView and View server Controls

138

Wizard server Control

141

Customizing the Side Navigation

142

Examining the AllowReturn Attribute

143

Working with the StepType Attribute

143

Adding a Header to the Wizard Control

143

Working with the Wizard’s Navigation System

144

Utilizing Wizard Control Events

145

Using the Wizard Control to Show Form Elements

146

imageMap server Control

150

Chart server Control

152

summary

155

chaPTer 4: validaTion server conTrols

157

Understanding Validation

157

Client-side versus server-side Validation

158

asP.neT Validation server Controls

159

Validation Causes

160

The RequiredFieldValidator Server Control

160

The CompareValidator Server Control

164

The RangeValidator Server Control

167

The RegularExpressionValidator Server Control

171

The CustomValidator Server Control

172

The ValidationSummary Server Control

176

Turning off Client-side Validation

179

Using images and sounds for error notifications

180

Working with Validation Groups

181

summary

185

chaPTer 5: working wiTh masTer Pages

187

Why do You need Master Pages?

187

The Basics of Master Pages

189

Coding a Master Page

190

Coding a Content Page

192

Mixing Page Types and Languages

196

Specifying Which Master Page to Use

197

Working with the Page Title

198

Working with Controls and Properties from the Master Page

199

specifying default Content in the Master Page

205

(21)

nesting Master Pages

207

Container-specific Master Pages

211

event ordering

212

Caching with Master Pages

213

asP.neT aJaX and Master Pages

214

summary

216

chaPTer 6: Themes and skins

217

Using asP.neT Themes

217

Applying a Theme to a Single ASP�NET Page

217

Applying a Theme to an Entire Application

219

Removing Themes from Server Controls

219

Removing Themes from Web Pages

220

Understanding Themes When Using Master Pages

221

Understanding the StyleSheetTheme Attribute

221

Creating Your own Themes

222

Creating the Proper Folder Structure

222

Creating a Skin

222

Including CSS Files in Your Themes

224

Having Your Themes Include Images

227

defining Multiple skin options

229

Programmatically Working with Themes

231

Assigning the Page’s Theme Programmatically

231

Assigning a Control’s SkinID Programmatically

231

Themes, skins, and Custom Controls

232

summary

235

chaPTer 7: daTa Binding

237

data source Controls

237

SqlDataSource Control

239

AccessDataSource Control

247

LinqDataSource Control

247

EntityDataSource Control

253

XmlDataSource Control

255

ObjectDataSource Control

256

SiteMapDataSource Control

259

data source Control Caching

259

storing Connection information

260

Using Bound list Controls with data source Controls

262

(22)

Editing GridView Row Data

275

Deleting GridView Data

281

Other GridView Formatting Features

283

DetailsView

283

Inserting, Updating, and Deleting Data Using DetailsView

287

ListView

289

FormView

296

other databound Controls

300

TreeView

300

AdRotator

301

Menu

301

inline data-Binding syntax

302

Data-Binding Syntax

302

XML Data Binding

303

expressions and expression Builders

303

summary

308

chaPTer 8: daTa managemenT wiTh ado.neT

309

Basic ado.neT features

310

Common ADO�NET Tasks

310

Basic ADO�NET Namespaces and Classes

314

Using the Connection Object

315

Using the Command Object

317

Using the DataReader Object

318

Using DataAdapter

320

Using Parameters

322

Understanding DataSet and DataTable

325

Using Oracle as Your Database with ASP�NET

329

The datalist server Control

330

Looking at the Available Templates

331

Working with ItemTemplate

331

Working with Other Layout Templates

334

Working with Multiple Columns

336

The listView server Control

336

Connecting the ListView to a Database

337

Creating the Layout Template

338

Creating the ItemTemplate

340

Creating the EditItemTemplate

341

Creating the EmptyItemTemplate

341

Creating the InsertItemTemplate

341

(23)

Using Visual studio for ado.neT Tasks

344

Creating a Connection to the Data Source

344

Working with a Dataset Designer

345

Using the CustomerOrders DataSet

348

asynchronous Command execution

352

Asynchronous Methods of the SqlCommand Class

352

IAsyncResult Interface

353

AsyncCallback

354

WaitHandle Class

354

Approaches of Asynchronous Processing in ADO�NET

355

Canceling Asynchronous Processing

370

Asynchronous Connections

370

summary

370

chaPTer 9: querying wiTh linq

371

linQ to objects

371

Understanding Traditional Query Methods

371

Replacing Traditional Queries with LINQ

378

Data Grouping

384

Using Other LINQ Operators

385

Making LINQ Joins

385

Paging Using LINQ

386

linQ to XMl

387

Joining XML Data

390

linQ to sQl

391

Making Insert, Update, and Delete Queries through LINQ

399

Extending LINQ

403

summary

403

chaPTer 10: working wiTh xml and linq To xml

405

The Basics of XMl

406

The XML InfoSet

408

XSD–XML Schema Definition

409

Editing XML and XML Schema in Visual Studio 2010

410

Xmlreader and XmlWriter

413

Using XDocument Rather Than XmlReader

415

Using Schema with XmlTextReader

416

Validating Against a Schema Using an XDocument

417

Including NameTable Optimization

419

(24)

ReadSubtree and XmlSerialization

422

Creating CLR Objects from XML with LINQ to XML

423

Creating XML with XmlWriter

424

Creating XML with LINQ for XML

426

Improvements for XmlReader and XmlWriter

429

Xmldocument and XPathdocument

429

Problems with the DOM

429

XPath, the XPathDocument, and XmlDocument

430

datasets

434

Persisting DataSets to XML

434

XmlDataDocument

435

The Xmldatasource Control

437

XslT

441

XslCompiledTransform

442

XSLT Debugging

445

databases and XMl

446

FOR XML AUTO

446

SQL Server and the XML Data Type

451

summary

456

chaPTer 11: inTroducTion To The Provider model

457

Understanding the Provider

458

The Provider Model in asP.neT 4

459

Setting Up Your Provider to Work with Microsoft SQL Server

7�0, 2000, 2005, or 2008

461

Membership Providers

466

Role Providers

469

The Personalization Provider

473

The SiteMap Provider

474

SessionState Providers

476

Web Event Providers

478

Configuration Providers

485

The Web Parts Provider

487

Configuring Providers

489

summary

489

chaPTer 12: exTending The Provider model

491

Providers are one Tier in a larger architecture

491

Modifying Through attribute-Based Programming

492

(25)

examining ProviderBase

496

Building Your own Providers

497

Creating the CustomProviders Application

498

Constructing the Class Skeleton Required

499

Creating the XML User Data Store

502

Defining the Provider Instance in the web�config File

502

Not Implementing Methods and Properties of the

MembershipProvider Class

503

Implementing Methods and Properties of

the MembershipProvider Class

504

Using the XmlMembershipProvider for User Login

510

extending Pre-existing Providers

511

Limiting Role Capabilities with a New LimitedSqlRoleProvider Provider

511

Using the New LimitedSqlRoleProvider Provider

515

summary

518

chaPTer 13: siTe navigaTion

519

XMl-Based sitemaps

520

siteMapPath server Control

521

The PathSeparator Property

523

The PathDirection Property

525

The ParentLevelsDisplayed Property

525

The ShowToolTips Property

526

The SiteMapPath Control’s Child Elements

526

TreeView server Control

527

Identifying the TreeView Control’s Built-In Styles

530

Examining the Parts of the TreeView Control

531

Binding the TreeView Control to an XML File

532

Selecting Multiple Options in a TreeView

534

Specifying Custom Icons in the TreeView Control

537

Specifying Lines Used to Connect Nodes

538

Working with the TreeView Control Programmatically

540

Menu server Control

545

Applying Different Styles to the Menu Control

546

Using Menu Events

550

Binding the Menu Control to an XML File

551

siteMap data Provider

552

ShowStartingNode

552

StartFromCurrentNode

553

StartingNodeOffset

554

StartingNodeUrl

555

(26)

Url Mapping

557

sitemap localization

558

Structuring the Web�sitemap File for Localization

558

Making Modifications to the Web�config File

559

Creating Assembly Resource (�resx) Files

560

Testing the Results

561

security Trimming

561

Setting Up Role Management for Administrators

562

Setting Up the Administrators’ Section

563

Enabling Security Trimming

564

nesting siteMap files

566

summary

567

chaPTer 14: PersonalizaTion

569

The Personalization Model

570

Creating Personalization Properties

570

Adding a Simple Personalization Property

570

Using Personalization Properties

571

Adding a Group of Personalization Properties

574

Using Grouped Personalization Properties

575

Defining Types for Personalization Properties

576

Using Custom Types

576

Providing Default Values

579

Making Personalization Properties Read-Only

579

anonymous Personalization

579

Enabling Anonymous Identification of the End User

579

Working with Anonymous Identification

582

Anonymous Options for Personalization Properties

583

Warnings about Anonymous User Profile Storage

583

Programmatic access to Personalization

584

Migrating Anonymous Users

584

Personalizing Profiles

585

Determining Whether to Continue with Automatic Saves

586

Personalization Providers

587

Working with SQL Server Express Edition

587

Working with Microsoft’s SQL Server 7�0/2000/2005/2008

588

Using Multiple Providers

590

Managing application Profiles

590

Properties of the ProfileManager Class

591

Methods of the ProfileManager Class

591

(27)

Examining the ProfileManager�aspx Page’s Code

594

Running the ProfileManager�aspx Page

595

summary

596

chaPTer 15: memBershiP and role managemenT

597

asP.neT 4 authentication

598

Setting Up Your Web Site for Membership

598

Adding Users

600

Asking for Credentials

613

Working with Authenticated Users

620

Showing the Number of Users Online

622

Dealing with Passwords

623

asP.neT 4 authorization

627

Using the LoginView Server Control

627

Setting Up Your Web Site for Role Management

630

Adding and Retrieving Application Roles

632

Deleting Roles

634

Adding Users to Roles

635

Getting All the Users of a Particular Role

635

Getting All the Roles of a Particular User

637

Removing Users from Roles

638

Checking Users in Roles

638

Understanding How Roles Are Cached

639

Using the Web site administration Tool

640

Public Methods of the Membership aPi

640

Public Methods of the roles aPi

641

summary

642

chaPTer 16: PorTal frameworks and weB ParTs

643

introducing Web Parts

643

Building dynamic and Modular Web sites

645

Introducing the WebPartManager Control

645

Working with Zone Layouts

646

Understanding the WebPartZone Control

649

Allowing the User to Change the Mode of the Page

651

Modifying Zones

660

Working with Classes in the Portal framework

666

Creating Custom Web Parts

669

Connecting Web Parts

674

(28)

Building the Consumer Web Part

677

Connecting Web Parts on an ASP�NET Page

679

Understanding the Difficulties in Dealing with Master Pages

When Connecting Web Parts

681

summary

682

chaPTer 17: hTml and css design wiTh asP.neT

683

Caveats

684

HTMl and Css overview

684

Creating Style Sheets

685

CSS Rules

687

CSS Inheritance

694

Element Layout and Positioning

695

Working with HTMl and Css in Visual studio

702

Working with CSS in Visual Studio

703

Managing Relative CSS Links in Master Pages

706

Styling ASP�NET Controls

706

summary

708

chaPTer 18: asP.neT ajax

709

Understanding the need for aJaX

709

Before AJAX

710

AJAX Changes the Story

710

asP.neT aJaX and Visual studio 2010

712

Client-Side Technologies

713

Server-Side Technologies

714

Developing with ASP�NET AJAX

714

Building asP.neT aJaX applications

714

Building a Simple ASP�NET Page without AJAX

716

Building a Simple ASP�NET Page with AJAX

718

asP.neT aJaX’s server-side Controls

722

The ScriptManager Control

723

The ScriptManagerProxy Control

725

The Timer Control

726

The UpdatePanel Control

727

The UpdateProgress Control

731

Using Multiple UpdatePanel Controls

733

Working with Page History

737

script Combining

741

(29)

chaPTer 19: asP.neT ajax conTrol ToolkiT

747

downloading and installing the aJaX Control Toolkit

749

The asP.neT aJaX Controls

750

ASP�NET AJAX Control Toolkit Extenders

751

AlwaysVisibleControlExtender

751

AnimationExtender

753

AutoCompleteExtender

755

CalendarExtender

757

CollapsiblePanelExtender

758

ColorPickerExtender

760

ConfirmButtonExtender and ModalPopupExtender

761

DragPanelExtender

763

DropDownExtender

764

DropShadowExtender

766

DynamicPopulateExtender

768

FilteredTextBoxExtender

772

HoverMenuExtender

772

ListSearchExtender

774

MaskedEditExtender and MaskedEditValidator

774

MutuallyExclusiveCheckBoxExtender

776

NumericUpDownExtender

778

PagingBulletedListExtender

778

PopupControlExtender

780

ResizableControlExtender

781

RoundedCornersExtender

783

SliderExtender and MultiHandleSliderExtender

784

SlideShowExtender

785

TextBoxWatermarkExtender

788

ToggleButtonExtender

789

UpdatePanelAnimationExtender

790

ValidatorCalloutExtender

791

asP.neT aJaX Control Toolkit server Controls

793

Accordion Control

793

CascadingDropDown

795

NoBot Control

798

PasswordStrength Control

799

Rating Control

800

TabContainer Control

801

(30)

chaPTer 20: securiTy

805

applying authentication Measures

806

The <authentication> Node

806

Windows-Based Authentication

807

Forms-Based Authentication

813

Passport Authentication

821

authenticating specific files and folders

822

Programmatic authorization

822

Working with User�Identity

823

Working with User�IsInRole()

824

Pulling More Information with WindowsIdentity

824

identity and impersonation

827

securing Through iis

828

IP Address and Domain Name Restrictions

829

Working with File Extensions

829

Using the ASP�NET MMC Snap-In

832

Using the IIS 7�0 Manager

832

summary

833

chaPTer 21: sTaTe managemenT

835

Your session state Choices

835

Understanding the session object in asP.neT

838

Sessions and the Event Model

838

Configuring Session State Management

839

In-Process Session State

840

Out-of-Process Session State

846

SQL-Backed Session State

851

Extending Session State with Other Providers

854

Cookieless Session State

855

Choosing the Correct Way to Maintain State

856

The application object

856

Querystrings

857

Cookies

857

PostBacks and Cross-Page PostBacks

857

Hidden fields, Viewstate, and Controlstate

859

Using HttpContext.Current.items for Very short-Term storage

863

(31)

chaPTer 22: caching

865

Caching

865

Output Caching

865

Partial Page (UserControl) Caching

869

Post-Cache Substitution

870

HttpCachePolicy and Client-Side Caching

871

Caching Programmatically

873

Data Caching Using the Cache Object

873

Controlling the ASP�NET Cache

874

Cache Dependencies

875

�NET 4’s New Object Caching Option

879

Using the sQl server Cache dependency

882

Enabling Databases for SQL Server Cache Invalidation

883

Enabling Tables for SQL Server Cache Invalidation

883

Looking at SQL Server 2000

883

Looking at the Tables That Are Enabled

884

Disabling a Table for SQL Server Cache Invalidation

885

Disabling a Database for SQL Server Cache Invalidation

885

SQL Server 2005 and 2008 Cache Invalidation

885

Configuring Your asP.neT application

886

Testing sQl server Cache invalidation

887

Adding More Than One Table to a Page

890

Attaching SQL Server Cache Dependencies to the Request Object

890

Attaching SQL Server Cache Dependencies to the Cache Object

890

summary

894

chaPTer 23: deBugging and error handling

895

design-Time support

895

Syntax Notifications

896

Immediate and Command Window

897

Task List

898

Tracing

898

System�Diagnostics�Trace and ASP�NET’s Page�Trace

899

Page-Level Tracing

899

Application Tracing

899

Viewing Trace Data

900

Tracing from Components

902

Trace Forwarding

904

TraceListeners

904

Diagnostic Switches

908

(32)

debugging

910

What’s Required

910

IIS versus ASP�NET Development Server

911

Starting a Debugging Session

912

Tools to Help You with Debugging

914

Historical Debugging with IntelliTrace

917

Debugging Multiple Threads

919

Client-side JavaScript Debugging

920

SQL Stored Proc Debugging

921

exception and error Handling

922

Handling Exceptions on a Page

922

Handling Application Exceptions

923

Http Status Codes

924

summary

925

chaPTer 24: file i/o and sTreams

927

Working with drives, directories, and files

928

The DriveInfo Class

928

The Directory and DirectoryInfo Classes

931

File and FileInfo

937

Working with Paths

943

File and Directory Properties, Attributes, and Access Control Lists

947

reading and Writing files

953

Streams

953

Readers and Writers

960

Compressing Streams

964

Memory-Mapped files

966

Working with serial Ports

968

iPC Using Pipes

970

network Communications

970

WebRequest and WebResponse

971

Sending Mail

977

summary

977

chaPTer 25: user and server conTrols

979

User Controls

980

Creating User Controls

980

Interacting with User Controls

982

Loading User Controls Dynamically

983

server Controls

988

Server Control Projects

988

(33)

Control Rendering

993

Styling HTML

998

Themes and Skins

1001

Adding Client-Side Features

1002

Browser Capabilities

1010

Using ViewState

1012

Raising Postback Events

1015

Handling Postback Data

1018

Composite Controls

1021

Templated Controls

1023

Design-Time Experiences

1027

summary

1043

chaPTer 26: modules and handlers

1045

Processing HTTP requests

1045

IIS 6 and ASP�NET

1046

IIS 7 and ASP�NET

1046

ASP�NET Request Processing

1047

HttpModules

1048

HttpHandlers

1052

Generic Handlers

1052

Mapping a File Extension in IIS

1056

summary

1058

chaPTer 27: asP.neT mvc

1059

defining Model-View-Controller

1059

MVC on the Web Today

1060

Model-View-Controller and asP.neT

1061

Serving Methods, Not Files

1061

Is This Web Forms 4�0?

1061

Why Not Web Forms?

1062

ASP�NET MVC Is Totally Different!

1062

Why “(ASP�NET > ASP�NET MVC) == True”

1062

Convention over Configuration

1064

The Third Request Is the Charm

1066

Understanding routes and Urls

1068

Routing Compared to URL Rewriting

1069

Defining Routes

1070

Controllers

1073

(34)

The Controller Class and Actions

1074

Working with Parameters

1074

Working with Multiple Parameters

1075

Views

1076

Specifying a View

1076

Strongly Typed Views

1077

Using HTML Helper Methods

1078

HtmlHelper Class and Extension Methods

1078

summary

1079

chaPTer 28: using Business oBjecTs

1081

Using Business objects in asP.neT 4

1081

Creating Precompiled �NET Business Objects

1082

Using Precompiled Business Objects in Your ASP�NET Applications

1084

CoM interop: Using CoM Within .neT

1085

The Runtime Callable Wrapper

1086

Using COM Objects in ASP�NET Code

1086

Error Handling

1091

Deploying COM Components with �NET Applications

1093

Using .neT from Unmanaged Code

1095

The COM-Callable Wrapper

1095

Using �NET Components Within COM Objects

1097

Early versus Late Binding

1100

Error Handling

1100

Deploying �NET Components with COM Applications

1102

summary

1103

chaPTer 29: ado.neT enTiTy framework

1105

Can We speak the same language?

1106

The Conceptual and Logical Layers

1107

Mapping Between Layers

1107

Creating Your first entity data Model

1107

Working Through the EDM Wizard

1108

Using the ADO�NET Entity Designer

1109

Building an ASP�NET Page Using Your EDM

1110

Understanding relationships

1113

One-to-One and One-to-Many Relationships

1113

Many-to-One and Many-to-Many Relationships

1116

Performing inheritance Within the edM

1119

(35)

Using the entitydatasource Control

1125

Creating the Base Page

1125

Configuring the Data Source Control

1126

summary

1128

chaPTer 30: asP.neT dynamic daTa

1129

Creating Your Base application with Visual studio 2010

1129

Looking at the Core Files Created in the Default Application

1130

The Dynamic Data Application

1131

Incorporating the Database

1137

Registering the Data Model Within the Global�asax File

1139

Styles and Layout

1141

Results of the Application

1141

Working with dynamic data routes

1144

Controlling display aspects

1147

adding dynamic data to existing Pages

1149

summary

1151

chaPTer 31: working wiTh services

1153

Communication Between disparate systems

1153

Building a simple XMl Web service

1155

The WebService Page Directive

1156

Looking at the Base Web Service Class File

1156

Exposing Custom Datasets as SOAP

1157

The XML Web Service Interface

1160

Consuming a simple XMl Web service

1162

Adding a Web Reference

1163

Invoking the Web Service from the Client Application

1164

overloading WebMethods

1166

Caching Web service responses

1169

Using soaP Headers

1170

Building a Web Service with SOAP Headers

1170

Consuming a Web Service Using SOAP Headers

1172

Requesting Web Services Using SOAP 1�2

1174

Consuming Web services asynchronously

1175

Windows Communication foundation

1178

The Larger Move to SOA

1178

WCF Overview

1179

Building a WCF Service

1179

(36)

Adding a Service Reference

1187

Working with Data Contracts

1189

Defining Namespaces

1193

Using WCf data services

1194

Creating Your first service

1194

Adding Your Entity Data Model

1195

Creating the Service

1196

Querying the interface

1201

Reading a Table of Data

1202

Reading a Specific Item from the Table

1203

Working with Relationships

1205

Expanding on Associations

1207

Ordering in Result Sets

1210

Moving Around Result Sets

1211

Filtering Content

1211

Consuming WCf data services in asP.neT

1213

summary

1215

chaPTer 32: Building gloBal aPPlicaTions

1217

Cultures and regions

1217

Understanding Culture Types

1218

The ASP�NET Threads

1219

Server-Side Culture Declarations

1221

Client-Side Culture Declarations

1222

Translating Values and Behaviors

1223

asP.neT 4 resource files

1230

Making Use of Local Resources

1230

Making Use of Global Resources

1235

looking at the resource editor

1237

summary

1238

chaPTer 33: configuraTion

1239

Configuration overview

1239

Server Configuration Files

1240

Application Configuration File

1243

Applying Configuration Settings

1243

Detecting Configuration File Changes

1244

Configuration File Format

1244

Common Configuration settings

1245

(37)

Configuring Session State

1246

Compilation Configuration

1250

Browser Capabilities

1251

Custom Errors

1253

Authentication

1254

Anonymous Identity

1257

Authorization

1258

Locking-Down Configuration Settings

1260

ASP�NET Page Configuration

1260

Include Files

1262

Configuring ASP�NET Runtime Settings

1263

Configuring the ASP�NET Worker Process

1265

Storing Application-Specific Settings

1268

Programming Configuration Files

1268

Protecting Configuration Settings

1274

Editing Configuration Files

1278

Creating Custom sections

1279

Using the NameValueFileSectionHandler Object

1280

Using the DictionarySectionHandler Object

1281

Using the SingleTagSectionHandler Object

1281

Using Your Own Custom Configuration Handler

1282

summary

1284

chaPTer 34: insTrumenTaTion

1285

Working with the event log

1285

Reading from the Event Log

1286

Writing to the Event Log

1288

Using Performance Counters

1290

Viewing Performance Counters Through an Administration Tool

1290

Building a Browser-Based Administrative Tool

1292

application Tracing

1296

Understanding Health Monitoring

1297

The Health Monitoring Provider Model

1298

Health Monitoring Configuration

1299

Writing Events via Configuration: Running the Example

1305

Routing Events to SQL Server

1305

Buffering Web Events

1308

E-mailing Web Events

1310

(38)

chaPTer 35: adminisTraTion and managemenT

1315

The asP.neT Web site administration Tool

1315

The Home Tab

1316

The Security Tab

1317

The Application Tab

1325

The Provider Tab

1328

Configuring asP.neT in iis on Windows 7

1329

�NET Compilation

1330

�NET Globalization

1331

�NET Profile

1331

�NET Roles

1331

�NET Trust Levels

1332

�NET Users

1332

Application Settings

1333

Connection Strings

1333

Pages and Controls

1334

Providers

1334

Session State

1335

SMTP E-mail

1336

summary

1336

chaPTer 36: Packaging and dePloying asP.neT

aPPlicaTions

1337

deployment Pieces

1338

steps to Take before deploying

1338

Methods of deploying Web applications

1339

Using XCopy

1339

Using the VS Copy Web Site Option

1341

Deploying a Precompiled Web Application

1344

Building an ASP�NET Web Package

1346

Building an Installer Program

1349

looking More Closely at installer options

1357

Working with the Deployment Project Properties

1357

The File System Editor

1360

The Registry Editor

1363

The File Types Editor

1363

The User Interface Editor

1364

The Custom Actions Editor

1366

The Launch Conditions Editor

1366

(39)

aPPendix a: migraTing older asP.neT ProjecTs

1369

aPPendix B: asP.neT ulTimaTe Tools

1381

aPPendix c: silverlighT 3 and asP.neT

1399

aPPendix d: dynamic TyPes and languages

1419

aPPendix e: asP.neT online resources

1427

(40)
(41)

simPly PuT, asP.neT 4 is an amazing Technology to use to build your Web solutions! When ASP.NET 1.0 was introduced in 2000, many considered it a revolutionary leap forward in the area of Web application development. ASP.NET 2.0 was just as exciting and revolutionary, and ASP.NET 4 is continuing a forward march in providing the best framework today in building applications for the Web. ASP.NET 4 continues to build on the foundation laid by the release of ASP.NET 1.0/2.0/3.5 by focusing on the area of developer productivity.

This book covers the whole of ASP.NET. It not only introduces new topics, but it also shows you examples of these new technologies in action. So sit back, pull up that keyboard, and enjoy!

a liTTle BiT of hisTory

Before organizations were even thinking about developing applications for the Internet, much of the application development focused on thick desktop applications. These thick-client applications were used for everything from home computing and gaming to office productivity and more. No end was in sight for the popularity of this application model.

During that time, Microsoft developers developed thick-client applications using mainly Visual Basic (VB). Visual Basic was not only a programming language — it was tied to an IDE that allowed for easy thick-client application development. In the Visual Basic model, developers could drop controls onto a form, set properties for these controls, and provide code behind them to manipulate the events of the control. For example, when an end user clicked a button on one of the Visual Basic forms, the code behind the form handled the event. Then, in the mid-1990s, the Internet arrived on the scene. Microsoft was unable to move the Visual Basic model to the development of Internet-based applications. The Internet definitely had a lot of power, and right away, the problems facing the thick-client application model were revealed. Internet-based applications created a single instance of the application that everyone could access. Having one instance of an

application meant that when the application was upgraded or patched, the changes made to this single instance were immediately available to each and every user visiting the application through a browser. To participate in the Web application world, Microsoft developed Active Server Pages (ASP). ASP was a quick and easy way to develop Web pages. ASP pages consisted of a single page that contained a mix of markup and languages. The power of ASP was that you could include VBScript or JScript code instructions in the page executed on the Web server before the page was sent to the end user’s Web browser. This was an easy way to create dynamic Web pages customized based on instructions dictated by the developer.

Gambar

figure i-3An example master page might include a header, footer, and any other elements that all the pages can share
figure 1-1 To change from this default, you have a handful of options. Click the Browse button in the New Web Site
figure 1-4
TaBle 1-1
+7

Referensi

Dokumen terkait

Di dalam permasalahan yang ada pada BP2IP Surabaya, pegawai pelayanan diklat ingin membuat manajemen diklat serta serti fikat diklat pada sebuah sistem yang

Tahukah kamu, perubahan wujud juga terjadi dari benda gas menjadi padat?. Perubahan wujud benda dari gas menjadi padat disebut menghablur atau

PENGARUH REBUSAN BENALU MANGGA (Dendrophthoe pentandra) TERHADAP LARVA Aedes aegyptii. FAJARISMAN

Dalam metode Balanced Scorecard masing-masing komponen yang mendasarinya seperti Visi, Misi, Strategi, Tolok ukur kinerja dan lain lain, diurailcan dalam empat perspektif

Bagaimana meningkatkan percaya diri siswa kelas V SD N 2 Candinata pada mata pelajaran IPS materi mengenal jenis-jenis usaha kegiatan ekonomi di Indonesia

Selain dapat menarik dan memotivasi siswa untuk mempelajari materi lebih banyak, materi audio dapat digunakan untuk mengembangkan ketrampilan mendengar dan

Matos Terhadap Stabilisasi Tanah Lunak dengan Semen Sebagai Lapisan Tanah Dasar (Subgrade) Jalan Raya (Studi kasus : Genuk, Semarang)” belum pernah terdapat karya yang

dengan tujuan penelitian ini yaitu untuk mengetahui pengaruh harga jual dan.. volume penjualan terhadap laba industri kain tenun