C# Contents

Introduction to .NET Framework

  • .NET Execution Environment
  • Role of CLR
  • Role of FCL
  • How CLR gets loaded in the process?
  • CSC
  • JIT Compiler
  • .NET EXE and DLL
  • Metadata 

.NET Data Types

  • Value Type
  • Reference Type
  • Primitive Types
  • System.Object
  • String
  • Arrays
  • Collections

Object-Oriented Programming

  • Common Type System
  • Instance Fields, Methods, Properties
  • Static Fields, Methods, Properties
  • Inheritance
  • Runtime Polymorphism
  • Interfaces
  • Abstract Class
  • Callback using Delegates
  • Events

Miscellaneous

  • ref and out
  • params
  • const
  • sealed
  • readonly
  • Nullable<>
  • Null Check
  • Exception Handling
  • Attributes

Database and Serialization

  • ADO.NET
  • Binary Serialization
  • JSON Serialization
  • XML Serialization

Asynchronous Programming and Multithreading

  • Compute-bound using Task
  • IO-bound using Task
  • async and await
  • Synchronisation
  • Cancellation
  • Completion
  • Making HTTP Request
  • Reading and Writing to files
  • Reading and Writing to Database

LINQ

  • IEnumerable<> and IEnumerator<>
  • yield
  • Extension Methods
  • Lambdas
  • Query Operators
  • Group
  • Join
  • Skip and Take
  • Preparation vs. Execution
  • Parallel LINQ

Reflection

  • Dynamically Loading DLLs
  • Discovering Classes, Method, Fields, Properties, Interfaces, Attributes at runtime
  • Type, MethodInfo, ParametersInfo, FieldInfo, etc.
  • Creating Objects using Activator class methods
  • Calling Methods using Invoke and BeginInvoke
  • Conversion using ChangeType()

Writing Unit Testable Code

  • Dependency Injection
  • Assert
  • Exception
  • Mocking