Learn your way! Get started

Advanced.NET Framework 2.0 Using VB 2005: Volume 2

with expert Greg Reddick


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack
  • Power Pack Plus

Release date Release date 12/28/2006
Level Level Advanced
Runtime Runtime 11h 15m
Closed captioning Closed captioning N/A
Transcript Transcript N/A
eBooks / courseware eBooks / courseware Included
Hands-on labs Hands-on labs Included
Sample code Sample code Included
Exams Exams Included
Platform Platform Internet Explorer Only


Enterprise Solutions
Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this volume, you’ll learn about implementing service processes and application domains in your .NET applications using the System and ServiceProcess namespaces. You’ll see how to take advantage of multi-threading to create fast and efficient processes through the Threading namespace. You’ll learn how to internationalize your .NET application by using the globalization classes. Enhance your user interface with the System.Drawing and System.Text namespaces.

Meet the expert

Greg Reddick Gregory Reddick is a consultant who develops applications and websites using .NET. He is an experienced instructor with nearly 20 years of experience teaching instructor-led courses. Greg also worked as a software design engineer on Microsoft Access 1.0.


Course outline



Module 1

Multithreaded Applications (43:15)
  • Introduction (01:37)
  • Creating Multithreaded Apps (01:07)
  • Thread Class (00:31)
  • Join() Method (00:25)
  • ThreadStart Delegates (00:30)
  • Demo: Creating a Thread (02:38)
  • Demo: Synchronizing Threads (01:06)
  • Demo: Starting a Thread (02:47)
  • ThreadPool Class (01:13)
  • Reverse DNS Lookups (01:05)
  • Demo: ThreadPool Class (07:20)
  • Timer Class (02:23)
  • Demo: Timer Class (02:14)
  • Modifying the UI from a Thread (00:43)
  • Calling the Invoke Method (04:45)
  • Background Worker (02:45)
  • Calling an Async. Method (00:59)
  • Demo: Asynchronous Call (02:39)
  • ThreadState Enumeration (00:24)
  • ThreadPriority Enumeration (01:11)
  • Demo: Thread State (02:41)
  • Demo: Thread Priority (01:45)
  • Summary (00:17)
Locking (37:05)
  • Introduction (00:41)
  • Deadlock (01:31)
  • Race Conditions (01:23)
  • Demo: Race Condition (02:06)
  • Demo: Deadlock (03:01)
  • Thread Safe Code and Locking (00:57)
  • Monitor Class (01:39)
  • SyncLock Statement (00:46)
  • Interlocked Class (01:14)
  • ReaderWriterLock Class (01:02)
  • Demo: Non-Thread Safe (03:16)
  • Demo: Monitor Lock (02:51)
  • Demo: SyncLock (01:33)
  • Demo: Interlocked Class (01:36)
  • Demo: ReaderWriterLock 1 (03:49)
  • Demo: ReaderWriterLock 2 (01:37)
  • WaitHandle Class (00:37)
  • AutoResetEvent Class (00:42)
  • ManualResetEvent Class (00:27)
  • Demo: AutoResetEvent (02:45)
  • Demo: ManualResetEvent (03:04)
  • Summary (00:19)

Module 2

Synchronization (24:48)
  • Introduction (00:32)
  • Mutex Class (01:12)
  • Semaphore Class (00:46)
  • Demo: Local Mutex (01:55)
  • Demo: Global Mutex (03:05)
  • Demo: Semaphore (05:41)
  • RegisterWaitForSingleObject (01:33)
  • Demo: Wait (03:30)
  • ExecutionContext Class (00:53)
  • Demo: ExecutionContext (03:32)
  • Demo: ExecutionContext(Run) (01:43)
  • Summary (00:21)
Using StringBuilder (12:08)
  • Introduction (00:36)
  • Strings (00:40)
  • StringBuilder Class (00:36)
  • StringBuilder Characteristics (00:30)
  • Code Example Basics (04:02)
  • .NET Memory Management (01:04)
  • Demo: Garbage Collection (02:44)
  • Running the GC Demo (01:30)
  • Summary (00:23)
Regular Expressions (28:10)
  • Introduction (00:36)
  • Parsing Strings (00:22)
  • Uses of Regular Expressions (00:22)
  • Useful Resources (00:29)
  • Regex.IsMatch() Method (00:15)
  • Introduction to Patterns (00:32)
  • Demo: Regex.IsMatch() (01:32)
  • Patterns in Detail (13:48)
  • A Regular Expression Tester (09:43)
  • Summary (00:26)
