C# / .Net Reference Guide
C# / .Net Reference Guide
I wanted to create a list of bookmarks of topics related to C#. I’ll cleanup this list in next two three months.
Asynchronous programming
Use of async/await, locks, ThreadPool, and how to avoid deadlocks.
Reflection
Use of type introspection to write highly dynamic code.
Expression trees
Understand how to build and manipulate expression trees to write Domain Specific Language (DSL) that can be used inside applications.
Generics
Understand the generic system and its interactions with inheritance via covariance and contravariance.
Lambda and Delegates
Use anonymous methods, closures, and lambda syntax to write expressive code.
Iterators
Understand IEnumerable, yield, and related facilities.
Language Integrated Query (LINQ)
Use C# syntax to access .Net LINQ capabilities and interacting with IEnumerable collections.
Resource management
Understanding IDispose and the using construct for explicit resource management.
Anonymous Types
Use of dynamic type to interact with types whose shape is determined at runtime.
Types and Variables
Know the difference between value types and reference.
Nullable Types
Understand the differences between nullable and non-nullable types.
Basic OOP
Use classes and objects to write simple object-oriented code. Understand inheritance facilities and use of interfaces to create compositional object-oriented code.
Properties and Indexers
Using properties and indexers on classes to provide additional safety and expressivity.
Collections
Knowledge in trade-offs of the various standard library generic collections like List, Set, Dictionary, etc.
Exception handling
Use of try/catch/finally for managing exceptions.
Type System
Understanding the categories of types supported by .Net. Classes, Structures, Enumerations, Interfaces, and Delegates.
Input/Output
.Net Facilities for input and output, including reading from files, network and making HTTP requests
Transforming data
Parsing and formatting data using String/Datetime/JSON/XML libraries
Routing
Direct an incoming request based on the URL pattern.
Memory cache
Knowledge about the default memory cache instance, limits, and others.
Build a simple REST API Service
Implementing an application to serve REST endpoints.
Data Access
Knowledge of database API in .Net, ADO.Net, and Entity Framework.
LINQ
Roslyn Source Generator
Assemblies
Knowledge of assembly file format, metadata facilities, and how code is linked with other modules.
Globalization and Localization
Understand .Net facilities for developing applications that can be localized into one or more languages.
Parallel Programming
.Net Parallel programming using Task Parallel Library and ParallelLINQ.
Attributes
Understand how attributes work and how they can be used in your code to address cross-cutting concerns.
Security
Understand .Net guidelines for role-based security, secure coding, and best practices with cryptographic libraries.
Memory management
Knowledge of automatic memory management, garbage collection, and how to work with unmanaged resources.
Unsafe code
Proficiency in interacting with native code in DLLs and COM libraries.
Performant Code
Share this post
Twitter
Facebook
Reddit
LinkedIn
Email