Paths

C#

Authors: Scott Allen, Jeremy Clark, Filip Ekberg, Eric Fisher, Deborah Kurata, Jason Roberts, Simon Robinson, Elton Stoneman, Dan Wahlin

C# is the most commonly used language for leveraging the .NET Framework. As such, learning C# is a springboard to creating enterprise systems, desktop applications, websites and... Read more

Beginner

Do you want to become productive with C#? This beginner area is the perfect place to start. These C# tutorials are designed to give you everything you need to become a productive C# developer. By the end of this section, you’ll have a firm understanding of the C# language and valuable insights on how things work under the hood.

C# Fundamentals with Visual Studio 2015

by Scott Allen

Sep 25, 2015 / 5h 21m

5h 21m

Start Course
Description

Hello, and welcome to Pluralsight! My name is Scott Allen, and I want to give you a quick overview of my course, C# Fundamentals with Visual Studio 2015. It’s designed to help you learn the essential topics you need for developing with the C# programming language, and covers things building classes, programing with objects, and working with interfaces using the C# language. Along the way, you’ll be using C#, Visual Studio and .NET. When you’re done, you’ll be ready to to tackle your own projects in the C# programming language. From there, you can start exploring working with nulls in C#, as well as designing fluent APIs. I look forward to working with you on C# Fundamentals with Visual Studio 2015, here at Pluralsight.

Table of contents
  1. Course Overview1m
  2. An Introduction to C# and .NET42m
  3. Classes and Objects48m
  4. Assemblies36m
  5. Types49m
  6. Methods, Fields, Events, and Properties46m
  7. Control Flow53m
  8. Object Oriented Programming44m
Interactive

C#: Using Variables and Conditionals

by Eric Fisher

May 17, 2018 / 32m

32m

Start Course
Description

Learn the basics of C# to create and run your first C# console application, which will accept user input and provide varying feedback based on that input. This interactive course was formerly known as Try C# on Code School.

Table of contents
  1. Introduction1 Video - 1 Challenge
  2. Variables1 Video - 1 Challenge
  3. Conditions1 Video - 2 Challenges
Interactive

C#: Using Classes, Methods, Objects, and Loops

by Eric Fisher

May 17, 2018 / 1h 7m

1h 7m

Start Course
Description

Learn to work with classes, methods, groups of objects, loops, and method overloads to create a C# console application for tracking bands. This interactive course was formerly known as Keeping It Classy With C# on Code School.

Table of contents
  1. Methods1 Video - 2 Challenges
  2. Classes1 Video - 3 Challenges
  3. Groups of Objects1 Video - 2 Challenges
  4. Loops1 Video - 1 Challenge
  5. Method Overloads1 Video - 1 Challenge
Project

Add Features to Grade Book Application Using C#

by Eric Fisher

Jan 15, 2018 / 2h 5m

2h 5m

Start Project
Description

In this project you will use the C# programming language to add new features to an existing grade book application.

Project overview
  1. Setup15m
  2. Creating New GradeBookTypes15m
  3. Override RankedGradeBook's GetLetterGrade30m
  4. Override Statistics10m
  5. Add GradeBookType Support to StartingUserInterface20m
  6. Make BaseGradeBook Abstract5m
  7. Add Support for Weighted Grading30m

Working with Nulls in C#

by Jason Roberts

Sep 8, 2016 / 1h 25m

1h 25m

Start Course
Description

Unexpected null values and NullReferenceExceptions can be a constant source of bugs resulting in wasted time and out of hours support callouts. In this course, Working with Nulls in C#, you're going to learn about the different ways that null values pop up in C# code and how to deal with them. First, you're going to learn the fundamentals of why you get null values and the difference between value and reference types. Next you'll learn how you can use the various C# operators to check for and manipulate nulls. Finally, you'll learn how to think about nulls at a higher abstraction level in your object-oriented code. By the end of this course, you'll understand the different types of objects in C#, how to correctly create nullable value types, how to use C# operators to work with nulls with fewer lines of code, and how to implement the Null Object pattern to remove the need to write repetitive null checking code.