Encoding (16:34)
  • Introduction (00:30)
  • Using Encoding (00:38)
  • ASCII Encoding (01:02)
  • ANSI Code Pages (00:57)
  • Unicode (01:01)
  • UTF-8 (00:50)
  • UTF-16 (00:40)
  • Other Encoding Schemes (00:27)
  • Demo: Enumerating Encodings (01:29)
  • Demo: Encoding a String (00:51)
  • Demo: File Writing/Reading (05:47)
  • Demo: Fallback (01:19)
  • Demo: Exception Fallback (00:43)
  • Summary (00:14)

Module 3

Using Culture Information (21:50)
  • Introduction (00:41)
  • Types of Cultures (00:11)
  • Invariant Culture (00:25)
  • Neutral Cultures (00:24)
  • Specific Cultures (00:54)
  • CultureInfo Class (01:17)
  • CurrentUI/Current (Culture) (00:36)
  • Getting the List of Cultures (01:25)
  • Demo: Retrieving Cultures (04:29)
  • Culture Names (00:42)
  • Language Code (00:37)
  • Country or Region Code (00:27)
  • Using a CultureInfo Object (00:33)
  • Assigning CultureInfo (00:39)
  • Parsing Dates (01:57)
  • Parsing Numbers (00:59)
  • Demo: Parsing Dates (02:44)
  • Demo: Parsing Numbers (02:28)
  • Summary (00:13)
Culture Information Continued (36:10)
  • Introduction (00:30)
  • Dates (00:37)
  • Calendar Systems (00:52)
  • Calendars (00:30)
  • Formatting Dates (00:20)
  • Formatting Numbers (00:29)
  • Demo: Formatting Dates (02:13)
  • Demo: Formatting Numbers (01:56)
  • Demo: Using FXCop (02:02)
  • Other FormatInfo Uses (01:16)
  • Demo: Culture Details (02:34)
  • RegionInfo Objects (03:32)
  • Comparing Strings (00:59)
  • Compare() Method Options (01:25)
  • Sorting a Collection (00:14)
  • Demo: CompareInfo Object (04:18)
  • CultureAndRegionInfoBuilder (00:39)
  • Pig Latin (01:59)
  • Creating a New Culture (00:41)
  • CultureAndRegionModifiers (00:31)
  • Filling the Object (00:48)
  • Modifying the Object (00:52)
  • Saving the Object (00:50)
  • Registering a Culture (00:31)
  • Unregistering a Culture (04:51)
  • Summary (00:28)
Creating Windows Services (31:40)
  • Introduction (00:36)
  • Overview (01:19)
  • Examples of Win Services (00:39)
  • Creating a Windows Service (01:19)
  • Visual Studio Settings (04:44)
  • Starting a Visual Studio Project (00:47)
  • Naming the Service (00:33)
  • OnStart and OnStop Methods (01:27)
  • Installing the Service (00:21)
  • Service Process Installer (03:35)
  • Service Installer (01:17)
  • Starting the Service (00:15)
  • Stopping the Service (00:12)
  • Windows Event Logs (00:46)
  • Registry Entries (03:12)
  • Creating the Setup Program (02:17)
  • Uninstalling the Service (00:14)
  • Adding Functionality (06:20)
  • Testing the Service (01:17)
  • Summary (00:21)

Module 4

Debugging Windows Services (24:21)
  • Introduction (00:32)
  • Creating a Test Harness (03:16)
  • Running the Test Harness (01:40)
  • Debug the Running Service (03:09)
  • ServiceController Comp. (03:32)
  • Demanding Permissions (02:51)
  • Override Other Service Methods (06:26)
  • Two-way Communication (02:35)
  • Summary (00:16)
Introduction to SMTP (21:36)
  • Introduction (00:41)
  • Simple Mail Transfer Protocol (01:18)
  • Testing the SMTP Server (01:11)
  • Example (01:12)
  • Using End User"s Email App (16:48)
  • Summary (00:23)
