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 |