Table of contents
  1. Course Overview1m
  2. Working with Nullable Value Types and Strings30m
  3. Accessing and Checking for Null Values29m
  4. Eliminating Null Reference Exceptions23m

C# Best Practices: Collections and Generics

by Deborah Kurata

Jan 27, 2016 / 3h 35m

3h 35m

Start Course
Description

When building applications we often deal with groups of things: a user's preferences, a customer's orders, or a product's color choices. To implement these groups of things in C#, we use collections. And to get the most from collections, we need to leverage generics. This course covers how, when, why, and best practices for using C# collections and generics, including arrays, generic interfaces, LINQ, delegates, and Lambda expressions.

Table of contents
  1. Course Overview1m
  2. Introduction12m
  3. Arrays24m
  4. Building Generic Code with Generics30m
  5. Generic Lists35m
  6. Generic Dictionaries33m
  7. Generic Collection Interfaces44m
  8. LINQ27m
  9. Final Words6m

Intermediate

Once you have a strong foundation with C#, you can now start fine tuning your skills to create code that is more maintainable, extensible and , object-oriented. The C# courses in this section will provide everything you need to know to become a C# pro.

Object-Oriented Programming Fundamentals in C#

by Deborah Kurata

Jul 8, 2014 / 3h 26m

3h 26m

Start Course
Description

This course takes you through the principles and practices of object-oriented programming (OOP). The course provides you with the firm foundation in OOP that you need to progress to intermediate-level C# courses. It begins by showing you how to turn a set of words into a set of well-defined and related classes. Through demonstrations, it teaches you key object-oriented concepts such as abstraction, encapsulation, inheritance, polymorphism, and interfaces.

Table of contents
  1. Course Overview1m
  2. Introduction13m
  3. Identifying Classes from Requirements16m
  4. Building Entity Classes30m
  5. Building Entity Classes - Methods16m
  6. Separation of Responsibilities17m
  7. Establishing Relationships28m
  8. Leveraging Reuse through Inheritance28m
  9. Building Reusable Components24m
  10. Understanding Interfaces23m
  11. Final Words and Next Steps5m

C# Interfaces

by Jeremy Clark

Dec 19, 2018 / 2h 23m

2h 23m

Start Course
Description

Code that is easy to maintain, extend, and test is key to applications that move quickly to meet our users’ changing needs. In this course, C# Interfaces, you will learn how to use interfaces effectively to create flexible and maintainable applications. First, you will see the mechanics of exactly what interfaces are, and why we want to use them. Next, you will explore how to create your own interfaces to make it easy to change them or swap out functionality. Finally, you will delve into designing effective interfaces to make sure that you are getting the benefits that you need in your specific applications. When you are finished with this course, you will have a good understanding of interfaces and how you can use them effectively in your own applications.

Table of contents
  1. Course Overview1m
  2. Introducing Interfaces29m
  3. Creating Interfaces to Add Extensibility27m
  4. Interfaces and Dynamic Loading27m
  5. Explicit Interface Implementation11m
  6. Designing Effective Interfaces23m
  7. Interfaces in Frameworks and Patterns21m

LINQ Fundamentals

by Scott Allen

Jul 28, 2016 / 4h 23m

4h 23m

Start Course
Description

LINQ introduced radical changes to the C# language. In this course, LINQ Fundamentals you'll see features of the C# language that make LINQ work, as well as how to use LINQ effectively using practical examples. You'll start with seeing a demonstration of the power of LINQ along with some of the important features of the C# language for LINQ, including how to create and use extension methods and lambda expressions. Next, you'll focus on the behavior of LINQ queries and start to work with realistic data to learn how to filter, order, and project data. Finally, you'll see some demonstrations on how to use LINQ to XML as well as, how LINQ works with a remote datasource by using the Entity Framework against Microsoft SQL Server. By the end of this course, you'll be ready to process and query in-memory data, as well as work with XML and a SQL Server database.

Table of contents
  1. Course Overview1m
  2. An Introduction14m
  3. LINQ and C#45m
  4. LINQ Queries37m
  5. Filter, Ordering & Projecting43m
  6. Joining, Grouping & Aggregating48m
  7. LINQ to XML32m
  8. LINQ and the Entity Framework39m