Advanced SMTP (27:04)
  • Introduction (00:33)
  • Adding Attachments (00:41)
  • MIME Types (01:15)
  • Demo: Adding an Attachment (01:56)
  • Demo: Excel Attachment (02:29)
  • Handling Exceptions (01:18)
  • Demo: Handling Exceptions (00:59)
  • Demo: Failed Recipient (01:20)
  • Sending Async. Messages (00:45)
  • Demo: Asynchronous Send (02:32)
  • Sending HTML E-Mail Msgs. (00:51)
  • Demo: Sending HTML Msgs. (02:14)
  • Adding Alternate Views (00:50)
  • Demo: Alternate View (08:51)
  • Summary (00:23)

Module 5

Platform Invoke (30:32)
  • Introduction (00:42)
  • Using Platform Invoke (01:41)
  • Platform Invoke Process (00:36)
  • Security (01:57)
  • Windows API (00:53)
  • Identifying Functions (00:56)
  • Dumpbin Example (01:42)
  • Creating a Class (00:58)
  • Defining Prototypes (01:46)
  • Specifying the Library Name (00:26)
  • Library Search Order (01:30)
  • Specify Entry Point Name (00:51)
  • Calling by Ordinal (00:31)
  • Specifying the CharSet (01:35)
  • Using the Auto CharSet (01:08)
  • Specifying the Procedure Type (00:15)
  • Specifying the Method Name (00:27)
  • Specifying the Parameters (00:50)
  • Specifying the Return Type (00:31)
  • Examples of Win API Calls (05:27)
  • WinUser.H File (05:18)
  • Summary (00:22)
Passing and Returning Data (28:06)
  • Introduction (00:29)
  • Returning Strings from PInvoke (01:33)
  • Window Handles (01:22)
  • Demo: GetWindowText (04:05)
  • Passing a Structure to PInvoke (00:59)
  • Demo: GetWindowRect (05:32)
  • Using StructLayout Attribute (04:03)
  • Demo: RECTUNION (00:26)
  • Byte Aligning Structure (02:03)
  • Callback Functions (01:02)
  • Demo: Callback Function (06:15)
  • Summary (00:13)
Marshalling Data (28:38)
  • Introduction (00:37)
  • Error Handling (Unmanaged) (00:48)
  • Why No GetLastError? (00:34)
  • Using SetLastError Property (00:45)
  • Demo: SetLastError Property (06:59)
  • Marshalling (00:38)
  • Blittable Types (00:51)
  • Using the MarshalAs Attribute (00:53)
  • In and Out Attributes (01:01)
  • More About Attributes (01:13)
  • Demo: Byte Size (06:27)
  • Demo: System Menus (07:31)
  • Summary (00:16)

Module 6

Calling COM from .NET (29:18)
  • Introduction (00:34)
  • COM Interop (00:32)
  • COM Components (01:55)
  • Reference Book (00:22)
  • Creating a Runtime Wrapper (01:06)
  • COM Type Libraries (00:26)
  • Using VS.NET to Create RCW (00:41)
  • Tlbimp.exe to Create RCW (00:56)
  • Demo: Registering a DLL (03:35)
  • Command Line Tools (01:43)
  • Using RegEdit (03:03)
  • Fine Tuning the RCW (00:17)
  • Using a COM Library (01:47)
  • Demo: Using a DLL in .NET (01:59)
  • Driving Excel from .NET (01:34)
  • Demo: Driving Excel (07:45)
  • Keeping Excel Invisible (00:32)
  • Summary (00:23)
Calling .NET Assemblies (23:25)
  • Introduction (00:28)
  • Call Managed Code from COM (00:54)
  • COM Friendly Classes (01:21)
  • Create Type Library (00:26)
  • Demo: Credit Card Check (03:43)
  • Reviewing the Code (04:37)
  • A .NET Library in VB 6 (03:27)
  • Running the Code (01:12)
  • TypeLibConverter Class (00:35)
  • Demo: Assembly to TypeLib (03:36)
  • Demo: TypeLib to Assembly (02:41)
  • Summary (00:19)
Introduction to Reflection (21:13)
  • Introduction (00:31)
  • Overview (00:35)
  • Assembly Class (01:40)
  • Demo: Using Assembly Class (05:07)
  • Assembly Attributes (03:30)
  • Pseudo-Attributes (01:15)
  • Non-Pseudo Attributes (00:27)
  • Retrieving Assembly Attributes (00:52)
  • Demo: Assembly Attributes (06:50)
  • Summary (00:20)

Module 7

