Programming in C# (70-483) Online Course
About the course
The Programming C# course provides full coverage of the programming skills required to create Windows applications using C#. This new and exciting course also provides knowledge on language syntax, C# program structure, and implementation details. This new course provides you the needed training for building new data types, handling events, accessing a database, using remote data, integrating with unmanaged code, as well as the knowledge and skills to perform operations asynchronously, creating custom attributes and more. This course brings together all the features of programming in C# using Visual Studio.
This new course provides you the needed training for building new data types, handling events, accessing a database, using remote data, integrating with unmanaged code, as well as the knowledge and skills to perform operations asynchronously, creating custom attributes and more. This course brings together all the features of programming in C# using Visual Studio.
Course Curriculum
Programming in C# .NET
- Course Overview
C# and .NET Platform (4.5)
- Introduction
- .NET Platform and Benefits
- Platform Independence
- .NET Building Blocks
- Core C# Features
- .NET Architecture
- The .NET Assemblies
- The Common Type System
- CTS Type Members
- Intrinsic CTS Data Types
- Common Language Specification
- Common Language Runtime & Common Object Runtime
- Object Browser
- Assembly Namespace Type Distinction (A.N.T)
- .NET In Windows 8
- Section Review
- Test Our Knowledge
C# Programming
- Introduction
- Console App Creation
- Anatomy 101
- Variations
- Application Error Codes
- Examining String Data
- System.Console Class
- System Data Types
- Variable Declarations
- C# Textual Data
- Working with String Data
- Data Type Conversions
- Widening and Narrowing Conversions
- The CHECKED and UNCHECKED Keywords
- The Variable Console
- Using Implicit Typing
- Iteration Constructs
- Construct Control Flow
- Methodology 101
- Defining Methods
- Parameter Method
- Method Overload
- Arrays
- Enums
- Structures Types
- Reference Types and Value Types
- Nullable Types
- Section Review
- Test Our Knowledge
Object Orientated Programming with C#
- Introduction
- C# Class Type
- Room Class
- Objects
- Constructors
- The THIS Keyword
- Observing Constructor Flow
- The STATIC Keyword
- Static Field Data
- Static Methods
- Static Constructors
- Static Classes
- OOP Triumvirate
- OOP Encapsulation
- OOP Inheritance
- OOP Polymorphism
- Encapsulation
- C# Encapsulation Services
- Implementing Accessors and Mutaters
- Creating a Static Property
- Automatic Properties
- Object Initialization Syntax
- Constant Field Data
- Inheritance and Polymorphism
- Multiple Base Classes
- The SEALED Keyword
- Building Class Hierarchy
- Sealed Classes
- Containment and Delegation Model
- Nested Types
- Polymorphism
- Virtual and Override Keywords
- Abstract Classes
- The Polymorphic Interface
- Method Shadowing
- Class Casting Operations
- The AS and IS Keywords
- System.Object
- Overriding GetHashCode()
- System.Object's Static Members
- Structured Exception Handling
- System Exception: TargetSite
- StackTrace
- HelpLink
- Data Property
- Custom Exceptions
- Custom Exception Best Practices
- TriBlock
- The THROW Keyword
- Inner Exceptions
- The Finally Block
- Identifying Unhandled Exceptions
- Interfaces
- Interface Types vs. Abstract Base Classes
- Implementing an Interface
- AS and IS Interface Keywords
- Interface Parameters and Return Values
- Arrays of Interface Types
- Designing Interface Hierarchies
- Multiple Inheritance with Interface Types
- IEnumerable and IEnumerator Interfaces
- Building Iterator Methods With The YIELD Keyword
- Named Iterators
- The IClonable Interface
- The IComparable Interface
- IComparer
- Object Orientated Programming with C#: IComparer
- Test Our Knowledge
Advanced C# Concepts
- Introduction
- Generics, Collections and Bears (Oh My!)
- TheSystem.Collections Namespace
- Nongeneric Collections Classes
- The Issue of Performance
- The Issue of Type Safety
- The System.Collections.Generic Namespace
- The System.Collections.ObjectModel Namespace
- Custom Generic Types
- Custom Generic Structures and Classes
- Delegates, Events and Lamda's
- The .NET Delegate Type
- Sending Object State Notifications Using Delegates
- The Generic Action <> and Func<> Delegates
- The EVENT Keyword
- C# Anonymous Methods
- Lambda Expressions
- Lambda
- Advanced C# Features
- The Index Operator
- Overloading Indexer Methods
- Understanding Operator Overloading
- Understanding Custom Type Conversions
- Understanding Extension Methods
- Extending Types Implementing Specific Interfaces
- Anonymous Types
- Limitations of Anonymous Types
- LINQ to Objects
- The Core LINQ Assemblies
- Advanced C# Concepts: The Core LINQ Assemblies
- The Result of a LINQ Query
- Investigating the C# LINQ Query Operators
- insert slides above instructor 3
- insert slides above instructor 5
- The Internal Representation of LINQ Query
- Understanding Object Lifetime
- Advanced C# Concepts: Understanding Object Lifetime
- The CIL of new
- Setting Object Reference to null
- The Role of Application Roots
- The System.GC Type
- Forcing a Garbage Collection
- Finalizable Objects
- Resource wrapper?
- Understanding Lazy Object Instantiation
- Section Review
- Test Our Knowledge
.NET Assemblies and Base Class Libraries
- Test Our Knowledge
Module 5 .NET Assemblies and Base Class Libraries
- Building Object Libraries
- Assemblies Promote Code Reuse
- Insert slides above instructor 3
- Understanding the Format of a .NET Assembly
- Building a C# Client Application
- Understanding Private Assemblies
- The Role of the App.Config File
- Global Assembly Cache
- Understanding Strong Names
- gacutil.exe Options
- Configuring Shared Assemblies
- The System.Configuration Namespace
- Reflection, Late Binding and More!
- Type Metadata
- Understanding Reflection
- Building a Custom Metadata Viewer
- Reflecting on Shared Assemblies
- Understanding Late Binding
- The System.Activator Class
- The Role of .NET Attributes
- The System.Activator Class
- Reflecting an Attribute Using Early Binding
- Building an Extendable Application
- Dynamically Speaking
- The Role of the C# DYNAMIC Keyword
- Limitations of the DYNAMIC Keyword
- The Role of The Dynamic Language Runtime (DLR)
- The Role of Expression Trees
- Simplifying Late-Bound Calls Using Dynamic Types
- Leveraging the Dynamic Keyword to Pass Arguments
- Simplifying COM Interoperability Using Dynamic Data
- The Role of Primary Interop Assemblies (PIAs)
- Multithreaded, Parallel and Async Programming
- The Problem of Concurrency
- The Role of Thread Synchronization
- Review of The .NET Delegate
- The Role of The AsyncCallback Delegate
- System Threading Namespace
- Manually Creating Secondary Threads
- Working Whith The ParameterizedThreadstart Delegate
- Foreground and Background Threads and Concurrency Redux
- insert slides above instructor 2
- Synchronization Using the System.Threading.Monitor Type
- CLR Thread Pool
- Parallel Programing Library
- Asynchronous Calls Under .NET 4.5
- File I/O and Object Serialization
- Exploring the System.IO Namespace
- The Abstract Stream Class
- Working with StreamWriters and StreamReaders
- Working with BinaryWriters and BinaryReaders
- Understanding Object Serialization
- The Role Of Object Graphs
- Insert slides above instructor: 10
- Serializing Objects Using the BinaryFormatter
- Controlling The Generated XML Data
- Customizing Serialization
- Data Access Overview
- Section Review
- Test Our Knowledge
- Outro
Module 6 Windows Presentation Foundation
- Introduction
- WPF In A Nutshell
- What is XAML?
- WPF Trees
- WPF Project Types and Navigation
- The Goals of WPF
- Better Use Of Graphics Hardware
- Property Binding and Property Inheritance
- Styles and Templates
- Consistent Control Containment
- Separate UI From Code-Behind
- Disadvantages of WPF
- WPF Fundamentals: Size and Position
- Font Properties
- Opacity Masks
- Miscellaneous Properties
- Controls
- Grid. DockPanel Controls
- Boarder and List View Controls
- Combo Box and List Box Control
- Property Basics
- Resources and Styles
- WPF Data Binding
- Section Review
- Test Our Knowledge
- Program Closing
- Recommended Reading