Defensive Coding in C#

by Deborah Kurata

May 9, 2014 / 4h 32m

4h 32m

Start Course
Description

You will learn how to write clean, maintainable, and testable code when faced with constantly changing requirements, legacy issues, intensive time pressures, and a rapidly evolving environment. You will also learn how to keep that code great after maintenance activities, multiple developers, and the ravages of time.

Table of contents
  1. Introduction16m
  2. Defending Your Methods - Part 157m
  3. Defending Your Methods - Part 223m
  4. Automated Code Testing46m
  5. Defending Your Methods Part 3: Returning Predictable Results32m
  6. Defending Your Code Constructs32m
  7. Asserts, Errors, and Exceptions54m
  8. Final Words9m

C# Events, Delegates and Lambdas

by Dan Wahlin

Apr 26, 2013 / 3h 11m

3h 11m

Start Course
Description

Events, delegates and lambdas play an important role in the .NET framework but can be difficult to understand as developers first get started with the C# language. If you’re interested in gaining a more thorough understanding of how these C# technologies work then you’re in the right place! This course focuses solely on events, delegates and lambdas and provides insight into how they can be used in your .NET applications using the C# language.

Table of contents
  1. The Role of Events, Delegates and Event Handlers24m
  2. Creating Delegates, Events and EventArgs54m
  3. Handling Events21m
  4. Lambdas, Action<T> and Func<T,TResult>36m
  5. Events and Delegates in Action54m

C# Extension Methods

by Elton Stoneman

Dec 16, 2013 / 3h 9m

3h 9m

Start Course
Description

Extension methods are a powerful C# feature which are underused and often misunderstood. In this course you’ll learn all about writing, using and organizing extension methods, how the CLR implements them and what scenarios they enable. We’ll build a library of key extension methods you can use in your own projects to make your code cleaner, safer and more maintainable.

Table of contents
  1. Introducing Extension Methods51m
  2. Advanced Extension Methods (part 1)32m
  3. Advanced Extension Methods (part 2)37m
  4. Extension Method Library (part 1)37m
  5. Extension Method Library (part 2)31m

Advanced

Whether you’re still learning C# or you’re a seasoned professional, the courses in this section will provide valuable insight into modern software development practices in C#. We'll cover asynchronous programming, how to unit test your code to insure correctness, and how to use dependency injection to create loosely coupled, maintainable applications. Finally, our “tips and traps” series will give you useful knowledge to make you more productive.

Getting Started with Asynchronous Programming in .NET

by Filip Ekberg

Mar 15, 2019 / 2h 22m

2h 22m

Start Course
Description

Utilizing asynchronous principles is crucial for building fast and responsive applications. In this course, Getting Started with Asynchronous Programming in .NET, you’ll learn foundational knowledge to efficiently apply the asynchronous principles to build fast and solid applications. First, you’ll explore how the async and await keywords fit into your .NET applications, and how it ties together with the task parallel library. Next, you’ll discover how asynchronous programming is different from parallel programming and how to use the parallel extensions to perform fast computations, which utilizes all your available processing power. Finally, you’ll learn how to adapt in advanced scenarios, and where deeper knowledge of the internals may be required. When you’re finished with this course, you’ll have the skills and knowledge of how to apply the asynchronous programming principles in any type of .NET application.

Table of contents
  1. Course Overview2m
  2. Asynchronous Programming in .NET Using Async and Await28m
  3. Using the Task Parallel Library in .NET49m
  4. Parallel Programming Using the Parallel Extensions23m
  5. Asynchronous Programming Deep Dive39m

Automated Testing with MSTest V2

by Jason Roberts

May 18, 2018 / 2h 2m

2h 2m

Start Course
Description

MSTest V2 is the evolution of the original "in-box" testing framework from Microsoft and is now a cross platform, open source testing framework. In this course, Automated Testing with MSTest V2, you'll learn how to use the framework to create automated test to help check your code is working correctly. First, you'll discover how to use the various assert features such as checking numeric, string, and collection values. Next, you'll explore how to take control of the test execution lifecycle and also execute additional setup or cleanup code. Finally, you'll learn how to execute a test multiple times with data driven tests and also how to customize and extend the MSTest framework to create more maintainable and readable test code. By the end of this course, you'll know how to create readable, maintainable, and customized automated tests with MSTest V2.

