About Apex InfoTech Information Services Products Consulting Online Courses Certifications Course Schedule Reserve your seat Search Apex InfoTech Home Page
Course ScheduleSearch by Course NumberPrint this documentEmail this documentRegister for this course

Microsoft Windows NT Programming for UNIX Developers

Course 1586: Five days; Instructor-led

Introduction

This course teaches experienced UNIX C programmers the skills necessary to develop, migrate, and integrate applications to the Windows NT environment.

At Course Completion

At the end of the course, students will be able to:

  • Create robust 32-bit Windows NT GUI applications, Windows NT services, and Dynamic Link Libraries by using Visual C++.
  • Identify issues related to porting, migrating, and integrating UNIX applications to Windows NT.
  • Create single- and multithreaded Windows NT applications.
  • Use memory-management techniques in Windows NT applications.
  • Build 32-bit client and server applications by using Windows sockets or Remote Procedure Call (RPC).
  • Describe the architecture of the Component Object Model (COM) and how to develop COM components.
  • Use performance-measuring and profiling tools for tuning.

Microsoft Certified Professional Exams

This course will help the student prepare for the following Microsoft Certified Professional exam:

  • There is no MCP exam associated with this course.

 

Prerequisites

This course assumes that the student has 2 years of UNIX C programming experience.

The course materials, lectures, and lab exercises are in English. To benefit fully from the instruction, students need an understanding of the English language and completion of the prerequisites.

Course Materials and Software

The course workbook and lab book are yours to keep.

You will be provided with the following software for use in the classroom:

  • Microsoft Windows NT Server 4.0
  • Microsoft Windows NT Server Service Pack 3
  • Windows Media Player
  • Microsoft Visual Studio 6.0 Enterprise Edition with MSDN
  • Visual Studio Service Pack 2.0



Return to top

 

Course Outline

Day 1

Module 1: Creating an Application Using Visual C++

Topics

Architecture of a Windows 32-bit application
Microsoft Visual C++ Integrated Development Environment (IDE)
Visual Studio debug and testing tools
Development strategies: when to port, migrate, and integrate

Lab

Creating an application using Visual C++

Skills

Students will be able to:

  • Understand the basic architecture of a Windows 32-bit application.
  • Compile and link a 32-bit Windows-based executable file.
  • Describe the edit, compile, and debug cycle of Visual Studio.
  • Use IntelliSense.


Return to top

Module 2: Windows NT Design Goals, Objects, and the Registry

Topics

Design goals for the Windows NT operating system
Objects
Registry
Overview of the architecture of the Active Directory in Windows 2000

Lab

Modifying the registry

Skills

Students will be able to:

  • Describe the architecture of Windows NT.
  • List the types of objects used in the Windows NT operating system.
  • Describe the operation and function of the registry.
  • Describe the architecture of the Active Directory in Windows 2000.
  • Explain the difference between UNIX .appinitrc files and the Windows NT registry.


Return to top

Module 3: Basic Microsoft Windows Programming Concepts

Topics

Windows terminology
Elements of a Windows NT application
Creating a window
Handling messages
Application termination

Lab

Creating a Windows application

Skills

Students will be able to:

  • List the important features of a Windows-based application.
  • List the tasks to create a window class, register it, and handle window messages.
  • Application termination.
  • Identify similarities and differences between X-Windows and Windows NT.


Return to top

Day 2

Module 4: Windows UI

Topics

Menus
Accelerators
Status bars
Device context
Text output
Fonts
Dialog boxes
Comparison of X-Windows and Windows NT

Lab

Creating Windows UI elements

Skills

Students will be able to:

  • Explain the operation of advanced Windows features such as menus, accelerators, text, multiple windows, and dialog boxes.
  • Know how to incorporate scroll bars, toolbars, status bars, and icons into applications.


Return to top

Module 5: Creating Robust Applications

Topics

Definitions
Syntax
Exception handler search hierarchy
Handler characteristics
Exception flow chart
Exception handling and unwinding
Exception filter
Exception information
Unhandled exception filter
Termination flow chart
Comparison to C++ method of exception handling

Lab

Creating robust applications

Skills

Students will be able to:

  • Explain the purpose of structured exception handling.
  • Use the correct syntax to implement structured exception handling.
  • Describe exception handler types and characteristics.
  • Describe exception types and exception filters.
  • Explain the behavior of default exception handling.
  • Describe the performance issues involved with structured exception handling.
  • Implement a rudimentary model of structured exception handling in a Win32-based application.


Return to top

Module 6: Creating and Starting a Process

Topics

Architectural overview
Object handles
Process creation
Setting startup window information
Returned process information
Ending a process
Miscellaneous API functions
Object model of interprocess communication
Inheritance
Pipes

Lab

Creating and starting a process

Skills

