Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

CS5  .NET Framework Foundations Using C#

Rev. 2.0

 

Microsoft .NET is an advance in programming technology that greatly simplifies application development, both for traditional, proprietary applications and for the emerging paradigm of Web-based services. .NET is a complete restructuring of Microsoft’s whole system infrastructure and represents a major learning challenge for programmers developing applications on Microsoft platforms. Part of .NET is a major new object-oriented programming language, C#. But learning the new programming language is only part of the challenge. The much greater challenge is learning the .NET Framework and all its capabilities.

 

This comprehensive five-day course provides a sound introduction to the .NET Framework for programmers who already know the C# language. It is current to .NET 2.0 and Visual Studio 2005. The course focuses on core portions of the .NET Framework that are common across many application areas. It includes coverage of the important C# topics of interfaces, delegates and events.

 

For students pursuing MCTS certification, the course provides helpful preparation for Exam 70-536: Microsoft .NET Framework 2.0—Application Development Foundation.

 

The course starts with an introduction to the architecture and key concepts of .NET. The next chapter discusses how C# relates to the .NET Framework. The following chapter covers delegates and events. Next, there is a succinct introduction to creating GUI programs using Windows Forms.

 

It then discusses class libraries, assemblies, versioning, configuration, and deployment, which constitute a major advance in the simplicity and robustness of deploying Windows applications, ending the notorious “DLL hell.” The next two chapters discuss important topics in the .NET programming model, including metadata, reflection, I/O, and serialization. The following chapter continues the discussion of the .NET programming model, covering memory management, threading, asynchronous programming, and application domains

 

.NET Security is introduced in some detail, including both code access security and role-based security. The next chapter covers interoperability of .NET with COM and with Win32 applications. Finally, debugging and tracing are discussed in depth.

 

The course is practical, with many examples and a case study. The goal is to equip you to begin building significant applications using the .NET Framework. The student will receive a comprehensive set of materials, including course notes and all the programming examples.  

 

LEARNING OBJECTIVES

 

·         Gain a thorough understanding of the philosophy and architecture of .NET

·         Learn about important interactions between C# and the .NET Framework

·         Learn how to implement simple GUI programs using Windows Forms

·         Acquire a working knowledge of the .NET programming mode, .NET Security and interoperability with COM and Win32

·         Learn how to debug .NET applications using .NET diagnostic classes and tools

 

Duration:  5 days

 

Prerequisites:  The student should be an experienced application developer or architect with a working knowledge of C# programming.

 

1.      .NET Fundamentals

What is Microsoft .NET?

Common Language Runtime

Attribute-Based Programming

Interface-Based Programming

Metadata

Common Type System

Framework Class Library

Language Interoperability

Managed Code

Assemblies and Deployment

Web Services

ASP.NET

 

2.      C# and the .NET Framework

Components

Interfaces

System.Object

.NET and COM

Collections

IEnumerable and IEnumerator

Copy Semantics in C#

Generic Types

Type-Safe Collections

 

3.      Delegates and Events

Delegates

Anonymous Methods

Random Number Generation

Events

 

4.      Introduction to Windows Forms

Creating Windows Applications Using Visual Studio 2005

Partial Classes

Buttons, Labels and Textboxes

Handling Events

Listbox Controls

 

5.      Class Libraries

Components in .NET

Building Class Libraries at the Command Line

Class Libraries Using Visual Studio 2005

Using References

 

6.      Assemblies, Deployment and Configuration

Assemblies

Private Assembly Deployment

Shared Assembly Deployment

Configuration Overview

Configuration Files

Programmatic Access to Configuration

Application Settings with .NET 2.0

Using SDK Tools for Signing and Deployment

 

7.      Metadata and Reflection

Metadata

Reflection

Late Binding

 

8.      I/O and Serialization

Directories

Files

Serialization

Attributes

 

9.      .NET Programming Model

Memory Management and Garbage Collection

Threading and Synchronization

Asynchronous Delegates

Application Domains

 

10. .NET Security

Authentication and Authorization

Configuring Security

Code Access Security

Code Groups

Evidence

Permissions

Role-Based Security

Principals and Identities

 

11. Interoperating with COM and Win32

.NET Client Calling a COM Server

Wrapping Legacy Code

PInvoke

 

12. Debugging Fundamentals

Compile-time Errors and Run-time Errors

Configuring Debug, Release, and Special Builds

Visual Studio 2005 Debugger

Just-In-Time Debugging

 

13. Debugging and Tracing

Attaching to Processes

Tracing

Event Logs

 

14. More About Tracing

Using the BooleanSwitch and TraceSwitch Classes

Print Debugging Information with the Debug Class

Instrumenting Release Builds with the Trace Class

Using Listeners

Implementing Custom Listeners

 

Appendix A.  Learning Resources

 

System Requirements

 

Course exercises require Microsoft Visual Studio 2005 on Windows XP with Service Pack 2. See the appropriate course Setup Guide for details.

 

A good minimal hardware profile for this course would have a Pentium 1 GHz or equivalent CPU, 512 MB of RAM, and at least 4 GB of free disk space for tools installation and courseware.