Table of contents
  1. Course Overview1m
  2. Getting Started15m
  3. Using Asserts to Pass or Fail Tests36m
  4. Controlling and Customizing Test Execution22m
  5. Creating Data Driven Tests22m
  6. Reducing Code Duplication and Increasing Test Readability25m

Getting Started with Dependency Injection in .NET

by Jeremy Clark

Mar 5, 2019 / 2h 8m

2h 8m

Start Course
Description

Tight coupling makes our code hard to change and test. In this course, "Getting Started with Dependency Injection in .NET", you will learn the foundational knowledge to break tight coupling with Dependency Injection. First, you will learn how to use constructor injection to create loosely-coupled code. Next, you will see how to snap those loosely-coupled pieces together in different ways to easily change functionality. Then, you will discover how easy it is to unit test code that uses dependency injection. Finally, you will explore some of the magic of dependency injection containers. When you are finished with this course, you will have the skills and knowledge of dependency injection needed to break tight coupling and write more maintainable code.

Table of contents
  1. Course Overview1m
  2. What Is Tight Coupling and How Does It Impact Your Applications?27m
  3. Using Dependency Injection to Build Loosely-coupled Applications20m
  4. Taking Advantage of Loose Coupling18m
  5. How Dependency Injection Makes Unit Testing Easier23m
  6. Dependency Injection Containers36m

C# Concurrent Collections

by Simon Robinson

May 15, 2015 / 3h 32m

3h 32m

Start Course
Description

Learn how to use concurrent collections in multithreaded code! This course is a comprehensive introduction to the concurrent collections. It shows you how to use each of the main collection types: ConcurrentDictionary, ConcurrentQueue, ConcurrentBag, and ConcurrentStack. You'll learn the correct techniques for using these collections to avoid bugs such as race conditions, and also how to use BlockingCollection with the concurrent collections correctly in producer-consumer scenarios. The course rounds off with a look at some concurrent collection best practices.

Table of contents
  1. Introducing the Concurrent Collections43m
  2. Introducing ConcurrentDictionary40m
  3. Concurrent Dictionary Demo38m
  4. The Producer-Consumer Collections: Queues, Stacks and Bags23m
  5. Producer-consumer and BlockingCollection Demo27m
  6. Some Concurrent Collections Best Practices38m

C# Tips and Traps

by Jason Roberts

Aug 20, 2013 / 3h 57m

3h 57m

Start Course
Description

Whether you're still learning C# or you already have some experience, it's sometimes hard to know what you don't know. This course is designed to short-circuit your C# learning and provides a whole host of useful information about the sometimes under-used or unknown features of both the C# language and the .Net framework. It's suitable for those who are brand new to C# as well as experienced developers looking to "round off" their C# skills and "fill in the gaps".

Table of contents
  1. Part I33m
  2. Part II41m
  3. Part III40m
  4. Part IV41m
  5. Part V32m
  6. Part VI48m

C# Tips and Traps 2

by Jason Roberts

Sep 18, 2013 / 2h 43m

2h 43m

Start Course
Description

Whether you're still learning C# or you already have some experience, it's sometimes hard to know what you don't know. This is the follow-up course to C# Tips and Traps and is designed to further short-circuit your C# learning and provides a whole host of useful information about the sometimes under-used or unknown features of both the C# language and the .Net framework. It's suitable for those who are brand new to C# as well as experienced developers looking to "round off" their C# skills and "fill in the gaps".

Table of contents
  1. Part I39m
  2. Part II42m
  3. Part III35m
  4. Part IV46m

What you will learn

  • C# syntax
  • Object oriented paradigm
  • Arrays, lists, dictionaries
  • Interfaces
  • Generics
  • Events, delegates, and lambdas
  • LINQ
  • Asynchronous programming
  • Unit testing
  • Dependency injection
  • Extensibility points

Pre-requisites

No prior C# knowledge or experience is needed. Some understanding of common programming concepts, such as variables and looping, will be helpful.