Students will be able to:

  • Define a process and a process object.
  • Compare/contrast process in UNIX vs. NT environment.
  • Create a process.
  • Explain how an object handle is assigned.
  • Differentiate between different types of object handles.
  • Set up, start, and end a process.
  • Describe inheritance and its effect on a process.
  • Explain the methods of object sharing.
  • Describe the various types of interprocess communication.


Return to top

Day 3

Module 7: Threads and Synchronization

Topics

Architectural overview
Why use multiple threads?
Thread overhead
Thread creation functions
Thread IDs and handles
Thread termination
C run-time libraries
Synchronization
Threads and message queues

Lab

Creating and synchronizing threads

Skills

Students will be able to:

  • Describe a thread—what it is, what it does, and why it is useful.
  • Explain the effect of a thread's overhead on system resources.
  • Use the appropriate C run-time libraries for single-threaded and multithreaded applications.
  • Using synchronization. Discuss use of critical sections.
  • Create and terminate a thread.
  • Describe and use thread priority, scheduling, dynamic priority boosting, and the priority-setting functions.
  • Describe a thread message queue and its function.
  • Differences between Windows NT and UNIX threads.


Return to top

Module 8: Standard I/O

Topics

Architectural overview
API for file I/O
A view of I/O processing
Methods of overlapped I/O in Win 32

Lab

Performing asynchronous file I/O

Skills

Students will be able to:

  • Describe how the Windows NT architecture implements standard I/O.
  • Describe the difference between synchronous and asynchronous I/O and the appropriate use of each.
  • Choose the appropriate Win32 API functions and C run-time library to do I/O.
  • Describe communication through standard I/O.


Return to top

Module 9: Memory Management

Topics

Architectural overview
API functions
Memory sharing

Lab

Memory management

Skills

Students will be able to:

  • Explain the services available to a process for memory management.
  • Describe the virtual address space and the paging mechanisms used in Windows NT.
  • Use Heap Manager and the Heap API.
  • Use the Virtual Memory API.
  • Use the Memory Allocation API.
  • Use UNIX-compatible C run-time APIs.
  • Describe memory-mapped files—what they are, how they work, and what their role is in memory sharing.
  • Explain the memory considerations in a multithreaded application.


Return to top

Day 4

Module 10: Dynamic-Link Libraries (DLLs)

Topics

Architectural overview
Thread-local storage
Building 32-bit DLLs

Lab

Creating Dynamic-Link Libraries

Skills

Students will be able to:

  • Describe Windows NT-based 32-bit DLL.
  • Describe and use thread-local storage.
  • Create a 32-bit DLL.
  • Use the DLL entry and exit point appropriately.
  • Distinguish between instance data and shared data and know what that difference means to an application.


Return to top

Module 11: Creating Windows NT Client and Server Applications

Topics

Architectural overview of RPC
RPC components
Microsoft Interface Definition Language (MIDL) compiler
Building an RPC application
Overview of Windows sockets
Socket architecture
Using sockets
Client and server socket programming

Labs

Creating RPC application
Creating Windows socket application

Skills

Students will be able to:

  • Define RPC.
  • Explain how RPC works.
  • Use the RPC client and server API to implement RPC.
  • Use the MIDL compiler to build an RPC application.
  • Describe Microsoft RPC and OSF/DCE.
  • Explain the architecture of sockets.
  • Explain how Windows sockets work.


Return to top

Module 12: COM Programming

Topics

COM architecture
Creating a COM object
Creating a COM object server
Advanced COM topics

Lab

Creating a COM object

Skills

Students will be able to:

  • Describe the architecture of COM.
  • Explain COM interfaces.
  • Explain how COM works.
  • Build a COM object.
  • Explain how Automation works.
  • Describe the role of ActiveX Template Library.
  • Explain the architecture of distributed COM (DCOM).
  • Describe COM+.


Return to top

Day 5

Module 13: Windows NT Services

Topics

Introduction to Windows NT service architecture
Programming a Win32 service
Developing a service control program

Lab

Creating a Windows NT service

Skills

Students will be able to:

  • Explain the Windows NT services architecture.
  • Explain how to create a service application.
  • Compare and contrast a UNIX daemon to a Windows NT service.


Return to top

Module 14: Performance Measurement Tools for Win32-based Applications

Topics

Process Viewer (PView)
Performance Monitor
Profiler
Visual Studio Analyzer

Lab

Performance-tuning a Win32 application

Skills

Students will be able to:

  • Use PView to monitor running processes and see processor priority and usage, thread processor usage, and virtual-memory consumption.
  • Use the Performance Monitor to detect and display dynamic system resource utilization.
  • Use the Profiler to report on function coverage and timing and line coverage.
  • Use the Visual Studio Analyzer to identify performance bottlenecks within a Windows NT application and graphically represent the application flow.


Return to top

For more information or to give feedback, send e-mail to info@OneApex.com or call 949-597-2100