Advanced Reflection (37:03)
  • Introduction (00:34)
  • Creating a Custom Attribute (01:22)
  • Demo: Attribute Creation (01:24)
  • Information About Types (00:37)
  • Info Classes (01:06)
  • MemberInfo Class (00:36)
  • Getting Method Information (00:33)
  • Demo: Info Classes (00:50)
  • Dialog Code (03:54)
  • ExploreThis Code (04:30)
  • SampleMethod Code (02:19)
  • Late Binding (00:55)
  • Calling a Shared Method (00:31)
  • Calling an Instance Method (00:50)
  • Demo: Late Binding (00:52)
  • Code for Static Method (03:01)
  • Code for Instance Method (03:42)
  • Creating Code at Runtime (01:42)
  • Builder Classes (00:44)
  • Demo: Code at Runtime (00:22)
  • Code for Scripting (03:59)
  • Testing the Code (02:13)
  • Summary (00:18)
Graphics Fundamentals (33:34)
  • Introduction (00:47)
  • Drawing Graphics (00:32)
  • Point and PointF Structures (00:32)
  • Size and SizeF Structures (00:31)
  • Rectangle and RectangleF (00:45)
  • Color Structure (01:18)
  • OnPaint() Method (01:10)
  • OnPaintBackground() Method (00:43)
  • Graphics Class (01:17)
  • Demo: Paint Events (03:39)
  • Color Structure Properties (00:33)
  • SystemColors Class (00:28)
  • Pen Class (00:37)
  • Pens Class (00:24)
  • SystemPens Class (00:17)
  • Brush Class (00:31)
  • Brushes Class (00:18)
  • SystemBrushes Class (00:17)
  • SolidBrush Class (00:29)
  • TextureBrush Class (00:15)
  • HatchBrush Class (00:16)
  • LinearGradient Brush (00:18)
  • PathGradient Brush Class (00:26)
  • Demo: Pens, Brushes, Colors (03:29)
  • Demo: Using Pens (13:16)
  • Summary (00:15)
Images and Fonts (44:01)
  • Introduction (00:26)
  • Image, Bitmap, Metafile Class (01:03)
  • Demo: Images (01:39)
  • Font Class (01:23)
  • Fonts Installed by Windows (00:58)
  • FontFamily Class (00:34)
  • SystemFonts Class (00:40)
  • Example: Fonts (02:57)
  • StringFormat Class (00:23)
  • Demo: StringFormat Class (02:28)
  • StringFormat Align Options (03:50)
  • StringFormat Trim Options (01:17)
  • ImageAnimator Class (00:16)
  • BufferedGraphics Class (00:43)
  • Demo: ImageAnimator Class (01:59)
  • Demo: BufferedGraphics Class (05:49)
  • Icon Class (00:31)
  • SystemIcons Class (00:23)
  • Converter Classes (00:41)
  • ColorTranslator Class (00:53)
  • Region Class (00:23)
  • Demo: Icons (00:51)
  • Demo: Converter Classes (08:31)
  • Demo: ColorTranslator (02:26)
  • Demo: Regions (02:35)
  • Summary (00:11)

Module 8

Graphics Demonstrations (22:38)
  • Introduction (00:26)
  • Demo: Chess Board (00:18)
  • Code Behind the Chess Board (03:09)
  • Demo: Brand Image (01:25)
  • Code Behind the Brand (03:48)
  • Demo: Simple Chart (00:42)
  • Code Behind the Chart (04:41)
  • Modifying the Chart (01:03)
  • Demo: Thumbnail (01:22)
  • Code Behind the Thumbnail (05:06)
  • Review (00:11)
  • Summary (00:20)
Application Domains (25:02)
  • Introduction (00:33)
  • Overview (01:49)
  • Creating an App. Domain (00:25)
  • Unloading a Domain (00:17)
  • Configuring a Domain (00:23)
  • Retrieving Setup Information (00:10)
  • Loading Assemblies (00:31)
  • Demo: Student Projects (09:04)
  • Demo: Domain Security (06:46)
  • Demo: Evidence (02:25)
  • Demo: Evidence on Domain (02:19)
  • Summary (00:16)
Recursion (26:51)
  • Introduction (00:31)
  • Recursion Defined (01:02)
  • Examples of Recursion (00:23)
  • Eight Queens Problem (01:07)
  • Code for Eight Queens (07:44)
  • Knight"s Tour Problem (01:41)
  • Code for Knight"s Tour (05:59)
  • Towers of Hanoi Problem (01:57)
  • Code for Towers of Hanoi (06:03)
  • Summary (00:19)