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 6 is a unified platform, for browser, cloud, desktop, IoT, and mobile apps. It is based on .NET Core, the package-based implementation that is cross-platform, running on Mac and Linux besides Windows. It completes the unification of the .NET platform begun with .NET 5.
This two-day course is designed for the experienced programmer to help you quickly come up to speed on the C# language. It is current to Visual Studio 2022, .NET 6 and C# 10. Important newer features such as dynamic data types, named and optional arguments, tuples, asynchronous programming keywords, nullable reference types, record types and top-level statements are covered.
This course concisely covers the essentials of programming using Microsoft’s C# programming language. It starts with an overview of .NET architecture and the basics of running C# programs in a .NET environment. The next two chapters cover C# language essentials and object-oriented programming in C#. The next chapter discusses how C# relates to.NET. The following chapter covers delegates and events. The course includes a succinct introduction to creating GUI programs using Windows Forms. The course concludes with a chapter covering the newer features in C#. Appendices provide a tutorial on Visual Studio 2022, an overview of LINQ, and coverage of unsafe code and pointers in C#.
The course is practical, with many example programs and a progressively developed case study. The goal is to quickly bring you up to speed in writing C# programs. The student will receive a comprehensive set of materials, including course notes and all the programming examples.
Objectives
Acquire a working knowledge of C# programming
Learn about important interactions between C# and.NET
Learn how to implement simple GUI programs using Windows Forms
Gain a working knowledge of important newer features in C#
Prerequisites
The student should be an experienced application developer or architect. Some background in object-oriented programming would be helpful.
Duration
2-3 Days
Outline for C# Essentials Training
Chapter 1. Introduction to NET
What is .NET?
.NET Framework, NET Core and .NET 6
Application Models
Managed Code
Visual Studio 2022
Console Programs and New Console Template
GUI Programs
Chapter 2. C# Overview for the Sophisticated Programmer
First C# Console Application
Namespaces
Data Types
Conversions
Control Structures
Subroutines and Functions
Parameter Passing
Strings
Arrays
Implicitly Typed Variables
Console I/O
Formatting
Exception Handling
Chapter 3. Object-Oriented Programming in C#
Classes
Access Control
Methods and Properties
Asymmetric Accessor Accessibility
Static Data and Methods
Constant and Readonly Fields
Auto-Implemented Properties
Inheritance
Overriding Methods
Abstract Classes
Sealed Classes
Access Control and Assemblies
Chapter 4. C# and.NET
Components
Interfaces
System.Object
.NET and COM
Collections
IEnumerable and IEnumerator
Copy Semantics in C#
Generic Types
Type-Safe Collections
Object Initializers
Collection Initializers
Anonymous Types
Attributes
Chapter 5. Delegates and Events
Delegates
Anonymous Methods
Lambda Expressions
Random Number Generation
Events
Chapter 6. Introduction to Windows Forms
Creating Windows Applications Using Visual Studio 2022
Partial Classes
Buttons, Labels and Textboxes
Handling Events
Listbox Controls
Chapter 7. Newer Features in C#
Dynamic Data Type
Named and Optional Arguments
Variance in Generic Interfaces
Asynchronous Programming Keywords
New Features in C# 6 and C# 7
Nullable Reference Types
Record Types
Top-level Statements
Appendix A. Using Visual Studio 2022
Signing in to Visual Studio
Overview of Visual Studio 2022
Creating a Console Application
Project Configurations
Debugging
Multiple-Project Solutions
Appendix B. Language Integrated Query (LINQ)
What Is LINQ?
Basic Query Operators
Filtering
Ordering
Aggregation
Appendix C. Unsafe Code and Pointers in C#
Unsafe Code
C# Pointer Type