Windows developer power tools
0596527543, 9780596527549, 3423463503
Software developers need to work harder and harder to bring value to their development process in order to build high qu
287
67
37MB
English
Pages 1263 Seiten
[1310]
Year 2006;2007
Report DMCA / Copyright
DOWNLOAD PDF FILE
Table of contents :
Table of Contents......Page 7
Foreword......Page 17
About the Authors......Page 21
Contributors......Page 22
Why a Book About Freeware and Open Source Tools?......Page 31
But Doesn’t Visual Studio Team System Handle All This?......Page 32
About This Book......Page 33
Audience......Page 35
Part I: Writing Code......Page 36
Part III: Running a Development Project......Page 37
Part V: Code Tools......Page 38
Part VII: Miscellaneous......Page 39
Conventions Used in This Book......Page 40
Using Code Examples......Page 41
From the Authors......Page 42
From James Avery......Page 43
From Jim Holmes......Page 44
Part I......Page 45
1.0 Introduction......Page 47
1.1 Building Sophisticated Ajax Applications with ASP.NET Atlas......Page 49
Using Atlas......Page 50
Rendering partial page updates......Page 51
Optimizing partial page updates......Page 52
Fetching data from web services......Page 54
Working with the client-side component model......Page 57
Getting Support......Page 59
Using Anthem.NET......Page 60
Getting Support......Page 63
Getting Started......Page 64
Using Ajax.NET......Page 65
Getting Support......Page 66
Getting Started......Page 67
Using URLRewritingNet.UrlRewrite......Page 69
1.5 Showing a “Please Wait” Dialog with BusyBoxDotNet......Page 70
Getting Started......Page 71
Adding the BusyBox control to a web form......Page 72
Customizing BusyBox......Page 73
Displaying the BusyBox manually......Page 74
Further personalizing a BusyBox......Page 75
1.6 Creating Cleaner HTML Output with CSS Friendly Control Adapters......Page 76
Using the Custom Adapters......Page 77
Getting Support......Page 82
1.7 Adding Word-Processing Capabilities to Your Application with FreeTextBox......Page 83
Using FreeTextBox......Page 84
1.8 Creating Charts with the WebChart Control......Page 86
Using WebChart......Page 87
Getting Support......Page 89
1.9 Consuming and Publishing RSS Feeds with the RSS Toolkit......Page 90
Creating an RSS feed......Page 91
Consuming RSS feeds with the RSS Toolkit......Page 94
1.10 For More Information......Page 95
2.0 Introduction......Page 97
2.1 Getting “That WinXP Look” with XP Common Controls......Page 98
Using XP Common Controls......Page 99
Rolling out new controls......Page 100
Understanding theming......Page 101
Implementing list controls......Page 102
Using the login controls......Page 104
2.2 Creating Dockable Windows with DockPanel Suite......Page 107
Using DockPanel Suite......Page 108
Creating a dockable application......Page 109
2.3 Creating a Professional User Interface with Krypton Toolkit......Page 113
Building a three-pane application......Page 114
Expanding groups......Page 116
2.4 Learning More About Windows Controls with Control Spy......Page 118
Working with styles......Page 119
Examining messages and notifications......Page 120
Getting Support......Page 121
2.5 For More Information......Page 122
3.0 Introduction......Page 124
3.1 Creating Great Visuals for Your Applications with Expression Graphic Designer......Page 126
Creating images......Page 127
Painting pixel layers......Page 129
Painting vector layers......Page 131
Exporting features......Page 132
Getting Support......Page 133
3.2 Creating WinFx User Interfaces Without Code Using Interactive Designer......Page 134
Getting Started......Page 135
Using Interactive Designer......Page 136
Customizing the look of a control......Page 137
Breaking down and creating a user interface......Page 138
Exploring other features......Page 139
Getting Support......Page 140
Getting Started......Page 141
Using XamlPad......Page 142
Getting Support......Page 145
3.4 Avoiding XML Configuration Files with the Service Configuration Editor......Page 146
Using the Service Configuration Editor......Page 147
Creating a service host project......Page 148
Using the wizards to configure a service......Page 149
Creating a client to consume the service......Page 159
Extending your service’s configuration......Page 161
Getting Support......Page 164
3.5 Deciphering WCF Logs with the Service Trace Viewer......Page 165
Configuring endpoint logging......Page 166
Getting Support......Page 168
3.6 Developing WinFx Applications in Visual Studio with Development Tools for WinFx......Page 170
Getting Started......Page 171
Exploring the new Visual Designer......Page 172
Editing XAML......Page 173
Getting Support......Page 174
3.7 For More Information......Page 176
4.0 Introduction......Page 177
4.1 Externalizing Business Rules with NxBRE......Page 178
Using NxBRE......Page 179
Creating rule bases for the Flow Engine......Page 180
Creating rules for the Inference Engine......Page 182
Implementing the engine......Page 183
Getting Support......Page 186
4.2 Diagnosing Without Downtime via log4net......Page 187
Step 2: Configuring log4net......Page 188
Using log4net......Page 189
Managing context......Page 192
4.3 Searching Your Data Using Lucene.Net......Page 193
Using Lucene.Net......Page 194
Creating an index......Page 196
Adding data to a document......Page 199
Searching an index......Page 200
Getting Support......Page 204
Getting Started......Page 205
Generating store files......Page 206
Generating the churn report......Page 207
Analyzing the churn report......Page 208
LibCheck options......Page 209
4.5 Comparing Assemblies with Reflector.Diff......Page 210
Using Reflector.Diff......Page 211
Selecting your own assemblies......Page 213
Modifying the options......Page 214
Getting Support......Page 215
4.6 Implementing Spell Checking in Your Windows and Web Apps with NetSpell......Page 216
Using NetSpell......Page 217
4.7 Creating Graphs and Plot Charts Quickly with NPlot......Page 220
Using NPlot......Page 221
Plots and drawable objects......Page 222
Specifying data......Page 225
Producing graphs from data sources......Page 226
Getting Support......Page 227
Getting Started......Page 229
Using NSort......Page 230
Getting Support......Page 231
Getting Started......Page 232
Creating an RSS feed......Page 233
4.10 Using Zip, GZip, Tar, and BZip2 Archives in Your Software with SharpZipLib......Page 235
Using SharpZipLib......Page 236
Getting Support......Page 238
Using ExcelXmlWriter......Page 239
4.12 Creating PDFs with iTextSharp......Page 246
Using iTextSharp......Page 247
Manipulating PDFs with iTextSharp......Page 250
4.13 For More Information......Page 251
5.0 Introduction......Page 253
5.1 Creating Code Automatically with MyGeneration......Page 255
Using MyGeneration......Page 257
Creating MyGeneration templates......Page 258
Templating code for user input......Page 260
Using MyMeta, the generic database metadata API......Page 262
Browsing and updating templates......Page 264
Getting Support......Page 265
5.2 Generating Your Data-Access Layer with Codus......Page 266
Using Codus......Page 267
5.3 Writing Your Web Services Contract First with WSCF......Page 270
Using WSCF......Page 271
Generating the client-side proxy......Page 276
Getting Support......Page 277
Using XSD......Page 278
Creating a strongly typed dataset......Page 279
Generating XSD from class definitions......Page 281
5.5 Practicing Contract-First XML Development with XSDObjectGenerator......Page 284
Using XSDObjectGenerator......Page 285
XSDObjectGenerator versus XSD.exe......Page 287
Generating code......Page 288
Getting Support......Page 292
5.6 For More Information......Page 293
6.0 Introduction......Page 294
6.1 Building .NET Applications with Visual Studio Express......Page 295
Using Visual Studio Express......Page 296
Working with menus and toolbars (Visual Basic, C#, C++, J#)......Page 297
Editing code in Visual Studio Express......Page 302
Debugging your application......Page 309
ClickOnce deployment (Visual Basic, C#, C++, J#)......Page 311
Getting Support......Page 312
6.2 Developing .NET Applications Using SharpDevelop......Page 314
Getting Started......Page 315
Checking code coverage......Page 316
Targeting different .NET Frameworks......Page 318
Building cross-platform development applications......Page 319
Creating and running NAnt build scripts......Page 321
Testing regular expressions......Page 323
SharpDevelop versus Visual Studio Express......Page 325
Getting Support......Page 327
Using MonoDevelop......Page 328
NUnit integration......Page 331
Getting Support......Page 333
6.4 Creating Standalone Snippets with Snippet Compiler......Page 334
Using Snippet Compiler......Page 335
6.5 Handling Small Tasks with Notepad2......Page 337
Using Notepad2......Page 338
Getting Support......Page 340
6.6 Mastering Regular Expressions with the Regulator......Page 341
Using the Regulator......Page 342
Validating a simple filename......Page 343
Getting Support......Page 345
Using ReguLazy......Page 347
Parsing a simple logfile with ReguLazy’s help......Page 348
Naming parts of your match......Page 350
Setting regex matching options......Page 351
Getting Support......Page 352
6.8 For More Information......Page 353
7.0 Introduction......Page 354
7.1 Documenting Your Source Code with GhostDoc......Page 356
Using GhostDoc......Page 357
Documenting inherited classes and overridden methods......Page 358
Documenting when there’s no inheritance or overrides......Page 359
Documenting a method with “of the” reordering for method and parameter names......Page 361
Customizing GhostDoc......Page 362
Getting Support......Page 363
Getting Started......Page 364
Getting Support......Page 365
7.3 Creating Professional Documentation with NDoc......Page 366
Using NDoc......Page 367
Getting Support......Page 370
Getting Started......Page 372
Using PDFCreator......Page 373
Printing other output formats......Page 374
Using other PDFCreator features......Page 375
Getting Support......Page 376
Getting Started......Page 377
Using skmFAQs......Page 378
Working with FAQs......Page 381
Getting Support......Page 383
7.6 For More Information......Page 384
8.0 Introduction......Page 385
8.1 Boosting Productivity with CoolCommands......Page 386
Working in the Solution Explorer......Page 387
Exploring editor enhancements......Page 389
8.2 Improving Visual Studio’s Designers with the PowerToy for Class and Distributed Systems Desig.........Page 390
Working better in the Class Designer......Page 391
8.3 Opening Files Quickly with VSFileFinder......Page 394
Using VSFileFinder......Page 396
8.4 Mastering Unmanaged APIs with PINVOKE.NET......Page 398
Using PINVOKE.NET......Page 399
Editing content......Page 400
Working with the Visual Studio add-in......Page 401
Getting Support......Page 402
8.5 Spell Checking ASP.NET and HTML with the HTML/ASP.NET Spell Checker Add-in......Page 403
Using the Spell Checker......Page 404
Proofing multiple pages......Page 405
Working with XML files......Page 407
Customizing the Spell Checker’s behavior......Page 408
Getting Support......Page 409
8.6 Switching Window Layouts Quickly with VSWindowManager......Page 410
Using VSWindowManager......Page 411
8.7 Blogging or Emailing Your Code in Style with the CopySourceAsHtml Visual Studio Add-in......Page 412
Using CopySourceAsHtml......Page 413
8.8 Editing CSS in Visual Studio with the CSS Properties Window......Page 415
Using the CSS Properties Window......Page 416
8.9 Bringing Web Application Projects Back to Visual Studio 2005......Page 418
Getting Started......Page 419
Using Web Application Projects......Page 420
Getting Support......Page 421
8.10 Sharing Your Visual Studio Goodies with the Content Installer Power Toys......Page 422
Using the Visual Studio Content Installer Power Toys......Page 423
Getting Support......Page 425
8.11 For More Information......Page 426
Part II......Page 429
9.0 Introduction......Page 431
9.1 Checking Complexity and Dependencies with Peli’s Reflector Addins......Page 435
Using Reflector.Graph......Page 436
Using Reflector.CodeMetrics......Page 437
Getting Support......Page 438
9.2 Checking Your Source Code’s Complexity with SourceMonitor......Page 440
Using SourceMonitor......Page 441
Using the metrics......Page 442
Running SourceMonitor via the command line......Page 446
9.3 Analyzing Code Inside Visual Studio with CR_Metrics......Page 448
Using CR_Metrics......Page 449
Getting Support......Page 452
9.4 Finding Your Code’s Dependency Complexities with NDepend......Page 453
Using NDepend......Page 454
Interpreting NDepend’s report......Page 456
Visually browsing your metrics......Page 460
Getting Support......Page 461
9.5 Writing Better Code with FxCop......Page 462
Getting Started......Page 463
Analyzing your assemblies......Page 464
Looking at the rules......Page 466
Running FxCop from the command line......Page 469
Getting Support......Page 470
9.6 For More Information......Page 471
10.0 Introduction......Page 473
10.1 Unit Testing Your Code with NUnit......Page 477
Using NUnit......Page 478
Testing assertions......Page 481
Testing for thrown exceptions......Page 482
Initializing and cleaning up objects for testing......Page 483
Disabling and tracking problem tests......Page 485
Using hierarchies of test classes to organize your tests......Page 486
Running tests from more than one assembly......Page 487
Grouping tests by custom criteria......Page 488
Extending NUnit with your own assertions......Page 491
Running tests in NAnt......Page 492
Getting Support......Page 493
10.2 Speeding Your Test Development with NUnit Code Snippets......Page 494
Using NUnit Code Snippets for Visual Studio 2005......Page 495
10.3 Writing Advanced Unit Tests with MbUnit......Page 496
Using MbUnit......Page 497
Performing data-driven testing......Page 498
Performing matrix-based tests......Page 501
Testing multiple instances of a type......Page 504
10.4 Getting More from Your Tests with Zanebug......Page 506
Using Zanebug......Page 507
Getting Support......Page 511
10.5 Bringing Your Customers into the Testing Process with FitNesse......Page 512
Getting Started......Page 513
Using FitNesse......Page 514
Building a test project with FitNesse......Page 515
Testing a user’s login......Page 517
Creating the login test......Page 519
Saving time with FitNesse......Page 523
10.6 Analyzing Unit-Test Coverage with NCover......Page 524
Using NCover......Page 525
Monitoring a program’s execution with NCover......Page 526
Tracking program flow with sequence points......Page 529
Integrating NCover into your build process......Page 531
Integrating NCover with NUnit......Page 533
Getting Support......Page 537
10.7 Analyzing Code Coverage with NCoverExplorer......Page 538
Using NCoverExplorer......Page 539
Excluding portions of the coverage......Page 541
Customizing the test coverage view......Page 542
Integrating NCoverExplorer into your build process......Page 543
Getting Support......Page 547
10.8 Integrating Unit Testing into Visual Studio with TestDriven.NET......Page 548
UsingTestDriven.NET......Page 549
Debugging with TestDriven.NET......Page 550
Calculating code coverage with TestDriven.NET......Page 552
Testing your code on .NET 1.1......Page 553
10.9 Integrating Mock Objects into Your Testing with NMock 2.0......Page 554
Using NMock 2.0......Page 555
Generating a dynamic mock object......Page 557
Using a stub to test code with predefined values......Page 559
Using a dynamic mock object to test an external system......Page 560
Getting Support......Page 565
Getting Started......Page 566
Creating strongly typed mock objects......Page 567
Testing generic types......Page 568
Getting Support......Page 569
Getting Started......Page 570
Testing a simple form with controls......Page 571
Testing a custom control with mouse events......Page 574
Getting Support......Page 575
10.12 Creating Performance Benchmark Tests with NTime......Page 576
Getting Started......Page 577
Using NTime......Page 578
Getting Support......Page 580
Getting Started......Page 581
Using Selenium......Page 582
Testing an invalid login......Page 584
Writing a valid login test......Page 585
Additional Selenium functionality......Page 586
Getting Support......Page 587
10.14 Driving Your Web Applications Automatically with Watir......Page 588
Using Watir......Page 589
Creating a Watir test script......Page 590
Improving your test scripts using Ruby......Page 591
Getting Support......Page 592
10.15 For More Information......Page 593
Part III......Page 595
11.0 Introduction......Page 597
11.1 Setting Up Subversion Rapidly with SVN 1-Click Setup......Page 600
Installing Subversion......Page 601
Configuring the repository......Page 602
Getting Support......Page 604
11.2 Accessing Subversion and CVS with TortoiseCVS and TortoiseSVN......Page 605
Using TortoiseCVS......Page 606
Setting up a secure connection to CVS......Page 607
Managing the workflow of a project......Page 608
Renaming files and folders......Page 610
Tagging, branching, and merging......Page 611
Using Tortoise SVN......Page 615
Managing the workflow with TortoiseSVN......Page 617
Tagging, branching, and merging......Page 618
Merging a set of revisions......Page 621
Merging two trees......Page 623
11.3 Using Subversion Inside Visual Studio with AnkhSVN......Page 625
Adding a solution to Subversion......Page 626
Working with files in the Solution Explorer......Page 628
11.4 Removing Visual Source Safe Bindings with SourceSafe Binding Remover......Page 631
Using SourceSafe Binding Remover......Page 632
Getting Support......Page 633
Getting Started......Page 634
Using WinMerge......Page 635
Getting Support......Page 637
11.6 For More Information......Page 638
12.0 Introduction......Page 639
Getting Started......Page 642
Using NAnt......Page 643
Working with build files......Page 644
Building your software......Page 646
Creating documentation......Page 647
Getting Support......Page 648
Getting Started......Page 649
Passing information to and from targets......Page 650
Controlling your build by overriding targets......Page 652
Getting Support......Page 653
12.3 Building .NET 1.1 Assemblies in MSBuild with MSBee......Page 654
Using MSBee......Page 655
Building Visual Studio projects with MSBee......Page 656
Controlling the assembly’s output path......Page 657
12.4 Extending MSBuild Capabilities with MSBuild Community Tasks......Page 658
Using MSBuild Community Tasks......Page 659
Getting Support......Page 662
12.5 Managing Your Build Process Visually with MSBuild Sidekick......Page 663
Adding items to the build process......Page 664
Working with targets......Page 665
Editing an existing MSBuild project......Page 668
Getting Support......Page 669
12.6 Shortening the Development Cycle with CruiseControl.NET......Page 670
Getting Started......Page 671
Configuring CCNET......Page 672
Hooking into your source control......Page 673
Building your system with NAnt......Page 675
Using CCTray......Page 676
Wiring in unit testing and code coverage......Page 677
Refining your process with other CCNET features......Page 679
Getting Support......Page 680
12.7 Easing the Burden of Implementing a Continuous Integration Process with CI Factory......Page 681
Tailoring the installer......Page 682
Using CI Factory......Page 684
Versioning your assemblies......Page 689
Enhancing your CI server’s process with new packages......Page 690
Getting Support......Page 693
Using Unleash It......Page 694
Profiling configuration options......Page 695
Deploying with a single profile......Page 696
Extending Unleash It with plug-ins......Page 698
Running Unleash IT from the command line......Page 700
12.9 Easing Web Application Deployments with Web Deployment Projects......Page 701
Using Web Deployment Projects......Page 702
Getting Support......Page 705
Using WiX......Page 706
Getting Support......Page 708
12.11 For More Information......Page 709
13.0 Introduction......Page 711
Getting Started......Page 713
Writing messages in the Messages area......Page 714
Tracking task lists in the To-Do area......Page 715
Tracking project status in the Milestones area......Page 716
Creating documents in the Writeboards area......Page 717
Getting Support......Page 719
13.2 Building Online Communities with Community Server......Page 721
Managing site content......Page 722
Organizing content with tags......Page 725
Supporting member blogs......Page 726
Creating and managing user forums......Page 727
Considering the commercial editions......Page 728
Getting Support......Page 729
Using Subtext......Page 730
Adding RSS feeds to a blog......Page 731
Adding a comments section to a blog......Page 732
13.4 Collaborating Online with FlexWiki......Page 733
Getting Started......Page 734
Editing a Wiki page......Page 735
Subscribing to a Wiki with RSS......Page 736
13.5 Driving Another PC Remotely via XP’s Remote Assistance......Page 738
Getting Started......Page 739
Using Remote Assistance......Page 740
Requesting assistance using Instant Messenger......Page 741
Requesting assistance via email......Page 742
Working with the remote expert......Page 746
Taking control as the expert......Page 747
Getting Support......Page 748
Getting Started......Page 754
Adding contacts......Page 755
Making a call......Page 756
Setting up and running a conference call......Page 757
Setting up and running a video call......Page 758
Getting Support......Page 760
Getting Started......Page 763
Using GAIM......Page 764
Getting Support......Page 766
Getting Started......Page 767
Adding a new user......Page 768
Reading logs......Page 769
Getting Support......Page 770
13.9 For More Information......Page 771
14.0 Introduction......Page 773
Getting Started......Page 775
Using BugTracker.NET......Page 776
Filing reports......Page 777
Using screenshots......Page 778
Getting Support......Page 779
14.2 Handling Mid-Sized Projects with CodeTrack......Page 781
Getting Started......Page 782
Using CodeTrack......Page 783
Creating a project......Page 784
Working with CodeTrack reports......Page 785
Getting Support......Page 788
Getting Started......Page 791
Basics of a bug......Page 792
Filing a bug report......Page 793
Moving bugs through the system......Page 795
Extending Bugzilla with add-ons......Page 797
14.4 Managing a Project with Trac......Page 799
Using Trac......Page 800
Keeping track of issues......Page 801
Using timelines, milestones, and the project roadmap......Page 803
Getting reports......Page 804
14.5 For More Information......Page 806
Part IV......Page 807
15.0 Introduction......Page 809
15.1 Monitoring File Access in Your System with Filemon......Page 811
Using Filemon......Page 812
15.2 Identifying TCP Port and Endpoint Issues with TCPView......Page 815
Using TCPView......Page 816
Getting Started......Page 818
Using Regmon......Page 819
15.4 Getting a Better View of Processes on Your System with Process Explorer......Page 820
Using Process Explorer......Page 821
Finding and resolving access-violation problems......Page 824
15.5 Digging into Your Program’s CLR Interactions with PInvoke and COM Using CLR SPY......Page 826
Using CLR SPY......Page 827
Finding problems with error probes......Page 829
Forcing nondeterministic failures......Page 831
Using the warning probes......Page 832
Tracking down problem sources with informational probes......Page 834
Getting Support......Page 836
Getting Started......Page 837
Gathering data with CLR Profiler......Page 838
Delving into CLR Profiler’s metrics......Page 839
Isolating problems using CLR Profiler......Page 841
15.7 Debugging Your Application After It’s Been Deployed with ClrDump......Page 842
Using ClrDump......Page 843
Enforcing your error-handling policy......Page 844
Using ClrDump’s functionality in your software......Page 845
Using clrdump.exe to generate a minidump......Page 846
Analyzing a minidump......Page 847
15.8 Debugging Hangs and Monitoring Processes with Managed Stack Explorer......Page 848
Getting information about a process......Page 849
Auto-refreshing thread lists and stack traces......Page 850
Running MSE from the command line......Page 851
15.9 Examining HTTP Traffic with Fiddler......Page 853
Debugging client/server applications......Page 854
Crafting your own requests......Page 856
Tweaking the performance of web applications......Page 857
15.10 Identifying Network Problems with PingPlotter Freeware......Page 859
Using PingPlotter......Page 860
15.11 Examining Logs with LogParser......Page 862
Specifying input formats......Page 863
Constructing queries......Page 864
Using the command-line executable......Page 865
Using the COM-scriptable interface......Page 866
15.12 Simplifying Debugging with Visual Studio 2005 Visualizers......Page 869
Getting Started......Page 870
Visualizing Regular Expressions with the Regex Kit Visualizers for Visual Studio 2005......Page 871
Visualizing the ASP.NET Cache......Page 873
Visualizing XML......Page 874
15.13 Finding Bottlenecks with NProf......Page 875
Using NProf......Page 876
Getting Support......Page 878
15.14 For More Information......Page 879
16.0 Introduction......Page 881
16.1 Examining Common Ground with ILDASM......Page 883
Adding ILDASM to Visual Studio......Page 884
Using ILDASM......Page 886
Analyzing and understanding differences......Page 889
Using ILDASM to analyze assemblies you didn’t write......Page 891
Getting Support......Page 893
Using Reflector......Page 894
Browsing assemblies......Page 895
Analyzing interactions......Page 896
Searching assemblies......Page 897
Extending Reflector......Page 899
16.3 Debugging .NET Assemblies Without Source Code Using Dotnet IL Editor......Page 900
Setting DILE’s options......Page 901
Working with assemblies in the project......Page 903
Debugging .NET assemblies......Page 904
Debugging a dynamic assembly......Page 908
Getting Support......Page 911
Using Dotfuscator......Page 912
Obfuscating a simple application......Page 913
Creating a new Dotfuscator project......Page 915
Getting Support......Page 919
16.5 For More Information......Page 920
Part V......Page 923
17.0 Introduction......Page 925
17.1 Analyzing Threats Your Application Faces with the Threat Analysis & Modeling Tool......Page 926
Using TAM......Page 927
Creating a threat model: providing input......Page 928
Assimilating a threat model: analyzing the output......Page 929
Extending TAM......Page 935
Integrating TAM with Microsoft Team Foundation Server (TFS)......Page 936
Getting Support......Page 938
Getting Started......Page 940
Encrypting and decrypting a file using a passphrase......Page 941
Encrypting and decrypting a file using a passphrase, OpenPGP style......Page 947
Getting Support......Page 949
17.3 Mitigating XSS Vulnerabilities with the Anti- Cross Site Scripting Library......Page 950
Using the Anti-Cross Site Scripting Library......Page 951
Getting Support......Page 952
Using PrivBar......Page 953
Getting Support......Page 954
Getting Started......Page 956
Using MakeMeAdmin.cmd......Page 957
17.6 For More Information......Page 958
18.0 Introduction......Page 961
18.1 Reusing Professional Infrastructure with Enterprise Library......Page 963
Adding Enterprise Library to your solution......Page 964
Writing your application......Page 965
Configuring your application......Page 968
Getting Support......Page 971
18.2 Creating Web Applications and Systems with DotNetNuke......Page 972
Using DotNetNuke......Page 973
Installing and configuring DotNetNuke......Page 974
Administering your DotNetNuke sites......Page 975
Customizing your sites......Page 976
Getting Support......Page 980
18.3 Improving Smart Device Development with the Smart Device Framework......Page 981
Using the Smart Device Framework......Page 982
Getting Support......Page 986
18.4 Building and Deploying Cross-Platform .NET Applications with Mono......Page 987
Getting Started......Page 988
Using Mono......Page 989
Understanding Mono’s organization......Page 991
Working in an open source .NET environment......Page 992
Utilizing other .NET tools in the Mono environment......Page 997
Getting Support......Page 999
18.5 Spelunking the Framework with Rotor......Page 1000
Getting Started......Page 1001
Examining the distribution’s layout......Page 1002
Peeking into Rotor......Page 1004
Getting Support......Page 1006
18.6 Simplifying Web Development with Castle MonoRail......Page 1007
Using Castle MonoRail......Page 1008
Implementing actions with controllers......Page 1010
Getting Support......Page 1015
18.7 Obtaining a Decoupled Architecture with the Castle Windsor Container......Page 1016
Getting Started......Page 1017
Using the Castle Windsor Container......Page 1018
Registering components with Windsor Containers......Page 1020
Integrating Windsor Container with NHibernate......Page 1021
Getting Support......Page 1023
18.8 Improving Your Code’s Design and Testability with PicoContainer.NET......Page 1024
Using PicoContainer.NET......Page 1025
Comparing constructor and setter-based Dependency Injection......Page 1027
Working with the component adapters......Page 1028
Using factories for your component adapters......Page 1029
Using parameters in your containers......Page 1030
Using NanoContainer.NET to simplify configuration......Page 1031
18.9 For More Information......Page 1032
19.0 Introduction......Page 1034
19.1 Transforming XML Documents with nxslt2......Page 1036
Using nxslt2......Page 1037
Using extensions......Page 1038
19.2 Displaying XML on the Web with eXml......Page 1039
Using eXml......Page 1040
Transforming XML......Page 1041
Exploring eXml’s other capabilities......Page 1043
19.3 Building Composite XML Documents with XInclude.NET......Page 1044
Using XInclude.NET......Page 1045
19.4 Referencing Part of an XML Document with XPointer.NET......Page 1048
Using XPointer.NET......Page 1049
Getting Support......Page 1052
Using EXSLT.NET......Page 1053
Using custom functions via EXSLT.NET’s proprietary extensions......Page 1054
Creating HTML......Page 1056
19.6 Comparing and Unit Testing XML with XML Diff and Patch......Page 1059
Using XML Diff and Patch......Page 1060
Unit testing XML......Page 1062
Getting Support......Page 1064
19.7 For More Information......Page 1065
Part VI......Page 1067
20.0 Introduction......Page 1069
Using ConnectionStrings.com......Page 1071
Getting Support......Page 1073
Getting Started......Page 1074
Getting Support......Page 1075
Using SQLite Administrator......Page 1076
Creating a database and tables......Page 1077
Creating indexes......Page 1079
Creating views......Page 1080
20.4 Working with Oracle Inside Visual Studio with Oracle Developer Tools......Page 1082
Working with tables......Page 1083
Generating code for your database objects......Page 1086
Creating, editing, and testing PL/SQL procedures......Page 1087
20.5 Managing Oracle Databases with Oracle SQL Developer......Page 1089
Using Oracle SQL Developer......Page 1090
Browsing database objects......Page 1091
Updating, querying, and exporting data......Page 1092
20.6 For More Information......Page 1094
21.0 Introduction......Page 1096
21.1 Mapping Objects to the Database with NHibernate (or How to Stop Writing All That Data-Access.........Page 1098
Getting Started......Page 1099
Creating the classes......Page 1100
Creating the mapping files......Page 1102
Using the entities......Page 1104
Retrieving records......Page 1105
21.2 Mapping Business Objects with NPersist......Page 1106
Using NPersist......Page 1107
Creating an Object model......Page 1109
Creating an XML mapping file......Page 1111
Creating, retrieving, updating, and deleting object data......Page 1112
Executing queries......Page 1114
Getting Support......Page 1115
21.3 Easing the Burden of Creating O/RM Files with ObjectMapper......Page 1116
Creating files from an existing database......Page 1117
Building the domain model......Page 1118
Doing the UML thing......Page 1121
Getting Support......Page 1122
Getting Started......Page 1123
Using Castle ActiveRecord......Page 1124
Working with the framework......Page 1125
Retrieving records......Page 1126
Adding a relationship......Page 1127
Getting Support......Page 1128
21.5 For More Information......Page 1129
Part VII......Page 1131
22.0 Introduction......Page 1133
22.1 Avoiding Web Headaches with the Web Developer Extension for Firefox......Page 1135
Using the Web Developer Extension......Page 1136
22.2 Debugging Web Pages with the Web Developer Toolbar for Internet Explorer......Page 1142
Using the Web Developer Toolbar......Page 1143
Getting even more power from the Web Developer Toolbar......Page 1144
Getting Support......Page 1145
22.3 Diagnosing JavaScript and Ajax with Web Development Helper......Page 1146
Debugging scripts......Page 1147
Tracing HTTP traffic......Page 1149
Viewing the HTML Document Object Model......Page 1150
Getting Support......Page 1151
22.4 Eliminating Memory Leaks in Internet Explorer with Drip......Page 1153
Using Drip......Page 1154
Identifying leaked objects......Page 1155
Watching memory usage over time......Page 1156
Resolving typical leak scenarios......Page 1157
Getting Support......Page 1159
22.5 Debugging Web Pages at Runtime with DOM Helper......Page 1160
Troubleshooting with DOM Helper......Page 1161
Editing the CSS......Page 1163
Getting Support......Page 1165
22.6 Checking Web Pages with the W3C Markup Validation Service......Page 1167
Using the W3C Markup Validation Service......Page 1168
22.7 Checking Your Web Site’s Accessibility with WebXACT......Page 1170
Using WebXACT......Page 1171
Getting Support......Page 1173
Using HTML Tidy......Page 1174
Getting Support......Page 1175
22.9 For More Information......Page 1177
23.0 Introduction......Page 1178
23.1 Launching Tools and Web Sites Quickly with SlickRun......Page 1180
Using SlickRun......Page 1181
Creating your own MagicWords......Page 1183
Launching multiple programs with a MagicWord......Page 1184
Getting Support......Page 1185
Getting Started......Page 1186
Using ZoomIt......Page 1187
Getting Support......Page 1188
Getting Started......Page 1189
Using Magnifixer......Page 1190
Getting Support......Page 1191
Using Less MSIérables......Page 1193
Running Less MSIérables from the command line......Page 1194
Getting Support......Page 1195
Using FileZilla......Page 1196
Transferring files to and from an FTP server......Page 1198
Queuing file transfers to and from an FTP server......Page 1199
Getting Support......Page 1200
23.6 Opening a Shell Where You Need It with Command Prompt Here......Page 1201
Using Command Prompt Here......Page 1202
Getting Started......Page 1203
Using Cropper......Page 1204
Getting Support......Page 1206
Using ColorMania......Page 1207
Grabbing a color from the desktop or an application......Page 1208
Getting Support......Page 1210
Getting Started......Page 1211
Using PowerShell......Page 1212
Controlling the behavior of PowerShell cmdlets with ubiquitous parameters......Page 1213
Finding data using shell namespaces......Page 1214
Working with objects......Page 1215
Exploring the environment......Page 1217
Using COM, XML, and external scripts......Page 1218
23.10 Getting the Most out of PowerShell with PowerShell IDE......Page 1221
Using PowerShell IDE......Page 1222
23.11 Managing and Switching Tasks with TaskSwitchXP......Page 1226
Using TaskSwitchXP......Page 1227
Closing, minimizing, rearranging, and terminating applications......Page 1229
23.12 Keeping Data in Sync with SyncToy......Page 1230
Using SyncToy......Page 1231
23.13 Resolving Locking Problems with Unlocker......Page 1235
Using Unlocker......Page 1236
Getting Support......Page 1237
Getting Started......Page 1238
Using Cygwin......Page 1240
Using Unix utilities on Windows......Page 1242
Using symbolic links to work with files......Page 1244
Compiling programs......Page 1245
Integrating Windows resources......Page 1246
Caveats: Cygwin and Windows native programs......Page 1247
Other Cygwin tools......Page 1249
23.15 For More Information......Page 1251
Part VIII......Page 1253
Adding a Reference to Your Projects......Page 1255
Adding Tools to the Toolbox......Page 1257
Index......Page 1263