  
                    
|
| |
 |
.NET TUNING, DEBUGGING, AND OPTIMIZATION
| Course Description |
|
Microsoft .NET applications must be thoroughly tested, debugged, and optimized before deployment, to ensure high performance and robust solutions. This course is designed for the experienced programmer to quickly come up to speed on techniques for debugging and optimizing .NET programs. It also covers tuning applications after they have been deployed. This course uses the C# programming language for example code and lab exercises. Using a case study approach, many of the important features of the .NET Framework, including Windows Forms, ASP.NET Web Forms, Web Services, and XML are discussed.
Course Length: 4 Days
Course Tuition: $1590 (US)
|
| Prerequisites |
|
| A working knowledge of .NET application development.
|
• Overview of .NET Debuggers
Compile-Time Errors
Runtime Errors
Debugging
.NET Debuggers
Project Configurations
Release Configuration
Creating a New Configuration
Setting Build Settings for a Configuration
Customizing a Toolbar
Using the Visual Studio Debugger
Just-in-Time Debugging
Standard Debugging - Breakpoints
Standard Debugging - Watch Variables
Debugger Options
Stepping with the Debugger
The Call Stack
Program Debug Database
Dumping a .PDB File
Microsoft CLR Debugger
Using DbgCLR
Runtime Debugger CorDbg
CorDbg Documentation
Using CorDbg
JIT Debugging in Windows Apps
Configuration File
Debugged Version of WinBytes
• Error and Exception Handling
Exceptions
Checked Integer Arithmetic
Throwing New Exceptions
finally
Exceptions Dialog Box
$exception Pseudovariable
A Specific Exception
A Different Exception
A User Defined Exception
Exceptions List
Exception Handling Best Practices
Avoid Unnecessary Exceptions
• Debugging and Tracing
Attaching to Processes
Order Application
JIT Debugging: Review
Attaching to Processes
Processes Dialog
Attach to Process Dialog
Debugging Multiple Processes
Tracing
Instrumenting an Application
Debug and Trace Classes
Viewing Trace Output
Debug Statements
Debug Output
Assert
More Debug Output
WriteLine Syntax
Event Logs
Viewing Event Logs
Event Log Entry Types
.NET EventLog Component
Retrieving Entries from an Event Log
Handling EventLog Events
Debugging a Class Library
• Debugging Web Forms Applications
Web Application Fundamentals
Creating a Virtual Directory
Debugging ASP.NET Applications Using Visual Studio
Configuring Web Server Connection
Configuring a Web Application
Debugging Calculator
Application-Level Tracing
Tracing Calculator
Using the Page Cache
Page-Level Tracing
Tracing the Calculator Page
Conditional Tracing
Trace Category
Trace Warning
Exceptions in Trace
An ASP.NET Page Without VS
Attaching to VS Debugger
Preparing to Debug
Class Libraries and ASP.NET
Web Factorial Program
Using an Event Log
Event Logs and ASP.NET
Debugging Client-Side Scripts
Enabling Script Debugging
Client-Side Script Breakpoints
• Debugging Web Services
Web Services Created Using Visual Studio
Hello World Web Service
Debugging Hello World
Configuring for Debugging
Attaching a Debugger
A Web Service Without Code Behind
Debugging Without Code Behind
Factorial Web Service
Debugging Factorial Web Service
State in Web Services
XML and Web Services
The Art of Debugging Web Services
Web Services Security
Configuration Error
Configuring as an Application
A Simple Project That Works
Web Service Clients
HTTP Headers
• More About Tracing
Trace Switches
BooleanSwitch
Using a Configuration File
TraceSwitch
SwitchDemo
Trace Listeners
DefaultTraceListener
A Stream Listener
A Custom Listener
Trace Output to a Window
An Event Log Listener
Tracing in the Order Application
Trace Output
|
• Fundamentals of Optimization
Compiler Optimization
Optimization Ramifications
Optimized Code in the Debugger
Performance Measurements
Repeated Measurements
Comparative Results
Optimizing Data Structures and Algorithms
Generating Random Input Data
Comparing Data Structures : Array
Comparing Data Structures : Hashtable
Analyzing Order Simulation
A New Set of Parameters
Saved Parameters
A Single Order
Hashtable vs. Array
Coding with a Hashtable
Iterating a Hashtable
Responsive User Interfaces
Multithreading
Thread Class
Starting the Thread
Best Practices
• Application Profiling
Profiling an Application
Instrumenting an Application
Instrumentation Walkthrough
Implementation Code
Using Performance Counters
Performance Counters
Performance Monitor
Custom Performance Counters
Performance Counters in .NET
Performance Counters in VS.NET
Garbage Collection
Processor Performance Counters
Custom Performance Counters
CounterCreationData
PerformanceCounterCategory
Writing to Performance Counters
PerformanceCounterType
Displaying Categories and Counters
CLR Profiling
CLR Profiling Architecture
DevPartner Profiler
Profiler Output
• Optimizing ASP.NET Applications and Web Services
What is Caching?
Caching in ASP.NET
Output Caching
@ OutputCache Directive
Storing Product Lists
Fetching a Product List
ASP.NET Performance Counters
Custom Performance Counters
Creating the Categories
Creating the Counters
Using the Performance Counters
Security Considerations
Viewing the Performance Counters
Application Center Test
Using ACT
Testing Web Services
Calculator Web Service
Creating Performance Counters
Calculator Driver
Best Practices
• Remote Debugging
Remote Debugging Setup
Remote Debugging Permissions
Running Locally
Debugging Remotely
Debugging Remote Web Apps
Deploying a Web Application
Using Project | Copy Project
Debugging Remote Web Services
• Tuning
Configuration Files
Multi-level Configuration
Application Settings
Programmatic Access to Configuration Files
Configuration File and Visual Studio
Performance Tuning
Tuning Overview
The Tuning Cycle
Tuning ASP.NET Applications
Configuration Files in ASP.NET
Configuring Session State
Mode Attribute
Other Attributes
• Appendix A - Mixed-Mode Debugging
What Is Mixed-Mode Debugging?
Configuring Mixed-Mode Debugging
• Appendix B - Learning Resources
Contact us for course schedules or more
information.
|
|
 |
|
|
|
|