Introduction to Programming Microsoft.NET Applications with Visual Studio 2008 (C#) Course Number: 6367A Course Length: 3 Days Course Overview This three-day course will enable students to start designing and developing object-oriented applications using Visual Studio 2008. Students will learn object-oriented concepts including classes, methods, properties, inheritance, and interfaces. Also they will learn how to identify opportunities to use these concepts in design, and how to implement these object-oriented concepts using Visual Studio 2008. Prerequisites Before attending this course, students must have: An understanding of the problem-solving techniques that apply to software development An understanding of the following principles of software development: o modern software development models o typical phases of a software development lifecycle o concepts of event-driven programming o concepts of object-oriented programming o creating use-case diagrams o designing and building a user interface o developing a structured application A basic understanding of the following scripting techniques o Web scripting techniques o Macro scripting techniques o Windows scripting techniques Hands-on experience creating and implementing script code A fundamental understanding of the.net Framework - specifically, the purpose, function, and features of following.net Framework components: o the Common Language Runtime o the.net Framework class library A conceptual understanding of the following.net Framework topics: o Common Type System - identifies the types supported by the common language runtime o Metadata and Self-Describing Components - the.net Framework simplifies component interoperation by allowing compilers to emit additional declarative information, or metadata, into all modules and assemblies o Cross-Language Interoperability - managed objects created in different programming languages can interact with one another o Assemblies in the Common Language Runtime - the concept of assemblies, which are collections of types and resources that form logical units of functionality (assemblies are the fundamental units of deployment, version control, reuse, activation scoping, and security permissions)
o Application Domains - application domains provide isolation between applications o Runtime Hosts - the runtime hosts supported by the.net Framework, including ASP.NET, Internet Explorer, and shell executables A basic understanding of the Visual Studio IDE (Integrated Development Environment) Hands-on experience using a version of Visual Studio.NET to achieve the following: o Declaring and initializing typed variables using the Camel case naming convention o Using arithmetic, relational, and logical operators in code statements o Using branching statements to control code execution o Using looping statements to iterate through collections or repeat steps until a specified condition is met o Identifying syntax and logic errors o Accessing and managing data from a data source Audience The target audience for this course is lower-intermediate level programmers who have a minimum of three months programming experience in a professional environment and want to learn how to use Visual Basic or C# to develop well-conceived and implemented object-oriented programming applications. Course Outline Course Introduction Course Introduction 2m Module 01 - Getting Started with Object-Oriented Programming Lesson 1: Introduction to Object-Oriented Programming Object-Oriented Application Design Goals Procedural vs. Object-Oriented Programming Development Success Factors Support for Object-Oriented Development in.net and Visual Studio 2008 Lesson 2: Creating Projects in Visual Studio 2008 Visual Studio 2008 Projects Visual Studio Solution/Project Structure Visual Studio Project Types Web Projects Demo - Creating Projects in Visual Studio 2008 Lesson 3: Coding in Visual Studio 2008 Value Types Reference Types Defining Collections Controlling Flow Type Conversion Generic Types Lesson 4: Productivity Features in Visual Studio 2008 Coding Productivity Features in Visual Studio 2008 Demo - Using Productivity Features Commenting and Documenting Code Lesson 5: Debugging Visual Studio Applications 1h 56m
Debugging Interface Features Demo - Using the Debugging Interface Test Projects Demo - Creating a Test Project Module 01 Review Module 02 - Implementing Classes, Properties and Methods Lesson 1: Creating Classes Introduction to Classes Classes and Objects Encapsulation Class Lifecycle Class Constructors and Destructors Class Attributes Namespaces Lesson 2: Implementing Properties Within a Class Defining Class Properties Controlling Access to Properties Reference Type Properties Lesson 3: Implementing Methods Within a Class Defining a Method Passing by Reference and by Value Return Values Overloading Accessors Lesson 4: Using Classes, Properties and Methods Instantiating a Class Instantiating a Class with a Parameterized Constructor Using Properties and Methods Shared/Static Properties and Methods Demo - Using Shared/Static Properties and Methods Module 02 Review 1h 35m Module 03 - Implementing Inheritance, Abstraction, and Polymorphism 1h 6m Lesson 1: Introduction to Inheritance and Abstraction Inheritance and Abstraction Benefits of Inheritance Lesson 2: Implementing Inheritance and Abstraction Implementing Inheritance Defining Classes Requiring Inheritance Demo - Implementing Inheritance Inherited Class Construction Demo - Inherited Class Construction Shadowing Sealing Lesson 3: Introduction to Polymorphism What Is Polymorphism? Polymorphism Example Lesson 4: Implementing a Polymorphic Structure
Polymorphic Casting Casting with Subtypes Polymorphic Methods Overrides and Overridable Using Polymorphic Methods Demo - Implementing Polymorphism Module 03 Review Module 04 - Implementing Interfaces Lesson 1: Introduction to Interfaces Importance of Reducing Code Dependencies Reducing Code Dependencies through Interfaces Importance of Code Standardization Increasing Code Standardization through Interfaces Discussion: Identify Uses of Interfaces for a Business Scenario Lesson 2: Implementing an Interface Creating an Interface Commonly Used System-Defined Interfaces IDisposable Demo - Implementing System Interfaces Writing Code to Implement an Interface Using an Interface to Access Class Functionality Interfaces vs. Abstract Classes Demo - Defining Custom Interfaces Polymorphism with Interfaces Demo - Implementing Polymorphism with Interfaces Module 04 Review 40m Module 05 - Designing Object-Oriented Structures Lesson 1: Establishing Classes from Business Requirements Goals of Object-Oriented Design Class Diagrams Demo - Creating a Class Diagram Design Approaches Identifying Classes, Properties, and Methods from Business Requirements Identifying Classes from Business Requirements Identifying Associations from Business Requirements Discussion: Identifying Classes, Properties, and Methods from Business Requirements Lesson 2: Adding Inheritance to the Design Demo - Adding Inheritance to a Class Diagram Identifying Inherited Class Structures from Business Requirements Discussion: Identifying Inheritance Class Structures Refining Properties and Method Placement Discussion: Refining Properties and Method Placement Lesson 3: Adding Interfaces to the Design Demo - Adding Interfaces to a Class Diagram Identifying Interfaces from Business Requirements Discussion: Identifying Interfaces from Business Requirements Refining the Class Diagram to Include Interfaces 1h 19m
Discussion: Refining the Class Diagram to Include Interfaces Lesson 4: Reviewing and Refining the Design Validating Your Design Evaluating a Proposed Design Discussion: Validating and Evaluating a Proposed Design Future Considerations for Design Module 05 Review Module 06 - Delegates, Events and Exceptions Lesson 1: Introduction to Delegates Introduction to Delegates The Delegate Model Lesson 2: Implementing Delegates Defining a Delegate Type Instantiating a Delegate Invoking a Method by Using a Delegate Instance Demo - Delegates Lesson 3: Introduction to Events Introduction to Events The Event Model Lesson 4: Implementing Events Creating System Event Handlers Creating a Custom Event Raising a Custom Event Handling a Custom Event Demo - Events Lesson 5: Introducing Exceptions Introduction to Exceptions The Exception Model Lesson 6: Implementing Exceptions Handling Exceptions Creating Custom Exceptions Throwing Exceptions Demo - Exceptions Module 06 Review 1h 32m Module 07 - Designing Object Collaboration Lesson 1: Introduction to Class Interactions Design Goals for Interactions Comparing Methods of Interaction Defining Interaction Boundaries Introduction to Sequence Diagrams Discussion: Creating a Sequence Diagram Lesson 2: Adding Interactions to a Design Adding Methods to a Design Discussion: Adding Methods to a Design Adding Events to a Design Discussion: Adding Events to a Design Adding Delegates to a Design 50m
Discussion: Adding Delegates to a Design Adding Exceptions to a Design Discussion: Adding Exceptions to a Design Lesson 3: Evaluating the Design Validation Techniques Validating a Design Evaluating a Design Discussion: Evaluating the Interaction Design Lesson 4: Introduction to Patterns Defining Patterns Common Patterns Evaluating a Pattern Pattern Example: Prototype Discussion: Evaluating a Pattern Module 07 Review Module 08 - Deploying Components and Class Libraries Lesson 1: Introduction to Components and Class Libraries Factors for Creating Deployable Units of Software Software Development Life Cycle Upgrading and Maintenance Within the Software Development Lifecycle Discussion: Identifying Components and Class Libraries in a Business Scenario Lesson 2: Deploying a Component/Class Library Preparing an Application to Use Component/Class Libraries What Is an Assembly? Demo - Creating and Referencing a Class Library from an Application Deploying an Assembly What Is the Global Assembly Cache? Installing an Assembly into the Global Assembly Cache Demo - Installing an Assembly into the Global Assembly Cache Manage Versioning Within an Application Using a Component/Class Library Demo - Updating and Deploying a Class Library/Component Lesson 3: Best Practices for Deploying a Component/Class Library Best Practices: Deploying Components/Class Libraries Verifying Results Module 08 Review Course Closure 50m Total Duration: 9h 51m