C# Programming - Advanced
C# is a sophisticated multi-purpose programming language with several advanced features, including memory, security, database, XML, JSON, unit testing, and more
Description
C# is a sophisticated multi-purpose programming language with several advanced features, including memory, security, database, XML, JSON, unit testing, and more. With C#, you can develop applications for the Windows, Linux, and MacOS operating environments. C# is a fully-featured language with considerable capabilities. This course provides a solid foundation in C# Programming, including incorporating its many advanced unique features.
Audience
The course prerequisite is 6 months of C# programming experience. The audience is system analysts, developers and technical managers.
Solutions
You will emerge from the class with the ability to create robust, secure, and scalable C# applications. You also be able to refactor applications to align with the current best practices and patterns for .NET / C#.
What you learn
Types
The C# language supports various data types that can be used to build simple to complex applications. This module explains the different types available in the language and how to handle them.
- Value types
- Reference types
- Nullable types
- Boxing
- StringBuilder
Object class
C# is an object-oriented programming language and all other classes inherit from the base Object class. You will learn about the properties and methods that are defined in the Object class in this module.
- ToString
- GetHashCode
- GetType
- ReferenceEquals
- System.ValueType
Custom Attributes
A custom attribute is a strongly typed technique that allows programmers to extend C# metadata. In this module you will learn how to specify parameters and targets for attributes and use them.
- Defining attributes
- Implementing attributes
- Inheritance
- Conditional attributes
JSON
In this module you will learn how to serialize and deserialize C# objects to JSON. You will also learn about using POCO libraries and extend C# code.
- POCO
- Serialize
- Deserialize
- Customization
LINQ
Language Integrated Query adds native querying to a programming language such as C#. The purpose of this module is to introduce key LINQ concepts and provide a hands-on experience for writing LINQ expressions.
- Why Linq
- LINQ expressions
- LINQ to Objects
- LINQ to SQL
- LINQ to Entities
Security
Security is an important topic and being able to write secure code is something a programmer must be able to do. In this module you will learn about various security techniques you can use in C#.
- Hashing
- Encrytion
- Digital signatures
- Certificates
Miscellaneous
In this module you will learn about using advanced C# techniques such as generics, partial classes and string pooling.
- Advanced Generics
- Extensions methods
- Optional / named parameters
- String pooling
- Partial classes
Reflection
Reflection is a mechanism that allows data types to be inspected at runtime. You will learn about different C# features that makes reflection possible and learn how to use them.
- Custom attributes
- Dynamic Programming
- Reflection.Emit
- BindingFlags
Unsafe code
Threaded code can result in unexpected program behavior. In this module, you will learn how to write C# code in a safe way using different techniques.
- Unsafe mode
- Unsafe block
- Interoperability
- Pointers
Prerequisites
- Experience programming
- Master of all things C#
- Software development lifecycle