The course begins by providing a look at the different components of the .NET framework and discusses the basic building blocks of the C# language including variables, comments, conditionals and looping. Next, classes and Object Oriented Programming (OOP) features found in C# are discussed so that students understand how to leverage concepts such as inheritance, abstraction, method overriding, overloading, generics, interfaces, and object hierarchies. The course also shows several of the powerful language features available in C# including lambda expressions and Language Integrated Query (LINQ). Other topics covered include data access technologies such as ADO.NET and Entity Framework.
By the end of the class students will understand all of the key components available in the C# language and learn how they can be used together to build applications. This class is created by Microsoft MVP Dan Wahlin.
Getting Started with the .NET Framework
What is the .NET Framework?
The role of the Common Language Runtime (CLR)
- What is the CLR and what does it do in .NET?
- .NET object-oriented language choices
- Multi-language interoperability
- Memory Management and Garbage Collection
.NET Compilation Model
- Microsoft Intermediate Language (MSIL)
- Just-in-Time compilation
- Assemblies and Namespaces
The Base Class Library
Core Language Syntax
- Writing statements
- Commenting Code
- Value vs. Reference Types
- C# Operators
Defining Variables, Constants, and Arrays in C#
- Understanding variable scoping
- Declaring variables
- Declaring constants
- Declaring arrays
Conditionals and Looping
- if..else statements
- switch statements
- looping statements
Creating and Using Classes
- What are classes?
- What are objects?
- Class members
- Creating a class from scratch
- Setting class member access visibility
- Adding fields to a class
- Adding properties
- Adding methods
- Adding constructors
- The Role of Namespaces
- What is object-oriented programming?
- Understanding Abstraction, Encapsulation, Polymorphism and Inheritance
- Using abstract classes
- Inheriting from base classes
- Overriding members
- Structured Exception handling
- Creating a finally block
Working with Generics
- What are Generics?
- Creating objects using Generics
- Defining a custom Generic type
- Using the Nullable Struct
- The default keyword
- System.Collections.Generic Classes
Working with Interfaces
- What are Interfaces?
- Defining interfaces
- Implementing interfaces
- Interfaces and Polymorphism
- Interfaces in the .NET Framework
Using the Base Class Library
- Overview of functionality in the framework class library
- Working with Dates and Times
- Working with Strings
- Getting Started with Threading
Using Language Integrated Query (LINQ)
- What is Language Integrated Query (LINQ)
- The role of anonymous types
- LINQ Expressions
- Lambda Expressions
- Using LINQ to Objects
Data Access with ADO.NET and Entity Framework
- Introduction to ADO.NET
- Managed Provider Classes in ADO.NET
- Introduction to Object-Relational-Modeling (ORM) Frameworks
- Using Entity Framework and LINQ
This course is valuable for developers who are interested in building different types of applications using the C# programming language.
This course is designed for software developers with previous programming experience using a language such as Visual Basic, C++, Java, etc.
What You Will Learn
After attending this course, students will know:
- C# language fundamentals and core concepts
- The role of classes, objects, namespaces and assemblies
- Object-oriented principles
- C# generics
- The role interfaces play in .NET
- .NET Base Class Libraries
- LINQ and Lambdas
- Data access with ADO.NET
- Data access with Entity Framework